packages feed

amazonka-ec2 1.4.5 → 1.5.0

raw patch · 296 files changed

+34377/−25700 lines, 296 filesdep ~amazonka-coredep ~amazonka-ec2dep ~amazonka-testPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-core, amazonka-ec2, amazonka-test

API changes (from Hackage documentation)

- Network.AWS.EC2: Convertible :: OfferingClassType
- Network.AWS.EC2: Failing :: SubnetCidrBlockStateCode
- Network.AWS.EC2: NatGateway :: NetworkInterfaceType
- Network.AWS.EC2: VTGP2 :: VolumeType
- Network.AWS.EC2: VTIO1 :: VolumeType
- Network.AWS.EC2: VTSC1 :: VolumeType
- Network.AWS.EC2: VTST1 :: VolumeType
- Network.AWS.EC2: VTStandard :: VolumeType
- Network.AWS.EC2: irCidrIP :: Lens' IPRange Text
- Network.AWS.EC2.CreateReservedInstancesListing: crersReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]
- Network.AWS.EC2.CreateReservedInstancesListing: crersResponseStatus :: Lens' CreateReservedInstancesListingResponse Int
- Network.AWS.EC2.CreateSubnet: crsResponseStatus :: Lens' CreateSubnetResponse Int
- Network.AWS.EC2.CreateSubnet: crsSubnet :: Lens' CreateSubnetResponse (Maybe Subnet)
- Network.AWS.EC2.CreateVolume: creAvailabilityZone :: Lens' CreateVolume Text
- Network.AWS.EC2.CreateVolume: creDryRun :: Lens' CreateVolume (Maybe Bool)
- Network.AWS.EC2.CreateVolume: creEncrypted :: Lens' CreateVolume (Maybe Bool)
- Network.AWS.EC2.CreateVolume: creIOPS :: Lens' CreateVolume (Maybe Int)
- Network.AWS.EC2.CreateVolume: creKMSKeyId :: Lens' CreateVolume (Maybe Text)
- Network.AWS.EC2.CreateVolume: creSize :: Lens' CreateVolume (Maybe Int)
- Network.AWS.EC2.CreateVolume: creSnapshotId :: Lens' CreateVolume (Maybe Text)
- Network.AWS.EC2.CreateVolume: creVolumeType :: Lens' CreateVolume (Maybe VolumeType)
- Network.AWS.EC2.DeleteEgressOnlyInternetGateway: delrsResponseStatus :: Lens' DeleteEgressOnlyInternetGatewayResponse Int
- Network.AWS.EC2.DeleteEgressOnlyInternetGateway: delrsReturnCode :: Lens' DeleteEgressOnlyInternetGatewayResponse (Maybe Bool)
- Network.AWS.EC2.DescribeImages: desrsImages :: Lens' DescribeImagesResponse [Image]
- Network.AWS.EC2.DescribeImages: desrsResponseStatus :: Lens' DescribeImagesResponse Int
- Network.AWS.EC2.DescribeInstanceAttribute: drsBlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]
- Network.AWS.EC2.DescribeInstanceAttribute: drsDisableAPITermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsEBSOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsEnaSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsGroups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]
- Network.AWS.EC2.DescribeInstanceAttribute: drsInstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)
- Network.AWS.EC2.DescribeInstanceAttribute: drsInstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsInstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsKernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]
- Network.AWS.EC2.DescribeInstanceAttribute: drsRAMDiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsResponseStatus :: Lens' DescribeInstanceAttributeResponse Int
- Network.AWS.EC2.DescribeInstanceAttribute: drsRootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsSRIOVNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsSourceDestCheck :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
- Network.AWS.EC2.DescribeInstanceAttribute: drsUserData :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
- Network.AWS.EC2.Types: Convertible :: OfferingClassType
- Network.AWS.EC2.Types: Failing :: SubnetCidrBlockStateCode
- Network.AWS.EC2.Types: NatGateway :: NetworkInterfaceType
- Network.AWS.EC2.Types: VTGP2 :: VolumeType
- Network.AWS.EC2.Types: VTIO1 :: VolumeType
- Network.AWS.EC2.Types: VTSC1 :: VolumeType
- Network.AWS.EC2.Types: VTST1 :: VolumeType
- Network.AWS.EC2.Types: VTStandard :: VolumeType
- Network.AWS.EC2.Types: irCidrIP :: Lens' IPRange Text
+ Network.AWS.EC2: Attached :: ElasticGpuState
+ Network.AWS.EC2: C5_18XLarge :: InstanceType
+ Network.AWS.EC2: C5_2XLarge :: InstanceType
+ Network.AWS.EC2: C5_4XLarge :: InstanceType
+ Network.AWS.EC2: C5_9XLarge :: InstanceType
+ Network.AWS.EC2: C5_Large :: InstanceType
+ Network.AWS.EC2: C5_XLarge :: InstanceType
+ Network.AWS.EC2: Completed :: VolumeModificationState
+ Network.AWS.EC2: EGSImpaired :: ElasticGpuStatus
+ Network.AWS.EC2: EGSOK :: ElasticGpuStatus
+ Network.AWS.EC2: EIPAssociate :: InterfacePermissionType
+ Network.AWS.EC2: FIANDescription :: FpgaImageAttributeName
+ Network.AWS.EC2: FIANLoadPermission :: FpgaImageAttributeName
+ Network.AWS.EC2: FIANName :: FpgaImageAttributeName
+ Network.AWS.EC2: FIANProductCodes :: FpgaImageAttributeName
+ Network.AWS.EC2: FISCAvailable :: FpgaImageStateCode
+ Network.AWS.EC2: FISCFailed :: FpgaImageStateCode
+ Network.AWS.EC2: FISCPending :: FpgaImageStateCode
+ Network.AWS.EC2: FISCUnavailable :: FpgaImageStateCode
+ Network.AWS.EC2: G3_16XLarge :: InstanceType
+ Network.AWS.EC2: G3_4XLarge :: InstanceType
+ Network.AWS.EC2: G3_8XLarge :: InstanceType
+ Network.AWS.EC2: GP2 :: VolumeType
+ Network.AWS.EC2: Gateway :: ServiceType
+ Network.AWS.EC2: Healthy :: InstanceHealthStatus
+ Network.AWS.EC2: I3_16XLarge :: InstanceType
+ Network.AWS.EC2: I3_2XLarge :: InstanceType
+ Network.AWS.EC2: I3_4XLarge :: InstanceType
+ Network.AWS.EC2: I3_8XLarge :: InstanceType
+ Network.AWS.EC2: I3_Large :: InstanceType
+ Network.AWS.EC2: I3_XLarge :: InstanceType
+ Network.AWS.EC2: IIBStop :: InstanceInterruptionBehavior
+ Network.AWS.EC2: IIBTerminate :: InstanceInterruptionBehavior
+ Network.AWS.EC2: IO1 :: VolumeType
+ Network.AWS.EC2: InstanceAttach :: InterfacePermissionType
+ Network.AWS.EC2: LoadPermission :: ResetFpgaImageAttributeName
+ Network.AWS.EC2: Modifying :: VolumeModificationState
+ Network.AWS.EC2: NIPSCGranted :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2: NIPSCPending :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2: NIPSCRevoked :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2: NIPSCRevoking :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2: NITInterface :: NetworkInterfaceType
+ Network.AWS.EC2: NITNatGateway :: NetworkInterfaceType
+ Network.AWS.EC2: OCTConvertible :: OfferingClassType
+ Network.AWS.EC2: OCTStandard :: OfferingClassType
+ Network.AWS.EC2: Optimizing :: VolumeModificationState
+ Network.AWS.EC2: P3_16XLarge :: InstanceType
+ Network.AWS.EC2: P3_2XLarge :: InstanceType
+ Network.AWS.EC2: P3_8XLarge :: InstanceType
+ Network.AWS.EC2: R4_16XLarge :: InstanceType
+ Network.AWS.EC2: R4_2XLarge :: InstanceType
+ Network.AWS.EC2: R4_4XLarge :: InstanceType
+ Network.AWS.EC2: R4_8XLarge :: InstanceType
+ Network.AWS.EC2: R4_Large :: InstanceType
+ Network.AWS.EC2: R4_XLarge :: InstanceType
+ Network.AWS.EC2: SC1 :: VolumeType
+ Network.AWS.EC2: SCBSCAssociated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: SCBSCAssociating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: SCBSCDisassociated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: SCBSCDisassociating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: SCBSCFailed :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: SCBSCFailing :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: SExpired :: State
+ Network.AWS.EC2: SFailed :: State
+ Network.AWS.EC2: SPendingAcceptance :: State
+ Network.AWS.EC2: SRejected :: State
+ Network.AWS.EC2: ST1 :: VolumeType
+ Network.AWS.EC2: T2_2XLarge :: InstanceType
+ Network.AWS.EC2: T2_XLarge :: InstanceType
+ Network.AWS.EC2: Unhealthy :: InstanceHealthStatus
+ Network.AWS.EC2: VETGateway :: VPCEndpointType
+ Network.AWS.EC2: VETInterface :: VPCEndpointType
+ Network.AWS.EC2: VTDefault :: VPCTenancy
+ Network.AWS.EC2: X1e_32XLarge :: InstanceType
+ Network.AWS.EC2: aiInstanceHealth :: Lens' ActiveInstance (Maybe InstanceHealthStatus)
+ Network.AWS.EC2: cbCidrBlock :: Lens' CidrBlock (Maybe Text)
+ Network.AWS.EC2: cidrBlock :: CidrBlock
+ Network.AWS.EC2: classicLoadBalancer :: Text -> ClassicLoadBalancer
+ Network.AWS.EC2: classicLoadBalancersConfig :: NonEmpty ClassicLoadBalancer -> ClassicLoadBalancersConfig
+ Network.AWS.EC2: clbName :: Lens' ClassicLoadBalancer Text
+ Network.AWS.EC2: clbcClassicLoadBalancers :: Lens' ClassicLoadBalancersConfig (NonEmpty ClassicLoadBalancer)
+ Network.AWS.EC2: data CidrBlock
+ Network.AWS.EC2: data ClassicLoadBalancer
+ Network.AWS.EC2: data ClassicLoadBalancersConfig
+ Network.AWS.EC2: data DNSEntry
+ Network.AWS.EC2: data ElasticGpuAssociation
+ Network.AWS.EC2: data ElasticGpuHealth
+ Network.AWS.EC2: data ElasticGpuSpecification
+ Network.AWS.EC2: data ElasticGpuState
+ Network.AWS.EC2: data ElasticGpuStatus
+ Network.AWS.EC2: data ElasticGpus
+ Network.AWS.EC2: data FpgaImage
+ Network.AWS.EC2: data FpgaImageAttribute
+ Network.AWS.EC2: data FpgaImageAttributeName
+ Network.AWS.EC2: data FpgaImageState
+ Network.AWS.EC2: data FpgaImageStateCode
+ Network.AWS.EC2: data IAMInstanceProfileAssociation
+ Network.AWS.EC2: data IAMInstanceProfileAssociationState
+ Network.AWS.EC2: data InstanceHealthStatus
+ Network.AWS.EC2: data InstanceInterruptionBehavior
+ Network.AWS.EC2: data InterfacePermissionType
+ Network.AWS.EC2: data LoadBalancersConfig
+ Network.AWS.EC2: data LoadPermission
+ Network.AWS.EC2: data LoadPermissionModifications
+ Network.AWS.EC2: data LoadPermissionRequest
+ Network.AWS.EC2: data NetworkInterfacePermission
+ Network.AWS.EC2: data NetworkInterfacePermissionState
+ Network.AWS.EC2: data NetworkInterfacePermissionStateCode
+ Network.AWS.EC2: data PciId
+ Network.AWS.EC2: data ResetFpgaImageAttributeName
+ Network.AWS.EC2: data SecurityGroupIdentifier
+ Network.AWS.EC2: data ServiceDetail
+ Network.AWS.EC2: data ServiceType
+ Network.AWS.EC2: data ServiceTypeDetail
+ Network.AWS.EC2: data SpotFleetTagSpecification
+ Network.AWS.EC2: data StorageLocation
+ Network.AWS.EC2: data TagSpecification
+ Network.AWS.EC2: data TargetGroup
+ Network.AWS.EC2: data TargetGroupsConfig
+ Network.AWS.EC2: data VPCCidrBlockAssociation
+ Network.AWS.EC2: data VPCEndpointType
+ Network.AWS.EC2: data VPCTenancy
+ Network.AWS.EC2: data VPNTunnelOptionsSpecification
+ Network.AWS.EC2: data VolumeModification
+ Network.AWS.EC2: data VolumeModificationState
+ Network.AWS.EC2: deDNSName :: Lens' DNSEntry (Maybe Text)
+ Network.AWS.EC2: deHostedZoneId :: Lens' DNSEntry (Maybe Text)
+ Network.AWS.EC2: dnsEntry :: DNSEntry
+ Network.AWS.EC2: egAvailabilityZone :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2: egElasticGpuHealth :: Lens' ElasticGpus (Maybe ElasticGpuHealth)
+ Network.AWS.EC2: egElasticGpuId :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2: egElasticGpuState :: Lens' ElasticGpus (Maybe ElasticGpuState)
+ Network.AWS.EC2: egElasticGpuType :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2: egInstanceId :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2: egaElasticGpuAssociationId :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2: egaElasticGpuAssociationState :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2: egaElasticGpuAssociationTime :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2: egaElasticGpuId :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2: eghStatus :: Lens' ElasticGpuHealth (Maybe ElasticGpuStatus)
+ Network.AWS.EC2: egsType :: Lens' ElasticGpuSpecification Text
+ Network.AWS.EC2: elasticGpuAssociation :: ElasticGpuAssociation
+ Network.AWS.EC2: elasticGpuHealth :: ElasticGpuHealth
+ Network.AWS.EC2: elasticGpuSpecification :: Text -> ElasticGpuSpecification
+ Network.AWS.EC2: elasticGpus :: ElasticGpus
+ Network.AWS.EC2: fiCreateTime :: Lens' FpgaImage (Maybe UTCTime)
+ Network.AWS.EC2: fiDescription :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiFpgaImageGlobalId :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiFpgaImageId :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiName :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiOwnerAlias :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiOwnerId :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiPciId :: Lens' FpgaImage (Maybe PciId)
+ Network.AWS.EC2: fiProductCodes :: Lens' FpgaImage [ProductCode]
+ Network.AWS.EC2: fiPublic :: Lens' FpgaImage (Maybe Bool)
+ Network.AWS.EC2: fiShellVersion :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2: fiState :: Lens' FpgaImage (Maybe FpgaImageState)
+ Network.AWS.EC2: fiTags :: Lens' FpgaImage [Tag]
+ Network.AWS.EC2: fiUpdateTime :: Lens' FpgaImage (Maybe UTCTime)
+ Network.AWS.EC2: fiaDescription :: Lens' FpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2: fiaFpgaImageId :: Lens' FpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2: fiaLoadPermissions :: Lens' FpgaImageAttribute [LoadPermission]
+ Network.AWS.EC2: fiaName :: Lens' FpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2: fiaProductCodes :: Lens' FpgaImageAttribute [ProductCode]
+ Network.AWS.EC2: fisCode :: Lens' FpgaImageState (Maybe FpgaImageStateCode)
+ Network.AWS.EC2: fisMessage :: Lens' FpgaImageState (Maybe Text)
+ Network.AWS.EC2: fpgaImage :: FpgaImage
+ Network.AWS.EC2: fpgaImageAttribute :: FpgaImageAttribute
+ Network.AWS.EC2: fpgaImageState :: FpgaImageState
+ Network.AWS.EC2: iamInstanceProfileAssociation :: IAMInstanceProfileAssociation
+ Network.AWS.EC2: iapaAssociationId :: Lens' IAMInstanceProfileAssociation (Maybe Text)
+ Network.AWS.EC2: iapaIAMInstanceProfile :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfile)
+ Network.AWS.EC2: iapaInstanceId :: Lens' IAMInstanceProfileAssociation (Maybe Text)
+ Network.AWS.EC2: iapaState :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfileAssociationState)
+ Network.AWS.EC2: iapaTimestamp :: Lens' IAMInstanceProfileAssociation (Maybe UTCTime)
+ Network.AWS.EC2: insElasticGpuAssociations :: Lens' Instance [ElasticGpuAssociation]
+ Network.AWS.EC2: iprCidrIP :: Lens' IPRange Text
+ Network.AWS.EC2: iprDescription :: Lens' IPRange (Maybe Text)
+ Network.AWS.EC2: irDescription :: Lens' IPv6Range (Maybe Text)
+ Network.AWS.EC2: lAdd :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2: lGroup :: Lens' LaunchPermission (Maybe PermissionGroup)
+ Network.AWS.EC2: lRemove :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2: lUserId :: Lens' LaunchPermission (Maybe Text)
+ Network.AWS.EC2: lbcClassicLoadBalancersConfig :: Lens' LoadBalancersConfig (Maybe ClassicLoadBalancersConfig)
+ Network.AWS.EC2: lbcTargetGroupsConfig :: Lens' LoadBalancersConfig (Maybe TargetGroupsConfig)
+ Network.AWS.EC2: loadBalancersConfig :: LoadBalancersConfig
+ Network.AWS.EC2: loadPermission :: LoadPermission
+ Network.AWS.EC2: loadPermissionModifications :: LoadPermissionModifications
+ Network.AWS.EC2: loadPermissionRequest :: LoadPermissionRequest
+ Network.AWS.EC2: lprGroup :: Lens' LoadPermissionRequest (Maybe PermissionGroup)
+ Network.AWS.EC2: lprUserId :: Lens' LoadPermissionRequest (Maybe Text)
+ Network.AWS.EC2: networkInterfacePermission :: NetworkInterfacePermission
+ Network.AWS.EC2: networkInterfacePermissionState :: NetworkInterfacePermissionState
+ Network.AWS.EC2: ngTags :: Lens' NatGateway [Tag]
+ Network.AWS.EC2: nipAWSAccountId :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2: nipAWSService :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2: nipNetworkInterfaceId :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2: nipNetworkInterfacePermissionId :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2: nipPermission :: Lens' NetworkInterfacePermission (Maybe InterfacePermissionType)
+ Network.AWS.EC2: nipPermissionState :: Lens' NetworkInterfacePermission (Maybe NetworkInterfacePermissionState)
+ Network.AWS.EC2: nipsState :: Lens' NetworkInterfacePermissionState (Maybe NetworkInterfacePermissionStateCode)
+ Network.AWS.EC2: nipsStatusMessage :: Lens' NetworkInterfacePermissionState (Maybe Text)
+ Network.AWS.EC2: pSpreadDomain :: Lens' Placement (Maybe Text)
+ Network.AWS.EC2: pciId :: PciId
+ Network.AWS.EC2: piDeviceId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2: piSubsystemId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2: piSubsystemVendorId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2: piVendorId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2: pliDescription :: Lens' PrefixListId (Maybe Text)
+ Network.AWS.EC2: sdAcceptanceRequired :: Lens' ServiceDetail (Maybe Bool)
+ Network.AWS.EC2: sdAvailabilityZones :: Lens' ServiceDetail [Text]
+ Network.AWS.EC2: sdBaseEndpointDNSNames :: Lens' ServiceDetail [Text]
+ Network.AWS.EC2: sdOwner :: Lens' ServiceDetail (Maybe Text)
+ Network.AWS.EC2: sdPrivateDNSName :: Lens' ServiceDetail (Maybe Text)
+ Network.AWS.EC2: sdServiceName :: Lens' ServiceDetail (Maybe Text)
+ Network.AWS.EC2: sdServiceType :: Lens' ServiceDetail [ServiceTypeDetail]
+ Network.AWS.EC2: sdVPCEndpointPolicySupported :: Lens' ServiceDetail (Maybe Bool)
+ Network.AWS.EC2: securityGroupIdentifier :: SecurityGroupIdentifier
+ Network.AWS.EC2: serviceDetail :: ServiceDetail
+ Network.AWS.EC2: serviceTypeDetail :: ServiceTypeDetail
+ Network.AWS.EC2: sflsTagSpecifications :: Lens' SpotFleetLaunchSpecification [SpotFleetTagSpecification]
+ Network.AWS.EC2: sfrcdInstanceInterruptionBehavior :: Lens' SpotFleetRequestConfigData (Maybe InstanceInterruptionBehavior)
+ Network.AWS.EC2: sfrcdLoadBalancersConfig :: Lens' SpotFleetRequestConfigData (Maybe LoadBalancersConfig)
+ Network.AWS.EC2: sfrcdReplaceUnhealthyInstances :: Lens' SpotFleetRequestConfigData (Maybe Bool)
+ Network.AWS.EC2: sftsResourceType :: Lens' SpotFleetTagSpecification (Maybe ResourceType)
+ Network.AWS.EC2: sftsTags :: Lens' SpotFleetTagSpecification [Tag]
+ Network.AWS.EC2: sgiGroupId :: Lens' SecurityGroupIdentifier (Maybe Text)
+ Network.AWS.EC2: sgiGroupName :: Lens' SecurityGroupIdentifier (Maybe Text)
+ Network.AWS.EC2: sirInstanceInterruptionBehavior :: Lens' SpotInstanceRequest (Maybe InstanceInterruptionBehavior)
+ Network.AWS.EC2: slBucket :: Lens' StorageLocation (Maybe Text)
+ Network.AWS.EC2: slKey :: Lens' StorageLocation (Maybe Text)
+ Network.AWS.EC2: spTenancy :: Lens' SpotPlacement (Maybe Tenancy)
+ Network.AWS.EC2: spotFleetTagSpecification :: SpotFleetTagSpecification
+ Network.AWS.EC2: stdServiceType :: Lens' ServiceTypeDetail (Maybe ServiceType)
+ Network.AWS.EC2: storageLocation :: StorageLocation
+ Network.AWS.EC2: tagSpecification :: TagSpecification
+ Network.AWS.EC2: targetGroup :: Text -> TargetGroup
+ Network.AWS.EC2: targetGroupsConfig :: NonEmpty TargetGroup -> TargetGroupsConfig
+ Network.AWS.EC2: tgARN :: Lens' TargetGroup Text
+ Network.AWS.EC2: tgcTargetGroups :: Lens' TargetGroupsConfig (NonEmpty TargetGroup)
+ Network.AWS.EC2: tsResourceType :: Lens' TagSpecification (Maybe ResourceType)
+ Network.AWS.EC2: tsTags :: Lens' TagSpecification [Tag]
+ Network.AWS.EC2: uigpDescription :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2: vcCategory :: Lens' VPNConnection (Maybe Text)
+ Network.AWS.EC2: vcbaAssociationId :: Lens' VPCCidrBlockAssociation (Maybe Text)
+ Network.AWS.EC2: vcbaCidrBlock :: Lens' VPCCidrBlockAssociation (Maybe Text)
+ Network.AWS.EC2: vcbaCidrBlockState :: Lens' VPCCidrBlockAssociation (Maybe VPCCidrBlockState)
+ Network.AWS.EC2: vcosTunnelOptions :: Lens' VPNConnectionOptionsSpecification [VPNTunnelOptionsSpecification]
+ Network.AWS.EC2: veDNSEntries :: Lens' VPCEndpoint [DNSEntry]
+ Network.AWS.EC2: veGroups :: Lens' VPCEndpoint [SecurityGroupIdentifier]
+ Network.AWS.EC2: veNetworkInterfaceIds :: Lens' VPCEndpoint [Text]
+ Network.AWS.EC2: vePrivateDNSEnabled :: Lens' VPCEndpoint (Maybe Bool)
+ Network.AWS.EC2: veSubnetIds :: Lens' VPCEndpoint [Text]
+ Network.AWS.EC2: veVPCEndpointType :: Lens' VPCEndpoint (Maybe VPCEndpointType)
+ Network.AWS.EC2: vgAmazonSideASN :: Lens' VPNGateway (Maybe Integer)
+ Network.AWS.EC2: vmEndTime :: Lens' VolumeModification (Maybe UTCTime)
+ Network.AWS.EC2: vmModificationState :: Lens' VolumeModification (Maybe VolumeModificationState)
+ Network.AWS.EC2: vmOriginalIOPS :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2: vmOriginalSize :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2: vmOriginalVolumeType :: Lens' VolumeModification (Maybe VolumeType)
+ Network.AWS.EC2: vmProgress :: Lens' VolumeModification (Maybe Integer)
+ Network.AWS.EC2: vmStartTime :: Lens' VolumeModification (Maybe UTCTime)
+ Network.AWS.EC2: vmStatusMessage :: Lens' VolumeModification (Maybe Text)
+ Network.AWS.EC2: vmTargetIOPS :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2: vmTargetSize :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2: vmTargetVolumeType :: Lens' VolumeModification (Maybe VolumeType)
+ Network.AWS.EC2: vmVolumeId :: Lens' VolumeModification (Maybe Text)
+ Network.AWS.EC2: volumeModification :: VolumeModification
+ Network.AWS.EC2: vpcCidrBlockAssociation :: VPCCidrBlockAssociation
+ Network.AWS.EC2: vpcCidrBlockAssociationSet :: Lens' VPC [VPCCidrBlockAssociation]
+ Network.AWS.EC2: vpcviCidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [CidrBlock]
+ Network.AWS.EC2: vpnTunnelOptionsSpecification :: VPNTunnelOptionsSpecification
+ Network.AWS.EC2: vtosPreSharedKey :: Lens' VPNTunnelOptionsSpecification (Maybe Text)
+ Network.AWS.EC2: vtosTunnelInsideCidr :: Lens' VPNTunnelOptionsSpecification (Maybe Text)
+ Network.AWS.EC2.AllocateAddress: aaAddress :: Lens' AllocateAddress (Maybe Text)
+ Network.AWS.EC2.AssociateIAMInstanceProfile: aiapIAMInstanceProfile :: Lens' AssociateIAMInstanceProfile IAMInstanceProfileSpecification
+ Network.AWS.EC2.AssociateIAMInstanceProfile: aiapInstanceId :: Lens' AssociateIAMInstanceProfile Text
+ Network.AWS.EC2.AssociateIAMInstanceProfile: aiaprsIAMInstanceProfileAssociation :: Lens' AssociateIAMInstanceProfileResponse (Maybe IAMInstanceProfileAssociation)
+ Network.AWS.EC2.AssociateIAMInstanceProfile: aiaprsResponseStatus :: Lens' AssociateIAMInstanceProfileResponse Int
+ Network.AWS.EC2.AssociateIAMInstanceProfile: associateIAMInstanceProfile :: IAMInstanceProfileSpecification -> Text -> AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: associateIAMInstanceProfileResponse :: Int -> AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: data AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: data AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Control.DeepSeq.NFData Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Control.DeepSeq.NFData Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Data.Data.Data Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Data.Data.Data Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Data.Hashable.Class.Hashable Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Classes.Eq Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Classes.Eq Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Generics.Generic Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Generics.Generic Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Read.Read Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Read.Read Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Show.Show Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance GHC.Show.Show Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfileResponse
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateIAMInstanceProfile: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.AssociateIAMInstanceProfile.AssociateIAMInstanceProfile
+ Network.AWS.EC2.AssociateVPCCidrBlock: avcbCidrBlock :: Lens' AssociateVPCCidrBlock (Maybe Text)
+ Network.AWS.EC2.AssociateVPCCidrBlock: avcbrsCidrBlockAssociation :: Lens' AssociateVPCCidrBlockResponse (Maybe VPCCidrBlockAssociation)
+ Network.AWS.EC2.CopyFpgaImage: cfiClientToken :: Lens' CopyFpgaImage (Maybe Text)
+ Network.AWS.EC2.CopyFpgaImage: cfiDescription :: Lens' CopyFpgaImage (Maybe Text)
+ Network.AWS.EC2.CopyFpgaImage: cfiDryRun :: Lens' CopyFpgaImage (Maybe Bool)
+ Network.AWS.EC2.CopyFpgaImage: cfiName :: Lens' CopyFpgaImage (Maybe Text)
+ Network.AWS.EC2.CopyFpgaImage: cfiSourceFpgaImageId :: Lens' CopyFpgaImage Text
+ Network.AWS.EC2.CopyFpgaImage: cfiSourceRegion :: Lens' CopyFpgaImage Text
+ Network.AWS.EC2.CopyFpgaImage: copyFpgaImage :: Text -> Text -> CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: copyFpgaImageResponse :: Int -> CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: crsFpgaImageId :: Lens' CopyFpgaImageResponse (Maybe Text)
+ Network.AWS.EC2.CopyFpgaImage: crsResponseStatus :: Lens' CopyFpgaImageResponse Int
+ Network.AWS.EC2.CopyFpgaImage: data CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: data CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance Control.DeepSeq.NFData Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance Control.DeepSeq.NFData Network.AWS.EC2.CopyFpgaImage.CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance Data.Data.Data Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance Data.Data.Data Network.AWS.EC2.CopyFpgaImage.CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Classes.Eq Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Classes.Eq Network.AWS.EC2.CopyFpgaImage.CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Generics.Generic Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Generics.Generic Network.AWS.EC2.CopyFpgaImage.CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Read.Read Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Read.Read Network.AWS.EC2.CopyFpgaImage.CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Show.Show Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance GHC.Show.Show Network.AWS.EC2.CopyFpgaImage.CopyFpgaImageResponse
+ Network.AWS.EC2.CopyFpgaImage: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CopyFpgaImage: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CopyFpgaImage.CopyFpgaImage
+ Network.AWS.EC2.CreateDefaultSubnet: cdsAvailabilityZone :: Lens' CreateDefaultSubnet Text
+ Network.AWS.EC2.CreateDefaultSubnet: cdsDryRun :: Lens' CreateDefaultSubnet (Maybe Bool)
+ Network.AWS.EC2.CreateDefaultSubnet: cdsrsResponseStatus :: Lens' CreateDefaultSubnetResponse Int
+ Network.AWS.EC2.CreateDefaultSubnet: cdsrsSubnet :: Lens' CreateDefaultSubnetResponse (Maybe Subnet)
+ Network.AWS.EC2.CreateDefaultSubnet: createDefaultSubnet :: Text -> CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: createDefaultSubnetResponse :: Int -> CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: data CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: data CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance Data.Data.Data Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance Data.Data.Data Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Classes.Eq Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Classes.Eq Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Generics.Generic Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Generics.Generic Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Read.Read Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Read.Read Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Show.Show Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance GHC.Show.Show Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnetResponse
+ Network.AWS.EC2.CreateDefaultSubnet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultSubnet: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateDefaultSubnet.CreateDefaultSubnet
+ Network.AWS.EC2.CreateDefaultVPC: cdvDryRun :: Lens' CreateDefaultVPC (Maybe Bool)
+ Network.AWS.EC2.CreateDefaultVPC: cdvrsResponseStatus :: Lens' CreateDefaultVPCResponse Int
+ Network.AWS.EC2.CreateDefaultVPC: cdvrsVPC :: Lens' CreateDefaultVPCResponse (Maybe VPC)
+ Network.AWS.EC2.CreateDefaultVPC: createDefaultVPC :: CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: createDefaultVPCResponse :: Int -> CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: data CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: data CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance Data.Data.Data Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance Data.Data.Data Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Classes.Eq Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Classes.Eq Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Generics.Generic Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Generics.Generic Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Read.Read Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Read.Read Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Show.Show Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance GHC.Show.Show Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPCResponse
+ Network.AWS.EC2.CreateDefaultVPC: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateDefaultVPC: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateDefaultVPC.CreateDefaultVPC
+ Network.AWS.EC2.CreateFpgaImage: cfirsFpgaImageGlobalId :: Lens' CreateFpgaImageResponse (Maybe Text)
+ Network.AWS.EC2.CreateFpgaImage: cfirsFpgaImageId :: Lens' CreateFpgaImageResponse (Maybe Text)
+ Network.AWS.EC2.CreateFpgaImage: cfirsResponseStatus :: Lens' CreateFpgaImageResponse Int
+ Network.AWS.EC2.CreateFpgaImage: creClientToken :: Lens' CreateFpgaImage (Maybe Text)
+ Network.AWS.EC2.CreateFpgaImage: creDescription :: Lens' CreateFpgaImage (Maybe Text)
+ Network.AWS.EC2.CreateFpgaImage: creDryRun :: Lens' CreateFpgaImage (Maybe Bool)
+ Network.AWS.EC2.CreateFpgaImage: creInputStorageLocation :: Lens' CreateFpgaImage StorageLocation
+ Network.AWS.EC2.CreateFpgaImage: creLogsStorageLocation :: Lens' CreateFpgaImage (Maybe StorageLocation)
+ Network.AWS.EC2.CreateFpgaImage: creName :: Lens' CreateFpgaImage (Maybe Text)
+ Network.AWS.EC2.CreateFpgaImage: createFpgaImage :: StorageLocation -> CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: createFpgaImageResponse :: Int -> CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: data CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: data CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateFpgaImage.CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance Data.Data.Data Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance Data.Data.Data Network.AWS.EC2.CreateFpgaImage.CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Classes.Eq Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Classes.Eq Network.AWS.EC2.CreateFpgaImage.CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Generics.Generic Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Generics.Generic Network.AWS.EC2.CreateFpgaImage.CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Read.Read Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Read.Read Network.AWS.EC2.CreateFpgaImage.CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Show.Show Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance GHC.Show.Show Network.AWS.EC2.CreateFpgaImage.CreateFpgaImageResponse
+ Network.AWS.EC2.CreateFpgaImage: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateFpgaImage: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateFpgaImage.CreateFpgaImage
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cnipAWSAccountId :: Lens' CreateNetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cnipAWSService :: Lens' CreateNetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cnipDryRun :: Lens' CreateNetworkInterfacePermission (Maybe Bool)
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cnipNetworkInterfaceId :: Lens' CreateNetworkInterfacePermission Text
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cnipPermission :: Lens' CreateNetworkInterfacePermission InterfacePermissionType
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cniprsInterfacePermission :: Lens' CreateNetworkInterfacePermissionResponse (Maybe NetworkInterfacePermission)
+ Network.AWS.EC2.CreateNetworkInterfacePermission: cniprsResponseStatus :: Lens' CreateNetworkInterfacePermissionResponse Int
+ Network.AWS.EC2.CreateNetworkInterfacePermission: createNetworkInterfacePermission :: Text -> InterfacePermissionType -> CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: createNetworkInterfacePermissionResponse :: Int -> CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: data CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: data CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Control.DeepSeq.NFData Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Data.Data.Data Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Data.Data.Data Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Data.Hashable.Class.Hashable Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Classes.Eq Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Classes.Eq Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Generics.Generic Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Generics.Generic Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Read.Read Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Read.Read Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Show.Show Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance GHC.Show.Show Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermissionResponse
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateNetworkInterfacePermission: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.CreateNetworkInterfacePermission.CreateNetworkInterfacePermission
+ Network.AWS.EC2.CreateReservedInstancesListing: crilrrsReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]
+ Network.AWS.EC2.CreateReservedInstancesListing: crilrrsResponseStatus :: Lens' CreateReservedInstancesListingResponse Int
+ Network.AWS.EC2.CreateSubnet: crersResponseStatus :: Lens' CreateSubnetResponse Int
+ Network.AWS.EC2.CreateSubnet: crersSubnet :: Lens' CreateSubnetResponse (Maybe Subnet)
+ Network.AWS.EC2.CreateVPCEndpoint: cvePrivateDNSEnabled :: Lens' CreateVPCEndpoint (Maybe Bool)
+ Network.AWS.EC2.CreateVPCEndpoint: cveSecurityGroupIds :: Lens' CreateVPCEndpoint [Text]
+ Network.AWS.EC2.CreateVPCEndpoint: cveSubnetIds :: Lens' CreateVPCEndpoint [Text]
+ Network.AWS.EC2.CreateVPCEndpoint: cveVPCEndpointType :: Lens' CreateVPCEndpoint (Maybe VPCEndpointType)
+ Network.AWS.EC2.CreateVPNGateway: cvgAmazonSideASN :: Lens' CreateVPNGateway (Maybe Integer)
+ Network.AWS.EC2.CreateVolume: cvvAvailabilityZone :: Lens' CreateVolume Text
+ Network.AWS.EC2.CreateVolume: cvvDryRun :: Lens' CreateVolume (Maybe Bool)
+ Network.AWS.EC2.CreateVolume: cvvEncrypted :: Lens' CreateVolume (Maybe Bool)
+ Network.AWS.EC2.CreateVolume: cvvIOPS :: Lens' CreateVolume (Maybe Int)
+ Network.AWS.EC2.CreateVolume: cvvKMSKeyId :: Lens' CreateVolume (Maybe Text)
+ Network.AWS.EC2.CreateVolume: cvvSize :: Lens' CreateVolume (Maybe Int)
+ Network.AWS.EC2.CreateVolume: cvvSnapshotId :: Lens' CreateVolume (Maybe Text)
+ Network.AWS.EC2.CreateVolume: cvvTagSpecifications :: Lens' CreateVolume [TagSpecification]
+ Network.AWS.EC2.CreateVolume: cvvVolumeType :: Lens' CreateVolume (Maybe VolumeType)
+ Network.AWS.EC2.DeleteEgressOnlyInternetGateway: deoigersResponseStatus :: Lens' DeleteEgressOnlyInternetGatewayResponse Int
+ Network.AWS.EC2.DeleteEgressOnlyInternetGateway: deoigersReturnCode :: Lens' DeleteEgressOnlyInternetGatewayResponse (Maybe Bool)
+ Network.AWS.EC2.DeleteFpgaImage: data DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: data DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: deleteFpgaImage :: Text -> DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: deleteFpgaImageResponse :: Int -> DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: delrsResponseStatus :: Lens' DeleteFpgaImageResponse Int
+ Network.AWS.EC2.DeleteFpgaImage: delrsReturn :: Lens' DeleteFpgaImageResponse (Maybe Bool)
+ Network.AWS.EC2.DeleteFpgaImage: dfiDryRun :: Lens' DeleteFpgaImage (Maybe Bool)
+ Network.AWS.EC2.DeleteFpgaImage: dfiFpgaImageId :: Lens' DeleteFpgaImage Text
+ Network.AWS.EC2.DeleteFpgaImage: instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: instance Data.Data.Data Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance Data.Data.Data Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Classes.Eq Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Classes.Eq Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Generics.Generic Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Generics.Generic Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Read.Read Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Read.Read Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Show.Show Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance GHC.Show.Show Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImageResponse
+ Network.AWS.EC2.DeleteFpgaImage: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteFpgaImage: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteFpgaImage.DeleteFpgaImage
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: data DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: data DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: deleteNetworkInterfacePermission :: Text -> DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: deleteNetworkInterfacePermissionResponse :: Int -> DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: dnipDryRun :: Lens' DeleteNetworkInterfacePermission (Maybe Bool)
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: dnipForce :: Lens' DeleteNetworkInterfacePermission (Maybe Bool)
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: dnipNetworkInterfacePermissionId :: Lens' DeleteNetworkInterfacePermission Text
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: dniprsResponseStatus :: Lens' DeleteNetworkInterfacePermissionResponse Int
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: dniprsReturn :: Lens' DeleteNetworkInterfacePermissionResponse (Maybe Bool)
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Control.DeepSeq.NFData Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Data.Data.Data Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Data.Data.Data Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Classes.Eq Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Generics.Generic Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Read.Read Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance GHC.Show.Show Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermissionResponse
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DeleteNetworkInterfacePermission: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DeleteNetworkInterfacePermission.DeleteNetworkInterfacePermission
+ Network.AWS.EC2.DescribeElasticGpus: data DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: data DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: degDryRun :: Lens' DescribeElasticGpus (Maybe Bool)
+ Network.AWS.EC2.DescribeElasticGpus: degElasticGpuIds :: Lens' DescribeElasticGpus [Text]
+ Network.AWS.EC2.DescribeElasticGpus: degFilters :: Lens' DescribeElasticGpus [Filter]
+ Network.AWS.EC2.DescribeElasticGpus: degMaxResults :: Lens' DescribeElasticGpus (Maybe Int)
+ Network.AWS.EC2.DescribeElasticGpus: degNextToken :: Lens' DescribeElasticGpus (Maybe Text)
+ Network.AWS.EC2.DescribeElasticGpus: degrsElasticGpuSet :: Lens' DescribeElasticGpusResponse [ElasticGpus]
+ Network.AWS.EC2.DescribeElasticGpus: degrsMaxResults :: Lens' DescribeElasticGpusResponse (Maybe Int)
+ Network.AWS.EC2.DescribeElasticGpus: degrsNextToken :: Lens' DescribeElasticGpusResponse (Maybe Text)
+ Network.AWS.EC2.DescribeElasticGpus: degrsResponseStatus :: Lens' DescribeElasticGpusResponse Int
+ Network.AWS.EC2.DescribeElasticGpus: describeElasticGpus :: DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: describeElasticGpusResponse :: Int -> DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance Data.Data.Data Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance Data.Data.Data Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Classes.Eq Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Classes.Eq Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Generics.Generic Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Generics.Generic Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Read.Read Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Read.Read Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Show.Show Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance GHC.Show.Show Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpusResponse
+ Network.AWS.EC2.DescribeElasticGpus: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeElasticGpus: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeElasticGpus.DescribeElasticGpus
+ Network.AWS.EC2.DescribeFpgaImageAttribute: data DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: data DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: describeFpgaImageAttribute :: Text -> FpgaImageAttributeName -> DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: describeFpgaImageAttributeResponse :: Int -> DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: dfiaAttribute :: Lens' DescribeFpgaImageAttribute FpgaImageAttributeName
+ Network.AWS.EC2.DescribeFpgaImageAttribute: dfiaDryRun :: Lens' DescribeFpgaImageAttribute (Maybe Bool)
+ Network.AWS.EC2.DescribeFpgaImageAttribute: dfiaFpgaImageId :: Lens' DescribeFpgaImageAttribute Text
+ Network.AWS.EC2.DescribeFpgaImageAttribute: dfiarsFpgaImageAttribute :: Lens' DescribeFpgaImageAttributeResponse (Maybe FpgaImageAttribute)
+ Network.AWS.EC2.DescribeFpgaImageAttribute: dfiarsResponseStatus :: Lens' DescribeFpgaImageAttributeResponse Int
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Data.Data.Data Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Data.Data.Data Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Classes.Eq Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Classes.Eq Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Generics.Generic Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Generics.Generic Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Read.Read Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Read.Read Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Show.Show Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance GHC.Show.Show Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttributeResponse
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImageAttribute: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeFpgaImageAttribute.DescribeFpgaImageAttribute
+ Network.AWS.EC2.DescribeFpgaImages: data DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: data DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: describeFpgaImages :: DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: describeFpgaImagesResponse :: Int -> DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: dfirsFpgaImages :: Lens' DescribeFpgaImagesResponse [FpgaImage]
+ Network.AWS.EC2.DescribeFpgaImages: dfirsNextToken :: Lens' DescribeFpgaImagesResponse (Maybe Text)
+ Network.AWS.EC2.DescribeFpgaImages: dfirsResponseStatus :: Lens' DescribeFpgaImagesResponse Int
+ Network.AWS.EC2.DescribeFpgaImages: dfisDryRun :: Lens' DescribeFpgaImages (Maybe Bool)
+ Network.AWS.EC2.DescribeFpgaImages: dfisFilters :: Lens' DescribeFpgaImages [Filter]
+ Network.AWS.EC2.DescribeFpgaImages: dfisFpgaImageIds :: Lens' DescribeFpgaImages [Text]
+ Network.AWS.EC2.DescribeFpgaImages: dfisMaxResults :: Lens' DescribeFpgaImages (Maybe Natural)
+ Network.AWS.EC2.DescribeFpgaImages: dfisNextToken :: Lens' DescribeFpgaImages (Maybe Text)
+ Network.AWS.EC2.DescribeFpgaImages: dfisOwners :: Lens' DescribeFpgaImages [Text]
+ Network.AWS.EC2.DescribeFpgaImages: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: instance Data.Data.Data Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance Data.Data.Data Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Classes.Eq Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Classes.Eq Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Generics.Generic Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Generics.Generic Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Read.Read Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Read.Read Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Show.Show Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance GHC.Show.Show Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImagesResponse
+ Network.AWS.EC2.DescribeFpgaImages: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeFpgaImages: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeFpgaImages.DescribeFpgaImages
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: data DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: data DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: describeIAMInstanceProfileAssociations :: DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: describeIAMInstanceProfileAssociationsResponse :: Int -> DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diapaAssociationIds :: Lens' DescribeIAMInstanceProfileAssociations [Text]
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diapaFilters :: Lens' DescribeIAMInstanceProfileAssociations [Filter]
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diapaMaxResults :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Natural)
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diapaNextToken :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Text)
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diaparsIAMInstanceProfileAssociations :: Lens' DescribeIAMInstanceProfileAssociationsResponse [IAMInstanceProfileAssociation]
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diaparsNextToken :: Lens' DescribeIAMInstanceProfileAssociationsResponse (Maybe Text)
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: diaparsResponseStatus :: Lens' DescribeIAMInstanceProfileAssociationsResponse Int
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Data.Data.Data Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Data.Data.Data Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Classes.Eq Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Classes.Eq Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Generics.Generic Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Generics.Generic Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Read.Read Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Read.Read Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Show.Show Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance GHC.Show.Show Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociationsResponse
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeIAMInstanceProfileAssociations: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeIAMInstanceProfileAssociations.DescribeIAMInstanceProfileAssociations
+ Network.AWS.EC2.DescribeImages: diirsImages :: Lens' DescribeImagesResponse [Image]
+ Network.AWS.EC2.DescribeImages: diirsResponseStatus :: Lens' DescribeImagesResponse Int
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsBlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsDisableAPITermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsEBSOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsEnaSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsGroups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsInstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsInstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsInstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsKernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsRAMDiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsResponseStatus :: Lens' DescribeInstanceAttributeResponse Int
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsRootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsSRIOVNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsSourceDestCheck :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)
+ Network.AWS.EC2.DescribeInstanceAttribute: desrsUserData :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)
+ Network.AWS.EC2.DescribeNatGateways: instance Network.AWS.Pager.AWSPager Network.AWS.EC2.DescribeNatGateways.DescribeNatGateways
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: data DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: data DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: describeNetworkInterfacePermissions :: DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: describeNetworkInterfacePermissionsResponse :: Int -> DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: dnipFilters :: Lens' DescribeNetworkInterfacePermissions [Filter]
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: dnipMaxResults :: Lens' DescribeNetworkInterfacePermissions (Maybe Int)
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: dnipNetworkInterfacePermissionIds :: Lens' DescribeNetworkInterfacePermissions [Text]
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: dnipNextToken :: Lens' DescribeNetworkInterfacePermissions (Maybe Text)
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: drsNetworkInterfacePermissions :: Lens' DescribeNetworkInterfacePermissionsResponse [NetworkInterfacePermission]
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: drsNextToken :: Lens' DescribeNetworkInterfacePermissionsResponse (Maybe Text)
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: drsResponseStatus :: Lens' DescribeNetworkInterfacePermissionsResponse Int
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Data.Data.Data Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Data.Data.Data Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Classes.Eq Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Classes.Eq Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Generics.Generic Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Generics.Generic Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Read.Read Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Read.Read Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Show.Show Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance GHC.Show.Show Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissionsResponse
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeNetworkInterfacePermissions: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeNetworkInterfacePermissions.DescribeNetworkInterfacePermissions
+ Network.AWS.EC2.DescribeSecurityGroups: dsgrsNextToken :: Lens' DescribeSecurityGroupsResponse (Maybe Text)
+ Network.AWS.EC2.DescribeSecurityGroups: dsgsMaxResults :: Lens' DescribeSecurityGroups (Maybe Int)
+ Network.AWS.EC2.DescribeSecurityGroups: dsgsNextToken :: Lens' DescribeSecurityGroups (Maybe Text)
+ Network.AWS.EC2.DescribeSecurityGroups: instance Network.AWS.Pager.AWSPager Network.AWS.EC2.DescribeSecurityGroups.DescribeSecurityGroups
+ Network.AWS.EC2.DescribeVPCEndpointServices: dvesFilters :: Lens' DescribeVPCEndpointServices [Filter]
+ Network.AWS.EC2.DescribeVPCEndpointServices: dvesServiceNames :: Lens' DescribeVPCEndpointServices [Text]
+ Network.AWS.EC2.DescribeVPCEndpointServices: dvesrsServiceDetails :: Lens' DescribeVPCEndpointServicesResponse [ServiceDetail]
+ Network.AWS.EC2.DescribeVolumesModifications: data DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: data DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: describeVolumesModifications :: DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: describeVolumesModificationsResponse :: Int -> DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: dvmDryRun :: Lens' DescribeVolumesModifications (Maybe Bool)
+ Network.AWS.EC2.DescribeVolumesModifications: dvmFilters :: Lens' DescribeVolumesModifications [Filter]
+ Network.AWS.EC2.DescribeVolumesModifications: dvmMaxResults :: Lens' DescribeVolumesModifications (Maybe Int)
+ Network.AWS.EC2.DescribeVolumesModifications: dvmNextToken :: Lens' DescribeVolumesModifications (Maybe Text)
+ Network.AWS.EC2.DescribeVolumesModifications: dvmVolumeIds :: Lens' DescribeVolumesModifications [Text]
+ Network.AWS.EC2.DescribeVolumesModifications: dvmrsNextToken :: Lens' DescribeVolumesModificationsResponse (Maybe Text)
+ Network.AWS.EC2.DescribeVolumesModifications: dvmrsResponseStatus :: Lens' DescribeVolumesModificationsResponse Int
+ Network.AWS.EC2.DescribeVolumesModifications: dvmrsVolumesModifications :: Lens' DescribeVolumesModificationsResponse [VolumeModification]
+ Network.AWS.EC2.DescribeVolumesModifications: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance Control.DeepSeq.NFData Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: instance Data.Data.Data Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance Data.Data.Data Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Classes.Eq Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Classes.Eq Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Generics.Generic Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Generics.Generic Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Read.Read Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Read.Read Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Show.Show Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance GHC.Show.Show Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModificationsResponse
+ Network.AWS.EC2.DescribeVolumesModifications: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DescribeVolumesModifications: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DescribeVolumesModifications.DescribeVolumesModifications
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: data DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: data DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: diapAssociationId :: Lens' DisassociateIAMInstanceProfile Text
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: diaprsIAMInstanceProfileAssociation :: Lens' DisassociateIAMInstanceProfileResponse (Maybe IAMInstanceProfileAssociation)
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: diaprsResponseStatus :: Lens' DisassociateIAMInstanceProfileResponse Int
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: disassociateIAMInstanceProfile :: Text -> DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: disassociateIAMInstanceProfileResponse :: Int -> DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Control.DeepSeq.NFData Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Control.DeepSeq.NFData Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Data.Data.Data Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Data.Data.Data Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Data.Hashable.Class.Hashable Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Classes.Eq Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Classes.Eq Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Generics.Generic Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Generics.Generic Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Read.Read Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Read.Read Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Show.Show Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance GHC.Show.Show Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfileResponse
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateIAMInstanceProfile: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.DisassociateIAMInstanceProfile.DisassociateIAMInstanceProfile
+ Network.AWS.EC2.DisassociateVPCCidrBlock: dvcbrsCidrBlockAssociation :: Lens' DisassociateVPCCidrBlockResponse (Maybe VPCCidrBlockAssociation)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: data ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: data ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Data.Data.Data Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Data.Data.Data Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Classes.Eq Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Classes.Eq Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Generics.Generic Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Generics.Generic Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Read.Read Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Read.Read Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Show.Show Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance GHC.Show.Show Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyFpgaImageAttribute.ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaAttribute :: Lens' ModifyFpgaImageAttribute (Maybe FpgaImageAttributeName)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaDescription :: Lens' ModifyFpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaDryRun :: Lens' ModifyFpgaImageAttribute (Maybe Bool)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaFpgaImageId :: Lens' ModifyFpgaImageAttribute Text
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaLoadPermission :: Lens' ModifyFpgaImageAttribute (Maybe LoadPermissionModifications)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaName :: Lens' ModifyFpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaOperationType :: Lens' ModifyFpgaImageAttribute (Maybe OperationType)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaProductCodes :: Lens' ModifyFpgaImageAttribute [Text]
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaUserGroups :: Lens' ModifyFpgaImageAttribute [Text]
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiaUserIds :: Lens' ModifyFpgaImageAttribute [Text]
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiarsFpgaImageAttribute :: Lens' ModifyFpgaImageAttributeResponse (Maybe FpgaImageAttribute)
+ Network.AWS.EC2.ModifyFpgaImageAttribute: mfiarsResponseStatus :: Lens' ModifyFpgaImageAttributeResponse Int
+ Network.AWS.EC2.ModifyFpgaImageAttribute: modifyFpgaImageAttribute :: Text -> ModifyFpgaImageAttribute
+ Network.AWS.EC2.ModifyFpgaImageAttribute: modifyFpgaImageAttributeResponse :: Int -> ModifyFpgaImageAttributeResponse
+ Network.AWS.EC2.ModifyVPCEndpoint: mveAddSecurityGroupIds :: Lens' ModifyVPCEndpoint [Text]
+ Network.AWS.EC2.ModifyVPCEndpoint: mveAddSubnetIds :: Lens' ModifyVPCEndpoint [Text]
+ Network.AWS.EC2.ModifyVPCEndpoint: mvePrivateDNSEnabled :: Lens' ModifyVPCEndpoint (Maybe Bool)
+ Network.AWS.EC2.ModifyVPCEndpoint: mveRemoveSecurityGroupIds :: Lens' ModifyVPCEndpoint [Text]
+ Network.AWS.EC2.ModifyVPCEndpoint: mveRemoveSubnetIds :: Lens' ModifyVPCEndpoint [Text]
+ Network.AWS.EC2.ModifyVPCTenancy: data ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: data ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance Data.Data.Data Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance Data.Data.Data Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Classes.Eq Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Classes.Eq Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Generics.Generic Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Generics.Generic Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Read.Read Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Read.Read Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Show.Show Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance GHC.Show.Show Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyVPCTenancy.ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: modifyVPCTenancy :: Text -> VPCTenancy -> ModifyVPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: modifyVPCTenancyResponse :: Int -> ModifyVPCTenancyResponse
+ Network.AWS.EC2.ModifyVPCTenancy: mvtDryRun :: Lens' ModifyVPCTenancy (Maybe Bool)
+ Network.AWS.EC2.ModifyVPCTenancy: mvtInstanceTenancy :: Lens' ModifyVPCTenancy VPCTenancy
+ Network.AWS.EC2.ModifyVPCTenancy: mvtVPCId :: Lens' ModifyVPCTenancy Text
+ Network.AWS.EC2.ModifyVPCTenancy: mvtrsResponseStatus :: Lens' ModifyVPCTenancyResponse Int
+ Network.AWS.EC2.ModifyVPCTenancy: mvtrsReturnValue :: Lens' ModifyVPCTenancyResponse (Maybe Bool)
+ Network.AWS.EC2.ModifyVolume: data ModifyVolume
+ Network.AWS.EC2.ModifyVolume: data ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance Control.DeepSeq.NFData Network.AWS.EC2.ModifyVolume.ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance Data.Data.Data Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance Data.Data.Data Network.AWS.EC2.ModifyVolume.ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance GHC.Classes.Eq Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance GHC.Classes.Eq Network.AWS.EC2.ModifyVolume.ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance GHC.Generics.Generic Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance GHC.Generics.Generic Network.AWS.EC2.ModifyVolume.ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance GHC.Read.Read Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance GHC.Read.Read Network.AWS.EC2.ModifyVolume.ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance GHC.Show.Show Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance GHC.Show.Show Network.AWS.EC2.ModifyVolume.ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ModifyVolume.ModifyVolume
+ Network.AWS.EC2.ModifyVolume: modifyVolume :: Text -> ModifyVolume
+ Network.AWS.EC2.ModifyVolume: modifyVolumeResponse :: Int -> ModifyVolumeResponse
+ Network.AWS.EC2.ModifyVolume: mvDryRun :: Lens' ModifyVolume (Maybe Bool)
+ Network.AWS.EC2.ModifyVolume: mvIOPS :: Lens' ModifyVolume (Maybe Int)
+ Network.AWS.EC2.ModifyVolume: mvSize :: Lens' ModifyVolume (Maybe Int)
+ Network.AWS.EC2.ModifyVolume: mvVolumeId :: Lens' ModifyVolume Text
+ Network.AWS.EC2.ModifyVolume: mvVolumeType :: Lens' ModifyVolume (Maybe VolumeType)
+ Network.AWS.EC2.ModifyVolume: mvrsResponseStatus :: Lens' ModifyVolumeResponse Int
+ Network.AWS.EC2.ModifyVolume: mvrsVolumeModification :: Lens' ModifyVolumeResponse (Maybe VolumeModification)
+ Network.AWS.EC2.RegisterImage: riBillingProducts :: Lens' RegisterImage [Text]
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: data ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: data ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Control.DeepSeq.NFData Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Control.DeepSeq.NFData Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Data.Data.Data Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Data.Data.Data Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Classes.Eq Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Classes.Eq Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Generics.Generic Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Generics.Generic Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Read.Read Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Read.Read Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Show.Show Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance GHC.Show.Show Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation.ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: replaceIAMInstanceProfileAssociation :: IAMInstanceProfileSpecification -> Text -> ReplaceIAMInstanceProfileAssociation
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: replaceIAMInstanceProfileAssociationResponse :: Int -> ReplaceIAMInstanceProfileAssociationResponse
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: riapaAssociationId :: Lens' ReplaceIAMInstanceProfileAssociation Text
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: riapaIAMInstanceProfile :: Lens' ReplaceIAMInstanceProfileAssociation IAMInstanceProfileSpecification
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: riaparsIAMInstanceProfileAssociation :: Lens' ReplaceIAMInstanceProfileAssociationResponse (Maybe IAMInstanceProfileAssociation)
+ Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation: riaparsResponseStatus :: Lens' ReplaceIAMInstanceProfileAssociationResponse Int
+ Network.AWS.EC2.RequestSpotInstances: rsisInstanceInterruptionBehavior :: Lens' RequestSpotInstances (Maybe InstanceInterruptionBehavior)
+ Network.AWS.EC2.ResetFpgaImageAttribute: data ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: data ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Control.DeepSeq.NFData Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Control.DeepSeq.NFData Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Data.Data.Data Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Data.Data.Data Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Data.Hashable.Class.Hashable Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Classes.Eq Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Classes.Eq Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Generics.Generic Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Generics.Generic Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Read.Read Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Read.Read Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Show.Show Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance GHC.Show.Show Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.ResetFpgaImageAttribute.ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: resetFpgaImageAttribute :: Text -> ResetFpgaImageAttribute
+ Network.AWS.EC2.ResetFpgaImageAttribute: resetFpgaImageAttributeResponse :: Int -> ResetFpgaImageAttributeResponse
+ Network.AWS.EC2.ResetFpgaImageAttribute: rfiaAttribute :: Lens' ResetFpgaImageAttribute (Maybe ResetFpgaImageAttributeName)
+ Network.AWS.EC2.ResetFpgaImageAttribute: rfiaDryRun :: Lens' ResetFpgaImageAttribute (Maybe Bool)
+ Network.AWS.EC2.ResetFpgaImageAttribute: rfiaFpgaImageId :: Lens' ResetFpgaImageAttribute Text
+ Network.AWS.EC2.ResetFpgaImageAttribute: rfiarsResponseStatus :: Lens' ResetFpgaImageAttributeResponse Int
+ Network.AWS.EC2.ResetFpgaImageAttribute: rfiarsReturn :: Lens' ResetFpgaImageAttributeResponse (Maybe Bool)
+ Network.AWS.EC2.RunInstances: rElasticGpuSpecification :: Lens' RunInstances [ElasticGpuSpecification]
+ Network.AWS.EC2.RunInstances: rTagSpecifications :: Lens' RunInstances [TagSpecification]
+ Network.AWS.EC2.Types: Attached :: ElasticGpuState
+ Network.AWS.EC2.Types: C5_18XLarge :: InstanceType
+ Network.AWS.EC2.Types: C5_2XLarge :: InstanceType
+ Network.AWS.EC2.Types: C5_4XLarge :: InstanceType
+ Network.AWS.EC2.Types: C5_9XLarge :: InstanceType
+ Network.AWS.EC2.Types: C5_Large :: InstanceType
+ Network.AWS.EC2.Types: C5_XLarge :: InstanceType
+ Network.AWS.EC2.Types: Completed :: VolumeModificationState
+ Network.AWS.EC2.Types: EGSImpaired :: ElasticGpuStatus
+ Network.AWS.EC2.Types: EGSOK :: ElasticGpuStatus
+ Network.AWS.EC2.Types: EIPAssociate :: InterfacePermissionType
+ Network.AWS.EC2.Types: FIANDescription :: FpgaImageAttributeName
+ Network.AWS.EC2.Types: FIANLoadPermission :: FpgaImageAttributeName
+ Network.AWS.EC2.Types: FIANName :: FpgaImageAttributeName
+ Network.AWS.EC2.Types: FIANProductCodes :: FpgaImageAttributeName
+ Network.AWS.EC2.Types: FISCAvailable :: FpgaImageStateCode
+ Network.AWS.EC2.Types: FISCFailed :: FpgaImageStateCode
+ Network.AWS.EC2.Types: FISCPending :: FpgaImageStateCode
+ Network.AWS.EC2.Types: FISCUnavailable :: FpgaImageStateCode
+ Network.AWS.EC2.Types: G3_16XLarge :: InstanceType
+ Network.AWS.EC2.Types: G3_4XLarge :: InstanceType
+ Network.AWS.EC2.Types: G3_8XLarge :: InstanceType
+ Network.AWS.EC2.Types: GP2 :: VolumeType
+ Network.AWS.EC2.Types: Gateway :: ServiceType
+ Network.AWS.EC2.Types: Healthy :: InstanceHealthStatus
+ Network.AWS.EC2.Types: I3_16XLarge :: InstanceType
+ Network.AWS.EC2.Types: I3_2XLarge :: InstanceType
+ Network.AWS.EC2.Types: I3_4XLarge :: InstanceType
+ Network.AWS.EC2.Types: I3_8XLarge :: InstanceType
+ Network.AWS.EC2.Types: I3_Large :: InstanceType
+ Network.AWS.EC2.Types: I3_XLarge :: InstanceType
+ Network.AWS.EC2.Types: IIBStop :: InstanceInterruptionBehavior
+ Network.AWS.EC2.Types: IIBTerminate :: InstanceInterruptionBehavior
+ Network.AWS.EC2.Types: IO1 :: VolumeType
+ Network.AWS.EC2.Types: InstanceAttach :: InterfacePermissionType
+ Network.AWS.EC2.Types: LoadPermission :: ResetFpgaImageAttributeName
+ Network.AWS.EC2.Types: Modifying :: VolumeModificationState
+ Network.AWS.EC2.Types: NIPSCGranted :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2.Types: NIPSCPending :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2.Types: NIPSCRevoked :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2.Types: NIPSCRevoking :: NetworkInterfacePermissionStateCode
+ Network.AWS.EC2.Types: NITInterface :: NetworkInterfaceType
+ Network.AWS.EC2.Types: NITNatGateway :: NetworkInterfaceType
+ Network.AWS.EC2.Types: OCTConvertible :: OfferingClassType
+ Network.AWS.EC2.Types: OCTStandard :: OfferingClassType
+ Network.AWS.EC2.Types: Optimizing :: VolumeModificationState
+ Network.AWS.EC2.Types: P3_16XLarge :: InstanceType
+ Network.AWS.EC2.Types: P3_2XLarge :: InstanceType
+ Network.AWS.EC2.Types: P3_8XLarge :: InstanceType
+ Network.AWS.EC2.Types: R4_16XLarge :: InstanceType
+ Network.AWS.EC2.Types: R4_2XLarge :: InstanceType
+ Network.AWS.EC2.Types: R4_4XLarge :: InstanceType
+ Network.AWS.EC2.Types: R4_8XLarge :: InstanceType
+ Network.AWS.EC2.Types: R4_Large :: InstanceType
+ Network.AWS.EC2.Types: R4_XLarge :: InstanceType
+ Network.AWS.EC2.Types: SC1 :: VolumeType
+ Network.AWS.EC2.Types: SCBSCAssociated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: SCBSCAssociating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: SCBSCDisassociated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: SCBSCDisassociating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: SCBSCFailed :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: SCBSCFailing :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: SExpired :: State
+ Network.AWS.EC2.Types: SFailed :: State
+ Network.AWS.EC2.Types: SPendingAcceptance :: State
+ Network.AWS.EC2.Types: SRejected :: State
+ Network.AWS.EC2.Types: ST1 :: VolumeType
+ Network.AWS.EC2.Types: T2_2XLarge :: InstanceType
+ Network.AWS.EC2.Types: T2_XLarge :: InstanceType
+ Network.AWS.EC2.Types: Unhealthy :: InstanceHealthStatus
+ Network.AWS.EC2.Types: VETGateway :: VPCEndpointType
+ Network.AWS.EC2.Types: VETInterface :: VPCEndpointType
+ Network.AWS.EC2.Types: VTDefault :: VPCTenancy
+ Network.AWS.EC2.Types: X1e_32XLarge :: InstanceType
+ Network.AWS.EC2.Types: aiInstanceHealth :: Lens' ActiveInstance (Maybe InstanceHealthStatus)
+ Network.AWS.EC2.Types: cbCidrBlock :: Lens' CidrBlock (Maybe Text)
+ Network.AWS.EC2.Types: cidrBlock :: CidrBlock
+ Network.AWS.EC2.Types: classicLoadBalancer :: Text -> ClassicLoadBalancer
+ Network.AWS.EC2.Types: classicLoadBalancersConfig :: NonEmpty ClassicLoadBalancer -> ClassicLoadBalancersConfig
+ Network.AWS.EC2.Types: clbName :: Lens' ClassicLoadBalancer Text
+ Network.AWS.EC2.Types: clbcClassicLoadBalancers :: Lens' ClassicLoadBalancersConfig (NonEmpty ClassicLoadBalancer)
+ Network.AWS.EC2.Types: data CidrBlock
+ Network.AWS.EC2.Types: data ClassicLoadBalancer
+ Network.AWS.EC2.Types: data ClassicLoadBalancersConfig
+ Network.AWS.EC2.Types: data DNSEntry
+ Network.AWS.EC2.Types: data ElasticGpuAssociation
+ Network.AWS.EC2.Types: data ElasticGpuHealth
+ Network.AWS.EC2.Types: data ElasticGpuSpecification
+ Network.AWS.EC2.Types: data ElasticGpuState
+ Network.AWS.EC2.Types: data ElasticGpuStatus
+ Network.AWS.EC2.Types: data ElasticGpus
+ Network.AWS.EC2.Types: data FpgaImage
+ Network.AWS.EC2.Types: data FpgaImageAttribute
+ Network.AWS.EC2.Types: data FpgaImageAttributeName
+ Network.AWS.EC2.Types: data FpgaImageState
+ Network.AWS.EC2.Types: data FpgaImageStateCode
+ Network.AWS.EC2.Types: data IAMInstanceProfileAssociation
+ Network.AWS.EC2.Types: data IAMInstanceProfileAssociationState
+ Network.AWS.EC2.Types: data InstanceHealthStatus
+ Network.AWS.EC2.Types: data InstanceInterruptionBehavior
+ Network.AWS.EC2.Types: data InterfacePermissionType
+ Network.AWS.EC2.Types: data LoadBalancersConfig
+ Network.AWS.EC2.Types: data LoadPermission
+ Network.AWS.EC2.Types: data LoadPermissionModifications
+ Network.AWS.EC2.Types: data LoadPermissionRequest
+ Network.AWS.EC2.Types: data NetworkInterfacePermission
+ Network.AWS.EC2.Types: data NetworkInterfacePermissionState
+ Network.AWS.EC2.Types: data NetworkInterfacePermissionStateCode
+ Network.AWS.EC2.Types: data PciId
+ Network.AWS.EC2.Types: data ResetFpgaImageAttributeName
+ Network.AWS.EC2.Types: data SecurityGroupIdentifier
+ Network.AWS.EC2.Types: data ServiceDetail
+ Network.AWS.EC2.Types: data ServiceType
+ Network.AWS.EC2.Types: data ServiceTypeDetail
+ Network.AWS.EC2.Types: data SpotFleetTagSpecification
+ Network.AWS.EC2.Types: data StorageLocation
+ Network.AWS.EC2.Types: data TagSpecification
+ Network.AWS.EC2.Types: data TargetGroup
+ Network.AWS.EC2.Types: data TargetGroupsConfig
+ Network.AWS.EC2.Types: data VPCCidrBlockAssociation
+ Network.AWS.EC2.Types: data VPCEndpointType
+ Network.AWS.EC2.Types: data VPCTenancy
+ Network.AWS.EC2.Types: data VPNTunnelOptionsSpecification
+ Network.AWS.EC2.Types: data VolumeModification
+ Network.AWS.EC2.Types: data VolumeModificationState
+ Network.AWS.EC2.Types: deDNSName :: Lens' DNSEntry (Maybe Text)
+ Network.AWS.EC2.Types: deHostedZoneId :: Lens' DNSEntry (Maybe Text)
+ Network.AWS.EC2.Types: dnsEntry :: DNSEntry
+ Network.AWS.EC2.Types: egAvailabilityZone :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2.Types: egElasticGpuHealth :: Lens' ElasticGpus (Maybe ElasticGpuHealth)
+ Network.AWS.EC2.Types: egElasticGpuId :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2.Types: egElasticGpuState :: Lens' ElasticGpus (Maybe ElasticGpuState)
+ Network.AWS.EC2.Types: egElasticGpuType :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2.Types: egInstanceId :: Lens' ElasticGpus (Maybe Text)
+ Network.AWS.EC2.Types: egaElasticGpuAssociationId :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2.Types: egaElasticGpuAssociationState :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2.Types: egaElasticGpuAssociationTime :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2.Types: egaElasticGpuId :: Lens' ElasticGpuAssociation (Maybe Text)
+ Network.AWS.EC2.Types: eghStatus :: Lens' ElasticGpuHealth (Maybe ElasticGpuStatus)
+ Network.AWS.EC2.Types: egsType :: Lens' ElasticGpuSpecification Text
+ Network.AWS.EC2.Types: elasticGpuAssociation :: ElasticGpuAssociation
+ Network.AWS.EC2.Types: elasticGpuHealth :: ElasticGpuHealth
+ Network.AWS.EC2.Types: elasticGpuSpecification :: Text -> ElasticGpuSpecification
+ Network.AWS.EC2.Types: elasticGpus :: ElasticGpus
+ Network.AWS.EC2.Types: fiCreateTime :: Lens' FpgaImage (Maybe UTCTime)
+ Network.AWS.EC2.Types: fiDescription :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiFpgaImageGlobalId :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiFpgaImageId :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiName :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiOwnerAlias :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiOwnerId :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiPciId :: Lens' FpgaImage (Maybe PciId)
+ Network.AWS.EC2.Types: fiProductCodes :: Lens' FpgaImage [ProductCode]
+ Network.AWS.EC2.Types: fiPublic :: Lens' FpgaImage (Maybe Bool)
+ Network.AWS.EC2.Types: fiShellVersion :: Lens' FpgaImage (Maybe Text)
+ Network.AWS.EC2.Types: fiState :: Lens' FpgaImage (Maybe FpgaImageState)
+ Network.AWS.EC2.Types: fiTags :: Lens' FpgaImage [Tag]
+ Network.AWS.EC2.Types: fiUpdateTime :: Lens' FpgaImage (Maybe UTCTime)
+ Network.AWS.EC2.Types: fiaDescription :: Lens' FpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2.Types: fiaFpgaImageId :: Lens' FpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2.Types: fiaLoadPermissions :: Lens' FpgaImageAttribute [LoadPermission]
+ Network.AWS.EC2.Types: fiaName :: Lens' FpgaImageAttribute (Maybe Text)
+ Network.AWS.EC2.Types: fiaProductCodes :: Lens' FpgaImageAttribute [ProductCode]
+ Network.AWS.EC2.Types: fisCode :: Lens' FpgaImageState (Maybe FpgaImageStateCode)
+ Network.AWS.EC2.Types: fisMessage :: Lens' FpgaImageState (Maybe Text)
+ Network.AWS.EC2.Types: fpgaImage :: FpgaImage
+ Network.AWS.EC2.Types: fpgaImageAttribute :: FpgaImageAttribute
+ Network.AWS.EC2.Types: fpgaImageState :: FpgaImageState
+ Network.AWS.EC2.Types: iamInstanceProfileAssociation :: IAMInstanceProfileAssociation
+ Network.AWS.EC2.Types: iapaAssociationId :: Lens' IAMInstanceProfileAssociation (Maybe Text)
+ Network.AWS.EC2.Types: iapaIAMInstanceProfile :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfile)
+ Network.AWS.EC2.Types: iapaInstanceId :: Lens' IAMInstanceProfileAssociation (Maybe Text)
+ Network.AWS.EC2.Types: iapaState :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfileAssociationState)
+ Network.AWS.EC2.Types: iapaTimestamp :: Lens' IAMInstanceProfileAssociation (Maybe UTCTime)
+ Network.AWS.EC2.Types: insElasticGpuAssociations :: Lens' Instance [ElasticGpuAssociation]
+ Network.AWS.EC2.Types: iprCidrIP :: Lens' IPRange Text
+ Network.AWS.EC2.Types: iprDescription :: Lens' IPRange (Maybe Text)
+ Network.AWS.EC2.Types: irDescription :: Lens' IPv6Range (Maybe Text)
+ Network.AWS.EC2.Types: lAdd :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2.Types: lGroup :: Lens' LaunchPermission (Maybe PermissionGroup)
+ Network.AWS.EC2.Types: lRemove :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2.Types: lUserId :: Lens' LaunchPermission (Maybe Text)
+ Network.AWS.EC2.Types: lbcClassicLoadBalancersConfig :: Lens' LoadBalancersConfig (Maybe ClassicLoadBalancersConfig)
+ Network.AWS.EC2.Types: lbcTargetGroupsConfig :: Lens' LoadBalancersConfig (Maybe TargetGroupsConfig)
+ Network.AWS.EC2.Types: loadBalancersConfig :: LoadBalancersConfig
+ Network.AWS.EC2.Types: loadPermission :: LoadPermission
+ Network.AWS.EC2.Types: loadPermissionModifications :: LoadPermissionModifications
+ Network.AWS.EC2.Types: loadPermissionRequest :: LoadPermissionRequest
+ Network.AWS.EC2.Types: lprGroup :: Lens' LoadPermissionRequest (Maybe PermissionGroup)
+ Network.AWS.EC2.Types: lprUserId :: Lens' LoadPermissionRequest (Maybe Text)
+ Network.AWS.EC2.Types: networkInterfacePermission :: NetworkInterfacePermission
+ Network.AWS.EC2.Types: networkInterfacePermissionState :: NetworkInterfacePermissionState
+ Network.AWS.EC2.Types: ngTags :: Lens' NatGateway [Tag]
+ Network.AWS.EC2.Types: nipAWSAccountId :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2.Types: nipAWSService :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2.Types: nipNetworkInterfaceId :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2.Types: nipNetworkInterfacePermissionId :: Lens' NetworkInterfacePermission (Maybe Text)
+ Network.AWS.EC2.Types: nipPermission :: Lens' NetworkInterfacePermission (Maybe InterfacePermissionType)
+ Network.AWS.EC2.Types: nipPermissionState :: Lens' NetworkInterfacePermission (Maybe NetworkInterfacePermissionState)
+ Network.AWS.EC2.Types: nipsState :: Lens' NetworkInterfacePermissionState (Maybe NetworkInterfacePermissionStateCode)
+ Network.AWS.EC2.Types: nipsStatusMessage :: Lens' NetworkInterfacePermissionState (Maybe Text)
+ Network.AWS.EC2.Types: pSpreadDomain :: Lens' Placement (Maybe Text)
+ Network.AWS.EC2.Types: pciId :: PciId
+ Network.AWS.EC2.Types: piDeviceId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2.Types: piSubsystemId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2.Types: piSubsystemVendorId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2.Types: piVendorId :: Lens' PciId (Maybe Text)
+ Network.AWS.EC2.Types: pliDescription :: Lens' PrefixListId (Maybe Text)
+ Network.AWS.EC2.Types: sdAcceptanceRequired :: Lens' ServiceDetail (Maybe Bool)
+ Network.AWS.EC2.Types: sdAvailabilityZones :: Lens' ServiceDetail [Text]
+ Network.AWS.EC2.Types: sdBaseEndpointDNSNames :: Lens' ServiceDetail [Text]
+ Network.AWS.EC2.Types: sdOwner :: Lens' ServiceDetail (Maybe Text)
+ Network.AWS.EC2.Types: sdPrivateDNSName :: Lens' ServiceDetail (Maybe Text)
+ Network.AWS.EC2.Types: sdServiceName :: Lens' ServiceDetail (Maybe Text)
+ Network.AWS.EC2.Types: sdServiceType :: Lens' ServiceDetail [ServiceTypeDetail]
+ Network.AWS.EC2.Types: sdVPCEndpointPolicySupported :: Lens' ServiceDetail (Maybe Bool)
+ Network.AWS.EC2.Types: securityGroupIdentifier :: SecurityGroupIdentifier
+ Network.AWS.EC2.Types: serviceDetail :: ServiceDetail
+ Network.AWS.EC2.Types: serviceTypeDetail :: ServiceTypeDetail
+ Network.AWS.EC2.Types: sflsTagSpecifications :: Lens' SpotFleetLaunchSpecification [SpotFleetTagSpecification]
+ Network.AWS.EC2.Types: sfrcdInstanceInterruptionBehavior :: Lens' SpotFleetRequestConfigData (Maybe InstanceInterruptionBehavior)
+ Network.AWS.EC2.Types: sfrcdLoadBalancersConfig :: Lens' SpotFleetRequestConfigData (Maybe LoadBalancersConfig)
+ Network.AWS.EC2.Types: sfrcdReplaceUnhealthyInstances :: Lens' SpotFleetRequestConfigData (Maybe Bool)
+ Network.AWS.EC2.Types: sftsResourceType :: Lens' SpotFleetTagSpecification (Maybe ResourceType)
+ Network.AWS.EC2.Types: sftsTags :: Lens' SpotFleetTagSpecification [Tag]
+ Network.AWS.EC2.Types: sgiGroupId :: Lens' SecurityGroupIdentifier (Maybe Text)
+ Network.AWS.EC2.Types: sgiGroupName :: Lens' SecurityGroupIdentifier (Maybe Text)
+ Network.AWS.EC2.Types: sirInstanceInterruptionBehavior :: Lens' SpotInstanceRequest (Maybe InstanceInterruptionBehavior)
+ Network.AWS.EC2.Types: slBucket :: Lens' StorageLocation (Maybe Text)
+ Network.AWS.EC2.Types: slKey :: Lens' StorageLocation (Maybe Text)
+ Network.AWS.EC2.Types: spTenancy :: Lens' SpotPlacement (Maybe Tenancy)
+ Network.AWS.EC2.Types: spotFleetTagSpecification :: SpotFleetTagSpecification
+ Network.AWS.EC2.Types: stdServiceType :: Lens' ServiceTypeDetail (Maybe ServiceType)
+ Network.AWS.EC2.Types: storageLocation :: StorageLocation
+ Network.AWS.EC2.Types: tagSpecification :: TagSpecification
+ Network.AWS.EC2.Types: targetGroup :: Text -> TargetGroup
+ Network.AWS.EC2.Types: targetGroupsConfig :: NonEmpty TargetGroup -> TargetGroupsConfig
+ Network.AWS.EC2.Types: tgARN :: Lens' TargetGroup Text
+ Network.AWS.EC2.Types: tgcTargetGroups :: Lens' TargetGroupsConfig (NonEmpty TargetGroup)
+ Network.AWS.EC2.Types: tsResourceType :: Lens' TagSpecification (Maybe ResourceType)
+ Network.AWS.EC2.Types: tsTags :: Lens' TagSpecification [Tag]
+ Network.AWS.EC2.Types: uigpDescription :: Lens' UserIdGroupPair (Maybe Text)
+ Network.AWS.EC2.Types: vcCategory :: Lens' VPNConnection (Maybe Text)
+ Network.AWS.EC2.Types: vcbaAssociationId :: Lens' VPCCidrBlockAssociation (Maybe Text)
+ Network.AWS.EC2.Types: vcbaCidrBlock :: Lens' VPCCidrBlockAssociation (Maybe Text)
+ Network.AWS.EC2.Types: vcbaCidrBlockState :: Lens' VPCCidrBlockAssociation (Maybe VPCCidrBlockState)
+ Network.AWS.EC2.Types: vcosTunnelOptions :: Lens' VPNConnectionOptionsSpecification [VPNTunnelOptionsSpecification]
+ Network.AWS.EC2.Types: veDNSEntries :: Lens' VPCEndpoint [DNSEntry]
+ Network.AWS.EC2.Types: veGroups :: Lens' VPCEndpoint [SecurityGroupIdentifier]
+ Network.AWS.EC2.Types: veNetworkInterfaceIds :: Lens' VPCEndpoint [Text]
+ Network.AWS.EC2.Types: vePrivateDNSEnabled :: Lens' VPCEndpoint (Maybe Bool)
+ Network.AWS.EC2.Types: veSubnetIds :: Lens' VPCEndpoint [Text]
+ Network.AWS.EC2.Types: veVPCEndpointType :: Lens' VPCEndpoint (Maybe VPCEndpointType)
+ Network.AWS.EC2.Types: vgAmazonSideASN :: Lens' VPNGateway (Maybe Integer)
+ Network.AWS.EC2.Types: vmEndTime :: Lens' VolumeModification (Maybe UTCTime)
+ Network.AWS.EC2.Types: vmModificationState :: Lens' VolumeModification (Maybe VolumeModificationState)
+ Network.AWS.EC2.Types: vmOriginalIOPS :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2.Types: vmOriginalSize :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2.Types: vmOriginalVolumeType :: Lens' VolumeModification (Maybe VolumeType)
+ Network.AWS.EC2.Types: vmProgress :: Lens' VolumeModification (Maybe Integer)
+ Network.AWS.EC2.Types: vmStartTime :: Lens' VolumeModification (Maybe UTCTime)
+ Network.AWS.EC2.Types: vmStatusMessage :: Lens' VolumeModification (Maybe Text)
+ Network.AWS.EC2.Types: vmTargetIOPS :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2.Types: vmTargetSize :: Lens' VolumeModification (Maybe Int)
+ Network.AWS.EC2.Types: vmTargetVolumeType :: Lens' VolumeModification (Maybe VolumeType)
+ Network.AWS.EC2.Types: vmVolumeId :: Lens' VolumeModification (Maybe Text)
+ Network.AWS.EC2.Types: volumeModification :: VolumeModification
+ Network.AWS.EC2.Types: vpcCidrBlockAssociation :: VPCCidrBlockAssociation
+ Network.AWS.EC2.Types: vpcCidrBlockAssociationSet :: Lens' VPC [VPCCidrBlockAssociation]
+ Network.AWS.EC2.Types: vpcviCidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [CidrBlock]
+ Network.AWS.EC2.Types: vpnTunnelOptionsSpecification :: VPNTunnelOptionsSpecification
+ Network.AWS.EC2.Types: vtosPreSharedKey :: Lens' VPNTunnelOptionsSpecification (Maybe Text)
+ Network.AWS.EC2.Types: vtosTunnelInsideCidr :: Lens' VPNTunnelOptionsSpecification (Maybe Text)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: data UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: data UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Control.DeepSeq.NFData Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Control.DeepSeq.NFData Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Data.Data.Data Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Data.Data.Data Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Classes.Eq Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Classes.Eq Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Generics.Generic Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Generics.Generic Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Read.Read Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Read.Read Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Show.Show Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance GHC.Show.Show Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress.UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: updateSecurityGroupRuleDescriptionsEgress :: UpdateSecurityGroupRuleDescriptionsEgress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: updateSecurityGroupRuleDescriptionsEgressResponse :: Int -> UpdateSecurityGroupRuleDescriptionsEgressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: usgrdeDryRun :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Bool)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: usgrdeGroupId :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Text)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: usgrdeGroupName :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Text)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: usgrdeIPPermissions :: Lens' UpdateSecurityGroupRuleDescriptionsEgress [IPPermission]
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: usgrdersResponseStatus :: Lens' UpdateSecurityGroupRuleDescriptionsEgressResponse Int
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress: usgrdersReturn :: Lens' UpdateSecurityGroupRuleDescriptionsEgressResponse (Maybe Bool)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: data UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: data UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Control.DeepSeq.NFData Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Control.DeepSeq.NFData Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Data.Data.Data Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Data.Data.Data Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Data.Hashable.Class.Hashable Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Classes.Eq Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Classes.Eq Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Generics.Generic Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Generics.Generic Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Read.Read Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Read.Read Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Show.Show Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance GHC.Show.Show Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Network.AWS.Data.Path.ToPath Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Network.AWS.Data.Query.ToQuery Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: instance Network.AWS.Types.AWSRequest Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress.UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: updateSecurityGroupRuleDescriptionsIngress :: UpdateSecurityGroupRuleDescriptionsIngress
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: updateSecurityGroupRuleDescriptionsIngressResponse :: Int -> UpdateSecurityGroupRuleDescriptionsIngressResponse
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: usgrdiDryRun :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Bool)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: usgrdiGroupId :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Text)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: usgrdiGroupName :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Text)
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: usgrdiIPPermissions :: Lens' UpdateSecurityGroupRuleDescriptionsIngress [IPPermission]
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: usgrdirsResponseStatus :: Lens' UpdateSecurityGroupRuleDescriptionsIngressResponse Int
+ Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress: usgrdirsReturn :: Lens' UpdateSecurityGroupRuleDescriptionsIngressResponse (Maybe Bool)
- Network.AWS.EC2: Associated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: Associated :: IAMInstanceProfileAssociationState
- Network.AWS.EC2: Associating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: Associating :: IAMInstanceProfileAssociationState
- Network.AWS.EC2: Disassociated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: Disassociated :: IAMInstanceProfileAssociationState
- Network.AWS.EC2: Disassociating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: Disassociating :: IAMInstanceProfileAssociationState
- Network.AWS.EC2: Failed :: SubnetCidrBlockStateCode
+ Network.AWS.EC2: Failed :: VolumeModificationState
- Network.AWS.EC2: Interface :: NetworkInterfaceType
+ Network.AWS.EC2: Interface :: ServiceType
- Network.AWS.EC2: Standard :: OfferingClassType
+ Network.AWS.EC2: Standard :: VolumeType
- Network.AWS.EC2: cancelSpotFleetRequestsErrorItem :: Text -> CancelSpotFleetRequestsError -> CancelSpotFleetRequestsErrorItem
+ Network.AWS.EC2: cancelSpotFleetRequestsErrorItem :: CancelSpotFleetRequestsError -> Text -> CancelSpotFleetRequestsErrorItem
- Network.AWS.EC2: cancelSpotFleetRequestsSuccessItem :: Text -> BatchState -> BatchState -> CancelSpotFleetRequestsSuccessItem
+ Network.AWS.EC2: cancelSpotFleetRequestsSuccessItem :: BatchState -> BatchState -> Text -> CancelSpotFleetRequestsSuccessItem
- Network.AWS.EC2: diskImageDescription :: DiskImageFormat -> Integer -> Text -> DiskImageDescription
+ Network.AWS.EC2: diskImageDescription :: DiskImageFormat -> Text -> Integer -> DiskImageDescription
- Network.AWS.EC2: diskImageDetail :: DiskImageFormat -> Integer -> Text -> DiskImageDetail
+ Network.AWS.EC2: diskImageDetail :: Integer -> DiskImageFormat -> Text -> DiskImageDetail
- Network.AWS.EC2: historyRecord :: UTCTime -> EventType -> EventInformation -> HistoryRecord
+ Network.AWS.EC2: historyRecord :: EventInformation -> EventType -> UTCTime -> HistoryRecord
- Network.AWS.EC2: importInstanceVolumeDetailItem :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> Text -> ImportInstanceVolumeDetailItem
+ Network.AWS.EC2: importInstanceVolumeDetailItem :: Text -> Integer -> DiskImageDescription -> Text -> DiskImageVolumeDescription -> ImportInstanceVolumeDetailItem
- Network.AWS.EC2: importVolumeTaskDetails :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails
+ Network.AWS.EC2: importVolumeTaskDetails :: Text -> Integer -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails
- Network.AWS.EC2: lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)
+ Network.AWS.EC2: lpGroup :: Lens' LoadPermission (Maybe PermissionGroup)
- Network.AWS.EC2: lpUserId :: Lens' LaunchPermission (Maybe Text)
+ Network.AWS.EC2: lpUserId :: Lens' LoadPermission (Maybe Text)
- Network.AWS.EC2: lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2: lpmAdd :: Lens' LoadPermissionModifications [LoadPermissionRequest]
- Network.AWS.EC2: lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2: lpmRemove :: Lens' LoadPermissionModifications [LoadPermissionRequest]
- Network.AWS.EC2: purchaseRequest :: Text -> Int -> PurchaseRequest
+ Network.AWS.EC2: purchaseRequest :: Int -> Text -> PurchaseRequest
- Network.AWS.EC2: spotFleetRequestConfig :: Text -> BatchState -> SpotFleetRequestConfigData -> UTCTime -> SpotFleetRequestConfig
+ Network.AWS.EC2: spotFleetRequestConfig :: UTCTime -> SpotFleetRequestConfigData -> Text -> BatchState -> SpotFleetRequestConfig
- Network.AWS.EC2: spotFleetRequestConfigData :: Text -> Int -> Text -> NonEmpty SpotFleetLaunchSpecification -> SpotFleetRequestConfigData
+ Network.AWS.EC2: spotFleetRequestConfigData :: Text -> NonEmpty SpotFleetLaunchSpecification -> Text -> Int -> SpotFleetRequestConfigData
- Network.AWS.EC2.AllocateHosts: allocateHosts :: Text -> Int -> Text -> AllocateHosts
+ Network.AWS.EC2.AllocateHosts: allocateHosts :: Text -> Text -> Int -> AllocateHosts
- Network.AWS.EC2.AttachNetworkInterface: attachNetworkInterface :: Text -> Text -> Int -> AttachNetworkInterface
+ Network.AWS.EC2.AttachNetworkInterface: attachNetworkInterface :: Int -> Text -> Text -> AttachNetworkInterface
- Network.AWS.EC2.CreateCustomerGateway: createCustomerGateway :: GatewayType -> Text -> Int -> CreateCustomerGateway
+ Network.AWS.EC2.CreateCustomerGateway: createCustomerGateway :: Int -> Text -> GatewayType -> CreateCustomerGateway
- Network.AWS.EC2.CreateFlowLogs: createFlowLogs :: FlowLogsResourceType -> TrafficType -> Text -> Text -> CreateFlowLogs
+ Network.AWS.EC2.CreateFlowLogs: createFlowLogs :: Text -> Text -> FlowLogsResourceType -> TrafficType -> CreateFlowLogs
- Network.AWS.EC2.CreateNetworkACLEntry: createNetworkACLEntry :: Text -> Int -> Text -> RuleAction -> Bool -> CreateNetworkACLEntry
+ Network.AWS.EC2.CreateNetworkACLEntry: createNetworkACLEntry :: Bool -> Text -> Text -> RuleAction -> Int -> CreateNetworkACLEntry
- Network.AWS.EC2.DeleteNetworkACLEntry: deleteNetworkACLEntry :: Text -> Int -> Bool -> DeleteNetworkACLEntry
+ Network.AWS.EC2.DeleteNetworkACLEntry: deleteNetworkACLEntry :: Bool -> Text -> Int -> DeleteNetworkACLEntry
- Network.AWS.EC2.DescribeImageAttribute: describeImageAttribute :: Text -> ImageAttributeName -> DescribeImageAttribute
+ Network.AWS.EC2.DescribeImageAttribute: describeImageAttribute :: ImageAttributeName -> Text -> DescribeImageAttribute
- Network.AWS.EC2.DescribeInstanceAttribute: describeInstanceAttribute :: Text -> InstanceAttributeName -> DescribeInstanceAttribute
+ Network.AWS.EC2.DescribeInstanceAttribute: describeInstanceAttribute :: InstanceAttributeName -> Text -> DescribeInstanceAttribute
- Network.AWS.EC2.DescribeScheduledInstanceAvailability: describeScheduledInstanceAvailability :: ScheduledInstanceRecurrenceRequest -> SlotDateTimeRangeRequest -> DescribeScheduledInstanceAvailability
+ Network.AWS.EC2.DescribeScheduledInstanceAvailability: describeScheduledInstanceAvailability :: SlotDateTimeRangeRequest -> ScheduledInstanceRecurrenceRequest -> DescribeScheduledInstanceAvailability
- Network.AWS.EC2.DescribeSnapshotAttribute: describeSnapshotAttribute :: Text -> SnapshotAttributeName -> DescribeSnapshotAttribute
+ Network.AWS.EC2.DescribeSnapshotAttribute: describeSnapshotAttribute :: SnapshotAttributeName -> Text -> DescribeSnapshotAttribute
- Network.AWS.EC2.DescribeSpotFleetRequestHistory: describeSpotFleetRequestHistoryResponse :: Int -> Text -> UTCTime -> UTCTime -> DescribeSpotFleetRequestHistoryResponse
+ Network.AWS.EC2.DescribeSpotFleetRequestHistory: describeSpotFleetRequestHistoryResponse :: Int -> UTCTime -> Text -> UTCTime -> DescribeSpotFleetRequestHistoryResponse
- Network.AWS.EC2.DescribeVPCAttribute: describeVPCAttribute :: Text -> VPCAttributeName -> DescribeVPCAttribute
+ Network.AWS.EC2.DescribeVPCAttribute: describeVPCAttribute :: VPCAttributeName -> Text -> DescribeVPCAttribute
- Network.AWS.EC2.ModifyIdentityIdFormat: modifyIdentityIdFormat :: Text -> Bool -> Text -> ModifyIdentityIdFormat
+ Network.AWS.EC2.ModifyIdentityIdFormat: modifyIdentityIdFormat :: Text -> Text -> Bool -> ModifyIdentityIdFormat
- Network.AWS.EC2.PurchaseReservedInstancesOffering: purchaseReservedInstancesOffering :: Text -> Int -> PurchaseReservedInstancesOffering
+ Network.AWS.EC2.PurchaseReservedInstancesOffering: purchaseReservedInstancesOffering :: Int -> Text -> PurchaseReservedInstancesOffering
- Network.AWS.EC2.ReplaceNetworkACLEntry: replaceNetworkACLEntry :: Text -> Int -> Text -> RuleAction -> Bool -> ReplaceNetworkACLEntry
+ Network.AWS.EC2.ReplaceNetworkACLEntry: replaceNetworkACLEntry :: Bool -> Text -> Text -> RuleAction -> Int -> ReplaceNetworkACLEntry
- Network.AWS.EC2.ResetImageAttribute: resetImageAttribute :: Text -> ResetImageAttributeName -> ResetImageAttribute
+ Network.AWS.EC2.ResetImageAttribute: resetImageAttribute :: ResetImageAttributeName -> Text -> ResetImageAttribute
- Network.AWS.EC2.ResetInstanceAttribute: resetInstanceAttribute :: Text -> InstanceAttributeName -> ResetInstanceAttribute
+ Network.AWS.EC2.ResetInstanceAttribute: resetInstanceAttribute :: InstanceAttributeName -> Text -> ResetInstanceAttribute
- Network.AWS.EC2.ResetSnapshotAttribute: resetSnapshotAttribute :: Text -> SnapshotAttributeName -> ResetSnapshotAttribute
+ Network.AWS.EC2.ResetSnapshotAttribute: resetSnapshotAttribute :: SnapshotAttributeName -> Text -> ResetSnapshotAttribute
- Network.AWS.EC2.RunScheduledInstances: runScheduledInstances :: Text -> ScheduledInstancesLaunchSpecification -> RunScheduledInstances
+ Network.AWS.EC2.RunScheduledInstances: runScheduledInstances :: ScheduledInstancesLaunchSpecification -> Text -> RunScheduledInstances
- Network.AWS.EC2.Types: Associated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: Associated :: IAMInstanceProfileAssociationState
- Network.AWS.EC2.Types: Associating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: Associating :: IAMInstanceProfileAssociationState
- Network.AWS.EC2.Types: Disassociated :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: Disassociated :: IAMInstanceProfileAssociationState
- Network.AWS.EC2.Types: Disassociating :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: Disassociating :: IAMInstanceProfileAssociationState
- Network.AWS.EC2.Types: Failed :: SubnetCidrBlockStateCode
+ Network.AWS.EC2.Types: Failed :: VolumeModificationState
- Network.AWS.EC2.Types: Interface :: NetworkInterfaceType
+ Network.AWS.EC2.Types: Interface :: ServiceType
- Network.AWS.EC2.Types: Standard :: OfferingClassType
+ Network.AWS.EC2.Types: Standard :: VolumeType
- Network.AWS.EC2.Types: cancelSpotFleetRequestsErrorItem :: Text -> CancelSpotFleetRequestsError -> CancelSpotFleetRequestsErrorItem
+ Network.AWS.EC2.Types: cancelSpotFleetRequestsErrorItem :: CancelSpotFleetRequestsError -> Text -> CancelSpotFleetRequestsErrorItem
- Network.AWS.EC2.Types: cancelSpotFleetRequestsSuccessItem :: Text -> BatchState -> BatchState -> CancelSpotFleetRequestsSuccessItem
+ Network.AWS.EC2.Types: cancelSpotFleetRequestsSuccessItem :: BatchState -> BatchState -> Text -> CancelSpotFleetRequestsSuccessItem
- Network.AWS.EC2.Types: diskImageDescription :: DiskImageFormat -> Integer -> Text -> DiskImageDescription
+ Network.AWS.EC2.Types: diskImageDescription :: DiskImageFormat -> Text -> Integer -> DiskImageDescription
- Network.AWS.EC2.Types: diskImageDetail :: DiskImageFormat -> Integer -> Text -> DiskImageDetail
+ Network.AWS.EC2.Types: diskImageDetail :: Integer -> DiskImageFormat -> Text -> DiskImageDetail
- Network.AWS.EC2.Types: historyRecord :: UTCTime -> EventType -> EventInformation -> HistoryRecord
+ Network.AWS.EC2.Types: historyRecord :: EventInformation -> EventType -> UTCTime -> HistoryRecord
- Network.AWS.EC2.Types: importInstanceVolumeDetailItem :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> Text -> ImportInstanceVolumeDetailItem
+ Network.AWS.EC2.Types: importInstanceVolumeDetailItem :: Text -> Integer -> DiskImageDescription -> Text -> DiskImageVolumeDescription -> ImportInstanceVolumeDetailItem
- Network.AWS.EC2.Types: importVolumeTaskDetails :: Integer -> Text -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails
+ Network.AWS.EC2.Types: importVolumeTaskDetails :: Text -> Integer -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails
- Network.AWS.EC2.Types: lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)
+ Network.AWS.EC2.Types: lpGroup :: Lens' LoadPermission (Maybe PermissionGroup)
- Network.AWS.EC2.Types: lpUserId :: Lens' LaunchPermission (Maybe Text)
+ Network.AWS.EC2.Types: lpUserId :: Lens' LoadPermission (Maybe Text)
- Network.AWS.EC2.Types: lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2.Types: lpmAdd :: Lens' LoadPermissionModifications [LoadPermissionRequest]
- Network.AWS.EC2.Types: lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]
+ Network.AWS.EC2.Types: lpmRemove :: Lens' LoadPermissionModifications [LoadPermissionRequest]
- Network.AWS.EC2.Types: purchaseRequest :: Text -> Int -> PurchaseRequest
+ Network.AWS.EC2.Types: purchaseRequest :: Int -> Text -> PurchaseRequest
- Network.AWS.EC2.Types: spotFleetRequestConfig :: Text -> BatchState -> SpotFleetRequestConfigData -> UTCTime -> SpotFleetRequestConfig
+ Network.AWS.EC2.Types: spotFleetRequestConfig :: UTCTime -> SpotFleetRequestConfigData -> Text -> BatchState -> SpotFleetRequestConfig
- Network.AWS.EC2.Types: spotFleetRequestConfigData :: Text -> Int -> Text -> NonEmpty SpotFleetLaunchSpecification -> SpotFleetRequestConfigData
+ Network.AWS.EC2.Types: spotFleetRequestConfigData :: Text -> NonEmpty SpotFleetLaunchSpecification -> Text -> Int -> SpotFleetRequestConfigData

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`1.4.5`+`1.5.0`   ## Description
amazonka-ec2.cabal view
@@ -1,13 +1,13 @@ name:                  amazonka-ec2-version:               1.4.5+version:               1.5.0 synopsis:              Amazon Elastic Compute Cloud SDK. homepage:              https://github.com/brendanhay/amazonka bug-reports:           https://github.com/brendanhay/amazonka/issues-license:               OtherLicense+license:               MPL-2.0 license-file:          LICENSE author:                Brendan Hay-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2016 Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright:             Copyright (c) 2013-2017 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple cabal-version:         >= 1.10@@ -29,14 +29,19 @@     to get started.  source-repository head-    type:     git-    location: git://github.com/brendanhay/amazonka.git+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-ec2  library     default-language:  Haskell2010     hs-source-dirs:    src gen -    ghc-options:       -Wall+    ghc-options:+        -Wall+        -fwarn-incomplete-uni-patterns+        -fwarn-incomplete-record-updates+        -funbox-strict-fields      exposed-modules:           Network.AWS.EC2@@ -48,6 +53,7 @@         , Network.AWS.EC2.AssignPrivateIPAddresses         , Network.AWS.EC2.AssociateAddress         , Network.AWS.EC2.AssociateDHCPOptions+        , Network.AWS.EC2.AssociateIAMInstanceProfile         , Network.AWS.EC2.AssociateRouteTable         , Network.AWS.EC2.AssociateSubnetCidrBlock         , Network.AWS.EC2.AssociateVPCCidrBlock@@ -67,12 +73,16 @@         , Network.AWS.EC2.CancelSpotFleetRequests         , Network.AWS.EC2.CancelSpotInstanceRequests         , Network.AWS.EC2.ConfirmProductInstance+        , Network.AWS.EC2.CopyFpgaImage         , Network.AWS.EC2.CopyImage         , Network.AWS.EC2.CopySnapshot         , Network.AWS.EC2.CreateCustomerGateway         , Network.AWS.EC2.CreateDHCPOptions+        , Network.AWS.EC2.CreateDefaultSubnet+        , Network.AWS.EC2.CreateDefaultVPC         , Network.AWS.EC2.CreateEgressOnlyInternetGateway         , Network.AWS.EC2.CreateFlowLogs+        , Network.AWS.EC2.CreateFpgaImage         , Network.AWS.EC2.CreateImage         , Network.AWS.EC2.CreateInstanceExportTask         , Network.AWS.EC2.CreateInternetGateway@@ -81,6 +91,7 @@         , Network.AWS.EC2.CreateNetworkACL         , Network.AWS.EC2.CreateNetworkACLEntry         , Network.AWS.EC2.CreateNetworkInterface+        , Network.AWS.EC2.CreateNetworkInterfacePermission         , Network.AWS.EC2.CreatePlacementGroup         , Network.AWS.EC2.CreateReservedInstancesListing         , Network.AWS.EC2.CreateRoute@@ -101,12 +112,14 @@         , Network.AWS.EC2.DeleteDHCPOptions         , Network.AWS.EC2.DeleteEgressOnlyInternetGateway         , Network.AWS.EC2.DeleteFlowLogs+        , Network.AWS.EC2.DeleteFpgaImage         , Network.AWS.EC2.DeleteInternetGateway         , Network.AWS.EC2.DeleteKeyPair         , Network.AWS.EC2.DeleteNatGateway         , Network.AWS.EC2.DeleteNetworkACL         , Network.AWS.EC2.DeleteNetworkACLEntry         , Network.AWS.EC2.DeleteNetworkInterface+        , Network.AWS.EC2.DeleteNetworkInterfacePermission         , Network.AWS.EC2.DeletePlacementGroup         , Network.AWS.EC2.DeleteRoute         , Network.AWS.EC2.DeleteRouteTable@@ -132,11 +145,15 @@         , Network.AWS.EC2.DescribeCustomerGateways         , Network.AWS.EC2.DescribeDHCPOptions         , Network.AWS.EC2.DescribeEgressOnlyInternetGateways+        , Network.AWS.EC2.DescribeElasticGpus         , Network.AWS.EC2.DescribeExportTasks         , Network.AWS.EC2.DescribeFlowLogs+        , Network.AWS.EC2.DescribeFpgaImageAttribute+        , Network.AWS.EC2.DescribeFpgaImages         , Network.AWS.EC2.DescribeHostReservationOfferings         , Network.AWS.EC2.DescribeHostReservations         , Network.AWS.EC2.DescribeHosts+        , Network.AWS.EC2.DescribeIAMInstanceProfileAssociations         , Network.AWS.EC2.DescribeIdFormat         , Network.AWS.EC2.DescribeIdentityIdFormat         , Network.AWS.EC2.DescribeImageAttribute@@ -152,6 +169,7 @@         , Network.AWS.EC2.DescribeNatGateways         , Network.AWS.EC2.DescribeNetworkACLs         , Network.AWS.EC2.DescribeNetworkInterfaceAttribute+        , Network.AWS.EC2.DescribeNetworkInterfacePermissions         , Network.AWS.EC2.DescribeNetworkInterfaces         , Network.AWS.EC2.DescribePlacementGroups         , Network.AWS.EC2.DescribePrefixLists@@ -188,6 +206,7 @@         , Network.AWS.EC2.DescribeVolumeAttribute         , Network.AWS.EC2.DescribeVolumeStatus         , Network.AWS.EC2.DescribeVolumes+        , Network.AWS.EC2.DescribeVolumesModifications         , Network.AWS.EC2.DetachClassicLinkVPC         , Network.AWS.EC2.DetachInternetGateway         , Network.AWS.EC2.DetachNetworkInterface@@ -197,6 +216,7 @@         , Network.AWS.EC2.DisableVPCClassicLink         , Network.AWS.EC2.DisableVPCClassicLinkDNSSupport         , Network.AWS.EC2.DisassociateAddress+        , Network.AWS.EC2.DisassociateIAMInstanceProfile         , Network.AWS.EC2.DisassociateRouteTable         , Network.AWS.EC2.DisassociateSubnetCidrBlock         , Network.AWS.EC2.DisassociateVPCCidrBlock@@ -214,6 +234,7 @@         , Network.AWS.EC2.ImportKeyPair         , Network.AWS.EC2.ImportSnapshot         , Network.AWS.EC2.ImportVolume+        , Network.AWS.EC2.ModifyFpgaImageAttribute         , Network.AWS.EC2.ModifyHosts         , Network.AWS.EC2.ModifyIdFormat         , Network.AWS.EC2.ModifyIdentityIdFormat@@ -228,6 +249,8 @@         , Network.AWS.EC2.ModifyVPCAttribute         , Network.AWS.EC2.ModifyVPCEndpoint         , Network.AWS.EC2.ModifyVPCPeeringConnectionOptions+        , Network.AWS.EC2.ModifyVPCTenancy+        , Network.AWS.EC2.ModifyVolume         , Network.AWS.EC2.ModifyVolumeAttribute         , Network.AWS.EC2.MonitorInstances         , Network.AWS.EC2.MoveAddressToVPC@@ -239,6 +262,7 @@         , Network.AWS.EC2.RejectVPCPeeringConnection         , Network.AWS.EC2.ReleaseAddress         , Network.AWS.EC2.ReleaseHosts+        , Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation         , Network.AWS.EC2.ReplaceNetworkACLAssociation         , Network.AWS.EC2.ReplaceNetworkACLEntry         , Network.AWS.EC2.ReplaceRoute@@ -246,6 +270,7 @@         , Network.AWS.EC2.ReportInstanceStatus         , Network.AWS.EC2.RequestSpotFleet         , Network.AWS.EC2.RequestSpotInstances+        , Network.AWS.EC2.ResetFpgaImageAttribute         , Network.AWS.EC2.ResetImageAttribute         , Network.AWS.EC2.ResetInstanceAttribute         , Network.AWS.EC2.ResetNetworkInterfaceAttribute@@ -262,6 +287,8 @@         , Network.AWS.EC2.UnassignIPv6Addresses         , Network.AWS.EC2.UnassignPrivateIPAddresses         , Network.AWS.EC2.UnmonitorInstances+        , Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress+        , Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress         , Network.AWS.EC2.Waiters      other-modules:@@ -270,7 +297,7 @@         , Network.AWS.EC2.Types.Sum      build-depends:-          amazonka-core == 1.4.5.*+          amazonka-core == 1.5.0.*         , base          >= 4.7     && < 5  test-suite amazonka-ec2-test@@ -290,9 +317,9 @@         , Test.AWS.EC2.Internal      build-depends:-          amazonka-core == 1.4.5.*-        , amazonka-test == 1.4.5.*-        , amazonka-ec2 == 1.4.5.*+          amazonka-core == 1.5.0.*+        , amazonka-test == 1.5.0.*+        , amazonka-ec2         , base         , bytestring         , tasty
+ fixture/AssociateIAMInstanceProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/AssociateIAMInstanceProfileResponse.proto view
+ fixture/CopyFpgaImage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CopyFpgaImageResponse.proto view
+ fixture/CreateDefaultSubnet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDefaultSubnetResponse.proto view
+ fixture/CreateDefaultVPC.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDefaultVPCResponse.proto view
+ fixture/CreateFpgaImage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFpgaImageResponse.proto view
+ fixture/CreateNetworkInterfacePermission.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateNetworkInterfacePermissionResponse.proto view
+ fixture/DeleteFpgaImage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteFpgaImageResponse.proto view
+ fixture/DeleteNetworkInterfacePermission.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteNetworkInterfacePermissionResponse.proto view
+ fixture/DescribeElasticGpus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeElasticGpusResponse.proto view
+ fixture/DescribeFpgaImageAttribute.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeFpgaImageAttributeResponse.proto view
+ fixture/DescribeFpgaImages.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeFpgaImagesResponse.proto view
+ fixture/DescribeIAMInstanceProfileAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeIAMInstanceProfileAssociationsResponse.proto view
+ fixture/DescribeNetworkInterfacePermissions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeNetworkInterfacePermissionsResponse.proto view
+ fixture/DescribeVolumesModifications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeVolumesModificationsResponse.proto view
+ fixture/DisassociateIAMInstanceProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DisassociateIAMInstanceProfileResponse.proto view
+ fixture/ModifyFpgaImageAttribute.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ModifyFpgaImageAttributeResponse.proto view
+ fixture/ModifyVPCTenancy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ModifyVPCTenancyResponse.proto view
+ fixture/ModifyVolume.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ModifyVolumeResponse.proto view
+ fixture/ReplaceIAMInstanceProfileAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ReplaceIAMInstanceProfileAssociationResponse.proto view
+ fixture/ResetFpgaImageAttribute.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ResetFpgaImageAttributeResponse.proto view
+ fixture/UpdateSecurityGroupRuleDescriptionsEgress.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSecurityGroupRuleDescriptionsEgressResponse.proto view
+ fixture/UpdateSecurityGroupRuleDescriptionsIngress.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ec2.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSecurityGroupRuleDescriptionsIngressResponse.proto view
gen/Network/AWS/EC2.hs view
@@ -5,9 +5,9 @@  -- | -- Module      : Network.AWS.EC2--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -119,6 +119,9 @@     -- ** RevokeSecurityGroupEgress     , module Network.AWS.EC2.RevokeSecurityGroupEgress +    -- ** CreateNetworkInterfacePermission+    , module Network.AWS.EC2.CreateNetworkInterfacePermission+     -- ** CreateVPNGateway     , module Network.AWS.EC2.CreateVPNGateway @@ -134,6 +137,9 @@     -- ** DescribeTags (Paginated)     , module Network.AWS.EC2.DescribeTags +    -- ** UpdateSecurityGroupRuleDescriptionsIngress+    , module Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress+     -- ** DisassociateSubnetCidrBlock     , module Network.AWS.EC2.DisassociateSubnetCidrBlock @@ -185,6 +191,9 @@     -- ** ModifyNetworkInterfaceAttribute     , module Network.AWS.EC2.ModifyNetworkInterfaceAttribute +    -- ** ModifyVPCTenancy+    , module Network.AWS.EC2.ModifyVPCTenancy+     -- ** CancelReservedInstancesListing     , module Network.AWS.EC2.CancelReservedInstancesListing @@ -212,6 +221,9 @@     -- ** ImportImage     , module Network.AWS.EC2.ImportImage +    -- ** CopyFpgaImage+    , module Network.AWS.EC2.CopyFpgaImage+     -- ** StopInstances     , module Network.AWS.EC2.StopInstances @@ -230,7 +242,7 @@     -- ** ReplaceNetworkACLAssociation     , module Network.AWS.EC2.ReplaceNetworkACLAssociation -    -- ** DescribeNatGateways+    -- ** DescribeNatGateways (Paginated)     , module Network.AWS.EC2.DescribeNatGateways      -- ** DescribeAddresses@@ -347,6 +359,12 @@     -- ** DisableVPCClassicLinkDNSSupport     , module Network.AWS.EC2.DisableVPCClassicLinkDNSSupport +    -- ** DescribeVolumesModifications+    , module Network.AWS.EC2.DescribeVolumesModifications++    -- ** CreateFpgaImage+    , module Network.AWS.EC2.CreateFpgaImage+     -- ** AllocateAddress     , module Network.AWS.EC2.AllocateAddress @@ -371,6 +389,9 @@     -- ** DescribeHostReservationOfferings     , module Network.AWS.EC2.DescribeHostReservationOfferings +    -- ** ResetFpgaImageAttribute+    , module Network.AWS.EC2.ResetFpgaImageAttribute+     -- ** DescribeVolumes (Paginated)     , module Network.AWS.EC2.DescribeVolumes @@ -383,6 +404,9 @@     -- ** ModifyVPCEndpoint     , module Network.AWS.EC2.ModifyVPCEndpoint +    -- ** DescribeFpgaImageAttribute+    , module Network.AWS.EC2.DescribeFpgaImageAttribute+     -- ** AllocateHosts     , module Network.AWS.EC2.AllocateHosts @@ -395,12 +419,18 @@     -- ** DescribeHostReservations     , module Network.AWS.EC2.DescribeHostReservations +    -- ** UpdateSecurityGroupRuleDescriptionsEgress+    , module Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress+     -- ** EnableVPCClassicLinkDNSSupport     , module Network.AWS.EC2.EnableVPCClassicLinkDNSSupport      -- ** ModifyReservedInstances     , module Network.AWS.EC2.ModifyReservedInstances +    -- ** DeleteFpgaImage+    , module Network.AWS.EC2.DeleteFpgaImage+     -- ** DescribeScheduledInstances     , module Network.AWS.EC2.DescribeScheduledInstances @@ -416,6 +446,9 @@     -- ** DeleteNetworkACL     , module Network.AWS.EC2.DeleteNetworkACL +    -- ** DeleteNetworkInterfacePermission+    , module Network.AWS.EC2.DeleteNetworkInterfacePermission+     -- ** DeleteVPNGateway     , module Network.AWS.EC2.DeleteVPNGateway @@ -437,6 +470,9 @@     -- ** ModifyVPCPeeringConnectionOptions     , module Network.AWS.EC2.ModifyVPCPeeringConnectionOptions +    -- ** DescribeFpgaImages+    , module Network.AWS.EC2.DescribeFpgaImages+     -- ** CopySnapshot     , module Network.AWS.EC2.CopySnapshot @@ -461,6 +497,9 @@     -- ** CreateVolume     , module Network.AWS.EC2.CreateVolume +    -- ** CreateDefaultSubnet+    , module Network.AWS.EC2.CreateDefaultSubnet+     -- ** DescribeScheduledInstanceAvailability     , module Network.AWS.EC2.DescribeScheduledInstanceAvailability @@ -485,7 +524,7 @@     -- ** CreateNetworkInterface     , module Network.AWS.EC2.CreateNetworkInterface -    -- ** DescribeSecurityGroups+    -- ** DescribeSecurityGroups (Paginated)     , module Network.AWS.EC2.DescribeSecurityGroups      -- ** DescribeExportTasks@@ -515,6 +554,9 @@     -- ** CancelExportTask     , module Network.AWS.EC2.CancelExportTask +    -- ** CreateDefaultVPC+    , module Network.AWS.EC2.CreateDefaultVPC+     -- ** DisassociateVPCCidrBlock     , module Network.AWS.EC2.DisassociateVPCCidrBlock @@ -539,6 +581,9 @@     -- ** DescribeNetworkInterfaceAttribute     , module Network.AWS.EC2.DescribeNetworkInterfaceAttribute +    -- ** ReplaceIAMInstanceProfileAssociation+    , module Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation+     -- ** ReleaseHosts     , module Network.AWS.EC2.ReleaseHosts @@ -605,6 +650,9 @@     -- ** DeleteCustomerGateway     , module Network.AWS.EC2.DeleteCustomerGateway +    -- ** DisassociateIAMInstanceProfile+    , module Network.AWS.EC2.DisassociateIAMInstanceProfile+     -- ** DisassociateRouteTable     , module Network.AWS.EC2.DisassociateRouteTable @@ -617,6 +665,9 @@     -- ** DeleteSpotDatafeedSubscription     , module Network.AWS.EC2.DeleteSpotDatafeedSubscription +    -- ** ModifyVolume+    , module Network.AWS.EC2.ModifyVolume+     -- ** EnableVPCClassicLink     , module Network.AWS.EC2.EnableVPCClassicLink @@ -638,6 +689,9 @@     -- ** ModifySnapshotAttribute     , module Network.AWS.EC2.ModifySnapshotAttribute +    -- ** DescribeIAMInstanceProfileAssociations+    , module Network.AWS.EC2.DescribeIAMInstanceProfileAssociations+     -- ** CreateSnapshot     , module Network.AWS.EC2.CreateSnapshot @@ -656,6 +710,9 @@     -- ** DescribeAccountAttributes     , module Network.AWS.EC2.DescribeAccountAttributes +    -- ** ModifyFpgaImageAttribute+    , module Network.AWS.EC2.ModifyFpgaImageAttribute+     -- ** ModifyHosts     , module Network.AWS.EC2.ModifyHosts @@ -665,6 +722,9 @@     -- ** UnassignIPv6Addresses     , module Network.AWS.EC2.UnassignIPv6Addresses +    -- ** AssociateIAMInstanceProfile+    , module Network.AWS.EC2.AssociateIAMInstanceProfile+     -- ** DeleteEgressOnlyInternetGateway     , module Network.AWS.EC2.DeleteEgressOnlyInternetGateway @@ -722,6 +782,9 @@     -- ** UnassignPrivateIPAddresses     , module Network.AWS.EC2.UnassignPrivateIPAddresses +    -- ** DescribeNetworkInterfacePermissions+    , module Network.AWS.EC2.DescribeNetworkInterfacePermissions+     -- ** DeleteDHCPOptions     , module Network.AWS.EC2.DeleteDHCPOptions @@ -761,6 +824,9 @@     -- ** DescribeImages     , module Network.AWS.EC2.DescribeImages +    -- ** DescribeElasticGpus+    , module Network.AWS.EC2.DescribeElasticGpus+     -- ** RestoreAddressToClassic     , module Network.AWS.EC2.RestoreAddressToClassic @@ -844,6 +910,12 @@     -- ** DomainType     , DomainType (..) +    -- ** ElasticGpuState+    , ElasticGpuState (..)++    -- ** ElasticGpuStatus+    , ElasticGpuStatus (..)+     -- ** EventCode     , EventCode (..) @@ -865,6 +937,12 @@     -- ** FlowLogsResourceType     , FlowLogsResourceType (..) +    -- ** FpgaImageAttributeName+    , FpgaImageAttributeName (..)++    -- ** FpgaImageStateCode+    , FpgaImageStateCode (..)+     -- ** GatewayType     , GatewayType (..) @@ -874,6 +952,9 @@     -- ** HypervisorType     , HypervisorType (..) +    -- ** IAMInstanceProfileAssociationState+    , IAMInstanceProfileAssociationState (..)+     -- ** ImageAttributeName     , ImageAttributeName (..) @@ -886,6 +967,12 @@     -- ** InstanceAttributeName     , InstanceAttributeName (..) +    -- ** InstanceHealthStatus+    , InstanceHealthStatus (..)++    -- ** InstanceInterruptionBehavior+    , InstanceInterruptionBehavior (..)+     -- ** InstanceLifecycleType     , InstanceLifecycleType (..) @@ -895,6 +982,9 @@     -- ** InstanceType     , InstanceType (..) +    -- ** InterfacePermissionType+    , InterfacePermissionType (..)+     -- ** ListingState     , ListingState (..) @@ -913,6 +1003,9 @@     -- ** NetworkInterfaceAttribute     , NetworkInterfaceAttribute (..) +    -- ** NetworkInterfacePermissionStateCode+    , NetworkInterfacePermissionStateCode (..)+     -- ** NetworkInterfaceStatus     , NetworkInterfaceStatus (..) @@ -964,6 +1057,9 @@     -- ** ReservedInstanceState     , ReservedInstanceState (..) +    -- ** ResetFpgaImageAttributeName+    , ResetFpgaImageAttributeName (..)+     -- ** ResetImageAttributeName     , ResetImageAttributeName (..) @@ -982,6 +1078,9 @@     -- ** Scope     , Scope (..) +    -- ** ServiceType+    , ServiceType (..)+     -- ** ShutdownBehavior     , ShutdownBehavior (..) @@ -1030,12 +1129,18 @@     -- ** VPCCidrBlockStateCode     , VPCCidrBlockStateCode (..) +    -- ** VPCEndpointType+    , VPCEndpointType (..)+     -- ** VPCPeeringConnectionStateReasonCode     , VPCPeeringConnectionStateReasonCode (..)      -- ** VPCState     , VPCState (..) +    -- ** VPCTenancy+    , VPCTenancy (..)+     -- ** VPNState     , VPNState (..) @@ -1051,6 +1156,9 @@     -- ** VolumeAttributeName     , VolumeAttributeName (..) +    -- ** VolumeModificationState+    , VolumeModificationState (..)+     -- ** VolumeState     , VolumeState (..) @@ -1078,6 +1186,7 @@     , ActiveInstance     , activeInstance     , aiInstanceId+    , aiInstanceHealth     , aiInstanceType     , aiSpotInstanceRequestId @@ -1162,15 +1271,15 @@     -- ** CancelSpotFleetRequestsErrorItem     , CancelSpotFleetRequestsErrorItem     , cancelSpotFleetRequestsErrorItem-    , csfreiSpotFleetRequestId     , csfreiError+    , csfreiSpotFleetRequestId      -- ** CancelSpotFleetRequestsSuccessItem     , CancelSpotFleetRequestsSuccessItem     , cancelSpotFleetRequestsSuccessItem-    , csfrsiSpotFleetRequestId     , csfrsiCurrentSpotFleetRequestState     , csfrsiPreviousSpotFleetRequestState+    , csfrsiSpotFleetRequestId      -- ** CancelledSpotInstanceRequest     , CancelledSpotInstanceRequest@@ -1178,6 +1287,11 @@     , csirState     , csirSpotInstanceRequestId +    -- ** CidrBlock+    , CidrBlock+    , cidrBlock+    , cbCidrBlock+     -- ** ClassicLinkDNSSupport     , ClassicLinkDNSSupport     , classicLinkDNSSupport@@ -1192,6 +1306,16 @@     , cliVPCId     , cliTags +    -- ** ClassicLoadBalancer+    , ClassicLoadBalancer+    , classicLoadBalancer+    , clbName++    -- ** ClassicLoadBalancersConfig+    , ClassicLoadBalancersConfig+    , classicLoadBalancersConfig+    , clbcClassicLoadBalancers+     -- ** ClientData     , ClientData     , clientData@@ -1246,6 +1370,12 @@     , doDHCPOptionsId     , doTags +    -- ** DNSEntry+    , DNSEntry+    , dnsEntry+    , deHostedZoneId+    , deDNSName+     -- ** DiskImage     , DiskImage     , diskImage@@ -1258,14 +1388,14 @@     , diskImageDescription     , dChecksum     , dFormat-    , dSize     , dImportManifestURL+    , dSize      -- ** DiskImageDetail     , DiskImageDetail     , diskImageDetail-    , didFormat     , didBytes+    , didFormat     , didImportManifestURL      -- ** DiskImageVolumeDescription@@ -1304,6 +1434,34 @@     , eoigEgressOnlyInternetGatewayId     , eoigAttachments +    -- ** ElasticGpuAssociation+    , ElasticGpuAssociation+    , elasticGpuAssociation+    , egaElasticGpuId+    , egaElasticGpuAssociationId+    , egaElasticGpuAssociationTime+    , egaElasticGpuAssociationState++    -- ** ElasticGpuHealth+    , ElasticGpuHealth+    , elasticGpuHealth+    , eghStatus++    -- ** ElasticGpuSpecification+    , ElasticGpuSpecification+    , elasticGpuSpecification+    , egsType++    -- ** ElasticGpus+    , ElasticGpus+    , elasticGpus+    , egInstanceId+    , egElasticGpuType+    , egElasticGpuId+    , egElasticGpuState+    , egElasticGpuHealth+    , egAvailabilityZone+     -- ** EventInformation     , EventInformation     , eventInformation@@ -1356,6 +1514,39 @@     , flDeliverLogsPermissionARN     , flFlowLogId +    -- ** FpgaImage+    , FpgaImage+    , fpgaImage+    , fiShellVersion+    , fiPciId+    , fiState+    , fiOwnerAlias+    , fiFpgaImageId+    , fiOwnerId+    , fiUpdateTime+    , fiName+    , fiProductCodes+    , fiDescription+    , fiCreateTime+    , fiTags+    , fiPublic+    , fiFpgaImageGlobalId++    -- ** FpgaImageAttribute+    , FpgaImageAttribute+    , fpgaImageAttribute+    , fiaFpgaImageId+    , fiaName+    , fiaProductCodes+    , fiaDescription+    , fiaLoadPermissions++    -- ** FpgaImageState+    , FpgaImageState+    , fpgaImageState+    , fisCode+    , fisMessage+     -- ** GroupIdentifier     , GroupIdentifier     , groupIdentifier@@ -1365,9 +1556,9 @@     -- ** HistoryRecord     , HistoryRecord     , historyRecord-    , hrTimestamp-    , hrEventType     , hrEventInformation+    , hrEventType+    , hrTimestamp      -- ** Host     , Host@@ -1430,6 +1621,15 @@     , iapARN     , iapId +    -- ** IAMInstanceProfileAssociation+    , IAMInstanceProfileAssociation+    , iamInstanceProfileAssociation+    , iapaAssociationId+    , iapaInstanceId+    , iapaState+    , iapaIAMInstanceProfile+    , iapaTimestamp+     -- ** IAMInstanceProfileSpecification     , IAMInstanceProfileSpecification     , iamInstanceProfileSpecification@@ -1456,7 +1656,8 @@     -- ** IPRange     , IPRange     , ipRange-    , irCidrIP+    , iprDescription+    , iprCidrIP      -- ** IPv6CidrBlock     , IPv6CidrBlock@@ -1467,6 +1668,7 @@     , IPv6Range     , ipv6Range     , irCidrIPv6+    , irDescription      -- ** IdFormat     , IdFormat@@ -1556,11 +1758,11 @@     , importInstanceVolumeDetailItem     , iivdiStatusMessage     , iivdiDescription-    , iivdiBytesConverted     , iivdiAvailabilityZone+    , iivdiBytesConverted     , iivdiImage-    , iivdiVolume     , iivdiStatus+    , iivdiVolume      -- ** ImportSnapshotTask     , ImportSnapshotTask@@ -1573,8 +1775,8 @@     , ImportVolumeTaskDetails     , importVolumeTaskDetails     , ivtdDescription-    , ivtdBytesConverted     , ivtdAvailabilityZone+    , ivtdBytesConverted     , ivtdImage     , ivtdVolume @@ -1587,6 +1789,7 @@     , insClientToken     , insEnaSupport     , insSourceDestCheck+    , insElasticGpuAssociations     , insVPCId     , insKeyName     , insNetworkInterfaces@@ -1789,14 +1992,14 @@     -- ** LaunchPermission     , LaunchPermission     , launchPermission-    , lpGroup-    , lpUserId+    , lGroup+    , lUserId      -- ** LaunchPermissionModifications     , LaunchPermissionModifications     , launchPermissionModifications-    , lpmRemove-    , lpmAdd+    , lRemove+    , lAdd      -- ** LaunchSpecification     , LaunchSpecification@@ -1817,6 +2020,30 @@     , lsBlockDeviceMappings     , lsPlacement +    -- ** LoadBalancersConfig+    , LoadBalancersConfig+    , loadBalancersConfig+    , lbcClassicLoadBalancersConfig+    , lbcTargetGroupsConfig++    -- ** LoadPermission+    , LoadPermission+    , loadPermission+    , lpGroup+    , lpUserId++    -- ** LoadPermissionModifications+    , LoadPermissionModifications+    , loadPermissionModifications+    , lpmRemove+    , lpmAdd++    -- ** LoadPermissionRequest+    , LoadPermissionRequest+    , loadPermissionRequest+    , lprGroup+    , lprUserId+     -- ** Monitoring     , Monitoring     , monitoring@@ -1841,6 +2068,7 @@     , ngProvisionedBandwidth     , ngNatGatewayAddresses     , ngCreateTime+    , ngTags      -- ** NatGatewayAddress     , NatGatewayAddress@@ -1934,6 +2162,22 @@     , networkInterfaceIPv6Address     , niiaIPv6Address +    -- ** NetworkInterfacePermission+    , NetworkInterfacePermission+    , networkInterfacePermission+    , nipPermissionState+    , nipNetworkInterfacePermissionId+    , nipNetworkInterfaceId+    , nipAWSAccountId+    , nipAWSService+    , nipPermission++    -- ** NetworkInterfacePermissionState+    , NetworkInterfacePermissionState+    , networkInterfacePermissionState+    , nipsState+    , nipsStatusMessage+     -- ** NetworkInterfacePrivateIPAddress     , NetworkInterfacePrivateIPAddress     , networkInterfacePrivateIPAddress@@ -1948,6 +2192,14 @@     , ndcValues     , ndcKey +    -- ** PciId+    , PciId+    , pciId+    , piSubsystemId+    , piDeviceId+    , piSubsystemVendorId+    , piVendorId+     -- ** PeeringConnectionOptions     , PeeringConnectionOptions     , peeringConnectionOptions@@ -1967,6 +2219,7 @@     , placement     , pAffinity     , pHostId+    , pSpreadDomain     , pAvailabilityZone     , pTenancy     , pGroupName@@ -1995,6 +2248,7 @@     , PrefixListId     , prefixListId     , pliPrefixListId+    , pliDescription      -- ** PriceSchedule     , PriceSchedule@@ -2058,8 +2312,8 @@     -- ** PurchaseRequest     , PurchaseRequest     , purchaseRequest-    , prPurchaseToken     , prInstanceCount+    , prPurchaseToken      -- ** RecurringCharge     , RecurringCharge@@ -2403,6 +2657,12 @@     , sgGroupName     , sgDescription +    -- ** SecurityGroupIdentifier+    , SecurityGroupIdentifier+    , securityGroupIdentifier+    , sgiGroupId+    , sgiGroupName+     -- ** SecurityGroupReference     , SecurityGroupReference     , securityGroupReference@@ -2410,6 +2670,23 @@     , sgrGroupId     , sgrReferencingVPCId +    -- ** ServiceDetail+    , ServiceDetail+    , serviceDetail+    , sdVPCEndpointPolicySupported+    , sdBaseEndpointDNSNames+    , sdOwner+    , sdAvailabilityZones+    , sdServiceName+    , sdServiceType+    , sdAcceptanceRequired+    , sdPrivateDNSName++    -- ** ServiceTypeDetail+    , ServiceTypeDetail+    , serviceTypeDetail+    , stdServiceType+     -- ** SlotDateTimeRangeRequest     , SlotDateTimeRangeRequest     , slotDateTimeRangeRequest@@ -2499,6 +2776,7 @@     , sflsEBSOptimized     , sflsUserData     , sflsMonitoring+    , sflsTagSpecifications     , sflsIAMInstanceProfile     , sflsImageId     , sflsAddressingType@@ -2514,27 +2792,36 @@     , SpotFleetRequestConfig     , spotFleetRequestConfig     , sfrcActivityStatus+    , sfrcCreateTime+    , sfrcSpotFleetRequestConfig     , sfrcSpotFleetRequestId     , sfrcSpotFleetRequestState-    , sfrcSpotFleetRequestConfig-    , sfrcCreateTime      -- ** SpotFleetRequestConfigData     , SpotFleetRequestConfigData     , spotFleetRequestConfigData     , sfrcdClientToken+    , sfrcdInstanceInterruptionBehavior+    , sfrcdLoadBalancersConfig     , sfrcdExcessCapacityTerminationPolicy     , sfrcdValidUntil     , sfrcdTerminateInstancesWithExpiration     , sfrcdFulfilledCapacity     , sfrcdType     , sfrcdValidFrom+    , sfrcdReplaceUnhealthyInstances     , sfrcdAllocationStrategy-    , sfrcdSpotPrice-    , sfrcdTargetCapacity     , sfrcdIAMFleetRole     , sfrcdLaunchSpecifications+    , sfrcdSpotPrice+    , sfrcdTargetCapacity +    -- ** SpotFleetTagSpecification+    , SpotFleetTagSpecification+    , spotFleetTagSpecification+    , sftsResourceType+    , sftsTags+     -- ** SpotInstanceRequest     , SpotInstanceRequest     , spotInstanceRequest@@ -2543,6 +2830,7 @@     , sirState     , sirActualBlockHourlyPrice     , sirBlockDurationMinutes+    , sirInstanceInterruptionBehavior     , sirProductDescription     , sirSpotPrice     , sirLaunchSpecification@@ -2574,6 +2862,7 @@     , SpotPlacement     , spotPlacement     , spAvailabilityZone+    , spTenancy     , spGroupName      -- ** SpotPrice@@ -2616,6 +2905,12 @@     , storage     , sS3 +    -- ** StorageLocation+    , StorageLocation+    , storageLocation+    , slBucket+    , slKey+     -- ** Subnet     , Subnet     , subnet@@ -2658,6 +2953,12 @@     , tdKey     , tdValue +    -- ** TagSpecification+    , TagSpecification+    , tagSpecification+    , tsResourceType+    , tsTags+     -- ** TargetConfiguration     , TargetConfiguration     , targetConfiguration@@ -2670,6 +2971,16 @@     , tcrInstanceCount     , tcrOfferingId +    -- ** TargetGroup+    , TargetGroup+    , targetGroup+    , tgARN++    -- ** TargetGroupsConfig+    , TargetGroupsConfig+    , targetGroupsConfig+    , tgcTargetGroups+     -- ** TargetReservationValue     , TargetReservationValue     , targetReservationValue@@ -2713,6 +3024,7 @@     , uigpUserId     , uigpGroupId     , uigpGroupName+    , uigpDescription     , uigpPeeringStatus      -- ** VGWTelemetry@@ -2728,6 +3040,7 @@     , VPC     , vpc     , vpcIPv6CidrBlockAssociationSet+    , vpcCidrBlockAssociationSet     , vpcTags     , vpcIsDefault     , vpcCidrBlock@@ -2742,6 +3055,13 @@     , vaState     , vaVPCId +    -- ** VPCCidrBlockAssociation+    , VPCCidrBlockAssociation+    , vpcCidrBlockAssociation+    , vcbaAssociationId+    , vcbaCidrBlockState+    , vcbaCidrBlock+     -- ** VPCCidrBlockState     , VPCCidrBlockState     , vpcCidrBlockState@@ -2758,9 +3078,15 @@     -- ** VPCEndpoint     , VPCEndpoint     , vpcEndpoint+    , veGroups     , veState     , vePolicyDocument+    , veSubnetIds+    , veNetworkInterfaceIds     , veVPCId+    , veDNSEntries+    , veVPCEndpointType+    , vePrivateDNSEnabled     , veCreationTimestamp     , veServiceName     , veVPCEndpointId@@ -2799,6 +3125,7 @@     -- ** VPCPeeringConnectionVPCInfo     , VPCPeeringConnectionVPCInfo     , vpcPeeringConnectionVPCInfo+    , vpcviCidrBlockSet     , vpcviVPCId     , vpcviOwnerId     , vpcviPeeringOptions@@ -2811,6 +3138,7 @@     , vcCustomerGatewayConfiguration     , vcRoutes     , vcVPNGatewayId+    , vcCategory     , vcOptions     , vcTags     , vcVGWTelemetry@@ -2827,6 +3155,7 @@     -- ** VPNConnectionOptionsSpecification     , VPNConnectionOptionsSpecification     , vpnConnectionOptionsSpecification+    , vcosTunnelOptions     , vcosStaticRoutesOnly      -- ** VPNGateway@@ -2835,6 +3164,7 @@     , vgState     , vgVPCAttachments     , vgVPNGatewayId+    , vgAmazonSideASN     , vgAvailabilityZone     , vgType     , vgTags@@ -2846,6 +3176,12 @@     , vsrSource     , vsrDestinationCidrBlock +    -- ** VPNTunnelOptionsSpecification+    , VPNTunnelOptionsSpecification+    , vpnTunnelOptionsSpecification+    , vtosTunnelInsideCidr+    , vtosPreSharedKey+     -- ** Volume     , Volume     , volume@@ -2877,6 +3213,22 @@     , volumeDetail     , vdSize +    -- ** VolumeModification+    , VolumeModification+    , volumeModification+    , vmProgress+    , vmStartTime+    , vmModificationState+    , vmTargetVolumeType+    , vmOriginalVolumeType+    , vmTargetSize+    , vmTargetIOPS+    , vmOriginalSize+    , vmOriginalIOPS+    , vmStatusMessage+    , vmEndTime+    , vmVolumeId+     -- ** VolumeStatusAction     , VolumeStatusAction     , volumeStatusAction@@ -2916,230 +3268,252 @@     , vsiVolumeId     ) where -import           Network.AWS.EC2.AcceptReservedInstancesExchangeQuote-import           Network.AWS.EC2.AcceptVPCPeeringConnection-import           Network.AWS.EC2.AllocateAddress-import           Network.AWS.EC2.AllocateHosts-import           Network.AWS.EC2.AssignIPv6Addresses-import           Network.AWS.EC2.AssignPrivateIPAddresses-import           Network.AWS.EC2.AssociateAddress-import           Network.AWS.EC2.AssociateDHCPOptions-import           Network.AWS.EC2.AssociateRouteTable-import           Network.AWS.EC2.AssociateSubnetCidrBlock-import           Network.AWS.EC2.AssociateVPCCidrBlock-import           Network.AWS.EC2.AttachClassicLinkVPC-import           Network.AWS.EC2.AttachInternetGateway-import           Network.AWS.EC2.AttachNetworkInterface-import           Network.AWS.EC2.AttachVolume-import           Network.AWS.EC2.AttachVPNGateway-import           Network.AWS.EC2.AuthorizeSecurityGroupEgress-import           Network.AWS.EC2.AuthorizeSecurityGroupIngress-import           Network.AWS.EC2.BundleInstance-import           Network.AWS.EC2.CancelBundleTask-import           Network.AWS.EC2.CancelConversionTask-import           Network.AWS.EC2.CancelExportTask-import           Network.AWS.EC2.CancelImportTask-import           Network.AWS.EC2.CancelReservedInstancesListing-import           Network.AWS.EC2.CancelSpotFleetRequests-import           Network.AWS.EC2.CancelSpotInstanceRequests-import           Network.AWS.EC2.ConfirmProductInstance-import           Network.AWS.EC2.CopyImage-import           Network.AWS.EC2.CopySnapshot-import           Network.AWS.EC2.CreateCustomerGateway-import           Network.AWS.EC2.CreateDHCPOptions-import           Network.AWS.EC2.CreateEgressOnlyInternetGateway-import           Network.AWS.EC2.CreateFlowLogs-import           Network.AWS.EC2.CreateImage-import           Network.AWS.EC2.CreateInstanceExportTask-import           Network.AWS.EC2.CreateInternetGateway-import           Network.AWS.EC2.CreateKeyPair-import           Network.AWS.EC2.CreateNatGateway-import           Network.AWS.EC2.CreateNetworkACL-import           Network.AWS.EC2.CreateNetworkACLEntry-import           Network.AWS.EC2.CreateNetworkInterface-import           Network.AWS.EC2.CreatePlacementGroup-import           Network.AWS.EC2.CreateReservedInstancesListing-import           Network.AWS.EC2.CreateRoute-import           Network.AWS.EC2.CreateRouteTable-import           Network.AWS.EC2.CreateSecurityGroup-import           Network.AWS.EC2.CreateSnapshot-import           Network.AWS.EC2.CreateSpotDatafeedSubscription-import           Network.AWS.EC2.CreateSubnet-import           Network.AWS.EC2.CreateTags-import           Network.AWS.EC2.CreateVolume-import           Network.AWS.EC2.CreateVPC-import           Network.AWS.EC2.CreateVPCEndpoint-import           Network.AWS.EC2.CreateVPCPeeringConnection-import           Network.AWS.EC2.CreateVPNConnection-import           Network.AWS.EC2.CreateVPNConnectionRoute-import           Network.AWS.EC2.CreateVPNGateway-import           Network.AWS.EC2.DeleteCustomerGateway-import           Network.AWS.EC2.DeleteDHCPOptions-import           Network.AWS.EC2.DeleteEgressOnlyInternetGateway-import           Network.AWS.EC2.DeleteFlowLogs-import           Network.AWS.EC2.DeleteInternetGateway-import           Network.AWS.EC2.DeleteKeyPair-import           Network.AWS.EC2.DeleteNatGateway-import           Network.AWS.EC2.DeleteNetworkACL-import           Network.AWS.EC2.DeleteNetworkACLEntry-import           Network.AWS.EC2.DeleteNetworkInterface-import           Network.AWS.EC2.DeletePlacementGroup-import           Network.AWS.EC2.DeleteRoute-import           Network.AWS.EC2.DeleteRouteTable-import           Network.AWS.EC2.DeleteSecurityGroup-import           Network.AWS.EC2.DeleteSnapshot-import           Network.AWS.EC2.DeleteSpotDatafeedSubscription-import           Network.AWS.EC2.DeleteSubnet-import           Network.AWS.EC2.DeleteTags-import           Network.AWS.EC2.DeleteVolume-import           Network.AWS.EC2.DeleteVPC-import           Network.AWS.EC2.DeleteVPCEndpoints-import           Network.AWS.EC2.DeleteVPCPeeringConnection-import           Network.AWS.EC2.DeleteVPNConnection-import           Network.AWS.EC2.DeleteVPNConnectionRoute-import           Network.AWS.EC2.DeleteVPNGateway-import           Network.AWS.EC2.DeregisterImage-import           Network.AWS.EC2.DescribeAccountAttributes-import           Network.AWS.EC2.DescribeAddresses-import           Network.AWS.EC2.DescribeAvailabilityZones-import           Network.AWS.EC2.DescribeBundleTasks-import           Network.AWS.EC2.DescribeClassicLinkInstances-import           Network.AWS.EC2.DescribeConversionTasks-import           Network.AWS.EC2.DescribeCustomerGateways-import           Network.AWS.EC2.DescribeDHCPOptions-import           Network.AWS.EC2.DescribeEgressOnlyInternetGateways-import           Network.AWS.EC2.DescribeExportTasks-import           Network.AWS.EC2.DescribeFlowLogs-import           Network.AWS.EC2.DescribeHostReservationOfferings-import           Network.AWS.EC2.DescribeHostReservations-import           Network.AWS.EC2.DescribeHosts-import           Network.AWS.EC2.DescribeIdentityIdFormat-import           Network.AWS.EC2.DescribeIdFormat-import           Network.AWS.EC2.DescribeImageAttribute-import           Network.AWS.EC2.DescribeImages-import           Network.AWS.EC2.DescribeImportImageTasks-import           Network.AWS.EC2.DescribeImportSnapshotTasks-import           Network.AWS.EC2.DescribeInstanceAttribute-import           Network.AWS.EC2.DescribeInstances-import           Network.AWS.EC2.DescribeInstanceStatus-import           Network.AWS.EC2.DescribeInternetGateways-import           Network.AWS.EC2.DescribeKeyPairs-import           Network.AWS.EC2.DescribeMovingAddresses-import           Network.AWS.EC2.DescribeNatGateways-import           Network.AWS.EC2.DescribeNetworkACLs-import           Network.AWS.EC2.DescribeNetworkInterfaceAttribute-import           Network.AWS.EC2.DescribeNetworkInterfaces-import           Network.AWS.EC2.DescribePlacementGroups-import           Network.AWS.EC2.DescribePrefixLists-import           Network.AWS.EC2.DescribeRegions-import           Network.AWS.EC2.DescribeReservedInstances-import           Network.AWS.EC2.DescribeReservedInstancesListings-import           Network.AWS.EC2.DescribeReservedInstancesModifications-import           Network.AWS.EC2.DescribeReservedInstancesOfferings-import           Network.AWS.EC2.DescribeRouteTables-import           Network.AWS.EC2.DescribeScheduledInstanceAvailability-import           Network.AWS.EC2.DescribeScheduledInstances-import           Network.AWS.EC2.DescribeSecurityGroupReferences-import           Network.AWS.EC2.DescribeSecurityGroups-import           Network.AWS.EC2.DescribeSnapshotAttribute-import           Network.AWS.EC2.DescribeSnapshots-import           Network.AWS.EC2.DescribeSpotDatafeedSubscription-import           Network.AWS.EC2.DescribeSpotFleetInstances-import           Network.AWS.EC2.DescribeSpotFleetRequestHistory-import           Network.AWS.EC2.DescribeSpotFleetRequests-import           Network.AWS.EC2.DescribeSpotInstanceRequests-import           Network.AWS.EC2.DescribeSpotPriceHistory-import           Network.AWS.EC2.DescribeStaleSecurityGroups-import           Network.AWS.EC2.DescribeSubnets-import           Network.AWS.EC2.DescribeTags-import           Network.AWS.EC2.DescribeVolumeAttribute-import           Network.AWS.EC2.DescribeVolumes-import           Network.AWS.EC2.DescribeVolumeStatus-import           Network.AWS.EC2.DescribeVPCAttribute-import           Network.AWS.EC2.DescribeVPCClassicLink-import           Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport-import           Network.AWS.EC2.DescribeVPCEndpoints-import           Network.AWS.EC2.DescribeVPCEndpointServices-import           Network.AWS.EC2.DescribeVPCPeeringConnections-import           Network.AWS.EC2.DescribeVPCs-import           Network.AWS.EC2.DescribeVPNConnections-import           Network.AWS.EC2.DescribeVPNGateways-import           Network.AWS.EC2.DetachClassicLinkVPC-import           Network.AWS.EC2.DetachInternetGateway-import           Network.AWS.EC2.DetachNetworkInterface-import           Network.AWS.EC2.DetachVolume-import           Network.AWS.EC2.DetachVPNGateway-import           Network.AWS.EC2.DisableVGWRoutePropagation-import           Network.AWS.EC2.DisableVPCClassicLink-import           Network.AWS.EC2.DisableVPCClassicLinkDNSSupport-import           Network.AWS.EC2.DisassociateAddress-import           Network.AWS.EC2.DisassociateRouteTable-import           Network.AWS.EC2.DisassociateSubnetCidrBlock-import           Network.AWS.EC2.DisassociateVPCCidrBlock-import           Network.AWS.EC2.EnableVGWRoutePropagation-import           Network.AWS.EC2.EnableVolumeIO-import           Network.AWS.EC2.EnableVPCClassicLink-import           Network.AWS.EC2.EnableVPCClassicLinkDNSSupport-import           Network.AWS.EC2.GetConsoleOutput-import           Network.AWS.EC2.GetConsoleScreenshot-import           Network.AWS.EC2.GetHostReservationPurchasePreview-import           Network.AWS.EC2.GetPasswordData-import           Network.AWS.EC2.GetReservedInstancesExchangeQuote-import           Network.AWS.EC2.ImportImage-import           Network.AWS.EC2.ImportInstance-import           Network.AWS.EC2.ImportKeyPair-import           Network.AWS.EC2.ImportSnapshot-import           Network.AWS.EC2.ImportVolume-import           Network.AWS.EC2.Internal-import           Network.AWS.EC2.ModifyHosts-import           Network.AWS.EC2.ModifyIdentityIdFormat-import           Network.AWS.EC2.ModifyIdFormat-import           Network.AWS.EC2.ModifyImageAttribute-import           Network.AWS.EC2.ModifyInstanceAttribute-import           Network.AWS.EC2.ModifyInstancePlacement-import           Network.AWS.EC2.ModifyNetworkInterfaceAttribute-import           Network.AWS.EC2.ModifyReservedInstances-import           Network.AWS.EC2.ModifySnapshotAttribute-import           Network.AWS.EC2.ModifySpotFleetRequest-import           Network.AWS.EC2.ModifySubnetAttribute-import           Network.AWS.EC2.ModifyVolumeAttribute-import           Network.AWS.EC2.ModifyVPCAttribute-import           Network.AWS.EC2.ModifyVPCEndpoint-import           Network.AWS.EC2.ModifyVPCPeeringConnectionOptions-import           Network.AWS.EC2.MonitorInstances-import           Network.AWS.EC2.MoveAddressToVPC-import           Network.AWS.EC2.PurchaseHostReservation-import           Network.AWS.EC2.PurchaseReservedInstancesOffering-import           Network.AWS.EC2.PurchaseScheduledInstances-import           Network.AWS.EC2.RebootInstances-import           Network.AWS.EC2.RegisterImage-import           Network.AWS.EC2.RejectVPCPeeringConnection-import           Network.AWS.EC2.ReleaseAddress-import           Network.AWS.EC2.ReleaseHosts-import           Network.AWS.EC2.ReplaceNetworkACLAssociation-import           Network.AWS.EC2.ReplaceNetworkACLEntry-import           Network.AWS.EC2.ReplaceRoute-import           Network.AWS.EC2.ReplaceRouteTableAssociation-import           Network.AWS.EC2.ReportInstanceStatus-import           Network.AWS.EC2.RequestSpotFleet-import           Network.AWS.EC2.RequestSpotInstances-import           Network.AWS.EC2.ResetImageAttribute-import           Network.AWS.EC2.ResetInstanceAttribute-import           Network.AWS.EC2.ResetNetworkInterfaceAttribute-import           Network.AWS.EC2.ResetSnapshotAttribute-import           Network.AWS.EC2.RestoreAddressToClassic-import           Network.AWS.EC2.RevokeSecurityGroupEgress-import           Network.AWS.EC2.RevokeSecurityGroupIngress-import           Network.AWS.EC2.RunInstances-import           Network.AWS.EC2.RunScheduledInstances-import           Network.AWS.EC2.StartInstances-import           Network.AWS.EC2.StopInstances-import           Network.AWS.EC2.TerminateInstances-import           Network.AWS.EC2.Types-import           Network.AWS.EC2.UnassignIPv6Addresses-import           Network.AWS.EC2.UnassignPrivateIPAddresses-import           Network.AWS.EC2.UnmonitorInstances-import           Network.AWS.EC2.Waiters+import Network.AWS.EC2.AcceptReservedInstancesExchangeQuote+import Network.AWS.EC2.AcceptVPCPeeringConnection+import Network.AWS.EC2.AllocateAddress+import Network.AWS.EC2.AllocateHosts+import Network.AWS.EC2.AssignIPv6Addresses+import Network.AWS.EC2.AssignPrivateIPAddresses+import Network.AWS.EC2.AssociateAddress+import Network.AWS.EC2.AssociateDHCPOptions+import Network.AWS.EC2.AssociateIAMInstanceProfile+import Network.AWS.EC2.AssociateRouteTable+import Network.AWS.EC2.AssociateSubnetCidrBlock+import Network.AWS.EC2.AssociateVPCCidrBlock+import Network.AWS.EC2.AttachClassicLinkVPC+import Network.AWS.EC2.AttachInternetGateway+import Network.AWS.EC2.AttachNetworkInterface+import Network.AWS.EC2.AttachVolume+import Network.AWS.EC2.AttachVPNGateway+import Network.AWS.EC2.AuthorizeSecurityGroupEgress+import Network.AWS.EC2.AuthorizeSecurityGroupIngress+import Network.AWS.EC2.BundleInstance+import Network.AWS.EC2.CancelBundleTask+import Network.AWS.EC2.CancelConversionTask+import Network.AWS.EC2.CancelExportTask+import Network.AWS.EC2.CancelImportTask+import Network.AWS.EC2.CancelReservedInstancesListing+import Network.AWS.EC2.CancelSpotFleetRequests+import Network.AWS.EC2.CancelSpotInstanceRequests+import Network.AWS.EC2.ConfirmProductInstance+import Network.AWS.EC2.CopyFpgaImage+import Network.AWS.EC2.CopyImage+import Network.AWS.EC2.CopySnapshot+import Network.AWS.EC2.CreateCustomerGateway+import Network.AWS.EC2.CreateDefaultSubnet+import Network.AWS.EC2.CreateDefaultVPC+import Network.AWS.EC2.CreateDHCPOptions+import Network.AWS.EC2.CreateEgressOnlyInternetGateway+import Network.AWS.EC2.CreateFlowLogs+import Network.AWS.EC2.CreateFpgaImage+import Network.AWS.EC2.CreateImage+import Network.AWS.EC2.CreateInstanceExportTask+import Network.AWS.EC2.CreateInternetGateway+import Network.AWS.EC2.CreateKeyPair+import Network.AWS.EC2.CreateNatGateway+import Network.AWS.EC2.CreateNetworkACL+import Network.AWS.EC2.CreateNetworkACLEntry+import Network.AWS.EC2.CreateNetworkInterface+import Network.AWS.EC2.CreateNetworkInterfacePermission+import Network.AWS.EC2.CreatePlacementGroup+import Network.AWS.EC2.CreateReservedInstancesListing+import Network.AWS.EC2.CreateRoute+import Network.AWS.EC2.CreateRouteTable+import Network.AWS.EC2.CreateSecurityGroup+import Network.AWS.EC2.CreateSnapshot+import Network.AWS.EC2.CreateSpotDatafeedSubscription+import Network.AWS.EC2.CreateSubnet+import Network.AWS.EC2.CreateTags+import Network.AWS.EC2.CreateVolume+import Network.AWS.EC2.CreateVPC+import Network.AWS.EC2.CreateVPCEndpoint+import Network.AWS.EC2.CreateVPCPeeringConnection+import Network.AWS.EC2.CreateVPNConnection+import Network.AWS.EC2.CreateVPNConnectionRoute+import Network.AWS.EC2.CreateVPNGateway+import Network.AWS.EC2.DeleteCustomerGateway+import Network.AWS.EC2.DeleteDHCPOptions+import Network.AWS.EC2.DeleteEgressOnlyInternetGateway+import Network.AWS.EC2.DeleteFlowLogs+import Network.AWS.EC2.DeleteFpgaImage+import Network.AWS.EC2.DeleteInternetGateway+import Network.AWS.EC2.DeleteKeyPair+import Network.AWS.EC2.DeleteNatGateway+import Network.AWS.EC2.DeleteNetworkACL+import Network.AWS.EC2.DeleteNetworkACLEntry+import Network.AWS.EC2.DeleteNetworkInterface+import Network.AWS.EC2.DeleteNetworkInterfacePermission+import Network.AWS.EC2.DeletePlacementGroup+import Network.AWS.EC2.DeleteRoute+import Network.AWS.EC2.DeleteRouteTable+import Network.AWS.EC2.DeleteSecurityGroup+import Network.AWS.EC2.DeleteSnapshot+import Network.AWS.EC2.DeleteSpotDatafeedSubscription+import Network.AWS.EC2.DeleteSubnet+import Network.AWS.EC2.DeleteTags+import Network.AWS.EC2.DeleteVolume+import Network.AWS.EC2.DeleteVPC+import Network.AWS.EC2.DeleteVPCEndpoints+import Network.AWS.EC2.DeleteVPCPeeringConnection+import Network.AWS.EC2.DeleteVPNConnection+import Network.AWS.EC2.DeleteVPNConnectionRoute+import Network.AWS.EC2.DeleteVPNGateway+import Network.AWS.EC2.DeregisterImage+import Network.AWS.EC2.DescribeAccountAttributes+import Network.AWS.EC2.DescribeAddresses+import Network.AWS.EC2.DescribeAvailabilityZones+import Network.AWS.EC2.DescribeBundleTasks+import Network.AWS.EC2.DescribeClassicLinkInstances+import Network.AWS.EC2.DescribeConversionTasks+import Network.AWS.EC2.DescribeCustomerGateways+import Network.AWS.EC2.DescribeDHCPOptions+import Network.AWS.EC2.DescribeEgressOnlyInternetGateways+import Network.AWS.EC2.DescribeElasticGpus+import Network.AWS.EC2.DescribeExportTasks+import Network.AWS.EC2.DescribeFlowLogs+import Network.AWS.EC2.DescribeFpgaImageAttribute+import Network.AWS.EC2.DescribeFpgaImages+import Network.AWS.EC2.DescribeHostReservationOfferings+import Network.AWS.EC2.DescribeHostReservations+import Network.AWS.EC2.DescribeHosts+import Network.AWS.EC2.DescribeIAMInstanceProfileAssociations+import Network.AWS.EC2.DescribeIdentityIdFormat+import Network.AWS.EC2.DescribeIdFormat+import Network.AWS.EC2.DescribeImageAttribute+import Network.AWS.EC2.DescribeImages+import Network.AWS.EC2.DescribeImportImageTasks+import Network.AWS.EC2.DescribeImportSnapshotTasks+import Network.AWS.EC2.DescribeInstanceAttribute+import Network.AWS.EC2.DescribeInstances+import Network.AWS.EC2.DescribeInstanceStatus+import Network.AWS.EC2.DescribeInternetGateways+import Network.AWS.EC2.DescribeKeyPairs+import Network.AWS.EC2.DescribeMovingAddresses+import Network.AWS.EC2.DescribeNatGateways+import Network.AWS.EC2.DescribeNetworkACLs+import Network.AWS.EC2.DescribeNetworkInterfaceAttribute+import Network.AWS.EC2.DescribeNetworkInterfacePermissions+import Network.AWS.EC2.DescribeNetworkInterfaces+import Network.AWS.EC2.DescribePlacementGroups+import Network.AWS.EC2.DescribePrefixLists+import Network.AWS.EC2.DescribeRegions+import Network.AWS.EC2.DescribeReservedInstances+import Network.AWS.EC2.DescribeReservedInstancesListings+import Network.AWS.EC2.DescribeReservedInstancesModifications+import Network.AWS.EC2.DescribeReservedInstancesOfferings+import Network.AWS.EC2.DescribeRouteTables+import Network.AWS.EC2.DescribeScheduledInstanceAvailability+import Network.AWS.EC2.DescribeScheduledInstances+import Network.AWS.EC2.DescribeSecurityGroupReferences+import Network.AWS.EC2.DescribeSecurityGroups+import Network.AWS.EC2.DescribeSnapshotAttribute+import Network.AWS.EC2.DescribeSnapshots+import Network.AWS.EC2.DescribeSpotDatafeedSubscription+import Network.AWS.EC2.DescribeSpotFleetInstances+import Network.AWS.EC2.DescribeSpotFleetRequestHistory+import Network.AWS.EC2.DescribeSpotFleetRequests+import Network.AWS.EC2.DescribeSpotInstanceRequests+import Network.AWS.EC2.DescribeSpotPriceHistory+import Network.AWS.EC2.DescribeStaleSecurityGroups+import Network.AWS.EC2.DescribeSubnets+import Network.AWS.EC2.DescribeTags+import Network.AWS.EC2.DescribeVolumeAttribute+import Network.AWS.EC2.DescribeVolumes+import Network.AWS.EC2.DescribeVolumesModifications+import Network.AWS.EC2.DescribeVolumeStatus+import Network.AWS.EC2.DescribeVPCAttribute+import Network.AWS.EC2.DescribeVPCClassicLink+import Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport+import Network.AWS.EC2.DescribeVPCEndpoints+import Network.AWS.EC2.DescribeVPCEndpointServices+import Network.AWS.EC2.DescribeVPCPeeringConnections+import Network.AWS.EC2.DescribeVPCs+import Network.AWS.EC2.DescribeVPNConnections+import Network.AWS.EC2.DescribeVPNGateways+import Network.AWS.EC2.DetachClassicLinkVPC+import Network.AWS.EC2.DetachInternetGateway+import Network.AWS.EC2.DetachNetworkInterface+import Network.AWS.EC2.DetachVolume+import Network.AWS.EC2.DetachVPNGateway+import Network.AWS.EC2.DisableVGWRoutePropagation+import Network.AWS.EC2.DisableVPCClassicLink+import Network.AWS.EC2.DisableVPCClassicLinkDNSSupport+import Network.AWS.EC2.DisassociateAddress+import Network.AWS.EC2.DisassociateIAMInstanceProfile+import Network.AWS.EC2.DisassociateRouteTable+import Network.AWS.EC2.DisassociateSubnetCidrBlock+import Network.AWS.EC2.DisassociateVPCCidrBlock+import Network.AWS.EC2.EnableVGWRoutePropagation+import Network.AWS.EC2.EnableVolumeIO+import Network.AWS.EC2.EnableVPCClassicLink+import Network.AWS.EC2.EnableVPCClassicLinkDNSSupport+import Network.AWS.EC2.GetConsoleOutput+import Network.AWS.EC2.GetConsoleScreenshot+import Network.AWS.EC2.GetHostReservationPurchasePreview+import Network.AWS.EC2.GetPasswordData+import Network.AWS.EC2.GetReservedInstancesExchangeQuote+import Network.AWS.EC2.ImportImage+import Network.AWS.EC2.ImportInstance+import Network.AWS.EC2.ImportKeyPair+import Network.AWS.EC2.ImportSnapshot+import Network.AWS.EC2.ImportVolume+import Network.AWS.EC2.Internal+import Network.AWS.EC2.ModifyFpgaImageAttribute+import Network.AWS.EC2.ModifyHosts+import Network.AWS.EC2.ModifyIdentityIdFormat+import Network.AWS.EC2.ModifyIdFormat+import Network.AWS.EC2.ModifyImageAttribute+import Network.AWS.EC2.ModifyInstanceAttribute+import Network.AWS.EC2.ModifyInstancePlacement+import Network.AWS.EC2.ModifyNetworkInterfaceAttribute+import Network.AWS.EC2.ModifyReservedInstances+import Network.AWS.EC2.ModifySnapshotAttribute+import Network.AWS.EC2.ModifySpotFleetRequest+import Network.AWS.EC2.ModifySubnetAttribute+import Network.AWS.EC2.ModifyVolume+import Network.AWS.EC2.ModifyVolumeAttribute+import Network.AWS.EC2.ModifyVPCAttribute+import Network.AWS.EC2.ModifyVPCEndpoint+import Network.AWS.EC2.ModifyVPCPeeringConnectionOptions+import Network.AWS.EC2.ModifyVPCTenancy+import Network.AWS.EC2.MonitorInstances+import Network.AWS.EC2.MoveAddressToVPC+import Network.AWS.EC2.PurchaseHostReservation+import Network.AWS.EC2.PurchaseReservedInstancesOffering+import Network.AWS.EC2.PurchaseScheduledInstances+import Network.AWS.EC2.RebootInstances+import Network.AWS.EC2.RegisterImage+import Network.AWS.EC2.RejectVPCPeeringConnection+import Network.AWS.EC2.ReleaseAddress+import Network.AWS.EC2.ReleaseHosts+import Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation+import Network.AWS.EC2.ReplaceNetworkACLAssociation+import Network.AWS.EC2.ReplaceNetworkACLEntry+import Network.AWS.EC2.ReplaceRoute+import Network.AWS.EC2.ReplaceRouteTableAssociation+import Network.AWS.EC2.ReportInstanceStatus+import Network.AWS.EC2.RequestSpotFleet+import Network.AWS.EC2.RequestSpotInstances+import Network.AWS.EC2.ResetFpgaImageAttribute+import Network.AWS.EC2.ResetImageAttribute+import Network.AWS.EC2.ResetInstanceAttribute+import Network.AWS.EC2.ResetNetworkInterfaceAttribute+import Network.AWS.EC2.ResetSnapshotAttribute+import Network.AWS.EC2.RestoreAddressToClassic+import Network.AWS.EC2.RevokeSecurityGroupEgress+import Network.AWS.EC2.RevokeSecurityGroupIngress+import Network.AWS.EC2.RunInstances+import Network.AWS.EC2.RunScheduledInstances+import Network.AWS.EC2.StartInstances+import Network.AWS.EC2.StopInstances+import Network.AWS.EC2.TerminateInstances+import Network.AWS.EC2.Types+import Network.AWS.EC2.UnassignIPv6Addresses+import Network.AWS.EC2.UnassignPrivateIPAddresses+import Network.AWS.EC2.UnmonitorInstances+import Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress+import Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress+import Network.AWS.EC2.Waiters  {- $errors Error matchers are designed for use with the functions provided by
gen/Network/AWS/EC2/AcceptReservedInstancesExchangeQuote.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AcceptReservedInstancesExchangeQuote--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , arieqrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for accepting the quote. --@@ -52,30 +52,32 @@ -- -- /See:/ 'acceptReservedInstancesExchangeQuote' smart constructor. data AcceptReservedInstancesExchangeQuote = AcceptReservedInstancesExchangeQuote'-    { _arieqTargetConfigurations :: !(Maybe [TargetConfigurationRequest])-    , _arieqDryRun               :: !(Maybe Bool)-    , _arieqReservedInstanceIds  :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _arieqTargetConfigurations :: !(Maybe [TargetConfigurationRequest])+  , _arieqDryRun               :: !(Maybe Bool)+  , _arieqReservedInstanceIds  :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AcceptReservedInstancesExchangeQuote' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'arieqTargetConfigurations' - The configurations of the Convertible Reserved Instance offerings that you are purchasing in this exchange.+-- * 'arieqTargetConfigurations' - The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances. -- -- * 'arieqDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'arieqReservedInstanceIds' - The IDs of the Convertible Reserved Instances to exchange for other Convertible Reserved Instances of the same or higher value.+-- * 'arieqReservedInstanceIds' - The IDs of the Convertible Reserved Instances to exchange for another Convertible Reserved Instance of the same or higher value. acceptReservedInstancesExchangeQuote     :: AcceptReservedInstancesExchangeQuote acceptReservedInstancesExchangeQuote =-    AcceptReservedInstancesExchangeQuote'-    { _arieqTargetConfigurations = Nothing-    , _arieqDryRun = Nothing-    , _arieqReservedInstanceIds = mempty-    }+  AcceptReservedInstancesExchangeQuote'+  { _arieqTargetConfigurations = Nothing+  , _arieqDryRun = Nothing+  , _arieqReservedInstanceIds = mempty+  } --- | The configurations of the Convertible Reserved Instance offerings that you are purchasing in this exchange.++-- | The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances. arieqTargetConfigurations :: Lens' AcceptReservedInstancesExchangeQuote [TargetConfigurationRequest] arieqTargetConfigurations = lens _arieqTargetConfigurations (\ s a -> s{_arieqTargetConfigurations = a}) . _Default . _Coerce; @@ -83,12 +85,13 @@ arieqDryRun :: Lens' AcceptReservedInstancesExchangeQuote (Maybe Bool) arieqDryRun = lens _arieqDryRun (\ s a -> s{_arieqDryRun = a}); --- | The IDs of the Convertible Reserved Instances to exchange for other Convertible Reserved Instances of the same or higher value.+-- | The IDs of the Convertible Reserved Instances to exchange for another Convertible Reserved Instance of the same or higher value. arieqReservedInstanceIds :: Lens' AcceptReservedInstancesExchangeQuote [Text] arieqReservedInstanceIds = lens _arieqReservedInstanceIds (\ s a -> s{_arieqReservedInstanceIds = a}) . _Coerce;  instance AWSRequest-         AcceptReservedInstancesExchangeQuote where+           AcceptReservedInstancesExchangeQuote+         where         type Rs AcceptReservedInstancesExchangeQuote =              AcceptReservedInstancesExchangeQuoteResponse         request = postQuery ec2@@ -99,12 +102,15 @@                    (x .@? "exchangeId") <*> (pure (fromEnum s)))  instance Hashable-         AcceptReservedInstancesExchangeQuote+           AcceptReservedInstancesExchangeQuote+         where  instance NFData AcceptReservedInstancesExchangeQuote+         where  instance ToHeaders-         AcceptReservedInstancesExchangeQuote where+           AcceptReservedInstancesExchangeQuote+         where         toHeaders = const mempty  instance ToPath AcceptReservedInstancesExchangeQuote@@ -132,10 +138,11 @@ -- -- /See:/ 'acceptReservedInstancesExchangeQuoteResponse' smart constructor. data AcceptReservedInstancesExchangeQuoteResponse = AcceptReservedInstancesExchangeQuoteResponse'-    { _arieqrsExchangeId     :: !(Maybe Text)-    , _arieqrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _arieqrsExchangeId     :: !(Maybe Text)+  , _arieqrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AcceptReservedInstancesExchangeQuoteResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -147,11 +154,10 @@     :: Int -- ^ 'arieqrsResponseStatus'     -> AcceptReservedInstancesExchangeQuoteResponse acceptReservedInstancesExchangeQuoteResponse pResponseStatus_ =-    AcceptReservedInstancesExchangeQuoteResponse'-    { _arieqrsExchangeId = Nothing-    , _arieqrsResponseStatus = pResponseStatus_-    }+  AcceptReservedInstancesExchangeQuoteResponse'+  {_arieqrsExchangeId = Nothing, _arieqrsResponseStatus = pResponseStatus_} + -- | The ID of the successful exchange. arieqrsExchangeId :: Lens' AcceptReservedInstancesExchangeQuoteResponse (Maybe Text) arieqrsExchangeId = lens _arieqrsExchangeId (\ s a -> s{_arieqrsExchangeId = a});@@ -161,4 +167,5 @@ arieqrsResponseStatus = lens _arieqrsResponseStatus (\ s a -> s{_arieqrsResponseStatus = a});  instance NFData-         AcceptReservedInstancesExchangeQuoteResponse+           AcceptReservedInstancesExchangeQuoteResponse+         where
gen/Network/AWS/EC2/AcceptVPCPeeringConnection.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.AcceptVPCPeeringConnection--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the @pending-acceptance@ state, and you must be the owner of the peer VPC. Use the @DescribeVpcPeeringConnections@ request to view your outstanding VPC peering connection requests.+-- Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the @pending-acceptance@ state, and you must be the owner of the peer VPC. Use 'DescribeVpcPeeringConnections' to view your outstanding VPC peering connection requests. -- -- module Network.AWS.EC2.AcceptVPCPeeringConnection@@ -38,12 +38,12 @@     , avpcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AcceptVpcPeeringConnection. --@@ -51,10 +51,11 @@ -- -- /See:/ 'acceptVPCPeeringConnection' smart constructor. data AcceptVPCPeeringConnection = AcceptVPCPeeringConnection'-    { _avpcVPCPeeringConnectionId :: !(Maybe Text)-    , _avpcDryRun                 :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avpcVPCPeeringConnectionId :: !(Maybe Text)+  , _avpcDryRun                 :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AcceptVPCPeeringConnection' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,10 @@ acceptVPCPeeringConnection     :: AcceptVPCPeeringConnection acceptVPCPeeringConnection =-    AcceptVPCPeeringConnection'-    { _avpcVPCPeeringConnectionId = Nothing-    , _avpcDryRun = Nothing-    }+  AcceptVPCPeeringConnection'+  {_avpcVPCPeeringConnectionId = Nothing, _avpcDryRun = Nothing} + -- | The ID of the VPC peering connection. avpcVPCPeeringConnectionId :: Lens' AcceptVPCPeeringConnection (Maybe Text) avpcVPCPeeringConnectionId = lens _avpcVPCPeeringConnectionId (\ s a -> s{_avpcVPCPeeringConnectionId = a});@@ -89,9 +89,9 @@                    (x .@? "vpcPeeringConnection") <*>                      (pure (fromEnum s))) -instance Hashable AcceptVPCPeeringConnection+instance Hashable AcceptVPCPeeringConnection where -instance NFData AcceptVPCPeeringConnection+instance NFData AcceptVPCPeeringConnection where  instance ToHeaders AcceptVPCPeeringConnection where         toHeaders = const mempty@@ -115,10 +115,11 @@ -- -- /See:/ 'acceptVPCPeeringConnectionResponse' smart constructor. data AcceptVPCPeeringConnectionResponse = AcceptVPCPeeringConnectionResponse'-    { _avpcrsVPCPeeringConnection :: !(Maybe VPCPeeringConnection)-    , _avpcrsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avpcrsVPCPeeringConnection :: !(Maybe VPCPeeringConnection)+  , _avpcrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AcceptVPCPeeringConnectionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +131,12 @@     :: Int -- ^ 'avpcrsResponseStatus'     -> AcceptVPCPeeringConnectionResponse acceptVPCPeeringConnectionResponse pResponseStatus_ =-    AcceptVPCPeeringConnectionResponse'-    { _avpcrsVPCPeeringConnection = Nothing-    , _avpcrsResponseStatus = pResponseStatus_-    }+  AcceptVPCPeeringConnectionResponse'+  { _avpcrsVPCPeeringConnection = Nothing+  , _avpcrsResponseStatus = pResponseStatus_+  } + -- | Information about the VPC peering connection. avpcrsVPCPeeringConnection :: Lens' AcceptVPCPeeringConnectionResponse (Maybe VPCPeeringConnection) avpcrsVPCPeeringConnection = lens _avpcrsVPCPeeringConnection (\ s a -> s{_avpcrsVPCPeeringConnection = a});@@ -144,3 +146,4 @@ avpcrsResponseStatus = lens _avpcrsResponseStatus (\ s a -> s{_avpcrsResponseStatus = a});  instance NFData AcceptVPCPeeringConnectionResponse+         where
gen/Network/AWS/EC2/AllocateAddress.hs view
@@ -12,17 +12,21 @@  -- | -- Module      : Network.AWS.EC2.AllocateAddress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Acquires an Elastic IP address.+-- Allocates an Elastic IP address. -- ----- An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon Elastic Compute Cloud User Guide/ .+-- 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 @Address@ 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon Elastic Compute Cloud User Guide/ .+-- module Network.AWS.EC2.AllocateAddress     (     -- * Creating a Request@@ -30,6 +34,7 @@     , AllocateAddress     -- * Request Lenses     , aaDomain+    , aaAddress     , aaDryRun      -- * Destructuring the Response@@ -42,12 +47,12 @@     , aarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AllocateAddress. --@@ -55,29 +60,36 @@ -- -- /See:/ 'allocateAddress' smart constructor. data AllocateAddress = AllocateAddress'-    { _aaDomain :: !(Maybe DomainType)-    , _aaDryRun :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aaDomain  :: !(Maybe DomainType)+  , _aaAddress :: !(Maybe Text)+  , _aaDryRun  :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AllocateAddress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aaDomain' - Set to @vpc@ to allocate the address for use with instances in a VPC. Default: The address is for use with instances in EC2-Classic. --+-- * 'aaAddress' - [EC2-VPC] The Elastic IP address to recover.+-- -- * 'aaDryRun' - Checks whether you have the required permissions for the action, 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@ . allocateAddress     :: AllocateAddress allocateAddress =-    AllocateAddress'-    { _aaDomain = Nothing-    , _aaDryRun = Nothing-    }+  AllocateAddress'+  {_aaDomain = Nothing, _aaAddress = Nothing, _aaDryRun = Nothing} + -- | Set to @vpc@ 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) aaDomain = lens _aaDomain (\ s a -> s{_aaDomain = a}); +-- | [EC2-VPC] The Elastic IP address to recover.+aaAddress :: Lens' AllocateAddress (Maybe Text)+aaAddress = lens _aaAddress (\ s a -> s{_aaAddress = a});+ -- | Checks whether you have the required permissions for the action, 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@ . aaDryRun :: Lens' AllocateAddress (Maybe Bool) aaDryRun = lens _aaDryRun (\ s a -> s{_aaDryRun = a});@@ -93,9 +105,9 @@                      (x .@? "publicIp")                      <*> (pure (fromEnum s))) -instance Hashable AllocateAddress+instance Hashable AllocateAddress where -instance NFData AllocateAddress+instance NFData AllocateAddress where  instance ToHeaders AllocateAddress where         toHeaders = const mempty@@ -108,7 +120,8 @@           = mconcat               ["Action" =: ("AllocateAddress" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "Domain" =: _aaDomain, "DryRun" =: _aaDryRun]+               "Domain" =: _aaDomain, "Address" =: _aaAddress,+               "DryRun" =: _aaDryRun]  -- | Contains the output of AllocateAddress. --@@ -116,12 +129,13 @@ -- -- /See:/ 'allocateAddressResponse' smart constructor. data AllocateAddressResponse = AllocateAddressResponse'-    { _aarsAllocationId   :: !(Maybe Text)-    , _aarsDomain         :: !(Maybe DomainType)-    , _aarsPublicIP       :: !(Maybe Text)-    , _aarsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aarsAllocationId   :: !(Maybe Text)+  , _aarsDomain         :: !(Maybe DomainType)+  , _aarsPublicIP       :: !(Maybe Text)+  , _aarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AllocateAddressResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -137,13 +151,14 @@     :: Int -- ^ 'aarsResponseStatus'     -> AllocateAddressResponse allocateAddressResponse pResponseStatus_ =-    AllocateAddressResponse'-    { _aarsAllocationId = Nothing-    , _aarsDomain = Nothing-    , _aarsPublicIP = Nothing-    , _aarsResponseStatus = pResponseStatus_-    }+  AllocateAddressResponse'+  { _aarsAllocationId = Nothing+  , _aarsDomain = Nothing+  , _aarsPublicIP = Nothing+  , _aarsResponseStatus = pResponseStatus_+  } + -- | [EC2-VPC] The ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC. aarsAllocationId :: Lens' AllocateAddressResponse (Maybe Text) aarsAllocationId = lens _aarsAllocationId (\ s a -> s{_aarsAllocationId = a});@@ -160,4 +175,4 @@ aarsResponseStatus :: Lens' AllocateAddressResponse Int aarsResponseStatus = lens _aarsResponseStatus (\ s a -> s{_aarsResponseStatus = a}); -instance NFData AllocateAddressResponse+instance NFData AllocateAddressResponse where
gen/Network/AWS/EC2/AllocateHosts.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AllocateHosts--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -29,9 +29,9 @@     -- * Request Lenses     , ahClientToken     , ahAutoPlacement+    , ahAvailabilityZone     , ahInstanceType     , ahQuantity-    , ahAvailabilityZone      -- * Destructuring the Response     , allocateHostsResponse@@ -41,12 +41,12 @@     , ahrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AllocateHosts. --@@ -54,13 +54,14 @@ -- -- /See:/ 'allocateHosts' smart constructor. data AllocateHosts = AllocateHosts'-    { _ahClientToken      :: !(Maybe Text)-    , _ahAutoPlacement    :: !(Maybe AutoPlacement)-    , _ahInstanceType     :: !Text-    , _ahQuantity         :: !Int-    , _ahAvailabilityZone :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ahClientToken      :: !(Maybe Text)+  , _ahAutoPlacement    :: !(Maybe AutoPlacement)+  , _ahAvailabilityZone :: !Text+  , _ahInstanceType     :: !Text+  , _ahQuantity         :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AllocateHosts' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,25 +70,26 @@ -- -- * 'ahAutoPlacement' - 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 --+-- * 'ahAvailabilityZone' - The Availability Zone for the Dedicated Hosts.+-- -- * 'ahInstanceType' - 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. -- -- * 'ahQuantity' - The number of Dedicated Hosts you want to allocate to your account with these parameters.------ * 'ahAvailabilityZone' - The Availability Zone for the Dedicated Hosts. allocateHosts-    :: Text -- ^ 'ahInstanceType'+    :: Text -- ^ 'ahAvailabilityZone'+    -> Text -- ^ 'ahInstanceType'     -> Int -- ^ 'ahQuantity'-    -> Text -- ^ 'ahAvailabilityZone'     -> AllocateHosts-allocateHosts pInstanceType_ pQuantity_ pAvailabilityZone_ =-    AllocateHosts'-    { _ahClientToken = Nothing-    , _ahAutoPlacement = Nothing-    , _ahInstanceType = pInstanceType_-    , _ahQuantity = pQuantity_-    , _ahAvailabilityZone = pAvailabilityZone_-    }+allocateHosts pAvailabilityZone_ pInstanceType_ pQuantity_ =+  AllocateHosts'+  { _ahClientToken = Nothing+  , _ahAutoPlacement = Nothing+  , _ahAvailabilityZone = pAvailabilityZone_+  , _ahInstanceType = pInstanceType_+  , _ahQuantity = pQuantity_+  } + -- | Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/ . ahClientToken :: Lens' AllocateHosts (Maybe Text) ahClientToken = lens _ahClientToken (\ s a -> s{_ahClientToken = a});@@ -96,6 +98,10 @@ ahAutoPlacement :: Lens' AllocateHosts (Maybe AutoPlacement) ahAutoPlacement = lens _ahAutoPlacement (\ s a -> s{_ahAutoPlacement = a}); +-- | The Availability Zone for the Dedicated Hosts.+ahAvailabilityZone :: Lens' AllocateHosts Text+ahAvailabilityZone = lens _ahAvailabilityZone (\ s a -> s{_ahAvailabilityZone = 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. ahInstanceType :: Lens' AllocateHosts Text ahInstanceType = lens _ahInstanceType (\ s a -> s{_ahInstanceType = a});@@ -104,10 +110,6 @@ ahQuantity :: Lens' AllocateHosts Int ahQuantity = lens _ahQuantity (\ s a -> s{_ahQuantity = a}); --- | The Availability Zone for the Dedicated Hosts.-ahAvailabilityZone :: Lens' AllocateHosts Text-ahAvailabilityZone = lens _ahAvailabilityZone (\ s a -> s{_ahAvailabilityZone = a});- instance AWSRequest AllocateHosts where         type Rs AllocateHosts = AllocateHostsResponse         request = postQuery ec2@@ -119,9 +121,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable AllocateHosts+instance Hashable AllocateHosts where -instance NFData AllocateHosts+instance NFData AllocateHosts where  instance ToHeaders AllocateHosts where         toHeaders = const mempty@@ -136,9 +138,9 @@                "Version" =: ("2016-11-15" :: ByteString),                "ClientToken" =: _ahClientToken,                "AutoPlacement" =: _ahAutoPlacement,+               "AvailabilityZone" =: _ahAvailabilityZone,                "InstanceType" =: _ahInstanceType,-               "Quantity" =: _ahQuantity,-               "AvailabilityZone" =: _ahAvailabilityZone]+               "Quantity" =: _ahQuantity]  -- | Contains the output of AllocateHosts. --@@ -146,10 +148,11 @@ -- -- /See:/ 'allocateHostsResponse' smart constructor. data AllocateHostsResponse = AllocateHostsResponse'-    { _ahrsHostIds        :: !(Maybe [Text])-    , _ahrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ahrsHostIds        :: !(Maybe [Text])+  , _ahrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AllocateHostsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -161,11 +164,10 @@     :: Int -- ^ 'ahrsResponseStatus'     -> AllocateHostsResponse allocateHostsResponse pResponseStatus_ =-    AllocateHostsResponse'-    { _ahrsHostIds = Nothing-    , _ahrsResponseStatus = pResponseStatus_-    }+  AllocateHostsResponse'+  {_ahrsHostIds = Nothing, _ahrsResponseStatus = pResponseStatus_} + -- | 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] ahrsHostIds = lens _ahrsHostIds (\ s a -> s{_ahrsHostIds = a}) . _Default . _Coerce;@@ -174,4 +176,4 @@ ahrsResponseStatus :: Lens' AllocateHostsResponse Int ahrsResponseStatus = lens _ahrsResponseStatus (\ s a -> s{_ahrsResponseStatus = a}); -instance NFData AllocateHostsResponse+instance NFData AllocateHostsResponse where
gen/Network/AWS/EC2/AssignIPv6Addresses.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AssignIPv6Addresses--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,20 +40,21 @@     , aiarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'assignIPv6Addresses' smart constructor. data AssignIPv6Addresses = AssignIPv6Addresses'-    { _aiaIPv6AddressCount   :: !(Maybe Int)-    , _aiaIPv6Addresses      :: !(Maybe [Text])-    , _aiaNetworkInterfaceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aiaIPv6AddressCount   :: !(Maybe Int)+  , _aiaIPv6Addresses      :: !(Maybe [Text])+  , _aiaNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssignIPv6Addresses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,12 +68,13 @@     :: Text -- ^ 'aiaNetworkInterfaceId'     -> AssignIPv6Addresses assignIPv6Addresses pNetworkInterfaceId_ =-    AssignIPv6Addresses'-    { _aiaIPv6AddressCount = Nothing-    , _aiaIPv6Addresses = Nothing-    , _aiaNetworkInterfaceId = pNetworkInterfaceId_-    }+  AssignIPv6Addresses'+  { _aiaIPv6AddressCount = Nothing+  , _aiaIPv6Addresses = Nothing+  , _aiaNetworkInterfaceId = pNetworkInterfaceId_+  } + -- | 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) aiaIPv6AddressCount = lens _aiaIPv6AddressCount (\ s a -> s{_aiaIPv6AddressCount = a});@@ -98,9 +100,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable AssignIPv6Addresses+instance Hashable AssignIPv6Addresses where -instance NFData AssignIPv6Addresses+instance NFData AssignIPv6Addresses where  instance ToHeaders AssignIPv6Addresses where         toHeaders = const mempty@@ -120,11 +122,12 @@  -- | /See:/ 'assignIPv6AddressesResponse' smart constructor. data AssignIPv6AddressesResponse = AssignIPv6AddressesResponse'-    { _aiarsNetworkInterfaceId    :: !(Maybe Text)-    , _aiarsAssignedIPv6Addresses :: !(Maybe [Text])-    , _aiarsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aiarsNetworkInterfaceId    :: !(Maybe Text)+  , _aiarsAssignedIPv6Addresses :: !(Maybe [Text])+  , _aiarsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssignIPv6AddressesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,12 +141,13 @@     :: Int -- ^ 'aiarsResponseStatus'     -> AssignIPv6AddressesResponse assignIPv6AddressesResponse pResponseStatus_ =-    AssignIPv6AddressesResponse'-    { _aiarsNetworkInterfaceId = Nothing-    , _aiarsAssignedIPv6Addresses = Nothing-    , _aiarsResponseStatus = pResponseStatus_-    }+  AssignIPv6AddressesResponse'+  { _aiarsNetworkInterfaceId = Nothing+  , _aiarsAssignedIPv6Addresses = Nothing+  , _aiarsResponseStatus = pResponseStatus_+  } + -- | The ID of the network interface. aiarsNetworkInterfaceId :: Lens' AssignIPv6AddressesResponse (Maybe Text) aiarsNetworkInterfaceId = lens _aiarsNetworkInterfaceId (\ s a -> s{_aiarsNetworkInterfaceId = a});@@ -156,4 +160,4 @@ aiarsResponseStatus :: Lens' AssignIPv6AddressesResponse Int aiarsResponseStatus = lens _aiarsResponseStatus (\ s a -> s{_aiarsResponseStatus = a}); -instance NFData AssignIPv6AddressesResponse+instance NFData AssignIPv6AddressesResponse where
gen/Network/AWS/EC2/AssignPrivateIPAddresses.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AssignPrivateIPAddresses--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , AssignPrivateIPAddressesResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AssignPrivateIpAddresses. --@@ -52,12 +52,13 @@ -- -- /See:/ 'assignPrivateIPAddresses' smart constructor. data AssignPrivateIPAddresses = AssignPrivateIPAddresses'-    { _apiaPrivateIPAddresses             :: !(Maybe [Text])-    , _apiaAllowReassignment              :: !(Maybe Bool)-    , _apiaSecondaryPrivateIPAddressCount :: !(Maybe Int)-    , _apiaNetworkInterfaceId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _apiaPrivateIPAddresses             :: !(Maybe [Text])+  , _apiaAllowReassignment              :: !(Maybe Bool)+  , _apiaSecondaryPrivateIPAddressCount :: !(Maybe Int)+  , _apiaNetworkInterfaceId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssignPrivateIPAddresses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,13 +74,14 @@     :: Text -- ^ 'apiaNetworkInterfaceId'     -> AssignPrivateIPAddresses assignPrivateIPAddresses pNetworkInterfaceId_ =-    AssignPrivateIPAddresses'-    { _apiaPrivateIPAddresses = Nothing-    , _apiaAllowReassignment = Nothing-    , _apiaSecondaryPrivateIPAddressCount = Nothing-    , _apiaNetworkInterfaceId = pNetworkInterfaceId_-    }+  AssignPrivateIPAddresses'+  { _apiaPrivateIPAddresses = Nothing+  , _apiaAllowReassignment = Nothing+  , _apiaSecondaryPrivateIPAddressCount = Nothing+  , _apiaNetworkInterfaceId = pNetworkInterfaceId_+  } + -- | 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] apiaPrivateIPAddresses = lens _apiaPrivateIPAddresses (\ s a -> s{_apiaPrivateIPAddresses = a}) . _Default . _Coerce;@@ -103,9 +105,9 @@         response           = receiveNull AssignPrivateIPAddressesResponse' -instance Hashable AssignPrivateIPAddresses+instance Hashable AssignPrivateIPAddresses where -instance NFData AssignPrivateIPAddresses+instance NFData AssignPrivateIPAddresses where  instance ToHeaders AssignPrivateIPAddresses where         toHeaders = const mempty@@ -129,13 +131,16 @@  -- | /See:/ 'assignPrivateIPAddressesResponse' smart constructor. data AssignPrivateIPAddressesResponse =-    AssignPrivateIPAddressesResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  AssignPrivateIPAddressesResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssignPrivateIPAddressesResponse' with the minimum fields required to make a request. -- assignPrivateIPAddressesResponse     :: AssignPrivateIPAddressesResponse assignPrivateIPAddressesResponse = AssignPrivateIPAddressesResponse' + instance NFData AssignPrivateIPAddressesResponse+         where
gen/Network/AWS/EC2/AssociateAddress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AssociateAddress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,9 +23,9 @@ -- -- An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon Elastic Compute Cloud User Guide/ . ----- [EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance.+-- [EC2-Classic, VPC in an EC2-VPC-only account] 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. ----- [VPC in an EC2-Classic account] 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.+-- [VPC in an EC2-Classic account] 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. -- -- /Important:/ 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 /Elastic IP Addresses/ section of <http://aws.amazon.com/ec2/pricing/ Amazon EC2 Pricing> . --@@ -51,12 +51,12 @@     , arsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AssociateAddress. --@@ -64,15 +64,16 @@ -- -- /See:/ 'associateAddress' smart constructor. data AssociateAddress = AssociateAddress'-    { _aasInstanceId         :: !(Maybe Text)-    , _aasAllocationId       :: !(Maybe Text)-    , _aasNetworkInterfaceId :: !(Maybe Text)-    , _aasAllowReassociation :: !(Maybe Bool)-    , _aasPrivateIPAddress   :: !(Maybe Text)-    , _aasPublicIP           :: !(Maybe Text)-    , _aasDryRun             :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aasInstanceId         :: !(Maybe Text)+  , _aasAllocationId       :: !(Maybe Text)+  , _aasNetworkInterfaceId :: !(Maybe Text)+  , _aasAllowReassociation :: !(Maybe Bool)+  , _aasPrivateIPAddress   :: !(Maybe Text)+  , _aasPublicIP           :: !(Maybe Text)+  , _aasDryRun             :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateAddress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -93,16 +94,17 @@ associateAddress     :: AssociateAddress associateAddress =-    AssociateAddress'-    { _aasInstanceId = Nothing-    , _aasAllocationId = Nothing-    , _aasNetworkInterfaceId = Nothing-    , _aasAllowReassociation = Nothing-    , _aasPrivateIPAddress = Nothing-    , _aasPublicIP = Nothing-    , _aasDryRun = Nothing-    }+  AssociateAddress'+  { _aasInstanceId = Nothing+  , _aasAllocationId = Nothing+  , _aasNetworkInterfaceId = Nothing+  , _aasAllowReassociation = Nothing+  , _aasPrivateIPAddress = Nothing+  , _aasPublicIP = Nothing+  , _aasDryRun = Nothing+  } + -- | 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) aasInstanceId = lens _aasInstanceId (\ s a -> s{_aasInstanceId = a});@@ -140,9 +142,9 @@                  AssociateAddressResponse' <$>                    (x .@? "associationId") <*> (pure (fromEnum s))) -instance Hashable AssociateAddress+instance Hashable AssociateAddress where -instance NFData AssociateAddress+instance NFData AssociateAddress where  instance ToHeaders AssociateAddress where         toHeaders = const mempty@@ -168,10 +170,11 @@ -- -- /See:/ 'associateAddressResponse' smart constructor. data AssociateAddressResponse = AssociateAddressResponse'-    { _arsAssociationId  :: !(Maybe Text)-    , _arsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _arsAssociationId  :: !(Maybe Text)+  , _arsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateAddressResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -183,11 +186,10 @@     :: Int -- ^ 'arsResponseStatus'     -> AssociateAddressResponse associateAddressResponse pResponseStatus_ =-    AssociateAddressResponse'-    { _arsAssociationId = Nothing-    , _arsResponseStatus = pResponseStatus_-    }+  AssociateAddressResponse'+  {_arsAssociationId = Nothing, _arsResponseStatus = pResponseStatus_} + -- | [EC2-VPC] The ID that represents the association of the Elastic IP address with an instance. arsAssociationId :: Lens' AssociateAddressResponse (Maybe Text) arsAssociationId = lens _arsAssociationId (\ s a -> s{_arsAssociationId = a});@@ -196,4 +198,4 @@ arsResponseStatus :: Lens' AssociateAddressResponse Int arsResponseStatus = lens _arsResponseStatus (\ s a -> s{_arsResponseStatus = a}); -instance NFData AssociateAddressResponse+instance NFData AssociateAddressResponse where
gen/Network/AWS/EC2/AssociateDHCPOptions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AssociateDHCPOptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , AssociateDHCPOptionsResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AssociateDhcpOptions. --@@ -53,11 +53,12 @@ -- -- /See:/ 'associateDHCPOptions' smart constructor. data AssociateDHCPOptions = AssociateDHCPOptions'-    { _adoDryRun        :: !(Maybe Bool)-    , _adoDHCPOptionsId :: !Text-    , _adoVPCId         :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _adoDryRun        :: !(Maybe Bool)+  , _adoDHCPOptionsId :: !Text+  , _adoVPCId         :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateDHCPOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +73,13 @@     -> Text -- ^ 'adoVPCId'     -> AssociateDHCPOptions associateDHCPOptions pDHCPOptionsId_ pVPCId_ =-    AssociateDHCPOptions'-    { _adoDryRun = Nothing-    , _adoDHCPOptionsId = pDHCPOptionsId_-    , _adoVPCId = pVPCId_-    }+  AssociateDHCPOptions'+  { _adoDryRun = Nothing+  , _adoDHCPOptionsId = pDHCPOptionsId_+  , _adoVPCId = pVPCId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . adoDryRun :: Lens' AssociateDHCPOptions (Maybe Bool) adoDryRun = lens _adoDryRun (\ s a -> s{_adoDryRun = a});@@ -96,9 +98,9 @@         request = postQuery ec2         response = receiveNull AssociateDHCPOptionsResponse' -instance Hashable AssociateDHCPOptions+instance Hashable AssociateDHCPOptions where -instance NFData AssociateDHCPOptions+instance NFData AssociateDHCPOptions where  instance ToHeaders AssociateDHCPOptions where         toHeaders = const mempty@@ -117,13 +119,15 @@  -- | /See:/ 'associateDHCPOptionsResponse' smart constructor. data AssociateDHCPOptionsResponse =-    AssociateDHCPOptionsResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  AssociateDHCPOptionsResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateDHCPOptionsResponse' with the minimum fields required to make a request. -- associateDHCPOptionsResponse     :: AssociateDHCPOptionsResponse associateDHCPOptionsResponse = AssociateDHCPOptionsResponse' -instance NFData AssociateDHCPOptionsResponse++instance NFData AssociateDHCPOptionsResponse where
+ gen/Network/AWS/EC2/AssociateIAMInstanceProfile.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.AssociateIAMInstanceProfile+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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+    (+    -- * Creating a Request+      associateIAMInstanceProfile+    , AssociateIAMInstanceProfile+    -- * Request Lenses+    , aiapIAMInstanceProfile+    , aiapInstanceId++    -- * Destructuring the Response+    , associateIAMInstanceProfileResponse+    , AssociateIAMInstanceProfileResponse+    -- * Response Lenses+    , aiaprsIAMInstanceProfileAssociation+    , aiaprsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'associateIAMInstanceProfile' smart constructor.+data AssociateIAMInstanceProfile = AssociateIAMInstanceProfile'+  { _aiapIAMInstanceProfile :: !IAMInstanceProfileSpecification+  , _aiapInstanceId         :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AssociateIAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiapIAMInstanceProfile' - The IAM instance profile.+--+-- * 'aiapInstanceId' - The ID of the instance.+associateIAMInstanceProfile+    :: IAMInstanceProfileSpecification -- ^ 'aiapIAMInstanceProfile'+    -> Text -- ^ 'aiapInstanceId'+    -> AssociateIAMInstanceProfile+associateIAMInstanceProfile pIAMInstanceProfile_ pInstanceId_ =+  AssociateIAMInstanceProfile'+  { _aiapIAMInstanceProfile = pIAMInstanceProfile_+  , _aiapInstanceId = pInstanceId_+  }+++-- | The IAM instance profile.+aiapIAMInstanceProfile :: Lens' AssociateIAMInstanceProfile IAMInstanceProfileSpecification+aiapIAMInstanceProfile = lens _aiapIAMInstanceProfile (\ s a -> s{_aiapIAMInstanceProfile = a});++-- | The ID of the instance.+aiapInstanceId :: Lens' AssociateIAMInstanceProfile Text+aiapInstanceId = lens _aiapInstanceId (\ s a -> s{_aiapInstanceId = a});++instance AWSRequest AssociateIAMInstanceProfile where+        type Rs AssociateIAMInstanceProfile =+             AssociateIAMInstanceProfileResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 AssociateIAMInstanceProfileResponse' <$>+                   (x .@? "iamInstanceProfileAssociation") <*>+                     (pure (fromEnum s)))++instance Hashable AssociateIAMInstanceProfile where++instance NFData AssociateIAMInstanceProfile where++instance ToHeaders AssociateIAMInstanceProfile where+        toHeaders = const mempty++instance ToPath AssociateIAMInstanceProfile where+        toPath = const "/"++instance ToQuery AssociateIAMInstanceProfile where+        toQuery AssociateIAMInstanceProfile'{..}+          = mconcat+              ["Action" =:+                 ("AssociateIamInstanceProfile" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "IamInstanceProfile" =: _aiapIAMInstanceProfile,+               "InstanceId" =: _aiapInstanceId]++-- | /See:/ 'associateIAMInstanceProfileResponse' smart constructor.+data AssociateIAMInstanceProfileResponse = AssociateIAMInstanceProfileResponse'+  { _aiaprsIAMInstanceProfileAssociation :: !(Maybe IAMInstanceProfileAssociation)+  , _aiaprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AssociateIAMInstanceProfileResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiaprsIAMInstanceProfileAssociation' - Information about the IAM instance profile association.+--+-- * 'aiaprsResponseStatus' - -- | The response status code.+associateIAMInstanceProfileResponse+    :: Int -- ^ 'aiaprsResponseStatus'+    -> AssociateIAMInstanceProfileResponse+associateIAMInstanceProfileResponse pResponseStatus_ =+  AssociateIAMInstanceProfileResponse'+  { _aiaprsIAMInstanceProfileAssociation = Nothing+  , _aiaprsResponseStatus = pResponseStatus_+  }+++-- | Information about the IAM instance profile association.+aiaprsIAMInstanceProfileAssociation :: Lens' AssociateIAMInstanceProfileResponse (Maybe IAMInstanceProfileAssociation)+aiaprsIAMInstanceProfileAssociation = lens _aiaprsIAMInstanceProfileAssociation (\ s a -> s{_aiaprsIAMInstanceProfileAssociation = a});++-- | -- | The response status code.+aiaprsResponseStatus :: Lens' AssociateIAMInstanceProfileResponse Int+aiaprsResponseStatus = lens _aiaprsResponseStatus (\ s a -> s{_aiaprsResponseStatus = a});++instance NFData AssociateIAMInstanceProfileResponse+         where
gen/Network/AWS/EC2/AssociateRouteTable.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AssociateRouteTable--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,8 +30,8 @@     , AssociateRouteTable     -- * Request Lenses     , artDryRun-    , artSubnetId     , artRouteTableId+    , artSubnetId      -- * Destructuring the Response     , associateRouteTableResponse@@ -41,12 +41,12 @@     , artrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AssociateRouteTable. --@@ -54,43 +54,45 @@ -- -- /See:/ 'associateRouteTable' smart constructor. data AssociateRouteTable = AssociateRouteTable'-    { _artDryRun       :: !(Maybe Bool)-    , _artSubnetId     :: !Text-    , _artRouteTableId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _artDryRun       :: !(Maybe Bool)+  , _artRouteTableId :: !Text+  , _artSubnetId     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateRouteTable' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'artDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'artSubnetId' - The ID of the subnet.--- -- * 'artRouteTableId' - The ID of the route table.+--+-- * 'artSubnetId' - The ID of the subnet. associateRouteTable-    :: Text -- ^ 'artSubnetId'-    -> Text -- ^ 'artRouteTableId'+    :: Text -- ^ 'artRouteTableId'+    -> Text -- ^ 'artSubnetId'     -> AssociateRouteTable-associateRouteTable pSubnetId_ pRouteTableId_ =-    AssociateRouteTable'-    { _artDryRun = Nothing-    , _artSubnetId = pSubnetId_-    , _artRouteTableId = pRouteTableId_-    }+associateRouteTable pRouteTableId_ pSubnetId_ =+  AssociateRouteTable'+  { _artDryRun = Nothing+  , _artRouteTableId = pRouteTableId_+  , _artSubnetId = pSubnetId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . artDryRun :: Lens' AssociateRouteTable (Maybe Bool) artDryRun = lens _artDryRun (\ s a -> s{_artDryRun = a}); --- | The ID of the subnet.-artSubnetId :: Lens' AssociateRouteTable Text-artSubnetId = lens _artSubnetId (\ s a -> s{_artSubnetId = a});- -- | The ID of the route table. artRouteTableId :: Lens' AssociateRouteTable Text artRouteTableId = lens _artRouteTableId (\ s a -> s{_artRouteTableId = a}); +-- | The ID of the subnet.+artSubnetId :: Lens' AssociateRouteTable Text+artSubnetId = lens _artSubnetId (\ s a -> s{_artSubnetId = a});+ instance AWSRequest AssociateRouteTable where         type Rs AssociateRouteTable =              AssociateRouteTableResponse@@ -101,9 +103,9 @@                  AssociateRouteTableResponse' <$>                    (x .@? "associationId") <*> (pure (fromEnum s))) -instance Hashable AssociateRouteTable+instance Hashable AssociateRouteTable where -instance NFData AssociateRouteTable+instance NFData AssociateRouteTable where  instance ToHeaders AssociateRouteTable where         toHeaders = const mempty@@ -116,8 +118,9 @@           = mconcat               ["Action" =: ("AssociateRouteTable" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _artDryRun, "SubnetId" =: _artSubnetId,-               "RouteTableId" =: _artRouteTableId]+               "DryRun" =: _artDryRun,+               "RouteTableId" =: _artRouteTableId,+               "SubnetId" =: _artSubnetId]  -- | Contains the output of AssociateRouteTable. --@@ -125,10 +128,11 @@ -- -- /See:/ 'associateRouteTableResponse' smart constructor. data AssociateRouteTableResponse = AssociateRouteTableResponse'-    { _artrsAssociationId  :: !(Maybe Text)-    , _artrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _artrsAssociationId  :: !(Maybe Text)+  , _artrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateRouteTableResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +144,10 @@     :: Int -- ^ 'artrsResponseStatus'     -> AssociateRouteTableResponse associateRouteTableResponse pResponseStatus_ =-    AssociateRouteTableResponse'-    { _artrsAssociationId = Nothing-    , _artrsResponseStatus = pResponseStatus_-    }+  AssociateRouteTableResponse'+  {_artrsAssociationId = Nothing, _artrsResponseStatus = pResponseStatus_} + -- | The route table association ID (needed to disassociate the route table). artrsAssociationId :: Lens' AssociateRouteTableResponse (Maybe Text) artrsAssociationId = lens _artrsAssociationId (\ s a -> s{_artrsAssociationId = a});@@ -153,4 +156,4 @@ artrsResponseStatus :: Lens' AssociateRouteTableResponse Int artrsResponseStatus = lens _artrsResponseStatus (\ s a -> s{_artrsResponseStatus = a}); -instance NFData AssociateRouteTableResponse+instance NFData AssociateRouteTableResponse where
gen/Network/AWS/EC2/AssociateSubnetCidrBlock.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AssociateSubnetCidrBlock--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,8 +27,8 @@       associateSubnetCidrBlock     , AssociateSubnetCidrBlock     -- * Request Lenses-    , ascbSubnetId     , ascbIPv6CidrBlock+    , ascbSubnetId      -- * Destructuring the Response     , associateSubnetCidrBlockResponse@@ -39,44 +39,44 @@     , ascbrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'associateSubnetCidrBlock' smart constructor. data AssociateSubnetCidrBlock = AssociateSubnetCidrBlock'-    { _ascbSubnetId      :: !Text-    , _ascbIPv6CidrBlock :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ascbIPv6CidrBlock :: !Text+  , _ascbSubnetId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateSubnetCidrBlock' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'ascbSubnetId' - The ID of your subnet.--- -- * 'ascbIPv6CidrBlock' - The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix length.+--+-- * 'ascbSubnetId' - The ID of your subnet. associateSubnetCidrBlock-    :: Text -- ^ 'ascbSubnetId'-    -> Text -- ^ 'ascbIPv6CidrBlock'+    :: Text -- ^ 'ascbIPv6CidrBlock'+    -> Text -- ^ 'ascbSubnetId'     -> AssociateSubnetCidrBlock-associateSubnetCidrBlock pSubnetId_ pIPv6CidrBlock_ =-    AssociateSubnetCidrBlock'-    { _ascbSubnetId = pSubnetId_-    , _ascbIPv6CidrBlock = pIPv6CidrBlock_-    }+associateSubnetCidrBlock pIPv6CidrBlock_ pSubnetId_ =+  AssociateSubnetCidrBlock'+  {_ascbIPv6CidrBlock = pIPv6CidrBlock_, _ascbSubnetId = pSubnetId_} --- | The ID of your subnet.-ascbSubnetId :: Lens' AssociateSubnetCidrBlock Text-ascbSubnetId = lens _ascbSubnetId (\ s a -> s{_ascbSubnetId = a});  -- | The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix length. ascbIPv6CidrBlock :: Lens' AssociateSubnetCidrBlock Text ascbIPv6CidrBlock = lens _ascbIPv6CidrBlock (\ s a -> s{_ascbIPv6CidrBlock = a}); +-- | The ID of your subnet.+ascbSubnetId :: Lens' AssociateSubnetCidrBlock Text+ascbSubnetId = lens _ascbSubnetId (\ s a -> s{_ascbSubnetId = a});+ instance AWSRequest AssociateSubnetCidrBlock where         type Rs AssociateSubnetCidrBlock =              AssociateSubnetCidrBlockResponse@@ -89,9 +89,9 @@                      (x .@? "ipv6CidrBlockAssociation")                      <*> (pure (fromEnum s))) -instance Hashable AssociateSubnetCidrBlock+instance Hashable AssociateSubnetCidrBlock where -instance NFData AssociateSubnetCidrBlock+instance NFData AssociateSubnetCidrBlock where  instance ToHeaders AssociateSubnetCidrBlock where         toHeaders = const mempty@@ -105,16 +105,17 @@               ["Action" =:                  ("AssociateSubnetCidrBlock" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "SubnetId" =: _ascbSubnetId,-               "Ipv6CidrBlock" =: _ascbIPv6CidrBlock]+               "Ipv6CidrBlock" =: _ascbIPv6CidrBlock,+               "SubnetId" =: _ascbSubnetId]  -- | /See:/ 'associateSubnetCidrBlockResponse' smart constructor. data AssociateSubnetCidrBlockResponse = AssociateSubnetCidrBlockResponse'-    { _ascbrsSubnetId                 :: !(Maybe Text)-    , _ascbrsIPv6CidrBlockAssociation :: !(Maybe SubnetIPv6CidrBlockAssociation)-    , _ascbrsResponseStatus           :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ascbrsSubnetId                 :: !(Maybe Text)+  , _ascbrsIPv6CidrBlockAssociation :: !(Maybe SubnetIPv6CidrBlockAssociation)+  , _ascbrsResponseStatus           :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateSubnetCidrBlockResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -128,12 +129,13 @@     :: Int -- ^ 'ascbrsResponseStatus'     -> AssociateSubnetCidrBlockResponse associateSubnetCidrBlockResponse pResponseStatus_ =-    AssociateSubnetCidrBlockResponse'-    { _ascbrsSubnetId = Nothing-    , _ascbrsIPv6CidrBlockAssociation = Nothing-    , _ascbrsResponseStatus = pResponseStatus_-    }+  AssociateSubnetCidrBlockResponse'+  { _ascbrsSubnetId = Nothing+  , _ascbrsIPv6CidrBlockAssociation = Nothing+  , _ascbrsResponseStatus = pResponseStatus_+  } + -- | The ID of the subnet. ascbrsSubnetId :: Lens' AssociateSubnetCidrBlockResponse (Maybe Text) ascbrsSubnetId = lens _ascbrsSubnetId (\ s a -> s{_ascbrsSubnetId = a});@@ -147,3 +149,4 @@ ascbrsResponseStatus = lens _ascbrsResponseStatus (\ s a -> s{_ascbrsResponseStatus = a});  instance NFData AssociateSubnetCidrBlockResponse+         where
gen/Network/AWS/EC2/AssociateVPCCidrBlock.hs view
@@ -12,21 +12,24 @@  -- | -- Module      : Network.AWS.EC2.AssociateVPCCidrBlock--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Associates a CIDR block with your VPC. You can only associate a single Amazon-provided IPv6 CIDR block with your VPC. The IPv6 CIDR block size is fixed at /56.+-- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#VPC_Sizing VPC and Subnet Sizing> in the /Amazon Virtual Private Cloud User Guide/ .+-- module Network.AWS.EC2.AssociateVPCCidrBlock     (     -- * Creating a Request       associateVPCCidrBlock     , AssociateVPCCidrBlock     -- * Request Lenses+    , avcbCidrBlock     , avcbAmazonProvidedIPv6CidrBlock     , avcbVPCId @@ -35,27 +38,32 @@     , AssociateVPCCidrBlockResponse     -- * Response Lenses     , avcbrsVPCId+    , avcbrsCidrBlockAssociation     , avcbrsIPv6CidrBlockAssociation     , avcbrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'associateVPCCidrBlock' smart constructor. data AssociateVPCCidrBlock = AssociateVPCCidrBlock'-    { _avcbAmazonProvidedIPv6CidrBlock :: !(Maybe Bool)-    , _avcbVPCId                       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avcbCidrBlock                   :: !(Maybe Text)+  , _avcbAmazonProvidedIPv6CidrBlock :: !(Maybe Bool)+  , _avcbVPCId                       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateVPCCidrBlock' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'avcbCidrBlock' - An IPv4 CIDR block to associate with the VPC.+-- -- * 'avcbAmazonProvidedIPv6CidrBlock' - 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. -- -- * 'avcbVPCId' - The ID of the VPC.@@ -63,11 +71,17 @@     :: Text -- ^ 'avcbVPCId'     -> AssociateVPCCidrBlock associateVPCCidrBlock pVPCId_ =-    AssociateVPCCidrBlock'-    { _avcbAmazonProvidedIPv6CidrBlock = Nothing-    , _avcbVPCId = pVPCId_-    }+  AssociateVPCCidrBlock'+  { _avcbCidrBlock = Nothing+  , _avcbAmazonProvidedIPv6CidrBlock = Nothing+  , _avcbVPCId = pVPCId_+  } ++-- | An IPv4 CIDR block to associate with the VPC.+avcbCidrBlock :: Lens' AssociateVPCCidrBlock (Maybe Text)+avcbCidrBlock = lens _avcbCidrBlock (\ s a -> s{_avcbCidrBlock = 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. avcbAmazonProvidedIPv6CidrBlock :: Lens' AssociateVPCCidrBlock (Maybe Bool) avcbAmazonProvidedIPv6CidrBlock = lens _avcbAmazonProvidedIPv6CidrBlock (\ s a -> s{_avcbAmazonProvidedIPv6CidrBlock = a});@@ -84,13 +98,13 @@           = receiveXML               (\ s h x ->                  AssociateVPCCidrBlockResponse' <$>-                   (x .@? "vpcId") <*>-                     (x .@? "ipv6CidrBlockAssociation")+                   (x .@? "vpcId") <*> (x .@? "cidrBlockAssociation")+                     <*> (x .@? "ipv6CidrBlockAssociation")                      <*> (pure (fromEnum s))) -instance Hashable AssociateVPCCidrBlock+instance Hashable AssociateVPCCidrBlock where -instance NFData AssociateVPCCidrBlock+instance NFData AssociateVPCCidrBlock where  instance ToHeaders AssociateVPCCidrBlock where         toHeaders = const mempty@@ -103,23 +117,28 @@           = mconcat               ["Action" =: ("AssociateVpcCidrBlock" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),+               "CidrBlock" =: _avcbCidrBlock,                "AmazonProvidedIpv6CidrBlock" =:                  _avcbAmazonProvidedIPv6CidrBlock,                "VpcId" =: _avcbVPCId]  -- | /See:/ 'associateVPCCidrBlockResponse' smart constructor. data AssociateVPCCidrBlockResponse = AssociateVPCCidrBlockResponse'-    { _avcbrsVPCId                    :: !(Maybe Text)-    , _avcbrsIPv6CidrBlockAssociation :: !(Maybe VPCIPv6CidrBlockAssociation)-    , _avcbrsResponseStatus           :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avcbrsVPCId                    :: !(Maybe Text)+  , _avcbrsCidrBlockAssociation     :: !(Maybe VPCCidrBlockAssociation)+  , _avcbrsIPv6CidrBlockAssociation :: !(Maybe VPCIPv6CidrBlockAssociation)+  , _avcbrsResponseStatus           :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AssociateVPCCidrBlockResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'avcbrsVPCId' - The ID of the VPC. --+-- * 'avcbrsCidrBlockAssociation' - Information about the IPv4 CIDR block association.+-- -- * 'avcbrsIPv6CidrBlockAssociation' - Information about the IPv6 CIDR block association. -- -- * 'avcbrsResponseStatus' - -- | The response status code.@@ -127,16 +146,22 @@     :: Int -- ^ 'avcbrsResponseStatus'     -> AssociateVPCCidrBlockResponse associateVPCCidrBlockResponse pResponseStatus_ =-    AssociateVPCCidrBlockResponse'-    { _avcbrsVPCId = Nothing-    , _avcbrsIPv6CidrBlockAssociation = Nothing-    , _avcbrsResponseStatus = pResponseStatus_-    }+  AssociateVPCCidrBlockResponse'+  { _avcbrsVPCId = Nothing+  , _avcbrsCidrBlockAssociation = Nothing+  , _avcbrsIPv6CidrBlockAssociation = Nothing+  , _avcbrsResponseStatus = pResponseStatus_+  } + -- | The ID of the VPC. avcbrsVPCId :: Lens' AssociateVPCCidrBlockResponse (Maybe Text) avcbrsVPCId = lens _avcbrsVPCId (\ s a -> s{_avcbrsVPCId = a}); +-- | Information about the IPv4 CIDR block association.+avcbrsCidrBlockAssociation :: Lens' AssociateVPCCidrBlockResponse (Maybe VPCCidrBlockAssociation)+avcbrsCidrBlockAssociation = lens _avcbrsCidrBlockAssociation (\ s a -> s{_avcbrsCidrBlockAssociation = a});+ -- | Information about the IPv6 CIDR block association. avcbrsIPv6CidrBlockAssociation :: Lens' AssociateVPCCidrBlockResponse (Maybe VPCIPv6CidrBlockAssociation) avcbrsIPv6CidrBlockAssociation = lens _avcbrsIPv6CidrBlockAssociation (\ s a -> s{_avcbrsIPv6CidrBlockAssociation = a});@@ -145,4 +170,4 @@ avcbrsResponseStatus :: Lens' AssociateVPCCidrBlockResponse Int avcbrsResponseStatus = lens _avcbrsResponseStatus (\ s a -> s{_avcbrsResponseStatus = a}); -instance NFData AssociateVPCCidrBlockResponse+instance NFData AssociateVPCCidrBlockResponse where
gen/Network/AWS/EC2/AttachClassicLinkVPC.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AttachClassicLinkVPC--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -32,9 +32,9 @@     , AttachClassicLinkVPC     -- * Request Lenses     , aclvDryRun+    , aclvGroups     , aclvInstanceId     , aclvVPCId-    , aclvGroups      -- * Destructuring the Response     , attachClassicLinkVPCResponse@@ -44,12 +44,12 @@     , aclvrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AttachClassicLinkVpc. --@@ -57,39 +57,45 @@ -- -- /See:/ 'attachClassicLinkVPC' smart constructor. data AttachClassicLinkVPC = AttachClassicLinkVPC'-    { _aclvDryRun     :: !(Maybe Bool)-    , _aclvInstanceId :: !Text-    , _aclvVPCId      :: !Text-    , _aclvGroups     :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aclvDryRun     :: !(Maybe Bool)+  , _aclvGroups     :: ![Text]+  , _aclvInstanceId :: !Text+  , _aclvVPCId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachClassicLinkVPC' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aclvDryRun' - Checks whether you have the required permissions for the action, 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@ . --+-- * 'aclvGroups' - The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.+-- -- * 'aclvInstanceId' - The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC. -- -- * 'aclvVPCId' - The ID of a ClassicLink-enabled VPC.------ * 'aclvGroups' - The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC. attachClassicLinkVPC     :: Text -- ^ 'aclvInstanceId'     -> Text -- ^ 'aclvVPCId'     -> AttachClassicLinkVPC attachClassicLinkVPC pInstanceId_ pVPCId_ =-    AttachClassicLinkVPC'-    { _aclvDryRun = Nothing-    , _aclvInstanceId = pInstanceId_-    , _aclvVPCId = pVPCId_-    , _aclvGroups = mempty-    }+  AttachClassicLinkVPC'+  { _aclvDryRun = Nothing+  , _aclvGroups = mempty+  , _aclvInstanceId = pInstanceId_+  , _aclvVPCId = pVPCId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . aclvDryRun :: Lens' AttachClassicLinkVPC (Maybe Bool) aclvDryRun = lens _aclvDryRun (\ s a -> s{_aclvDryRun = a}); +-- | 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]+aclvGroups = lens _aclvGroups (\ s a -> s{_aclvGroups = a}) . _Coerce;+ -- | The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC. aclvInstanceId :: Lens' AttachClassicLinkVPC Text aclvInstanceId = lens _aclvInstanceId (\ s a -> s{_aclvInstanceId = a});@@ -98,10 +104,6 @@ aclvVPCId :: Lens' AttachClassicLinkVPC Text aclvVPCId = lens _aclvVPCId (\ s a -> s{_aclvVPCId = a}); --- | 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]-aclvGroups = lens _aclvGroups (\ s a -> s{_aclvGroups = a}) . _Coerce;- instance AWSRequest AttachClassicLinkVPC where         type Rs AttachClassicLinkVPC =              AttachClassicLinkVPCResponse@@ -112,9 +114,9 @@                  AttachClassicLinkVPCResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable AttachClassicLinkVPC+instance Hashable AttachClassicLinkVPC where -instance NFData AttachClassicLinkVPC+instance NFData AttachClassicLinkVPC where  instance ToHeaders AttachClassicLinkVPC where         toHeaders = const mempty@@ -128,9 +130,9 @@               ["Action" =: ("AttachClassicLinkVpc" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "DryRun" =: _aclvDryRun,+               toQueryList "SecurityGroupId" _aclvGroups,                "InstanceId" =: _aclvInstanceId,-               "VpcId" =: _aclvVPCId,-               toQueryList "SecurityGroupId" _aclvGroups]+               "VpcId" =: _aclvVPCId]  -- | Contains the output of AttachClassicLinkVpc. --@@ -138,10 +140,11 @@ -- -- /See:/ 'attachClassicLinkVPCResponse' smart constructor. data AttachClassicLinkVPCResponse = AttachClassicLinkVPCResponse'-    { _aclvrsReturn         :: !(Maybe Bool)-    , _aclvrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aclvrsReturn         :: !(Maybe Bool)+  , _aclvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachClassicLinkVPCResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,11 +156,10 @@     :: Int -- ^ 'aclvrsResponseStatus'     -> AttachClassicLinkVPCResponse attachClassicLinkVPCResponse pResponseStatus_ =-    AttachClassicLinkVPCResponse'-    { _aclvrsReturn = Nothing-    , _aclvrsResponseStatus = pResponseStatus_-    }+  AttachClassicLinkVPCResponse'+  {_aclvrsReturn = Nothing, _aclvrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. aclvrsReturn :: Lens' AttachClassicLinkVPCResponse (Maybe Bool) aclvrsReturn = lens _aclvrsReturn (\ s a -> s{_aclvrsReturn = a});@@ -166,4 +168,4 @@ aclvrsResponseStatus :: Lens' AttachClassicLinkVPCResponse Int aclvrsResponseStatus = lens _aclvrsResponseStatus (\ s a -> s{_aclvrsResponseStatus = a}); -instance NFData AttachClassicLinkVPCResponse+instance NFData AttachClassicLinkVPCResponse where
gen/Network/AWS/EC2/AttachInternetGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AttachInternetGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -36,12 +36,12 @@     , AttachInternetGatewayResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AttachInternetGateway. --@@ -49,11 +49,12 @@ -- -- /See:/ 'attachInternetGateway' smart constructor. data AttachInternetGateway = AttachInternetGateway'-    { _aigDryRun            :: !(Maybe Bool)-    , _aigInternetGatewayId :: !Text-    , _aigVPCId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aigDryRun            :: !(Maybe Bool)+  , _aigInternetGatewayId :: !Text+  , _aigVPCId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachInternetGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,12 +69,13 @@     -> Text -- ^ 'aigVPCId'     -> AttachInternetGateway attachInternetGateway pInternetGatewayId_ pVPCId_ =-    AttachInternetGateway'-    { _aigDryRun = Nothing-    , _aigInternetGatewayId = pInternetGatewayId_-    , _aigVPCId = pVPCId_-    }+  AttachInternetGateway'+  { _aigDryRun = Nothing+  , _aigInternetGatewayId = pInternetGatewayId_+  , _aigVPCId = pVPCId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . aigDryRun :: Lens' AttachInternetGateway (Maybe Bool) aigDryRun = lens _aigDryRun (\ s a -> s{_aigDryRun = a});@@ -92,9 +94,9 @@         request = postQuery ec2         response = receiveNull AttachInternetGatewayResponse' -instance Hashable AttachInternetGateway+instance Hashable AttachInternetGateway where -instance NFData AttachInternetGateway+instance NFData AttachInternetGateway where  instance ToHeaders AttachInternetGateway where         toHeaders = const mempty@@ -113,13 +115,15 @@  -- | /See:/ 'attachInternetGatewayResponse' smart constructor. data AttachInternetGatewayResponse =-    AttachInternetGatewayResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  AttachInternetGatewayResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachInternetGatewayResponse' with the minimum fields required to make a request. -- attachInternetGatewayResponse     :: AttachInternetGatewayResponse attachInternetGatewayResponse = AttachInternetGatewayResponse' -instance NFData AttachInternetGatewayResponse++instance NFData AttachInternetGatewayResponse where
gen/Network/AWS/EC2/AttachNetworkInterface.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AttachNetworkInterface--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,9 +28,9 @@     , AttachNetworkInterface     -- * Request Lenses     , aniDryRun-    , aniNetworkInterfaceId-    , aniInstanceId     , aniDeviceIndex+    , aniInstanceId+    , aniNetworkInterfaceId      -- * Destructuring the Response     , attachNetworkInterfaceResponse@@ -40,12 +40,12 @@     , anirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AttachNetworkInterface. --@@ -53,51 +53,53 @@ -- -- /See:/ 'attachNetworkInterface' smart constructor. data AttachNetworkInterface = AttachNetworkInterface'-    { _aniDryRun             :: !(Maybe Bool)-    , _aniNetworkInterfaceId :: !Text-    , _aniInstanceId         :: !Text-    , _aniDeviceIndex        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _aniDryRun             :: !(Maybe Bool)+  , _aniDeviceIndex        :: !Int+  , _aniInstanceId         :: !Text+  , _aniNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachNetworkInterface' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aniDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'aniNetworkInterfaceId' - The ID of the network interface.+-- * 'aniDeviceIndex' - The index of the device for the network interface attachment. -- -- * 'aniInstanceId' - The ID of the instance. ----- * 'aniDeviceIndex' - The index of the device for the network interface attachment.+-- * 'aniNetworkInterfaceId' - The ID of the network interface. attachNetworkInterface-    :: Text -- ^ 'aniNetworkInterfaceId'+    :: Int -- ^ 'aniDeviceIndex'     -> Text -- ^ 'aniInstanceId'-    -> Int -- ^ 'aniDeviceIndex'+    -> Text -- ^ 'aniNetworkInterfaceId'     -> AttachNetworkInterface-attachNetworkInterface pNetworkInterfaceId_ pInstanceId_ pDeviceIndex_ =-    AttachNetworkInterface'-    { _aniDryRun = Nothing-    , _aniNetworkInterfaceId = pNetworkInterfaceId_-    , _aniInstanceId = pInstanceId_-    , _aniDeviceIndex = pDeviceIndex_-    }+attachNetworkInterface pDeviceIndex_ pInstanceId_ pNetworkInterfaceId_ =+  AttachNetworkInterface'+  { _aniDryRun = Nothing+  , _aniDeviceIndex = pDeviceIndex_+  , _aniInstanceId = pInstanceId_+  , _aniNetworkInterfaceId = pNetworkInterfaceId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . aniDryRun :: Lens' AttachNetworkInterface (Maybe Bool) aniDryRun = lens _aniDryRun (\ s a -> s{_aniDryRun = a}); --- | The ID of the network interface.-aniNetworkInterfaceId :: Lens' AttachNetworkInterface Text-aniNetworkInterfaceId = lens _aniNetworkInterfaceId (\ s a -> s{_aniNetworkInterfaceId = a});+-- | The index of the device for the network interface attachment.+aniDeviceIndex :: Lens' AttachNetworkInterface Int+aniDeviceIndex = lens _aniDeviceIndex (\ s a -> s{_aniDeviceIndex = a});  -- | The ID of the instance. aniInstanceId :: Lens' AttachNetworkInterface Text aniInstanceId = lens _aniInstanceId (\ s a -> s{_aniInstanceId = a}); --- | The index of the device for the network interface attachment.-aniDeviceIndex :: Lens' AttachNetworkInterface Int-aniDeviceIndex = lens _aniDeviceIndex (\ s a -> s{_aniDeviceIndex = a});+-- | The ID of the network interface.+aniNetworkInterfaceId :: Lens' AttachNetworkInterface Text+aniNetworkInterfaceId = lens _aniNetworkInterfaceId (\ s a -> s{_aniNetworkInterfaceId = a});  instance AWSRequest AttachNetworkInterface where         type Rs AttachNetworkInterface =@@ -109,9 +111,9 @@                  AttachNetworkInterfaceResponse' <$>                    (x .@? "attachmentId") <*> (pure (fromEnum s))) -instance Hashable AttachNetworkInterface+instance Hashable AttachNetworkInterface where -instance NFData AttachNetworkInterface+instance NFData AttachNetworkInterface where  instance ToHeaders AttachNetworkInterface where         toHeaders = const mempty@@ -126,9 +128,9 @@                  ("AttachNetworkInterface" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "DryRun" =: _aniDryRun,-               "NetworkInterfaceId" =: _aniNetworkInterfaceId,+               "DeviceIndex" =: _aniDeviceIndex,                "InstanceId" =: _aniInstanceId,-               "DeviceIndex" =: _aniDeviceIndex]+               "NetworkInterfaceId" =: _aniNetworkInterfaceId]  -- | Contains the output of AttachNetworkInterface. --@@ -136,10 +138,11 @@ -- -- /See:/ 'attachNetworkInterfaceResponse' smart constructor. data AttachNetworkInterfaceResponse = AttachNetworkInterfaceResponse'-    { _anirsAttachmentId   :: !(Maybe Text)-    , _anirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _anirsAttachmentId   :: !(Maybe Text)+  , _anirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachNetworkInterfaceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -151,11 +154,10 @@     :: Int -- ^ 'anirsResponseStatus'     -> AttachNetworkInterfaceResponse attachNetworkInterfaceResponse pResponseStatus_ =-    AttachNetworkInterfaceResponse'-    { _anirsAttachmentId = Nothing-    , _anirsResponseStatus = pResponseStatus_-    }+  AttachNetworkInterfaceResponse'+  {_anirsAttachmentId = Nothing, _anirsResponseStatus = pResponseStatus_} + -- | The ID of the network interface attachment. anirsAttachmentId :: Lens' AttachNetworkInterfaceResponse (Maybe Text) anirsAttachmentId = lens _anirsAttachmentId (\ s a -> s{_anirsAttachmentId = a});@@ -164,4 +166,4 @@ anirsResponseStatus :: Lens' AttachNetworkInterfaceResponse Int anirsResponseStatus = lens _anirsResponseStatus (\ s a -> s{_anirsResponseStatus = a}); -instance NFData AttachNetworkInterfaceResponse+instance NFData AttachNetworkInterfaceResponse where
gen/Network/AWS/EC2/AttachVPNGateway.hs view
@@ -12,15 +12,17 @@  -- | -- Module      : Network.AWS.EC2.AttachVPNGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Attaches a virtual private gateway to a VPC. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ .+-- module Network.AWS.EC2.AttachVPNGateway     (     -- * Creating a Request@@ -28,8 +30,8 @@     , AttachVPNGateway     -- * Request Lenses     , avgDryRun-    , avgVPNGatewayId     , avgVPCId+    , avgVPNGatewayId      -- * Destructuring the Response     , attachVPNGatewayResponse@@ -39,12 +41,12 @@     , avgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AttachVpnGateway. --@@ -52,43 +54,42 @@ -- -- /See:/ 'attachVPNGateway' smart constructor. data AttachVPNGateway = AttachVPNGateway'-    { _avgDryRun       :: !(Maybe Bool)-    , _avgVPNGatewayId :: !Text-    , _avgVPCId        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avgDryRun       :: !(Maybe Bool)+  , _avgVPCId        :: !Text+  , _avgVPNGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachVPNGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'avgDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'avgVPNGatewayId' - The ID of the virtual private gateway.--- -- * 'avgVPCId' - The ID of the VPC.+--+-- * 'avgVPNGatewayId' - The ID of the virtual private gateway. attachVPNGateway-    :: Text -- ^ 'avgVPNGatewayId'-    -> Text -- ^ 'avgVPCId'+    :: Text -- ^ 'avgVPCId'+    -> Text -- ^ 'avgVPNGatewayId'     -> AttachVPNGateway-attachVPNGateway pVPNGatewayId_ pVPCId_ =-    AttachVPNGateway'-    { _avgDryRun = Nothing-    , _avgVPNGatewayId = pVPNGatewayId_-    , _avgVPCId = pVPCId_-    }+attachVPNGateway pVPCId_ pVPNGatewayId_ =+  AttachVPNGateway'+  {_avgDryRun = Nothing, _avgVPCId = pVPCId_, _avgVPNGatewayId = pVPNGatewayId_} + -- | Checks whether you have the required permissions for the action, 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@ . avgDryRun :: Lens' AttachVPNGateway (Maybe Bool) avgDryRun = lens _avgDryRun (\ s a -> s{_avgDryRun = a}); --- | The ID of the virtual private gateway.-avgVPNGatewayId :: Lens' AttachVPNGateway Text-avgVPNGatewayId = lens _avgVPNGatewayId (\ s a -> s{_avgVPNGatewayId = a});- -- | The ID of the VPC. avgVPCId :: Lens' AttachVPNGateway Text avgVPCId = lens _avgVPCId (\ s a -> s{_avgVPCId = a}); +-- | The ID of the virtual private gateway.+avgVPNGatewayId :: Lens' AttachVPNGateway Text+avgVPNGatewayId = lens _avgVPNGatewayId (\ s a -> s{_avgVPNGatewayId = a});+ instance AWSRequest AttachVPNGateway where         type Rs AttachVPNGateway = AttachVPNGatewayResponse         request = postQuery ec2@@ -98,9 +99,9 @@                  AttachVPNGatewayResponse' <$>                    (x .@? "attachment") <*> (pure (fromEnum s))) -instance Hashable AttachVPNGateway+instance Hashable AttachVPNGateway where -instance NFData AttachVPNGateway+instance NFData AttachVPNGateway where  instance ToHeaders AttachVPNGateway where         toHeaders = const mempty@@ -113,9 +114,8 @@           = mconcat               ["Action" =: ("AttachVpnGateway" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _avgDryRun,-               "VpnGatewayId" =: _avgVPNGatewayId,-               "VpcId" =: _avgVPCId]+               "DryRun" =: _avgDryRun, "VpcId" =: _avgVPCId,+               "VpnGatewayId" =: _avgVPNGatewayId]  -- | Contains the output of AttachVpnGateway. --@@ -123,10 +123,11 @@ -- -- /See:/ 'attachVPNGatewayResponse' smart constructor. data AttachVPNGatewayResponse = AttachVPNGatewayResponse'-    { _avgrsVPCAttachment  :: !(Maybe VPCAttachment)-    , _avgrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avgrsVPCAttachment  :: !(Maybe VPCAttachment)+  , _avgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachVPNGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +139,10 @@     :: Int -- ^ 'avgrsResponseStatus'     -> AttachVPNGatewayResponse attachVPNGatewayResponse pResponseStatus_ =-    AttachVPNGatewayResponse'-    { _avgrsVPCAttachment = Nothing-    , _avgrsResponseStatus = pResponseStatus_-    }+  AttachVPNGatewayResponse'+  {_avgrsVPCAttachment = Nothing, _avgrsResponseStatus = pResponseStatus_} + -- | Information about the attachment. avgrsVPCAttachment :: Lens' AttachVPNGatewayResponse (Maybe VPCAttachment) avgrsVPCAttachment = lens _avgrsVPCAttachment (\ s a -> s{_avgrsVPCAttachment = a});@@ -151,4 +151,4 @@ avgrsResponseStatus :: Lens' AttachVPNGatewayResponse Int avgrsResponseStatus = lens _avgrsResponseStatus (\ s a -> s{_avgrsResponseStatus = a}); -instance NFData AttachVPNGatewayResponse+instance NFData AttachVPNGatewayResponse where
gen/Network/AWS/EC2/AttachVolume.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AttachVolume--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,9 +48,9 @@     , AttachVolume     -- * Request Lenses     , avDryRun-    , avVolumeId-    , avInstanceId     , avDevice+    , avInstanceId+    , avVolumeId      -- * Destructuring the Response     , volumeAttachment@@ -64,12 +64,12 @@     , volAttachTime     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AttachVolume. --@@ -77,60 +77,62 @@ -- -- /See:/ 'attachVolume' smart constructor. data AttachVolume = AttachVolume'-    { _avDryRun     :: !(Maybe Bool)-    , _avVolumeId   :: !Text-    , _avInstanceId :: !Text-    , _avDevice     :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _avDryRun     :: !(Maybe Bool)+  , _avDevice     :: !Text+  , _avInstanceId :: !Text+  , _avVolumeId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AttachVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'avDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'avVolumeId' - The ID of the EBS volume. The volume and instance must be within the same Availability Zone.+-- * 'avDevice' - The device name (for example, @/dev/sdh@ or @xvdh@ ). -- -- * 'avInstanceId' - The ID of the instance. ----- * 'avDevice' - The device name to expose to the instance (for example, @/dev/sdh@ or @xvdh@ ).+-- * 'avVolumeId' - The ID of the EBS volume. The volume and instance must be within the same Availability Zone. attachVolume-    :: Text -- ^ 'avVolumeId'+    :: Text -- ^ 'avDevice'     -> Text -- ^ 'avInstanceId'-    -> Text -- ^ 'avDevice'+    -> Text -- ^ 'avVolumeId'     -> AttachVolume-attachVolume pVolumeId_ pInstanceId_ pDevice_ =-    AttachVolume'-    { _avDryRun = Nothing-    , _avVolumeId = pVolumeId_-    , _avInstanceId = pInstanceId_-    , _avDevice = pDevice_-    }+attachVolume pDevice_ pInstanceId_ pVolumeId_ =+  AttachVolume'+  { _avDryRun = Nothing+  , _avDevice = pDevice_+  , _avInstanceId = pInstanceId_+  , _avVolumeId = pVolumeId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . avDryRun :: Lens' AttachVolume (Maybe Bool) avDryRun = lens _avDryRun (\ s a -> s{_avDryRun = a}); --- | The ID of the EBS volume. The volume and instance must be within the same Availability Zone.-avVolumeId :: Lens' AttachVolume Text-avVolumeId = lens _avVolumeId (\ s a -> s{_avVolumeId = a});+-- | The device name (for example, @/dev/sdh@ or @xvdh@ ).+avDevice :: Lens' AttachVolume Text+avDevice = lens _avDevice (\ s a -> s{_avDevice = a});  -- | The ID of the instance. avInstanceId :: Lens' AttachVolume Text avInstanceId = lens _avInstanceId (\ s a -> s{_avInstanceId = a}); --- | The device name to expose to the instance (for example, @/dev/sdh@ or @xvdh@ ).-avDevice :: Lens' AttachVolume Text-avDevice = lens _avDevice (\ s a -> s{_avDevice = a});+-- | The ID of the EBS volume. The volume and instance must be within the same Availability Zone.+avVolumeId :: Lens' AttachVolume Text+avVolumeId = lens _avVolumeId (\ s a -> s{_avVolumeId = a});  instance AWSRequest AttachVolume where         type Rs AttachVolume = VolumeAttachment         request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x) -instance Hashable AttachVolume+instance Hashable AttachVolume where -instance NFData AttachVolume+instance NFData AttachVolume where  instance ToHeaders AttachVolume where         toHeaders = const mempty@@ -143,5 +145,6 @@           = mconcat               ["Action" =: ("AttachVolume" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _avDryRun, "VolumeId" =: _avVolumeId,-               "InstanceId" =: _avInstanceId, "Device" =: _avDevice]+               "DryRun" =: _avDryRun, "Device" =: _avDevice,+               "InstanceId" =: _avInstanceId,+               "VolumeId" =: _avVolumeId]
gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.AuthorizeSecurityGroupEgress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- [EC2-VPC only] 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html Security Groups for Your VPC> in the /Amazon Virtual Private Cloud User Guide/ . For more information about security group limits, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html Amazon VPC Limits> . -- ----- 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.+-- 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. --@@ -46,12 +46,12 @@     , AuthorizeSecurityGroupEgressResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AuthorizeSecurityGroupEgress. --@@ -59,34 +59,35 @@ -- -- /See:/ 'authorizeSecurityGroupEgress' smart constructor. data AuthorizeSecurityGroupEgress = AuthorizeSecurityGroupEgress'-    { _asgeFromPort                   :: !(Maybe Int)-    , _asgeIPPermissions              :: !(Maybe [IPPermission])-    , _asgeIPProtocol                 :: !(Maybe Text)-    , _asgeToPort                     :: !(Maybe Int)-    , _asgeCidrIP                     :: !(Maybe Text)-    , _asgeSourceSecurityGroupOwnerId :: !(Maybe Text)-    , _asgeSourceSecurityGroupName    :: !(Maybe Text)-    , _asgeDryRun                     :: !(Maybe Bool)-    , _asgeGroupId                    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _asgeFromPort                   :: !(Maybe Int)+  , _asgeIPPermissions              :: !(Maybe [IPPermission])+  , _asgeIPProtocol                 :: !(Maybe Text)+  , _asgeToPort                     :: !(Maybe Int)+  , _asgeCidrIP                     :: !(Maybe Text)+  , _asgeSourceSecurityGroupOwnerId :: !(Maybe Text)+  , _asgeSourceSecurityGroupName    :: !(Maybe Text)+  , _asgeDryRun                     :: !(Maybe Bool)+  , _asgeGroupId                    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeSecurityGroupEgress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'asgeFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.+-- * 'asgeFromPort' - Not supported. Use a set of IP permissions to specify the port. ----- * 'asgeIPPermissions' - A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.+-- * 'asgeIPPermissions' - 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. ----- * 'asgeIPProtocol' - The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.+-- * 'asgeIPProtocol' - Not supported. Use a set of IP permissions to specify the protocol name or number. ----- * 'asgeToPort' - The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.+-- * 'asgeToPort' - Not supported. Use a set of IP permissions to specify the port. ----- * 'asgeCidrIP' - The CIDR IPv4 address range. We recommend that you specify the CIDR range in a set of IP permissions instead.+-- * 'asgeCidrIP' - Not supported. Use a set of IP permissions to specify the CIDR. ----- * 'asgeSourceSecurityGroupOwnerId' - The AWS account number for a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- * 'asgeSourceSecurityGroupOwnerId' - Not supported. Use a set of IP permissions to specify a destination security group. ----- * 'asgeSourceSecurityGroupName' - The name of a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- * 'asgeSourceSecurityGroupName' - Not supported. Use a set of IP permissions to specify a destination security group. -- -- * 'asgeDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -95,43 +96,44 @@     :: Text -- ^ 'asgeGroupId'     -> AuthorizeSecurityGroupEgress authorizeSecurityGroupEgress pGroupId_ =-    AuthorizeSecurityGroupEgress'-    { _asgeFromPort = Nothing-    , _asgeIPPermissions = Nothing-    , _asgeIPProtocol = Nothing-    , _asgeToPort = Nothing-    , _asgeCidrIP = Nothing-    , _asgeSourceSecurityGroupOwnerId = Nothing-    , _asgeSourceSecurityGroupName = Nothing-    , _asgeDryRun = Nothing-    , _asgeGroupId = pGroupId_-    }+  AuthorizeSecurityGroupEgress'+  { _asgeFromPort = Nothing+  , _asgeIPPermissions = Nothing+  , _asgeIPProtocol = Nothing+  , _asgeToPort = Nothing+  , _asgeCidrIP = Nothing+  , _asgeSourceSecurityGroupOwnerId = Nothing+  , _asgeSourceSecurityGroupName = Nothing+  , _asgeDryRun = Nothing+  , _asgeGroupId = pGroupId_+  } --- | The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.++-- | Not supported. Use a set of IP permissions to specify the port. asgeFromPort :: Lens' AuthorizeSecurityGroupEgress (Maybe Int) asgeFromPort = lens _asgeFromPort (\ s a -> s{_asgeFromPort = a}); --- | A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.+-- | 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] asgeIPPermissions = lens _asgeIPPermissions (\ s a -> s{_asgeIPPermissions = a}) . _Default . _Coerce; --- | The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify the protocol name or number. asgeIPProtocol :: Lens' AuthorizeSecurityGroupEgress (Maybe Text) asgeIPProtocol = lens _asgeIPProtocol (\ s a -> s{_asgeIPProtocol = a}); --- | The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify the port. asgeToPort :: Lens' AuthorizeSecurityGroupEgress (Maybe Int) asgeToPort = lens _asgeToPort (\ s a -> s{_asgeToPort = a}); --- | The CIDR IPv4 address range. We recommend that you specify the CIDR range in a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify the CIDR. asgeCidrIP :: Lens' AuthorizeSecurityGroupEgress (Maybe Text) asgeCidrIP = lens _asgeCidrIP (\ s a -> s{_asgeCidrIP = a}); --- | The AWS account number for a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify a destination security group. asgeSourceSecurityGroupOwnerId :: Lens' AuthorizeSecurityGroupEgress (Maybe Text) asgeSourceSecurityGroupOwnerId = lens _asgeSourceSecurityGroupOwnerId (\ s a -> s{_asgeSourceSecurityGroupOwnerId = a}); --- | The name of a destination security group. To authorize outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify a destination security group. asgeSourceSecurityGroupName :: Lens' AuthorizeSecurityGroupEgress (Maybe Text) asgeSourceSecurityGroupName = lens _asgeSourceSecurityGroupName (\ s a -> s{_asgeSourceSecurityGroupName = a}); @@ -151,9 +153,9 @@         response           = receiveNull AuthorizeSecurityGroupEgressResponse' -instance Hashable AuthorizeSecurityGroupEgress+instance Hashable AuthorizeSecurityGroupEgress where -instance NFData AuthorizeSecurityGroupEgress+instance NFData AuthorizeSecurityGroupEgress where  instance ToHeaders AuthorizeSecurityGroupEgress where         toHeaders = const mempty@@ -180,13 +182,16 @@  -- | /See:/ 'authorizeSecurityGroupEgressResponse' smart constructor. data AuthorizeSecurityGroupEgressResponse =-    AuthorizeSecurityGroupEgressResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  AuthorizeSecurityGroupEgressResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeSecurityGroupEgressResponse' with the minimum fields required to make a request. -- authorizeSecurityGroupEgressResponse     :: AuthorizeSecurityGroupEgressResponse authorizeSecurityGroupEgressResponse = AuthorizeSecurityGroupEgressResponse' + instance NFData AuthorizeSecurityGroupEgressResponse+         where
gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.AuthorizeSecurityGroupIngress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,6 +27,8 @@ -- -- [EC2-VPC] 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 /source groups/ ) 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html Amazon VPC Limits> . --+-- You can optionally specify a description for the security group rule.+-- module Network.AWS.EC2.AuthorizeSecurityGroupIngress     (     -- * Creating a Request@@ -49,12 +51,12 @@     , AuthorizeSecurityGroupIngressResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for AuthorizeSecurityGroupIngress. --@@ -62,37 +64,38 @@ -- -- /See:/ 'authorizeSecurityGroupIngress' smart constructor. data AuthorizeSecurityGroupIngress = AuthorizeSecurityGroupIngress'-    { _asgiFromPort                   :: !(Maybe Int)-    , _asgiIPPermissions              :: !(Maybe [IPPermission])-    , _asgiIPProtocol                 :: !(Maybe Text)-    , _asgiGroupId                    :: !(Maybe Text)-    , _asgiToPort                     :: !(Maybe Int)-    , _asgiCidrIP                     :: !(Maybe Text)-    , _asgiSourceSecurityGroupOwnerId :: !(Maybe Text)-    , _asgiGroupName                  :: !(Maybe Text)-    , _asgiSourceSecurityGroupName    :: !(Maybe Text)-    , _asgiDryRun                     :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _asgiFromPort                   :: !(Maybe Int)+  , _asgiIPPermissions              :: !(Maybe [IPPermission])+  , _asgiIPProtocol                 :: !(Maybe Text)+  , _asgiGroupId                    :: !(Maybe Text)+  , _asgiToPort                     :: !(Maybe Int)+  , _asgiCidrIP                     :: !(Maybe Text)+  , _asgiSourceSecurityGroupOwnerId :: !(Maybe Text)+  , _asgiGroupName                  :: !(Maybe Text)+  , _asgiSourceSecurityGroupName    :: !(Maybe Text)+  , _asgiDryRun                     :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeSecurityGroupIngress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'asgiFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use @-1@ to specify all types.+-- * 'asgiFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use @-1@ to specify all types. If you specify all ICMP/ICMPv6 types, you must specify all codes. ----- * 'asgiIPPermissions' - A set of IP permissions. Can be used to specify multiple rules in a single command.+-- * 'asgiIPPermissions' - One or more sets of IP permissions. Can be used to specify multiple rules in a single command. -- -- * 'asgiIPProtocol' - The IP protocol name (@tcp@ , @udp@ , @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers> ). (VPC only) Use @-1@ to specify all protocols. If you specify @-1@ , or a protocol number other than @tcp@ , @udp@ , @icmp@ , or @58@ (ICMPv6), traffic on all ports is allowed, regardless of any ports you specify. For @tcp@ , @udp@ , and @icmp@ , you must specify a port range. For protocol @58@ (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed. ----- * 'asgiGroupId' - The ID of the security group. Required for a nondefault VPC.+-- * 'asgiGroupId' - 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. ----- * 'asgiToPort' - The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use @-1@ to specify all codes.+-- * 'asgiToPort' - The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use @-1@ to specify all codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. -- -- * 'asgiCidrIP' - The CIDR IPv4 address range. You can't specify this parameter when specifying a source security group. ----- * 'asgiSourceSecurityGroupOwnerId' - [EC2-Classic] The AWS account number for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.+-- * 'asgiSourceSecurityGroupOwnerId' - [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. ----- * 'asgiGroupName' - [EC2-Classic, default VPC] The name of the security group.+-- * 'asgiGroupName' - [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. -- -- * 'asgiSourceSecurityGroupName' - [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. --@@ -100,24 +103,25 @@ authorizeSecurityGroupIngress     :: AuthorizeSecurityGroupIngress authorizeSecurityGroupIngress =-    AuthorizeSecurityGroupIngress'-    { _asgiFromPort = Nothing-    , _asgiIPPermissions = Nothing-    , _asgiIPProtocol = Nothing-    , _asgiGroupId = Nothing-    , _asgiToPort = Nothing-    , _asgiCidrIP = Nothing-    , _asgiSourceSecurityGroupOwnerId = Nothing-    , _asgiGroupName = Nothing-    , _asgiSourceSecurityGroupName = Nothing-    , _asgiDryRun = Nothing-    }+  AuthorizeSecurityGroupIngress'+  { _asgiFromPort = Nothing+  , _asgiIPPermissions = Nothing+  , _asgiIPProtocol = Nothing+  , _asgiGroupId = Nothing+  , _asgiToPort = Nothing+  , _asgiCidrIP = Nothing+  , _asgiSourceSecurityGroupOwnerId = Nothing+  , _asgiGroupName = Nothing+  , _asgiSourceSecurityGroupName = Nothing+  , _asgiDryRun = Nothing+  } --- | The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use @-1@ to specify all types.++-- | The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. For the ICMP/ICMPv6 type number, use @-1@ to specify all types. If you specify all ICMP/ICMPv6 types, you must specify all codes. asgiFromPort :: Lens' AuthorizeSecurityGroupIngress (Maybe Int) asgiFromPort = lens _asgiFromPort (\ s a -> s{_asgiFromPort = a}); --- | A set of IP permissions. Can be used to specify multiple rules in a single command.+-- | One or more sets of IP permissions. Can be used to specify multiple rules in a single command. asgiIPPermissions :: Lens' AuthorizeSecurityGroupIngress [IPPermission] asgiIPPermissions = lens _asgiIPPermissions (\ s a -> s{_asgiIPPermissions = a}) . _Default . _Coerce; @@ -125,11 +129,11 @@ asgiIPProtocol :: Lens' AuthorizeSecurityGroupIngress (Maybe Text) asgiIPProtocol = lens _asgiIPProtocol (\ s a -> s{_asgiIPProtocol = a}); --- | The ID of the security group. Required for a nondefault VPC.+-- | 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) asgiGroupId = lens _asgiGroupId (\ s a -> s{_asgiGroupId = a}); --- | The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use @-1@ to specify all codes.+-- | The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code number. For the ICMP/ICMPv6 code number, use @-1@ to specify all codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. asgiToPort :: Lens' AuthorizeSecurityGroupIngress (Maybe Int) asgiToPort = lens _asgiToPort (\ s a -> s{_asgiToPort = a}); @@ -137,11 +141,11 @@ asgiCidrIP :: Lens' AuthorizeSecurityGroupIngress (Maybe Text) asgiCidrIP = lens _asgiCidrIP (\ s a -> s{_asgiCidrIP = a}); --- | [EC2-Classic] The AWS account number for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.+-- | [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. asgiSourceSecurityGroupOwnerId :: Lens' AuthorizeSecurityGroupIngress (Maybe Text) asgiSourceSecurityGroupOwnerId = lens _asgiSourceSecurityGroupOwnerId (\ s a -> s{_asgiSourceSecurityGroupOwnerId = a}); --- | [EC2-Classic, default VPC] The name of the security group.+-- | [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. asgiGroupName :: Lens' AuthorizeSecurityGroupIngress (Maybe Text) asgiGroupName = lens _asgiGroupName (\ s a -> s{_asgiGroupName = a}); @@ -161,9 +165,9 @@         response           = receiveNull AuthorizeSecurityGroupIngressResponse' -instance Hashable AuthorizeSecurityGroupIngress+instance Hashable AuthorizeSecurityGroupIngress where -instance NFData AuthorizeSecurityGroupIngress+instance NFData AuthorizeSecurityGroupIngress where  instance ToHeaders AuthorizeSecurityGroupIngress          where@@ -193,13 +197,16 @@  -- | /See:/ 'authorizeSecurityGroupIngressResponse' smart constructor. data AuthorizeSecurityGroupIngressResponse =-    AuthorizeSecurityGroupIngressResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  AuthorizeSecurityGroupIngressResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'AuthorizeSecurityGroupIngressResponse' with the minimum fields required to make a request. -- authorizeSecurityGroupIngressResponse     :: AuthorizeSecurityGroupIngressResponse authorizeSecurityGroupIngressResponse = AuthorizeSecurityGroupIngressResponse' + instance NFData AuthorizeSecurityGroupIngressResponse+         where
gen/Network/AWS/EC2/BundleInstance.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.BundleInstance--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , birsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for BundleInstance. --@@ -56,11 +56,12 @@ -- -- /See:/ 'bundleInstance' smart constructor. data BundleInstance = BundleInstance'-    { _biDryRun     :: !(Maybe Bool)-    , _biInstanceId :: !Text-    , _biStorage    :: !Storage-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _biDryRun     :: !(Maybe Bool)+  , _biInstanceId :: !Text+  , _biStorage    :: !Storage+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'BundleInstance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,12 +76,10 @@     -> Storage -- ^ 'biStorage'     -> BundleInstance bundleInstance pInstanceId_ pStorage_ =-    BundleInstance'-    { _biDryRun = Nothing-    , _biInstanceId = pInstanceId_-    , _biStorage = pStorage_-    }+  BundleInstance'+  {_biDryRun = Nothing, _biInstanceId = pInstanceId_, _biStorage = pStorage_} + -- | Checks whether you have the required permissions for the action, 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@ . biDryRun :: Lens' BundleInstance (Maybe Bool) biDryRun = lens _biDryRun (\ s a -> s{_biDryRun = a});@@ -102,9 +101,9 @@                  BundleInstanceResponse' <$>                    (x .@? "bundleInstanceTask") <*> (pure (fromEnum s))) -instance Hashable BundleInstance+instance Hashable BundleInstance where -instance NFData BundleInstance+instance NFData BundleInstance where  instance ToHeaders BundleInstance where         toHeaders = const mempty@@ -126,10 +125,11 @@ -- -- /See:/ 'bundleInstanceResponse' smart constructor. data BundleInstanceResponse = BundleInstanceResponse'-    { _birsBundleTask     :: !(Maybe BundleTask)-    , _birsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _birsBundleTask     :: !(Maybe BundleTask)+  , _birsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'BundleInstanceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +141,10 @@     :: Int -- ^ 'birsResponseStatus'     -> BundleInstanceResponse bundleInstanceResponse pResponseStatus_ =-    BundleInstanceResponse'-    { _birsBundleTask = Nothing-    , _birsResponseStatus = pResponseStatus_-    }+  BundleInstanceResponse'+  {_birsBundleTask = Nothing, _birsResponseStatus = pResponseStatus_} + -- | Information about the bundle task. birsBundleTask :: Lens' BundleInstanceResponse (Maybe BundleTask) birsBundleTask = lens _birsBundleTask (\ s a -> s{_birsBundleTask = a});@@ -154,4 +153,4 @@ birsResponseStatus :: Lens' BundleInstanceResponse Int birsResponseStatus = lens _birsResponseStatus (\ s a -> s{_birsResponseStatus = a}); -instance NFData BundleInstanceResponse+instance NFData BundleInstanceResponse where
gen/Network/AWS/EC2/CancelBundleTask.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelBundleTask--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , cbtrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelBundleTask. --@@ -51,10 +51,11 @@ -- -- /See:/ 'cancelBundleTask' smart constructor. data CancelBundleTask = CancelBundleTask'-    { _cbtDryRun   :: !(Maybe Bool)-    , _cbtBundleId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cbtDryRun   :: !(Maybe Bool)+  , _cbtBundleId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelBundleTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,11 +67,9 @@     :: Text -- ^ 'cbtBundleId'     -> CancelBundleTask cancelBundleTask pBundleId_ =-    CancelBundleTask'-    { _cbtDryRun = Nothing-    , _cbtBundleId = pBundleId_-    }+  CancelBundleTask' {_cbtDryRun = Nothing, _cbtBundleId = pBundleId_} + -- | Checks whether you have the required permissions for the action, 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@ . cbtDryRun :: Lens' CancelBundleTask (Maybe Bool) cbtDryRun = lens _cbtDryRun (\ s a -> s{_cbtDryRun = a});@@ -88,9 +87,9 @@                  CancelBundleTaskResponse' <$>                    (x .@? "bundleInstanceTask") <*> (pure (fromEnum s))) -instance Hashable CancelBundleTask+instance Hashable CancelBundleTask where -instance NFData CancelBundleTask+instance NFData CancelBundleTask where  instance ToHeaders CancelBundleTask where         toHeaders = const mempty@@ -111,10 +110,11 @@ -- -- /See:/ 'cancelBundleTaskResponse' smart constructor. data CancelBundleTaskResponse = CancelBundleTaskResponse'-    { _cbtrsBundleTask     :: !(Maybe BundleTask)-    , _cbtrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cbtrsBundleTask     :: !(Maybe BundleTask)+  , _cbtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelBundleTaskResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -126,11 +126,10 @@     :: Int -- ^ 'cbtrsResponseStatus'     -> CancelBundleTaskResponse cancelBundleTaskResponse pResponseStatus_ =-    CancelBundleTaskResponse'-    { _cbtrsBundleTask = Nothing-    , _cbtrsResponseStatus = pResponseStatus_-    }+  CancelBundleTaskResponse'+  {_cbtrsBundleTask = Nothing, _cbtrsResponseStatus = pResponseStatus_} + -- | Information about the bundle task. cbtrsBundleTask :: Lens' CancelBundleTaskResponse (Maybe BundleTask) cbtrsBundleTask = lens _cbtrsBundleTask (\ s a -> s{_cbtrsBundleTask = a});@@ -139,4 +138,4 @@ cbtrsResponseStatus :: Lens' CancelBundleTaskResponse Int cbtrsResponseStatus = lens _cbtrsResponseStatus (\ s a -> s{_cbtrsResponseStatus = a}); -instance NFData CancelBundleTaskResponse+instance NFData CancelBundleTaskResponse where
gen/Network/AWS/EC2/CancelConversionTask.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelConversionTask--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , CancelConversionTaskResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelConversionTask. --@@ -51,11 +51,12 @@ -- -- /See:/ 'cancelConversionTask' smart constructor. data CancelConversionTask = CancelConversionTask'-    { _cctReasonMessage    :: !(Maybe Text)-    , _cctDryRun           :: !(Maybe Bool)-    , _cctConversionTaskId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cctReasonMessage    :: !(Maybe Text)+  , _cctDryRun           :: !(Maybe Bool)+  , _cctConversionTaskId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelConversionTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,12 +70,13 @@     :: Text -- ^ 'cctConversionTaskId'     -> CancelConversionTask cancelConversionTask pConversionTaskId_ =-    CancelConversionTask'-    { _cctReasonMessage = Nothing-    , _cctDryRun = Nothing-    , _cctConversionTaskId = pConversionTaskId_-    }+  CancelConversionTask'+  { _cctReasonMessage = Nothing+  , _cctDryRun = Nothing+  , _cctConversionTaskId = pConversionTaskId_+  } + -- | The reason for canceling the conversion task. cctReasonMessage :: Lens' CancelConversionTask (Maybe Text) cctReasonMessage = lens _cctReasonMessage (\ s a -> s{_cctReasonMessage = a});@@ -93,9 +95,9 @@         request = postQuery ec2         response = receiveNull CancelConversionTaskResponse' -instance Hashable CancelConversionTask+instance Hashable CancelConversionTask where -instance NFData CancelConversionTask+instance NFData CancelConversionTask where  instance ToHeaders CancelConversionTask where         toHeaders = const mempty@@ -114,13 +116,15 @@  -- | /See:/ 'cancelConversionTaskResponse' smart constructor. data CancelConversionTaskResponse =-    CancelConversionTaskResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CancelConversionTaskResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelConversionTaskResponse' with the minimum fields required to make a request. -- cancelConversionTaskResponse     :: CancelConversionTaskResponse cancelConversionTaskResponse = CancelConversionTaskResponse' -instance NFData CancelConversionTaskResponse++instance NFData CancelConversionTaskResponse where
gen/Network/AWS/EC2/CancelExportTask.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelExportTask--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , CancelExportTaskResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelExportTask. --@@ -47,9 +47,10 @@ -- -- /See:/ 'cancelExportTask' smart constructor. newtype CancelExportTask = CancelExportTask'-    { _cetExportTaskId :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cetExportTaskId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelExportTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,9 @@     :: Text -- ^ 'cetExportTaskId'     -> CancelExportTask cancelExportTask pExportTaskId_ =-    CancelExportTask'-    { _cetExportTaskId = pExportTaskId_-    }+  CancelExportTask' {_cetExportTaskId = pExportTaskId_} + -- | The ID of the export task. This is the ID returned by @CreateInstanceExportTask@ . cetExportTaskId :: Lens' CancelExportTask Text cetExportTaskId = lens _cetExportTaskId (\ s a -> s{_cetExportTaskId = a});@@ -72,9 +72,9 @@         request = postQuery ec2         response = receiveNull CancelExportTaskResponse' -instance Hashable CancelExportTask+instance Hashable CancelExportTask where -instance NFData CancelExportTask+instance NFData CancelExportTask where  instance ToHeaders CancelExportTask where         toHeaders = const mempty@@ -91,13 +91,15 @@  -- | /See:/ 'cancelExportTaskResponse' smart constructor. data CancelExportTaskResponse =-    CancelExportTaskResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CancelExportTaskResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelExportTaskResponse' with the minimum fields required to make a request. -- cancelExportTaskResponse     :: CancelExportTaskResponse cancelExportTaskResponse = CancelExportTaskResponse' -instance NFData CancelExportTaskResponse++instance NFData CancelExportTaskResponse where
gen/Network/AWS/EC2/CancelImportTask.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelImportTask--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , citrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelImportTask. --@@ -54,11 +54,12 @@ -- -- /See:/ 'cancelImportTask' smart constructor. data CancelImportTask = CancelImportTask'-    { _citCancelReason :: !(Maybe Text)-    , _citImportTaskId :: !(Maybe Text)-    , _citDryRun       :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _citCancelReason :: !(Maybe Text)+  , _citImportTaskId :: !(Maybe Text)+  , _citDryRun       :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelImportTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,10 @@ cancelImportTask     :: CancelImportTask cancelImportTask =-    CancelImportTask'-    { _citCancelReason = Nothing-    , _citImportTaskId = Nothing-    , _citDryRun = Nothing-    }+  CancelImportTask'+  {_citCancelReason = Nothing, _citImportTaskId = Nothing, _citDryRun = Nothing} + -- | The reason for canceling the task. citCancelReason :: Lens' CancelImportTask (Maybe Text) citCancelReason = lens _citCancelReason (\ s a -> s{_citCancelReason = a});@@ -100,9 +99,9 @@                      (x .@? "previousState")                      <*> (pure (fromEnum s))) -instance Hashable CancelImportTask+instance Hashable CancelImportTask where -instance NFData CancelImportTask+instance NFData CancelImportTask where  instance ToHeaders CancelImportTask where         toHeaders = const mempty@@ -125,12 +124,13 @@ -- -- /See:/ 'cancelImportTaskResponse' smart constructor. data CancelImportTaskResponse = CancelImportTaskResponse'-    { _citrsState          :: !(Maybe Text)-    , _citrsImportTaskId   :: !(Maybe Text)-    , _citrsPreviousState  :: !(Maybe Text)-    , _citrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _citrsState          :: !(Maybe Text)+  , _citrsImportTaskId   :: !(Maybe Text)+  , _citrsPreviousState  :: !(Maybe Text)+  , _citrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelImportTaskResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -146,13 +146,14 @@     :: Int -- ^ 'citrsResponseStatus'     -> CancelImportTaskResponse cancelImportTaskResponse pResponseStatus_ =-    CancelImportTaskResponse'-    { _citrsState = Nothing-    , _citrsImportTaskId = Nothing-    , _citrsPreviousState = Nothing-    , _citrsResponseStatus = pResponseStatus_-    }+  CancelImportTaskResponse'+  { _citrsState = Nothing+  , _citrsImportTaskId = Nothing+  , _citrsPreviousState = Nothing+  , _citrsResponseStatus = pResponseStatus_+  } + -- | The current state of the task being canceled. citrsState :: Lens' CancelImportTaskResponse (Maybe Text) citrsState = lens _citrsState (\ s a -> s{_citrsState = a});@@ -169,4 +170,4 @@ citrsResponseStatus :: Lens' CancelImportTaskResponse Int citrsResponseStatus = lens _citrsResponseStatus (\ s a -> s{_citrsResponseStatus = a}); -instance NFData CancelImportTaskResponse+instance NFData CancelImportTaskResponse where
gen/Network/AWS/EC2/CancelReservedInstancesListing.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelReservedInstancesListing--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , crilrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelReservedInstancesListing. --@@ -52,9 +52,10 @@ -- -- /See:/ 'cancelReservedInstancesListing' smart constructor. newtype CancelReservedInstancesListing = CancelReservedInstancesListing'-    { _crilReservedInstancesListingId :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crilReservedInstancesListingId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelReservedInstancesListing' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,10 +65,10 @@     :: Text -- ^ 'crilReservedInstancesListingId'     -> CancelReservedInstancesListing cancelReservedInstancesListing pReservedInstancesListingId_ =-    CancelReservedInstancesListing'-    { _crilReservedInstancesListingId = pReservedInstancesListingId_-    }+  CancelReservedInstancesListing'+  {_crilReservedInstancesListingId = pReservedInstancesListingId_} + -- | The ID of the Reserved Instance listing. crilReservedInstancesListingId :: Lens' CancelReservedInstancesListing Text crilReservedInstancesListingId = lens _crilReservedInstancesListingId (\ s a -> s{_crilReservedInstancesListingId = a});@@ -86,8 +87,9 @@                      <*> (pure (fromEnum s)))  instance Hashable CancelReservedInstancesListing+         where -instance NFData CancelReservedInstancesListing+instance NFData CancelReservedInstancesListing where  instance ToHeaders CancelReservedInstancesListing          where@@ -111,10 +113,11 @@ -- -- /See:/ 'cancelReservedInstancesListingResponse' smart constructor. data CancelReservedInstancesListingResponse = CancelReservedInstancesListingResponse'-    { _crilrsReservedInstancesListings :: !(Maybe [ReservedInstancesListing])-    , _crilrsResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crilrsReservedInstancesListings :: !(Maybe [ReservedInstancesListing])+  , _crilrsResponseStatus            :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelReservedInstancesListingResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -126,11 +129,12 @@     :: Int -- ^ 'crilrsResponseStatus'     -> CancelReservedInstancesListingResponse cancelReservedInstancesListingResponse pResponseStatus_ =-    CancelReservedInstancesListingResponse'-    { _crilrsReservedInstancesListings = Nothing-    , _crilrsResponseStatus = pResponseStatus_-    }+  CancelReservedInstancesListingResponse'+  { _crilrsReservedInstancesListings = Nothing+  , _crilrsResponseStatus = pResponseStatus_+  } + -- | The Reserved Instance listing. crilrsReservedInstancesListings :: Lens' CancelReservedInstancesListingResponse [ReservedInstancesListing] crilrsReservedInstancesListings = lens _crilrsReservedInstancesListings (\ s a -> s{_crilrsReservedInstancesListings = a}) . _Default . _Coerce;@@ -140,4 +144,5 @@ crilrsResponseStatus = lens _crilrsResponseStatus (\ s a -> s{_crilrsResponseStatus = a});  instance NFData-         CancelReservedInstancesListingResponse+           CancelReservedInstancesListingResponse+         where
gen/Network/AWS/EC2/CancelSpotFleetRequests.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelSpotFleetRequests--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , csfrrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelSpotFleetRequests. --@@ -55,11 +55,12 @@ -- -- /See:/ 'cancelSpotFleetRequests' smart constructor. data CancelSpotFleetRequests = CancelSpotFleetRequests'-    { _csfrDryRun              :: !(Maybe Bool)-    , _csfrSpotFleetRequestIds :: ![Text]-    , _csfrTerminateInstances  :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csfrDryRun              :: !(Maybe Bool)+  , _csfrSpotFleetRequestIds :: ![Text]+  , _csfrTerminateInstances  :: !Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelSpotFleetRequests' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     :: Bool -- ^ 'csfrTerminateInstances'     -> CancelSpotFleetRequests cancelSpotFleetRequests pTerminateInstances_ =-    CancelSpotFleetRequests'-    { _csfrDryRun = Nothing-    , _csfrSpotFleetRequestIds = mempty-    , _csfrTerminateInstances = pTerminateInstances_-    }+  CancelSpotFleetRequests'+  { _csfrDryRun = Nothing+  , _csfrSpotFleetRequestIds = mempty+  , _csfrTerminateInstances = pTerminateInstances_+  } + -- | Checks whether you have the required permissions for the action, 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@ . csfrDryRun :: Lens' CancelSpotFleetRequests (Maybe Bool) csfrDryRun = lens _csfrDryRun (\ s a -> s{_csfrDryRun = a});@@ -106,9 +108,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable CancelSpotFleetRequests+instance Hashable CancelSpotFleetRequests where -instance NFData CancelSpotFleetRequests+instance NFData CancelSpotFleetRequests where  instance ToHeaders CancelSpotFleetRequests where         toHeaders = const mempty@@ -133,11 +135,12 @@ -- -- /See:/ 'cancelSpotFleetRequestsResponse' smart constructor. data CancelSpotFleetRequestsResponse = CancelSpotFleetRequestsResponse'-    { _csfrrsSuccessfulFleetRequests   :: !(Maybe [CancelSpotFleetRequestsSuccessItem])-    , _csfrrsUnsuccessfulFleetRequests :: !(Maybe [CancelSpotFleetRequestsErrorItem])-    , _csfrrsResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csfrrsSuccessfulFleetRequests :: !(Maybe [CancelSpotFleetRequestsSuccessItem])+  , _csfrrsUnsuccessfulFleetRequests :: !(Maybe [CancelSpotFleetRequestsErrorItem])+  , _csfrrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelSpotFleetRequestsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -151,12 +154,13 @@     :: Int -- ^ 'csfrrsResponseStatus'     -> CancelSpotFleetRequestsResponse cancelSpotFleetRequestsResponse pResponseStatus_ =-    CancelSpotFleetRequestsResponse'-    { _csfrrsSuccessfulFleetRequests = Nothing-    , _csfrrsUnsuccessfulFleetRequests = Nothing-    , _csfrrsResponseStatus = pResponseStatus_-    }+  CancelSpotFleetRequestsResponse'+  { _csfrrsSuccessfulFleetRequests = Nothing+  , _csfrrsUnsuccessfulFleetRequests = Nothing+  , _csfrrsResponseStatus = pResponseStatus_+  } + -- | Information about the Spot fleet requests that are successfully canceled. csfrrsSuccessfulFleetRequests :: Lens' CancelSpotFleetRequestsResponse [CancelSpotFleetRequestsSuccessItem] csfrrsSuccessfulFleetRequests = lens _csfrrsSuccessfulFleetRequests (\ s a -> s{_csfrrsSuccessfulFleetRequests = a}) . _Default . _Coerce;@@ -169,4 +173,4 @@ csfrrsResponseStatus :: Lens' CancelSpotFleetRequestsResponse Int csfrrsResponseStatus = lens _csfrrsResponseStatus (\ s a -> s{_csfrrsResponseStatus = a}); -instance NFData CancelSpotFleetRequestsResponse+instance NFData CancelSpotFleetRequestsResponse where
gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CancelSpotInstanceRequests--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , csirrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CancelSpotInstanceRequests. --@@ -53,10 +53,11 @@ -- -- /See:/ 'cancelSpotInstanceRequests' smart constructor. data CancelSpotInstanceRequests = CancelSpotInstanceRequests'-    { _csirDryRun                 :: !(Maybe Bool)-    , _csirSpotInstanceRequestIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csirDryRun                 :: !(Maybe Bool)+  , _csirSpotInstanceRequestIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelSpotInstanceRequests' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,10 @@ cancelSpotInstanceRequests     :: CancelSpotInstanceRequests cancelSpotInstanceRequests =-    CancelSpotInstanceRequests'-    { _csirDryRun = Nothing-    , _csirSpotInstanceRequestIds = mempty-    }+  CancelSpotInstanceRequests'+  {_csirDryRun = Nothing, _csirSpotInstanceRequestIds = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . csirDryRun :: Lens' CancelSpotInstanceRequests (Maybe Bool) csirDryRun = lens _csirDryRun (\ s a -> s{_csirDryRun = a});@@ -92,9 +92,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable CancelSpotInstanceRequests+instance Hashable CancelSpotInstanceRequests where -instance NFData CancelSpotInstanceRequests+instance NFData CancelSpotInstanceRequests where  instance ToHeaders CancelSpotInstanceRequests where         toHeaders = const mempty@@ -118,10 +118,11 @@ -- -- /See:/ 'cancelSpotInstanceRequestsResponse' smart constructor. data CancelSpotInstanceRequestsResponse = CancelSpotInstanceRequestsResponse'-    { _csirrsCancelledSpotInstanceRequests :: !(Maybe [CancelledSpotInstanceRequest])-    , _csirrsResponseStatus                :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csirrsCancelledSpotInstanceRequests :: !(Maybe [CancelledSpotInstanceRequest])+  , _csirrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CancelSpotInstanceRequestsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -133,11 +134,12 @@     :: Int -- ^ 'csirrsResponseStatus'     -> CancelSpotInstanceRequestsResponse cancelSpotInstanceRequestsResponse pResponseStatus_ =-    CancelSpotInstanceRequestsResponse'-    { _csirrsCancelledSpotInstanceRequests = Nothing-    , _csirrsResponseStatus = pResponseStatus_-    }+  CancelSpotInstanceRequestsResponse'+  { _csirrsCancelledSpotInstanceRequests = Nothing+  , _csirrsResponseStatus = pResponseStatus_+  } + -- | One or more Spot instance requests. csirrsCancelledSpotInstanceRequests :: Lens' CancelSpotInstanceRequestsResponse [CancelledSpotInstanceRequest] csirrsCancelledSpotInstanceRequests = lens _csirrsCancelledSpotInstanceRequests (\ s a -> s{_csirrsCancelledSpotInstanceRequests = a}) . _Default . _Coerce;@@ -147,3 +149,4 @@ csirrsResponseStatus = lens _csirrsResponseStatus (\ s a -> s{_csirrsResponseStatus = a});  instance NFData CancelSpotInstanceRequestsResponse+         where
gen/Network/AWS/EC2/ConfirmProductInstance.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.ConfirmProductInstance--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.+-- 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@@ -28,8 +28,8 @@     , ConfirmProductInstance     -- * Request Lenses     , cpiDryRun-    , cpiProductCode     , cpiInstanceId+    , cpiProductCode      -- * Destructuring the Response     , confirmProductInstanceResponse@@ -40,12 +40,12 @@     , cpirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ConfirmProductInstance. --@@ -53,43 +53,45 @@ -- -- /See:/ 'confirmProductInstance' smart constructor. data ConfirmProductInstance = ConfirmProductInstance'-    { _cpiDryRun      :: !(Maybe Bool)-    , _cpiProductCode :: !Text-    , _cpiInstanceId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cpiDryRun      :: !(Maybe Bool)+  , _cpiInstanceId  :: !Text+  , _cpiProductCode :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ConfirmProductInstance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cpiDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'cpiProductCode' - The product code. This must be a product code that you own.--- -- * 'cpiInstanceId' - The ID of the instance.+--+-- * 'cpiProductCode' - The product code. This must be a product code that you own. confirmProductInstance-    :: Text -- ^ 'cpiProductCode'-    -> Text -- ^ 'cpiInstanceId'+    :: Text -- ^ 'cpiInstanceId'+    -> Text -- ^ 'cpiProductCode'     -> ConfirmProductInstance-confirmProductInstance pProductCode_ pInstanceId_ =-    ConfirmProductInstance'-    { _cpiDryRun = Nothing-    , _cpiProductCode = pProductCode_-    , _cpiInstanceId = pInstanceId_-    }+confirmProductInstance pInstanceId_ pProductCode_ =+  ConfirmProductInstance'+  { _cpiDryRun = Nothing+  , _cpiInstanceId = pInstanceId_+  , _cpiProductCode = pProductCode_+  } + -- | Checks whether you have the required permissions for the action, 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@ . cpiDryRun :: Lens' ConfirmProductInstance (Maybe Bool) cpiDryRun = lens _cpiDryRun (\ s a -> s{_cpiDryRun = a}); --- | The product code. This must be a product code that you own.-cpiProductCode :: Lens' ConfirmProductInstance Text-cpiProductCode = lens _cpiProductCode (\ s a -> s{_cpiProductCode = a});- -- | The ID of the instance. cpiInstanceId :: Lens' ConfirmProductInstance Text cpiInstanceId = lens _cpiInstanceId (\ s a -> s{_cpiInstanceId = a}); +-- | The product code. This must be a product code that you own.+cpiProductCode :: Lens' ConfirmProductInstance Text+cpiProductCode = lens _cpiProductCode (\ s a -> s{_cpiProductCode = a});+ instance AWSRequest ConfirmProductInstance where         type Rs ConfirmProductInstance =              ConfirmProductInstanceResponse@@ -101,9 +103,9 @@                    (x .@? "return") <*> (x .@? "ownerId") <*>                      (pure (fromEnum s))) -instance Hashable ConfirmProductInstance+instance Hashable ConfirmProductInstance where -instance NFData ConfirmProductInstance+instance NFData ConfirmProductInstance where  instance ToHeaders ConfirmProductInstance where         toHeaders = const mempty@@ -118,8 +120,8 @@                  ("ConfirmProductInstance" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "DryRun" =: _cpiDryRun,-               "ProductCode" =: _cpiProductCode,-               "InstanceId" =: _cpiInstanceId]+               "InstanceId" =: _cpiInstanceId,+               "ProductCode" =: _cpiProductCode]  -- | Contains the output of ConfirmProductInstance. --@@ -127,11 +129,12 @@ -- -- /See:/ 'confirmProductInstanceResponse' smart constructor. data ConfirmProductInstanceResponse = ConfirmProductInstanceResponse'-    { _cpirsReturn         :: !(Maybe Bool)-    , _cpirsOwnerId        :: !(Maybe Text)-    , _cpirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cpirsReturn         :: !(Maybe Bool)+  , _cpirsOwnerId        :: !(Maybe Text)+  , _cpirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ConfirmProductInstanceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -145,12 +148,13 @@     :: Int -- ^ 'cpirsResponseStatus'     -> ConfirmProductInstanceResponse confirmProductInstanceResponse pResponseStatus_ =-    ConfirmProductInstanceResponse'-    { _cpirsReturn = Nothing-    , _cpirsOwnerId = Nothing-    , _cpirsResponseStatus = pResponseStatus_-    }+  ConfirmProductInstanceResponse'+  { _cpirsReturn = Nothing+  , _cpirsOwnerId = Nothing+  , _cpirsResponseStatus = pResponseStatus_+  } + -- | The return value of the request. Returns @true@ if the specified product code is owned by the requester and associated with the specified instance. cpirsReturn :: Lens' ConfirmProductInstanceResponse (Maybe Bool) cpirsReturn = lens _cpirsReturn (\ s a -> s{_cpirsReturn = a});@@ -163,4 +167,4 @@ cpirsResponseStatus :: Lens' ConfirmProductInstanceResponse Int cpirsResponseStatus = lens _cpirsResponseStatus (\ s a -> s{_cpirsResponseStatus = a}); -instance NFData ConfirmProductInstanceResponse+instance NFData ConfirmProductInstanceResponse where
+ gen/Network/AWS/EC2/CopyFpgaImage.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.CopyFpgaImage+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Copies the specified Amazon FPGA Image (AFI) to the current region.+--+--+module Network.AWS.EC2.CopyFpgaImage+    (+    -- * Creating a Request+      copyFpgaImage+    , CopyFpgaImage+    -- * Request Lenses+    , cfiClientToken+    , cfiName+    , cfiDescription+    , cfiDryRun+    , cfiSourceFpgaImageId+    , cfiSourceRegion++    -- * Destructuring the Response+    , copyFpgaImageResponse+    , CopyFpgaImageResponse+    -- * Response Lenses+    , crsFpgaImageId+    , crsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'copyFpgaImage' smart constructor.+data CopyFpgaImage = CopyFpgaImage'+  { _cfiClientToken       :: !(Maybe Text)+  , _cfiName              :: !(Maybe Text)+  , _cfiDescription       :: !(Maybe Text)+  , _cfiDryRun            :: !(Maybe Bool)+  , _cfiSourceFpgaImageId :: !Text+  , _cfiSourceRegion      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CopyFpgaImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfiClientToken' - Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html Ensuring Idempotency> .+--+-- * 'cfiName' - The name for the new AFI. The default is the name of the source AFI.+--+-- * 'cfiDescription' - The description for the new AFI.+--+-- * 'cfiDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'cfiSourceFpgaImageId' - The ID of the source AFI.+--+-- * 'cfiSourceRegion' - The region that contains the source AFI.+copyFpgaImage+    :: Text -- ^ 'cfiSourceFpgaImageId'+    -> Text -- ^ 'cfiSourceRegion'+    -> CopyFpgaImage+copyFpgaImage pSourceFpgaImageId_ pSourceRegion_ =+  CopyFpgaImage'+  { _cfiClientToken = Nothing+  , _cfiName = Nothing+  , _cfiDescription = Nothing+  , _cfiDryRun = Nothing+  , _cfiSourceFpgaImageId = pSourceFpgaImageId_+  , _cfiSourceRegion = pSourceRegion_+  }+++-- | Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html Ensuring Idempotency> .+cfiClientToken :: Lens' CopyFpgaImage (Maybe Text)+cfiClientToken = lens _cfiClientToken (\ s a -> s{_cfiClientToken = a});++-- | The name for the new AFI. The default is the name of the source AFI.+cfiName :: Lens' CopyFpgaImage (Maybe Text)+cfiName = lens _cfiName (\ s a -> s{_cfiName = a});++-- | The description for the new AFI.+cfiDescription :: Lens' CopyFpgaImage (Maybe Text)+cfiDescription = lens _cfiDescription (\ s a -> s{_cfiDescription = a});++-- | Checks whether you have the required permissions for the action, 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@ .+cfiDryRun :: Lens' CopyFpgaImage (Maybe Bool)+cfiDryRun = lens _cfiDryRun (\ s a -> s{_cfiDryRun = a});++-- | The ID of the source AFI.+cfiSourceFpgaImageId :: Lens' CopyFpgaImage Text+cfiSourceFpgaImageId = lens _cfiSourceFpgaImageId (\ s a -> s{_cfiSourceFpgaImageId = a});++-- | The region that contains the source AFI.+cfiSourceRegion :: Lens' CopyFpgaImage Text+cfiSourceRegion = lens _cfiSourceRegion (\ s a -> s{_cfiSourceRegion = a});++instance AWSRequest CopyFpgaImage where+        type Rs CopyFpgaImage = CopyFpgaImageResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 CopyFpgaImageResponse' <$>+                   (x .@? "fpgaImageId") <*> (pure (fromEnum s)))++instance Hashable CopyFpgaImage where++instance NFData CopyFpgaImage where++instance ToHeaders CopyFpgaImage where+        toHeaders = const mempty++instance ToPath CopyFpgaImage where+        toPath = const "/"++instance ToQuery CopyFpgaImage where+        toQuery CopyFpgaImage'{..}+          = mconcat+              ["Action" =: ("CopyFpgaImage" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "ClientToken" =: _cfiClientToken, "Name" =: _cfiName,+               "Description" =: _cfiDescription,+               "DryRun" =: _cfiDryRun,+               "SourceFpgaImageId" =: _cfiSourceFpgaImageId,+               "SourceRegion" =: _cfiSourceRegion]++-- | /See:/ 'copyFpgaImageResponse' smart constructor.+data CopyFpgaImageResponse = CopyFpgaImageResponse'+  { _crsFpgaImageId    :: !(Maybe Text)+  , _crsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CopyFpgaImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crsFpgaImageId' - The ID of the new AFI.+--+-- * 'crsResponseStatus' - -- | The response status code.+copyFpgaImageResponse+    :: Int -- ^ 'crsResponseStatus'+    -> CopyFpgaImageResponse+copyFpgaImageResponse pResponseStatus_ =+  CopyFpgaImageResponse'+  {_crsFpgaImageId = Nothing, _crsResponseStatus = pResponseStatus_}+++-- | The ID of the new AFI.+crsFpgaImageId :: Lens' CopyFpgaImageResponse (Maybe Text)+crsFpgaImageId = lens _crsFpgaImageId (\ s a -> s{_crsFpgaImageId = a});++-- | -- | The response status code.+crsResponseStatus :: Lens' CopyFpgaImageResponse Int+crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});++instance NFData CopyFpgaImageResponse where
gen/Network/AWS/EC2/CopyImage.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.CopyImage--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request. -- ----- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html Copying AMIs> in the /Amazon Elastic Compute Cloud User Guide/ .+-- For more information about the prerequisites and limits when copying an AMI, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html Copying an AMI> in the /Amazon Elastic Compute Cloud User Guide/ . -- module Network.AWS.EC2.CopyImage     (@@ -34,9 +34,9 @@     , ciKMSKeyId     , ciDescription     , ciDryRun-    , ciSourceRegion-    , ciSourceImageId     , ciName+    , ciSourceImageId+    , ciSourceRegion      -- * Destructuring the Response     , copyImageResponse@@ -46,12 +46,12 @@     , coprsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CopyImage. --@@ -59,16 +59,17 @@ -- -- /See:/ 'copyImage' smart constructor. data CopyImage = CopyImage'-    { _ciClientToken   :: !(Maybe Text)-    , _ciEncrypted     :: !(Maybe Bool)-    , _ciKMSKeyId      :: !(Maybe Text)-    , _ciDescription   :: !(Maybe Text)-    , _ciDryRun        :: !(Maybe Bool)-    , _ciSourceRegion  :: !Text-    , _ciSourceImageId :: !Text-    , _ciName          :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ciClientToken   :: !(Maybe Text)+  , _ciEncrypted     :: !(Maybe Bool)+  , _ciKMSKeyId      :: !(Maybe Text)+  , _ciDescription   :: !(Maybe Text)+  , _ciDryRun        :: !(Maybe Bool)+  , _ciName          :: !Text+  , _ciSourceImageId :: !Text+  , _ciSourceRegion  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopyImage' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,28 +84,29 @@ -- -- * 'ciDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'ciSourceRegion' - The name of the region that contains the AMI to copy.+-- * 'ciName' - The name of the new AMI in the destination region. -- -- * 'ciSourceImageId' - The ID of the AMI to copy. ----- * 'ciName' - The name of the new AMI in the destination region.+-- * 'ciSourceRegion' - The name of the region that contains the AMI to copy. copyImage-    :: Text -- ^ 'ciSourceRegion'+    :: Text -- ^ 'ciName'     -> Text -- ^ 'ciSourceImageId'-    -> Text -- ^ 'ciName'+    -> Text -- ^ 'ciSourceRegion'     -> CopyImage-copyImage pSourceRegion_ pSourceImageId_ pName_ =-    CopyImage'-    { _ciClientToken = Nothing-    , _ciEncrypted = Nothing-    , _ciKMSKeyId = Nothing-    , _ciDescription = Nothing-    , _ciDryRun = Nothing-    , _ciSourceRegion = pSourceRegion_-    , _ciSourceImageId = pSourceImageId_-    , _ciName = pName_-    }+copyImage pName_ pSourceImageId_ pSourceRegion_ =+  CopyImage'+  { _ciClientToken = Nothing+  , _ciEncrypted = Nothing+  , _ciKMSKeyId = Nothing+  , _ciDescription = Nothing+  , _ciDryRun = Nothing+  , _ciName = pName_+  , _ciSourceImageId = pSourceImageId_+  , _ciSourceRegion = pSourceRegion_+  } + -- | Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/ . ciClientToken :: Lens' CopyImage (Maybe Text) ciClientToken = lens _ciClientToken (\ s a -> s{_ciClientToken = a});@@ -125,17 +127,17 @@ ciDryRun :: Lens' CopyImage (Maybe Bool) ciDryRun = lens _ciDryRun (\ s a -> s{_ciDryRun = a}); --- | The name of the region that contains the AMI to copy.-ciSourceRegion :: Lens' CopyImage Text-ciSourceRegion = lens _ciSourceRegion (\ s a -> s{_ciSourceRegion = a});+-- | The name of the new AMI in the destination region.+ciName :: Lens' CopyImage Text+ciName = lens _ciName (\ s a -> s{_ciName = a});  -- | The ID of the AMI to copy. ciSourceImageId :: Lens' CopyImage Text ciSourceImageId = lens _ciSourceImageId (\ s a -> s{_ciSourceImageId = a}); --- | The name of the new AMI in the destination region.-ciName :: Lens' CopyImage Text-ciName = lens _ciName (\ s a -> s{_ciName = a});+-- | The name of the region that contains the AMI to copy.+ciSourceRegion :: Lens' CopyImage Text+ciSourceRegion = lens _ciSourceRegion (\ s a -> s{_ciSourceRegion = a});  instance AWSRequest CopyImage where         type Rs CopyImage = CopyImageResponse@@ -146,9 +148,9 @@                  CopyImageResponse' <$>                    (x .@? "imageId") <*> (pure (fromEnum s))) -instance Hashable CopyImage+instance Hashable CopyImage where -instance NFData CopyImage+instance NFData CopyImage where  instance ToHeaders CopyImage where         toHeaders = const mempty@@ -165,10 +167,9 @@                "Encrypted" =: _ciEncrypted,                "KmsKeyId" =: _ciKMSKeyId,                "Description" =: _ciDescription,-               "DryRun" =: _ciDryRun,-               "SourceRegion" =: _ciSourceRegion,+               "DryRun" =: _ciDryRun, "Name" =: _ciName,                "SourceImageId" =: _ciSourceImageId,-               "Name" =: _ciName]+               "SourceRegion" =: _ciSourceRegion]  -- | Contains the output of CopyImage. --@@ -176,10 +177,11 @@ -- -- /See:/ 'copyImageResponse' smart constructor. data CopyImageResponse = CopyImageResponse'-    { _coprsImageId        :: !(Maybe Text)-    , _coprsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _coprsImageId        :: !(Maybe Text)+  , _coprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopyImageResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -191,11 +193,10 @@     :: Int -- ^ 'coprsResponseStatus'     -> CopyImageResponse copyImageResponse pResponseStatus_ =-    CopyImageResponse'-    { _coprsImageId = Nothing-    , _coprsResponseStatus = pResponseStatus_-    }+  CopyImageResponse'+  {_coprsImageId = Nothing, _coprsResponseStatus = pResponseStatus_} + -- | The ID of the new AMI. coprsImageId :: Lens' CopyImageResponse (Maybe Text) coprsImageId = lens _coprsImageId (\ s a -> s{_coprsImageId = a});@@ -204,4 +205,4 @@ coprsResponseStatus :: Lens' CopyImageResponse Int coprsResponseStatus = lens _coprsResponseStatus (\ s a -> s{_coprsResponseStatus = a}); -instance NFData CopyImageResponse+instance NFData CopyImageResponse where
gen/Network/AWS/EC2/CopySnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CopySnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,12 +48,12 @@     , csrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CopySnapshot. --@@ -61,16 +61,17 @@ -- -- /See:/ 'copySnapshot' smart constructor. data CopySnapshot = CopySnapshot'-    { _csPresignedURL      :: !(Maybe Text)-    , _csEncrypted         :: !(Maybe Bool)-    , _csDestinationRegion :: !(Maybe Text)-    , _csKMSKeyId          :: !(Maybe Text)-    , _csDescription       :: !(Maybe Text)-    , _csDryRun            :: !(Maybe Bool)-    , _csSourceRegion      :: !Text-    , _csSourceSnapshotId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csPresignedURL      :: !(Maybe Text)+  , _csEncrypted         :: !(Maybe Bool)+  , _csDestinationRegion :: !(Maybe Text)+  , _csKMSKeyId          :: !(Maybe Text)+  , _csDescription       :: !(Maybe Text)+  , _csDryRun            :: !(Maybe Bool)+  , _csSourceRegion      :: !Text+  , _csSourceSnapshotId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopySnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,17 +96,18 @@     -> Text -- ^ 'csSourceSnapshotId'     -> CopySnapshot copySnapshot pSourceRegion_ pSourceSnapshotId_ =-    CopySnapshot'-    { _csPresignedURL = Nothing-    , _csEncrypted = Nothing-    , _csDestinationRegion = Nothing-    , _csKMSKeyId = Nothing-    , _csDescription = Nothing-    , _csDryRun = Nothing-    , _csSourceRegion = pSourceRegion_-    , _csSourceSnapshotId = pSourceSnapshotId_-    }+  CopySnapshot'+  { _csPresignedURL = Nothing+  , _csEncrypted = Nothing+  , _csDestinationRegion = Nothing+  , _csKMSKeyId = Nothing+  , _csDescription = Nothing+  , _csDryRun = Nothing+  , _csSourceRegion = pSourceRegion_+  , _csSourceSnapshotId = pSourceSnapshotId_+  } + -- | The pre-signed URL that facilitates copying an encrypted snapshot. This parameter is only required when copying an encrypted snapshot with the Amazon EC2 Query API; it is available as an optional parameter in all other cases. The @PresignedUrl@ should use the snapshot source endpoint, the @CopySnapshot@ action, and include the @SourceRegion@ , @SourceSnapshotId@ , and @DestinationRegion@ parameters. The @PresignedUrl@ 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 <http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html Authenticating Requests by Using Query Parameters (AWS Signature Version 4)> in the /Amazon Simple Storage Service API Reference/ . An invalid or improperly signed @PresignedUrl@ will cause the copy operation to fail asynchronously, and the snapshot will move to an @error@ state. csPresignedURL :: Lens' CopySnapshot (Maybe Text) csPresignedURL = lens _csPresignedURL (\ s a -> s{_csPresignedURL = a});@@ -147,9 +149,9 @@                  CopySnapshotResponse' <$>                    (x .@? "snapshotId") <*> (pure (fromEnum s))) -instance Hashable CopySnapshot+instance Hashable CopySnapshot where -instance NFData CopySnapshot+instance NFData CopySnapshot where  instance ToHeaders CopySnapshot where         toHeaders = const mempty@@ -177,10 +179,11 @@ -- -- /See:/ 'copySnapshotResponse' smart constructor. data CopySnapshotResponse = CopySnapshotResponse'-    { _csrsSnapshotId     :: !(Maybe Text)-    , _csrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csrsSnapshotId     :: !(Maybe Text)+  , _csrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CopySnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -192,11 +195,10 @@     :: Int -- ^ 'csrsResponseStatus'     -> CopySnapshotResponse copySnapshotResponse pResponseStatus_ =-    CopySnapshotResponse'-    { _csrsSnapshotId = Nothing-    , _csrsResponseStatus = pResponseStatus_-    }+  CopySnapshotResponse'+  {_csrsSnapshotId = Nothing, _csrsResponseStatus = pResponseStatus_} + -- | The ID of the new snapshot. csrsSnapshotId :: Lens' CopySnapshotResponse (Maybe Text) csrsSnapshotId = lens _csrsSnapshotId (\ s a -> s{_csrsSnapshotId = a});@@ -205,4 +207,4 @@ csrsResponseStatus :: Lens' CopySnapshotResponse Int csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a}); -instance NFData CopySnapshotResponse+instance NFData CopySnapshotResponse where
gen/Network/AWS/EC2/CreateCustomerGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateCustomerGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,7 +23,7 @@ -- -- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information about VPN customer gateways, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- -- /Important:/ 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. --@@ -34,9 +34,9 @@     , CreateCustomerGateway     -- * Request Lenses     , ccgDryRun-    , ccgType-    , ccgPublicIP     , ccgBGPASN+    , ccgPublicIP+    , ccgType      -- * Destructuring the Response     , createCustomerGatewayResponse@@ -46,12 +46,12 @@     , ccgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateCustomerGateway. --@@ -59,51 +59,53 @@ -- -- /See:/ 'createCustomerGateway' smart constructor. data CreateCustomerGateway = CreateCustomerGateway'-    { _ccgDryRun   :: !(Maybe Bool)-    , _ccgType     :: !GatewayType-    , _ccgPublicIP :: !Text-    , _ccgBGPASN   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccgDryRun   :: !(Maybe Bool)+  , _ccgBGPASN   :: !Int+  , _ccgPublicIP :: !Text+  , _ccgType     :: !GatewayType+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCustomerGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ccgDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'ccgType' - The type of VPN connection that this customer gateway supports (@ipsec.1@ ).+-- * 'ccgBGPASN' - For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 -- -- * 'ccgPublicIP' - The Internet-routable IP address for the customer gateway's outside interface. The address must be static. ----- * 'ccgBGPASN' - For devices that support BGP, the customer gateway's BGP ASN. Default: 65000+-- * 'ccgType' - The type of VPN connection that this customer gateway supports (@ipsec.1@ ). createCustomerGateway-    :: GatewayType -- ^ 'ccgType'+    :: Int -- ^ 'ccgBGPASN'     -> Text -- ^ 'ccgPublicIP'-    -> Int -- ^ 'ccgBGPASN'+    -> GatewayType -- ^ 'ccgType'     -> CreateCustomerGateway-createCustomerGateway pType_ pPublicIP_ pBGPASN_ =-    CreateCustomerGateway'-    { _ccgDryRun = Nothing-    , _ccgType = pType_-    , _ccgPublicIP = pPublicIP_-    , _ccgBGPASN = pBGPASN_-    }+createCustomerGateway pBGPASN_ pPublicIP_ pType_ =+  CreateCustomerGateway'+  { _ccgDryRun = Nothing+  , _ccgBGPASN = pBGPASN_+  , _ccgPublicIP = pPublicIP_+  , _ccgType = pType_+  } + -- | Checks whether you have the required permissions for the action, 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@ . ccgDryRun :: Lens' CreateCustomerGateway (Maybe Bool) ccgDryRun = lens _ccgDryRun (\ s a -> s{_ccgDryRun = a}); --- | The type of VPN connection that this customer gateway supports (@ipsec.1@ ).-ccgType :: Lens' CreateCustomerGateway GatewayType-ccgType = lens _ccgType (\ s a -> s{_ccgType = a});+-- | For devices that support BGP, the customer gateway's BGP ASN. Default: 65000+ccgBGPASN :: Lens' CreateCustomerGateway Int+ccgBGPASN = lens _ccgBGPASN (\ s a -> s{_ccgBGPASN = a});  -- | The Internet-routable IP address for the customer gateway's outside interface. The address must be static. ccgPublicIP :: Lens' CreateCustomerGateway Text ccgPublicIP = lens _ccgPublicIP (\ s a -> s{_ccgPublicIP = a}); --- | For devices that support BGP, the customer gateway's BGP ASN. Default: 65000-ccgBGPASN :: Lens' CreateCustomerGateway Int-ccgBGPASN = lens _ccgBGPASN (\ s a -> s{_ccgBGPASN = a});+-- | The type of VPN connection that this customer gateway supports (@ipsec.1@ ).+ccgType :: Lens' CreateCustomerGateway GatewayType+ccgType = lens _ccgType (\ s a -> s{_ccgType = a});  instance AWSRequest CreateCustomerGateway where         type Rs CreateCustomerGateway =@@ -115,9 +117,9 @@                  CreateCustomerGatewayResponse' <$>                    (x .@? "customerGateway") <*> (pure (fromEnum s))) -instance Hashable CreateCustomerGateway+instance Hashable CreateCustomerGateway where -instance NFData CreateCustomerGateway+instance NFData CreateCustomerGateway where  instance ToHeaders CreateCustomerGateway where         toHeaders = const mempty@@ -130,8 +132,8 @@           = mconcat               ["Action" =: ("CreateCustomerGateway" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _ccgDryRun, "Type" =: _ccgType,-               "IpAddress" =: _ccgPublicIP, "BgpAsn" =: _ccgBGPASN]+               "DryRun" =: _ccgDryRun, "BgpAsn" =: _ccgBGPASN,+               "IpAddress" =: _ccgPublicIP, "Type" =: _ccgType]  -- | Contains the output of CreateCustomerGateway. --@@ -139,10 +141,11 @@ -- -- /See:/ 'createCustomerGatewayResponse' smart constructor. data CreateCustomerGatewayResponse = CreateCustomerGatewayResponse'-    { _ccgrsCustomerGateway :: !(Maybe CustomerGateway)-    , _ccgrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccgrsCustomerGateway :: !(Maybe CustomerGateway)+  , _ccgrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCustomerGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -154,11 +157,10 @@     :: Int -- ^ 'ccgrsResponseStatus'     -> CreateCustomerGatewayResponse createCustomerGatewayResponse pResponseStatus_ =-    CreateCustomerGatewayResponse'-    { _ccgrsCustomerGateway = Nothing-    , _ccgrsResponseStatus = pResponseStatus_-    }+  CreateCustomerGatewayResponse'+  {_ccgrsCustomerGateway = Nothing, _ccgrsResponseStatus = pResponseStatus_} + -- | Information about the customer gateway. ccgrsCustomerGateway :: Lens' CreateCustomerGatewayResponse (Maybe CustomerGateway) ccgrsCustomerGateway = lens _ccgrsCustomerGateway (\ s a -> s{_ccgrsCustomerGateway = a});@@ -167,4 +169,4 @@ ccgrsResponseStatus :: Lens' CreateCustomerGatewayResponse Int ccgrsResponseStatus = lens _ccgrsResponseStatus (\ s a -> s{_ccgrsResponseStatus = a}); -instance NFData CreateCustomerGatewayResponse+instance NFData CreateCustomerGatewayResponse where
gen/Network/AWS/EC2/CreateDHCPOptions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateDHCPOptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,7 +23,7 @@ -- --     * @domain-name-servers@ - 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 @domain-name@ , you must set @domain-name-servers@ to a custom DNS server. -----     * @domain-name@ - If you're using AmazonProvidedDNS in "us-east-1", specify "ec2.internal". If you're using AmazonProvidedDNS in another region, specify "region.compute.internal" (for example, "ap-northeast-1.compute.internal"). Otherwise, specify a domain name (for example, "MyCompany.com"). This value is used to complete unqualified DNS hostnames. __Important__ : 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.+--     * @domain-name@ - If you're using AmazonProvidedDNS in @us-east-1@ , specify @ec2.internal@ . If you're using AmazonProvidedDNS in another region, specify @region.compute.internal@ (for example, @ap-northeast-1.compute.internal@ ). Otherwise, specify a domain name (for example, @MyCompany.com@ ). This value is used to complete unqualified DNS hostnames. __Important__ : 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. -- --     * @ntp-servers@ - The IP addresses of up to four Network Time Protocol (NTP) servers. --@@ -52,12 +52,12 @@     , cdorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateDhcpOptions. --@@ -65,10 +65,11 @@ -- -- /See:/ 'createDHCPOptions' smart constructor. data CreateDHCPOptions = CreateDHCPOptions'-    { _cdoDryRun             :: !(Maybe Bool)-    , _cdoDHCPConfigurations :: ![NewDHCPConfiguration]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cdoDryRun             :: !(Maybe Bool)+  , _cdoDHCPConfigurations :: ![NewDHCPConfiguration]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateDHCPOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +80,9 @@ createDHCPOptions     :: CreateDHCPOptions createDHCPOptions =-    CreateDHCPOptions'-    { _cdoDryRun = Nothing-    , _cdoDHCPConfigurations = mempty-    }+  CreateDHCPOptions' {_cdoDryRun = Nothing, _cdoDHCPConfigurations = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . cdoDryRun :: Lens' CreateDHCPOptions (Maybe Bool) cdoDryRun = lens _cdoDryRun (\ s a -> s{_cdoDryRun = a});@@ -101,9 +100,9 @@                  CreateDHCPOptionsResponse' <$>                    (x .@? "dhcpOptions") <*> (pure (fromEnum s))) -instance Hashable CreateDHCPOptions+instance Hashable CreateDHCPOptions where -instance NFData CreateDHCPOptions+instance NFData CreateDHCPOptions where  instance ToHeaders CreateDHCPOptions where         toHeaders = const mempty@@ -126,10 +125,11 @@ -- -- /See:/ 'createDHCPOptionsResponse' smart constructor. data CreateDHCPOptionsResponse = CreateDHCPOptionsResponse'-    { _cdorsDHCPOptions    :: !(Maybe DHCPOptions)-    , _cdorsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cdorsDHCPOptions    :: !(Maybe DHCPOptions)+  , _cdorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateDHCPOptionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +141,10 @@     :: Int -- ^ 'cdorsResponseStatus'     -> CreateDHCPOptionsResponse createDHCPOptionsResponse pResponseStatus_ =-    CreateDHCPOptionsResponse'-    { _cdorsDHCPOptions = Nothing-    , _cdorsResponseStatus = pResponseStatus_-    }+  CreateDHCPOptionsResponse'+  {_cdorsDHCPOptions = Nothing, _cdorsResponseStatus = pResponseStatus_} + -- | A set of DHCP options. cdorsDHCPOptions :: Lens' CreateDHCPOptionsResponse (Maybe DHCPOptions) cdorsDHCPOptions = lens _cdorsDHCPOptions (\ s a -> s{_cdorsDHCPOptions = a});@@ -154,4 +153,4 @@ cdorsResponseStatus :: Lens' CreateDHCPOptionsResponse Int cdorsResponseStatus = lens _cdorsResponseStatus (\ s a -> s{_cdorsResponseStatus = a}); -instance NFData CreateDHCPOptionsResponse+instance NFData CreateDHCPOptionsResponse where
+ gen/Network/AWS/EC2/CreateDefaultSubnet.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.CreateDefaultSubnet+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a default subnet with a size @/20@ 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html#create-default-subnet Creating a Default Subnet> in the /Amazon Virtual Private Cloud User Guide/ .+--+--+module Network.AWS.EC2.CreateDefaultSubnet+    (+    -- * Creating a Request+      createDefaultSubnet+    , CreateDefaultSubnet+    -- * Request Lenses+    , cdsDryRun+    , cdsAvailabilityZone++    -- * Destructuring the Response+    , createDefaultSubnetResponse+    , CreateDefaultSubnetResponse+    -- * Response Lenses+    , cdsrsSubnet+    , cdsrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createDefaultSubnet' smart constructor.+data CreateDefaultSubnet = CreateDefaultSubnet'+  { _cdsDryRun           :: !(Maybe Bool)+  , _cdsAvailabilityZone :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDefaultSubnet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdsDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'cdsAvailabilityZone' - The Availability Zone in which to create the default subnet.+createDefaultSubnet+    :: Text -- ^ 'cdsAvailabilityZone'+    -> CreateDefaultSubnet+createDefaultSubnet pAvailabilityZone_ =+  CreateDefaultSubnet'+  {_cdsDryRun = Nothing, _cdsAvailabilityZone = pAvailabilityZone_}+++-- | Checks whether you have the required permissions for the action, 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@ .+cdsDryRun :: Lens' CreateDefaultSubnet (Maybe Bool)+cdsDryRun = lens _cdsDryRun (\ s a -> s{_cdsDryRun = a});++-- | The Availability Zone in which to create the default subnet.+cdsAvailabilityZone :: Lens' CreateDefaultSubnet Text+cdsAvailabilityZone = lens _cdsAvailabilityZone (\ s a -> s{_cdsAvailabilityZone = a});++instance AWSRequest CreateDefaultSubnet where+        type Rs CreateDefaultSubnet =+             CreateDefaultSubnetResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 CreateDefaultSubnetResponse' <$>+                   (x .@? "subnet") <*> (pure (fromEnum s)))++instance Hashable CreateDefaultSubnet where++instance NFData CreateDefaultSubnet where++instance ToHeaders CreateDefaultSubnet where+        toHeaders = const mempty++instance ToPath CreateDefaultSubnet where+        toPath = const "/"++instance ToQuery CreateDefaultSubnet where+        toQuery CreateDefaultSubnet'{..}+          = mconcat+              ["Action" =: ("CreateDefaultSubnet" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "DryRun" =: _cdsDryRun,+               "AvailabilityZone" =: _cdsAvailabilityZone]++-- | /See:/ 'createDefaultSubnetResponse' smart constructor.+data CreateDefaultSubnetResponse = CreateDefaultSubnetResponse'+  { _cdsrsSubnet         :: !(Maybe Subnet)+  , _cdsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDefaultSubnetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdsrsSubnet' - Information about the subnet.+--+-- * 'cdsrsResponseStatus' - -- | The response status code.+createDefaultSubnetResponse+    :: Int -- ^ 'cdsrsResponseStatus'+    -> CreateDefaultSubnetResponse+createDefaultSubnetResponse pResponseStatus_ =+  CreateDefaultSubnetResponse'+  {_cdsrsSubnet = Nothing, _cdsrsResponseStatus = pResponseStatus_}+++-- | Information about the subnet.+cdsrsSubnet :: Lens' CreateDefaultSubnetResponse (Maybe Subnet)+cdsrsSubnet = lens _cdsrsSubnet (\ s a -> s{_cdsrsSubnet = a});++-- | -- | The response status code.+cdsrsResponseStatus :: Lens' CreateDefaultSubnetResponse Int+cdsrsResponseStatus = lens _cdsrsResponseStatus (\ s a -> s{_cdsrsResponseStatus = a});++instance NFData CreateDefaultSubnetResponse where
+ gen/Network/AWS/EC2/CreateDefaultVPC.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.CreateDefaultVPC+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a default VPC with a size @/16@ IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html Default VPC and Default Subnets> in the /Amazon Virtual Private Cloud User Guide/ . 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 <http://aws.amazon.com/vpc/faqs/#Default_VPCs Default VPCs FAQ> .+--+module Network.AWS.EC2.CreateDefaultVPC+    (+    -- * Creating a Request+      createDefaultVPC+    , CreateDefaultVPC+    -- * Request Lenses+    , cdvDryRun++    -- * Destructuring the Response+    , createDefaultVPCResponse+    , CreateDefaultVPCResponse+    -- * Response Lenses+    , cdvrsVPC+    , cdvrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for CreateDefaultVpc.+--+--+--+-- /See:/ 'createDefaultVPC' smart constructor.+newtype CreateDefaultVPC = CreateDefaultVPC'+  { _cdvDryRun :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDefaultVPC' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdvDryRun' - Checks whether you have the required permissions for the action, 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@ .+createDefaultVPC+    :: CreateDefaultVPC+createDefaultVPC = CreateDefaultVPC' {_cdvDryRun = Nothing}+++-- | Checks whether you have the required permissions for the action, 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@ .+cdvDryRun :: Lens' CreateDefaultVPC (Maybe Bool)+cdvDryRun = lens _cdvDryRun (\ s a -> s{_cdvDryRun = a});++instance AWSRequest CreateDefaultVPC where+        type Rs CreateDefaultVPC = CreateDefaultVPCResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 CreateDefaultVPCResponse' <$>+                   (x .@? "vpc") <*> (pure (fromEnum s)))++instance Hashable CreateDefaultVPC where++instance NFData CreateDefaultVPC where++instance ToHeaders CreateDefaultVPC where+        toHeaders = const mempty++instance ToPath CreateDefaultVPC where+        toPath = const "/"++instance ToQuery CreateDefaultVPC where+        toQuery CreateDefaultVPC'{..}+          = mconcat+              ["Action" =: ("CreateDefaultVpc" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "DryRun" =: _cdvDryRun]++-- | Contains the output of CreateDefaultVpc.+--+--+--+-- /See:/ 'createDefaultVPCResponse' smart constructor.+data CreateDefaultVPCResponse = CreateDefaultVPCResponse'+  { _cdvrsVPC            :: !(Maybe VPC)+  , _cdvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDefaultVPCResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdvrsVPC' - Information about the VPC.+--+-- * 'cdvrsResponseStatus' - -- | The response status code.+createDefaultVPCResponse+    :: Int -- ^ 'cdvrsResponseStatus'+    -> CreateDefaultVPCResponse+createDefaultVPCResponse pResponseStatus_ =+  CreateDefaultVPCResponse'+  {_cdvrsVPC = Nothing, _cdvrsResponseStatus = pResponseStatus_}+++-- | Information about the VPC.+cdvrsVPC :: Lens' CreateDefaultVPCResponse (Maybe VPC)+cdvrsVPC = lens _cdvrsVPC (\ s a -> s{_cdvrsVPC = a});++-- | -- | The response status code.+cdvrsResponseStatus :: Lens' CreateDefaultVPCResponse Int+cdvrsResponseStatus = lens _cdvrsResponseStatus (\ s a -> s{_cdvrsResponseStatus = a});++instance NFData CreateDefaultVPCResponse where
gen/Network/AWS/EC2/CreateEgressOnlyInternetGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateEgressOnlyInternetGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,20 +40,21 @@     , ceoigrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'createEgressOnlyInternetGateway' smart constructor. data CreateEgressOnlyInternetGateway = CreateEgressOnlyInternetGateway'-    { _ceoigClientToken :: !(Maybe Text)-    , _ceoigDryRun      :: !(Maybe Bool)-    , _ceoigVPCId       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ceoigClientToken :: !(Maybe Text)+  , _ceoigDryRun      :: !(Maybe Bool)+  , _ceoigVPCId       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateEgressOnlyInternetGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,12 +68,10 @@     :: Text -- ^ 'ceoigVPCId'     -> CreateEgressOnlyInternetGateway createEgressOnlyInternetGateway pVPCId_ =-    CreateEgressOnlyInternetGateway'-    { _ceoigClientToken = Nothing-    , _ceoigDryRun = Nothing-    , _ceoigVPCId = pVPCId_-    }+  CreateEgressOnlyInternetGateway'+  {_ceoigClientToken = Nothing, _ceoigDryRun = Nothing, _ceoigVPCId = pVPCId_} + -- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> . ceoigClientToken :: Lens' CreateEgressOnlyInternetGateway (Maybe Text) ceoigClientToken = lens _ceoigClientToken (\ s a -> s{_ceoigClientToken = a});@@ -99,8 +98,9 @@                      <*> (pure (fromEnum s)))  instance Hashable CreateEgressOnlyInternetGateway+         where -instance NFData CreateEgressOnlyInternetGateway+instance NFData CreateEgressOnlyInternetGateway where  instance ToHeaders CreateEgressOnlyInternetGateway          where@@ -121,11 +121,12 @@  -- | /See:/ 'createEgressOnlyInternetGatewayResponse' smart constructor. data CreateEgressOnlyInternetGatewayResponse = CreateEgressOnlyInternetGatewayResponse'-    { _ceoigrsClientToken               :: !(Maybe Text)-    , _ceoigrsEgressOnlyInternetGateway :: !(Maybe EgressOnlyInternetGateway)-    , _ceoigrsResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ceoigrsClientToken               :: !(Maybe Text)+  , _ceoigrsEgressOnlyInternetGateway :: !(Maybe EgressOnlyInternetGateway)+  , _ceoigrsResponseStatus            :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateEgressOnlyInternetGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,12 +140,13 @@     :: Int -- ^ 'ceoigrsResponseStatus'     -> CreateEgressOnlyInternetGatewayResponse createEgressOnlyInternetGatewayResponse pResponseStatus_ =-    CreateEgressOnlyInternetGatewayResponse'-    { _ceoigrsClientToken = Nothing-    , _ceoigrsEgressOnlyInternetGateway = Nothing-    , _ceoigrsResponseStatus = pResponseStatus_-    }+  CreateEgressOnlyInternetGatewayResponse'+  { _ceoigrsClientToken = Nothing+  , _ceoigrsEgressOnlyInternetGateway = Nothing+  , _ceoigrsResponseStatus = pResponseStatus_+  } + -- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. ceoigrsClientToken :: Lens' CreateEgressOnlyInternetGatewayResponse (Maybe Text) ceoigrsClientToken = lens _ceoigrsClientToken (\ s a -> s{_ceoigrsClientToken = a});@@ -158,4 +160,5 @@ ceoigrsResponseStatus = lens _ceoigrsResponseStatus (\ s a -> s{_ceoigrsResponseStatus = a});  instance NFData-         CreateEgressOnlyInternetGatewayResponse+           CreateEgressOnlyInternetGatewayResponse+         where
gen/Network/AWS/EC2/CreateFlowLogs.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateFlowLogs--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,11 +30,11 @@     , CreateFlowLogs     -- * Request Lenses     , cflClientToken+    , cflDeliverLogsPermissionARN+    , cflLogGroupName     , cflResourceIds     , cflResourceType     , cflTrafficType-    , cflLogGroupName-    , cflDeliverLogsPermissionARN      -- * Destructuring the Response     , createFlowLogsResponse@@ -46,12 +46,12 @@     , cflrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateFlowLogs. --@@ -59,49 +59,59 @@ -- -- /See:/ 'createFlowLogs' smart constructor. data CreateFlowLogs = CreateFlowLogs'-    { _cflClientToken              :: !(Maybe Text)-    , _cflResourceIds              :: ![Text]-    , _cflResourceType             :: !FlowLogsResourceType-    , _cflTrafficType              :: !TrafficType-    , _cflLogGroupName             :: !Text-    , _cflDeliverLogsPermissionARN :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cflClientToken              :: !(Maybe Text)+  , _cflDeliverLogsPermissionARN :: !Text+  , _cflLogGroupName             :: !Text+  , _cflResourceIds              :: ![Text]+  , _cflResourceType             :: !FlowLogsResourceType+  , _cflTrafficType              :: !TrafficType+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateFlowLogs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cflClientToken' - Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> . --+-- * 'cflDeliverLogsPermissionARN' - The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group.+--+-- * 'cflLogGroupName' - The name of the CloudWatch log group.+-- -- * 'cflResourceIds' - One or more subnet, network interface, or VPC IDs. Constraints: Maximum of 1000 resources -- -- * 'cflResourceType' - The type of resource on which to create the flow log. -- -- * 'cflTrafficType' - The type of traffic to log.------ * 'cflLogGroupName' - The name of the CloudWatch log group.------ * 'cflDeliverLogsPermissionARN' - The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group. createFlowLogs-    :: FlowLogsResourceType -- ^ 'cflResourceType'-    -> TrafficType -- ^ 'cflTrafficType'+    :: Text -- ^ 'cflDeliverLogsPermissionARN'     -> Text -- ^ 'cflLogGroupName'-    -> Text -- ^ 'cflDeliverLogsPermissionARN'+    -> FlowLogsResourceType -- ^ 'cflResourceType'+    -> TrafficType -- ^ 'cflTrafficType'     -> CreateFlowLogs-createFlowLogs pResourceType_ pTrafficType_ pLogGroupName_ pDeliverLogsPermissionARN_ =-    CreateFlowLogs'-    { _cflClientToken = Nothing-    , _cflResourceIds = mempty-    , _cflResourceType = pResourceType_-    , _cflTrafficType = pTrafficType_-    , _cflLogGroupName = pLogGroupName_-    , _cflDeliverLogsPermissionARN = pDeliverLogsPermissionARN_-    }+createFlowLogs pDeliverLogsPermissionARN_ pLogGroupName_ pResourceType_ pTrafficType_ =+  CreateFlowLogs'+  { _cflClientToken = Nothing+  , _cflDeliverLogsPermissionARN = pDeliverLogsPermissionARN_+  , _cflLogGroupName = pLogGroupName_+  , _cflResourceIds = mempty+  , _cflResourceType = pResourceType_+  , _cflTrafficType = pTrafficType_+  } + -- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> . cflClientToken :: Lens' CreateFlowLogs (Maybe Text) cflClientToken = lens _cflClientToken (\ s a -> s{_cflClientToken = a}); +-- | The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group.+cflDeliverLogsPermissionARN :: Lens' CreateFlowLogs Text+cflDeliverLogsPermissionARN = lens _cflDeliverLogsPermissionARN (\ s a -> s{_cflDeliverLogsPermissionARN = a});++-- | The name of the CloudWatch log group.+cflLogGroupName :: Lens' CreateFlowLogs Text+cflLogGroupName = lens _cflLogGroupName (\ s a -> s{_cflLogGroupName = a});+ -- | One or more subnet, network interface, or VPC IDs. Constraints: Maximum of 1000 resources cflResourceIds :: Lens' CreateFlowLogs [Text] cflResourceIds = lens _cflResourceIds (\ s a -> s{_cflResourceIds = a}) . _Coerce;@@ -114,14 +124,6 @@ cflTrafficType :: Lens' CreateFlowLogs TrafficType cflTrafficType = lens _cflTrafficType (\ s a -> s{_cflTrafficType = a}); --- | The name of the CloudWatch log group.-cflLogGroupName :: Lens' CreateFlowLogs Text-cflLogGroupName = lens _cflLogGroupName (\ s a -> s{_cflLogGroupName = a});---- | The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group.-cflDeliverLogsPermissionARN :: Lens' CreateFlowLogs Text-cflDeliverLogsPermissionARN = lens _cflDeliverLogsPermissionARN (\ s a -> s{_cflDeliverLogsPermissionARN = a});- instance AWSRequest CreateFlowLogs where         type Rs CreateFlowLogs = CreateFlowLogsResponse         request = postQuery ec2@@ -137,9 +139,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable CreateFlowLogs+instance Hashable CreateFlowLogs where -instance NFData CreateFlowLogs+instance NFData CreateFlowLogs where  instance ToHeaders CreateFlowLogs where         toHeaders = const mempty@@ -153,12 +155,12 @@               ["Action" =: ("CreateFlowLogs" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "ClientToken" =: _cflClientToken,+               "DeliverLogsPermissionArn" =:+                 _cflDeliverLogsPermissionARN,+               "LogGroupName" =: _cflLogGroupName,                toQueryList "ResourceId" _cflResourceIds,                "ResourceType" =: _cflResourceType,-               "TrafficType" =: _cflTrafficType,-               "LogGroupName" =: _cflLogGroupName,-               "DeliverLogsPermissionArn" =:-                 _cflDeliverLogsPermissionARN]+               "TrafficType" =: _cflTrafficType]  -- | Contains the output of CreateFlowLogs. --@@ -166,12 +168,13 @@ -- -- /See:/ 'createFlowLogsResponse' smart constructor. data CreateFlowLogsResponse = CreateFlowLogsResponse'-    { _cflrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])-    , _cflrsClientToken    :: !(Maybe Text)-    , _cflrsFlowLogIds     :: !(Maybe [Text])-    , _cflrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cflrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])+  , _cflrsClientToken    :: !(Maybe Text)+  , _cflrsFlowLogIds     :: !(Maybe [Text])+  , _cflrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateFlowLogsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -187,13 +190,14 @@     :: Int -- ^ 'cflrsResponseStatus'     -> CreateFlowLogsResponse createFlowLogsResponse pResponseStatus_ =-    CreateFlowLogsResponse'-    { _cflrsUnsuccessful = Nothing-    , _cflrsClientToken = Nothing-    , _cflrsFlowLogIds = Nothing-    , _cflrsResponseStatus = pResponseStatus_-    }+  CreateFlowLogsResponse'+  { _cflrsUnsuccessful = Nothing+  , _cflrsClientToken = Nothing+  , _cflrsFlowLogIds = Nothing+  , _cflrsResponseStatus = pResponseStatus_+  } + -- | Information about the flow logs that could not be created successfully. cflrsUnsuccessful :: Lens' CreateFlowLogsResponse [UnsuccessfulItem] cflrsUnsuccessful = lens _cflrsUnsuccessful (\ s a -> s{_cflrsUnsuccessful = a}) . _Default . _Coerce;@@ -210,4 +214,4 @@ cflrsResponseStatus :: Lens' CreateFlowLogsResponse Int cflrsResponseStatus = lens _cflrsResponseStatus (\ s a -> s{_cflrsResponseStatus = a}); -instance NFData CreateFlowLogsResponse+instance NFData CreateFlowLogsResponse where
+ gen/Network/AWS/EC2/CreateFpgaImage.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.CreateFpgaImage+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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 <https://github.com/aws/aws-fpga/ AWS FPGA Hardware Development Kit> .+--+module Network.AWS.EC2.CreateFpgaImage+    (+    -- * Creating a Request+      createFpgaImage+    , CreateFpgaImage+    -- * Request Lenses+    , creClientToken+    , creLogsStorageLocation+    , creName+    , creDescription+    , creDryRun+    , creInputStorageLocation++    -- * Destructuring the Response+    , createFpgaImageResponse+    , CreateFpgaImageResponse+    -- * Response Lenses+    , cfirsFpgaImageId+    , cfirsFpgaImageGlobalId+    , cfirsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createFpgaImage' smart constructor.+data CreateFpgaImage = CreateFpgaImage'+  { _creClientToken          :: !(Maybe Text)+  , _creLogsStorageLocation  :: !(Maybe StorageLocation)+  , _creName                 :: !(Maybe Text)+  , _creDescription          :: !(Maybe Text)+  , _creDryRun               :: !(Maybe Bool)+  , _creInputStorageLocation :: !StorageLocation+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateFpgaImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'creClientToken' - Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html Ensuring Idempotency> .+--+-- * 'creLogsStorageLocation' - The location in Amazon S3 for the output logs.+--+-- * 'creName' - A name for the AFI.+--+-- * 'creDescription' - A description for the AFI.+--+-- * 'creDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'creInputStorageLocation' - The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball.+createFpgaImage+    :: StorageLocation -- ^ 'creInputStorageLocation'+    -> CreateFpgaImage+createFpgaImage pInputStorageLocation_ =+  CreateFpgaImage'+  { _creClientToken = Nothing+  , _creLogsStorageLocation = Nothing+  , _creName = Nothing+  , _creDescription = Nothing+  , _creDryRun = Nothing+  , _creInputStorageLocation = pInputStorageLocation_+  }+++-- | Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html Ensuring Idempotency> .+creClientToken :: Lens' CreateFpgaImage (Maybe Text)+creClientToken = lens _creClientToken (\ s a -> s{_creClientToken = a});++-- | The location in Amazon S3 for the output logs.+creLogsStorageLocation :: Lens' CreateFpgaImage (Maybe StorageLocation)+creLogsStorageLocation = lens _creLogsStorageLocation (\ s a -> s{_creLogsStorageLocation = a});++-- | A name for the AFI.+creName :: Lens' CreateFpgaImage (Maybe Text)+creName = lens _creName (\ s a -> s{_creName = a});++-- | A description for the AFI.+creDescription :: Lens' CreateFpgaImage (Maybe Text)+creDescription = lens _creDescription (\ s a -> s{_creDescription = a});++-- | Checks whether you have the required permissions for the action, 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@ .+creDryRun :: Lens' CreateFpgaImage (Maybe Bool)+creDryRun = lens _creDryRun (\ s a -> s{_creDryRun = a});++-- | The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball.+creInputStorageLocation :: Lens' CreateFpgaImage StorageLocation+creInputStorageLocation = lens _creInputStorageLocation (\ s a -> s{_creInputStorageLocation = a});++instance AWSRequest CreateFpgaImage where+        type Rs CreateFpgaImage = CreateFpgaImageResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 CreateFpgaImageResponse' <$>+                   (x .@? "fpgaImageId") <*> (x .@? "fpgaImageGlobalId")+                     <*> (pure (fromEnum s)))++instance Hashable CreateFpgaImage where++instance NFData CreateFpgaImage where++instance ToHeaders CreateFpgaImage where+        toHeaders = const mempty++instance ToPath CreateFpgaImage where+        toPath = const "/"++instance ToQuery CreateFpgaImage where+        toQuery CreateFpgaImage'{..}+          = mconcat+              ["Action" =: ("CreateFpgaImage" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "ClientToken" =: _creClientToken,+               "LogsStorageLocation" =: _creLogsStorageLocation,+               "Name" =: _creName, "Description" =: _creDescription,+               "DryRun" =: _creDryRun,+               "InputStorageLocation" =: _creInputStorageLocation]++-- | /See:/ 'createFpgaImageResponse' smart constructor.+data CreateFpgaImageResponse = CreateFpgaImageResponse'+  { _cfirsFpgaImageId       :: !(Maybe Text)+  , _cfirsFpgaImageGlobalId :: !(Maybe Text)+  , _cfirsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateFpgaImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfirsFpgaImageId' - The FPGA image identifier (AFI ID).+--+-- * 'cfirsFpgaImageGlobalId' - The global FPGA image identifier (AGFI ID).+--+-- * 'cfirsResponseStatus' - -- | The response status code.+createFpgaImageResponse+    :: Int -- ^ 'cfirsResponseStatus'+    -> CreateFpgaImageResponse+createFpgaImageResponse pResponseStatus_ =+  CreateFpgaImageResponse'+  { _cfirsFpgaImageId = Nothing+  , _cfirsFpgaImageGlobalId = Nothing+  , _cfirsResponseStatus = pResponseStatus_+  }+++-- | The FPGA image identifier (AFI ID).+cfirsFpgaImageId :: Lens' CreateFpgaImageResponse (Maybe Text)+cfirsFpgaImageId = lens _cfirsFpgaImageId (\ s a -> s{_cfirsFpgaImageId = a});++-- | The global FPGA image identifier (AGFI ID).+cfirsFpgaImageGlobalId :: Lens' CreateFpgaImageResponse (Maybe Text)+cfirsFpgaImageGlobalId = lens _cfirsFpgaImageGlobalId (\ s a -> s{_cfirsFpgaImageGlobalId = a});++-- | -- | The response status code.+cfirsResponseStatus :: Lens' CreateFpgaImageResponse Int+cfirsResponseStatus = lens _cfirsResponseStatus (\ s a -> s{_cfirsResponseStatus = a});++instance NFData CreateFpgaImageResponse where
gen/Network/AWS/EC2/CreateImage.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateImage--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,12 +46,12 @@     , cirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateImage. --@@ -59,14 +59,15 @@ -- -- /See:/ 'createImage' smart constructor. data CreateImage = CreateImage'-    { _ciiNoReboot            :: !(Maybe Bool)-    , _ciiDescription         :: !(Maybe Text)-    , _ciiBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _ciiDryRun              :: !(Maybe Bool)-    , _ciiInstanceId          :: !Text-    , _ciiName                :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ciiNoReboot            :: !(Maybe Bool)+  , _ciiDescription         :: !(Maybe Text)+  , _ciiBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _ciiDryRun              :: !(Maybe Bool)+  , _ciiInstanceId          :: !Text+  , _ciiName                :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateImage' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -87,15 +88,16 @@     -> Text -- ^ 'ciiName'     -> CreateImage createImage pInstanceId_ pName_ =-    CreateImage'-    { _ciiNoReboot = Nothing-    , _ciiDescription = Nothing-    , _ciiBlockDeviceMappings = Nothing-    , _ciiDryRun = Nothing-    , _ciiInstanceId = pInstanceId_-    , _ciiName = pName_-    }+  CreateImage'+  { _ciiNoReboot = Nothing+  , _ciiDescription = Nothing+  , _ciiBlockDeviceMappings = Nothing+  , _ciiDryRun = Nothing+  , _ciiInstanceId = pInstanceId_+  , _ciiName = pName_+  } + -- | 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) ciiNoReboot = lens _ciiNoReboot (\ s a -> s{_ciiNoReboot = a});@@ -129,9 +131,9 @@                  CreateImageResponse' <$>                    (x .@? "imageId") <*> (pure (fromEnum s))) -instance Hashable CreateImage+instance Hashable CreateImage where -instance NFData CreateImage+instance NFData CreateImage where  instance ToHeaders CreateImage where         toHeaders = const mempty@@ -158,10 +160,11 @@ -- -- /See:/ 'createImageResponse' smart constructor. data CreateImageResponse = CreateImageResponse'-    { _cirsImageId        :: !(Maybe Text)-    , _cirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cirsImageId        :: !(Maybe Text)+  , _cirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateImageResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -173,11 +176,10 @@     :: Int -- ^ 'cirsResponseStatus'     -> CreateImageResponse createImageResponse pResponseStatus_ =-    CreateImageResponse'-    { _cirsImageId = Nothing-    , _cirsResponseStatus = pResponseStatus_-    }+  CreateImageResponse'+  {_cirsImageId = Nothing, _cirsResponseStatus = pResponseStatus_} + -- | The ID of the new AMI. cirsImageId :: Lens' CreateImageResponse (Maybe Text) cirsImageId = lens _cirsImageId (\ s a -> s{_cirsImageId = a});@@ -186,4 +188,4 @@ cirsResponseStatus :: Lens' CreateImageResponse Int cirsResponseStatus = lens _cirsResponseStatus (\ s a -> s{_cirsResponseStatus = a}); -instance NFData CreateImageResponse+instance NFData CreateImageResponse where
gen/Network/AWS/EC2/CreateInstanceExportTask.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateInstanceExportTask--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , cietrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateInstanceExportTask. --@@ -55,12 +55,13 @@ -- -- /See:/ 'createInstanceExportTask' smart constructor. data CreateInstanceExportTask = CreateInstanceExportTask'-    { _cietTargetEnvironment :: !(Maybe ExportEnvironment)-    , _cietExportToS3Task    :: !(Maybe ExportToS3TaskSpecification)-    , _cietDescription       :: !(Maybe Text)-    , _cietInstanceId        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cietTargetEnvironment :: !(Maybe ExportEnvironment)+  , _cietExportToS3Task    :: !(Maybe ExportToS3TaskSpecification)+  , _cietDescription       :: !(Maybe Text)+  , _cietInstanceId        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateInstanceExportTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,13 +77,14 @@     :: Text -- ^ 'cietInstanceId'     -> CreateInstanceExportTask createInstanceExportTask pInstanceId_ =-    CreateInstanceExportTask'-    { _cietTargetEnvironment = Nothing-    , _cietExportToS3Task = Nothing-    , _cietDescription = Nothing-    , _cietInstanceId = pInstanceId_-    }+  CreateInstanceExportTask'+  { _cietTargetEnvironment = Nothing+  , _cietExportToS3Task = Nothing+  , _cietDescription = Nothing+  , _cietInstanceId = pInstanceId_+  } + -- | The target virtualization environment. cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe ExportEnvironment) cietTargetEnvironment = lens _cietTargetEnvironment (\ s a -> s{_cietTargetEnvironment = a});@@ -109,9 +111,9 @@                  CreateInstanceExportTaskResponse' <$>                    (x .@? "exportTask") <*> (pure (fromEnum s))) -instance Hashable CreateInstanceExportTask+instance Hashable CreateInstanceExportTask where -instance NFData CreateInstanceExportTask+instance NFData CreateInstanceExportTask where  instance ToHeaders CreateInstanceExportTask where         toHeaders = const mempty@@ -136,10 +138,11 @@ -- -- /See:/ 'createInstanceExportTaskResponse' smart constructor. data CreateInstanceExportTaskResponse = CreateInstanceExportTaskResponse'-    { _cietrsExportTask     :: !(Maybe ExportTask)-    , _cietrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cietrsExportTask     :: !(Maybe ExportTask)+  , _cietrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateInstanceExportTaskResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -151,11 +154,10 @@     :: Int -- ^ 'cietrsResponseStatus'     -> CreateInstanceExportTaskResponse createInstanceExportTaskResponse pResponseStatus_ =-    CreateInstanceExportTaskResponse'-    { _cietrsExportTask = Nothing-    , _cietrsResponseStatus = pResponseStatus_-    }+  CreateInstanceExportTaskResponse'+  {_cietrsExportTask = Nothing, _cietrsResponseStatus = pResponseStatus_} + -- | Information about the instance export task. cietrsExportTask :: Lens' CreateInstanceExportTaskResponse (Maybe ExportTask) cietrsExportTask = lens _cietrsExportTask (\ s a -> s{_cietrsExportTask = a});@@ -165,3 +167,4 @@ cietrsResponseStatus = lens _cietrsResponseStatus (\ s a -> s{_cietrsResponseStatus = a});  instance NFData CreateInstanceExportTaskResponse+         where
gen/Network/AWS/EC2/CreateInternetGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateInternetGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , cigrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateInternetGateway. --@@ -52,9 +52,10 @@ -- -- /See:/ 'createInternetGateway' smart constructor. newtype CreateInternetGateway = CreateInternetGateway'-    { _cigDryRun :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cigDryRun :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateInternetGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,11 +63,9 @@ -- * 'cigDryRun' - Checks whether you have the required permissions for the action, 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@ . createInternetGateway     :: CreateInternetGateway-createInternetGateway =-    CreateInternetGateway'-    { _cigDryRun = Nothing-    }+createInternetGateway = CreateInternetGateway' {_cigDryRun = Nothing} + -- | Checks whether you have the required permissions for the action, 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@ . cigDryRun :: Lens' CreateInternetGateway (Maybe Bool) cigDryRun = lens _cigDryRun (\ s a -> s{_cigDryRun = a});@@ -81,9 +80,9 @@                  CreateInternetGatewayResponse' <$>                    (x .@? "internetGateway") <*> (pure (fromEnum s))) -instance Hashable CreateInternetGateway+instance Hashable CreateInternetGateway where -instance NFData CreateInternetGateway+instance NFData CreateInternetGateway where  instance ToHeaders CreateInternetGateway where         toHeaders = const mempty@@ -104,10 +103,11 @@ -- -- /See:/ 'createInternetGatewayResponse' smart constructor. data CreateInternetGatewayResponse = CreateInternetGatewayResponse'-    { _cigrsInternetGateway :: !(Maybe InternetGateway)-    , _cigrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cigrsInternetGateway :: !(Maybe InternetGateway)+  , _cigrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateInternetGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -119,11 +119,10 @@     :: Int -- ^ 'cigrsResponseStatus'     -> CreateInternetGatewayResponse createInternetGatewayResponse pResponseStatus_ =-    CreateInternetGatewayResponse'-    { _cigrsInternetGateway = Nothing-    , _cigrsResponseStatus = pResponseStatus_-    }+  CreateInternetGatewayResponse'+  {_cigrsInternetGateway = Nothing, _cigrsResponseStatus = pResponseStatus_} + -- | Information about the Internet gateway. cigrsInternetGateway :: Lens' CreateInternetGatewayResponse (Maybe InternetGateway) cigrsInternetGateway = lens _cigrsInternetGateway (\ s a -> s{_cigrsInternetGateway = a});@@ -132,4 +131,4 @@ cigrsResponseStatus :: Lens' CreateInternetGatewayResponse Int cigrsResponseStatus = lens _cigrsResponseStatus (\ s a -> s{_cigrsResponseStatus = a}); -instance NFData CreateInternetGatewayResponse+instance NFData CreateInternetGatewayResponse where
gen/Network/AWS/EC2/CreateKeyPair.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateKeyPair--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,12 +46,12 @@     , ckprsKeyMaterial     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateKeyPair. --@@ -59,10 +59,11 @@ -- -- /See:/ 'createKeyPair' smart constructor. data CreateKeyPair = CreateKeyPair'-    { _ckpDryRun  :: !(Maybe Bool)-    , _ckpKeyName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ckpDryRun  :: !(Maybe Bool)+  , _ckpKeyName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateKeyPair' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,11 +75,9 @@     :: Text -- ^ 'ckpKeyName'     -> CreateKeyPair createKeyPair pKeyName_ =-    CreateKeyPair'-    { _ckpDryRun = Nothing-    , _ckpKeyName = pKeyName_-    }+  CreateKeyPair' {_ckpDryRun = Nothing, _ckpKeyName = pKeyName_} + -- | Checks whether you have the required permissions for the action, 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@ . ckpDryRun :: Lens' CreateKeyPair (Maybe Bool) ckpDryRun = lens _ckpDryRun (\ s a -> s{_ckpDryRun = a});@@ -98,9 +97,9 @@                      (x .@ "keyFingerprint")                      <*> (x .@ "keyMaterial")) -instance Hashable CreateKeyPair+instance Hashable CreateKeyPair where -instance NFData CreateKeyPair+instance NFData CreateKeyPair where  instance ToHeaders CreateKeyPair where         toHeaders = const mempty@@ -121,12 +120,13 @@ -- -- /See:/ 'createKeyPairResponse' smart constructor. data CreateKeyPairResponse = CreateKeyPairResponse'-    { _ckprsResponseStatus :: !Int-    , _ckprsKeyName        :: !Text-    , _ckprsKeyFingerprint :: !Text-    , _ckprsKeyMaterial    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ckprsResponseStatus :: !Int+  , _ckprsKeyName        :: !Text+  , _ckprsKeyFingerprint :: !Text+  , _ckprsKeyMaterial    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateKeyPairResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -145,13 +145,14 @@     -> Text -- ^ 'ckprsKeyMaterial'     -> CreateKeyPairResponse createKeyPairResponse pResponseStatus_ pKeyName_ pKeyFingerprint_ pKeyMaterial_ =-    CreateKeyPairResponse'-    { _ckprsResponseStatus = pResponseStatus_-    , _ckprsKeyName = pKeyName_-    , _ckprsKeyFingerprint = pKeyFingerprint_-    , _ckprsKeyMaterial = pKeyMaterial_-    }+  CreateKeyPairResponse'+  { _ckprsResponseStatus = pResponseStatus_+  , _ckprsKeyName = pKeyName_+  , _ckprsKeyFingerprint = pKeyFingerprint_+  , _ckprsKeyMaterial = pKeyMaterial_+  } + -- | -- | The response status code. ckprsResponseStatus :: Lens' CreateKeyPairResponse Int ckprsResponseStatus = lens _ckprsResponseStatus (\ s a -> s{_ckprsResponseStatus = a});@@ -168,4 +169,4 @@ ckprsKeyMaterial :: Lens' CreateKeyPairResponse Text ckprsKeyMaterial = lens _ckprsKeyMaterial (\ s a -> s{_ckprsKeyMaterial = a}); -instance NFData CreateKeyPairResponse+instance NFData CreateKeyPairResponse where
gen/Network/AWS/EC2/CreateNatGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateNatGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,8 +28,8 @@     , CreateNatGateway     -- * Request Lenses     , cngClientToken-    , cngSubnetId     , cngAllocationId+    , cngSubnetId      -- * Destructuring the Response     , createNatGatewayResponse@@ -40,12 +40,12 @@     , cngrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateNatGateway. --@@ -53,43 +53,45 @@ -- -- /See:/ 'createNatGateway' smart constructor. data CreateNatGateway = CreateNatGateway'-    { _cngClientToken  :: !(Maybe Text)-    , _cngSubnetId     :: !Text-    , _cngAllocationId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cngClientToken  :: !(Maybe Text)+  , _cngAllocationId :: !Text+  , _cngSubnetId     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNatGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cngClientToken' - Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html How to Ensure Idempotency> . Constraint: Maximum 64 ASCII characters. ----- * 'cngSubnetId' - The subnet in which to create the NAT gateway.--- -- * 'cngAllocationId' - 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.+--+-- * 'cngSubnetId' - The subnet in which to create the NAT gateway. createNatGateway-    :: Text -- ^ 'cngSubnetId'-    -> Text -- ^ 'cngAllocationId'+    :: Text -- ^ 'cngAllocationId'+    -> Text -- ^ 'cngSubnetId'     -> CreateNatGateway-createNatGateway pSubnetId_ pAllocationId_ =-    CreateNatGateway'-    { _cngClientToken = Nothing-    , _cngSubnetId = pSubnetId_-    , _cngAllocationId = pAllocationId_-    }+createNatGateway pAllocationId_ pSubnetId_ =+  CreateNatGateway'+  { _cngClientToken = Nothing+  , _cngAllocationId = pAllocationId_+  , _cngSubnetId = pSubnetId_+  } + -- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html How to Ensure Idempotency> . Constraint: Maximum 64 ASCII characters. cngClientToken :: Lens' CreateNatGateway (Maybe Text) cngClientToken = lens _cngClientToken (\ s a -> s{_cngClientToken = a}); --- | The subnet in which to create the NAT gateway.-cngSubnetId :: Lens' CreateNatGateway Text-cngSubnetId = lens _cngSubnetId (\ s a -> s{_cngSubnetId = 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. cngAllocationId :: Lens' CreateNatGateway Text cngAllocationId = lens _cngAllocationId (\ s a -> s{_cngAllocationId = a}); +-- | The subnet in which to create the NAT gateway.+cngSubnetId :: Lens' CreateNatGateway Text+cngSubnetId = lens _cngSubnetId (\ s a -> s{_cngSubnetId = a});+ instance AWSRequest CreateNatGateway where         type Rs CreateNatGateway = CreateNatGatewayResponse         request = postQuery ec2@@ -100,9 +102,9 @@                    (x .@? "clientToken") <*> (x .@? "natGateway") <*>                      (pure (fromEnum s))) -instance Hashable CreateNatGateway+instance Hashable CreateNatGateway where -instance NFData CreateNatGateway+instance NFData CreateNatGateway where  instance ToHeaders CreateNatGateway where         toHeaders = const mempty@@ -116,8 +118,8 @@               ["Action" =: ("CreateNatGateway" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "ClientToken" =: _cngClientToken,-               "SubnetId" =: _cngSubnetId,-               "AllocationId" =: _cngAllocationId]+               "AllocationId" =: _cngAllocationId,+               "SubnetId" =: _cngSubnetId]  -- | Contains the output of CreateNatGateway. --@@ -125,11 +127,12 @@ -- -- /See:/ 'createNatGatewayResponse' smart constructor. data CreateNatGatewayResponse = CreateNatGatewayResponse'-    { _cngrsClientToken    :: !(Maybe Text)-    , _cngrsNatGateway     :: !(Maybe NatGateway)-    , _cngrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cngrsClientToken    :: !(Maybe Text)+  , _cngrsNatGateway     :: !(Maybe NatGateway)+  , _cngrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNatGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -143,12 +146,13 @@     :: Int -- ^ 'cngrsResponseStatus'     -> CreateNatGatewayResponse createNatGatewayResponse pResponseStatus_ =-    CreateNatGatewayResponse'-    { _cngrsClientToken = Nothing-    , _cngrsNatGateway = Nothing-    , _cngrsResponseStatus = pResponseStatus_-    }+  CreateNatGatewayResponse'+  { _cngrsClientToken = Nothing+  , _cngrsNatGateway = Nothing+  , _cngrsResponseStatus = pResponseStatus_+  } + -- | 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) cngrsClientToken = lens _cngrsClientToken (\ s a -> s{_cngrsClientToken = a});@@ -161,4 +165,4 @@ cngrsResponseStatus :: Lens' CreateNatGatewayResponse Int cngrsResponseStatus = lens _cngrsResponseStatus (\ s a -> s{_cngrsResponseStatus = a}); -instance NFData CreateNatGatewayResponse+instance NFData CreateNatGatewayResponse where
gen/Network/AWS/EC2/CreateNetworkACL.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateNetworkACL--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , cnarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateNetworkAcl. --@@ -53,10 +53,11 @@ -- -- /See:/ 'createNetworkACL' smart constructor. data CreateNetworkACL = CreateNetworkACL'-    { _cnaDryRun :: !(Maybe Bool)-    , _cnaVPCId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cnaDryRun :: !(Maybe Bool)+  , _cnaVPCId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNetworkACL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,9 @@     :: Text -- ^ 'cnaVPCId'     -> CreateNetworkACL createNetworkACL pVPCId_ =-    CreateNetworkACL'-    { _cnaDryRun = Nothing-    , _cnaVPCId = pVPCId_-    }+  CreateNetworkACL' {_cnaDryRun = Nothing, _cnaVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . cnaDryRun :: Lens' CreateNetworkACL (Maybe Bool) cnaDryRun = lens _cnaDryRun (\ s a -> s{_cnaDryRun = a});@@ -90,9 +89,9 @@                  CreateNetworkACLResponse' <$>                    (x .@? "networkAcl") <*> (pure (fromEnum s))) -instance Hashable CreateNetworkACL+instance Hashable CreateNetworkACL where -instance NFData CreateNetworkACL+instance NFData CreateNetworkACL where  instance ToHeaders CreateNetworkACL where         toHeaders = const mempty@@ -113,10 +112,11 @@ -- -- /See:/ 'createNetworkACLResponse' smart constructor. data CreateNetworkACLResponse = CreateNetworkACLResponse'-    { _cnarsNetworkACL     :: !(Maybe NetworkACL)-    , _cnarsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cnarsNetworkACL     :: !(Maybe NetworkACL)+  , _cnarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNetworkACLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -128,11 +128,10 @@     :: Int -- ^ 'cnarsResponseStatus'     -> CreateNetworkACLResponse createNetworkACLResponse pResponseStatus_ =-    CreateNetworkACLResponse'-    { _cnarsNetworkACL = Nothing-    , _cnarsResponseStatus = pResponseStatus_-    }+  CreateNetworkACLResponse'+  {_cnarsNetworkACL = Nothing, _cnarsResponseStatus = pResponseStatus_} + -- | Information about the network ACL. cnarsNetworkACL :: Lens' CreateNetworkACLResponse (Maybe NetworkACL) cnarsNetworkACL = lens _cnarsNetworkACL (\ s a -> s{_cnarsNetworkACL = a});@@ -141,4 +140,4 @@ cnarsResponseStatus :: Lens' CreateNetworkACLResponse Int cnarsResponseStatus = lens _cnarsResponseStatus (\ s a -> s{_cnarsResponseStatus = a}); -instance NFData CreateNetworkACLResponse+instance NFData CreateNetworkACLResponse where
gen/Network/AWS/EC2/CreateNetworkACLEntry.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateNetworkACLEntry--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,23 +38,23 @@     , cnaePortRange     , cnaeCidrBlock     , cnaeDryRun+    , cnaeEgress     , cnaeNetworkACLId-    , cnaeRuleNumber     , cnaeProtocol     , cnaeRuleAction-    , cnaeEgress+    , cnaeRuleNumber      -- * Destructuring the Response     , createNetworkACLEntryResponse     , CreateNetworkACLEntryResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateNetworkAclEntry. --@@ -62,18 +62,19 @@ -- -- /See:/ 'createNetworkACLEntry' smart constructor. data CreateNetworkACLEntry = CreateNetworkACLEntry'-    { _cnaeIPv6CidrBlock :: !(Maybe Text)-    , _cnaeICMPTypeCode  :: !(Maybe ICMPTypeCode)-    , _cnaePortRange     :: !(Maybe PortRange)-    , _cnaeCidrBlock     :: !(Maybe Text)-    , _cnaeDryRun        :: !(Maybe Bool)-    , _cnaeNetworkACLId  :: !Text-    , _cnaeRuleNumber    :: !Int-    , _cnaeProtocol      :: !Text-    , _cnaeRuleAction    :: !RuleAction-    , _cnaeEgress        :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cnaeIPv6CidrBlock :: !(Maybe Text)+  , _cnaeICMPTypeCode  :: !(Maybe ICMPTypeCode)+  , _cnaePortRange     :: !(Maybe PortRange)+  , _cnaeCidrBlock     :: !(Maybe Text)+  , _cnaeDryRun        :: !(Maybe Bool)+  , _cnaeEgress        :: !Bool+  , _cnaeNetworkACLId  :: !Text+  , _cnaeProtocol      :: !Text+  , _cnaeRuleAction    :: !RuleAction+  , _cnaeRuleNumber    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNetworkACLEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -88,36 +89,37 @@ -- -- * 'cnaeDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'cnaeNetworkACLId' - The ID of the network ACL.+-- * 'cnaeEgress' - Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet). ----- * 'cnaeRuleNumber' - 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.+-- * 'cnaeNetworkACLId' - The ID of the network ACL. -- -- * 'cnaeProtocol' - The protocol. A value of @-1@ or @all@ means all protocols. If you specify @all@ , @-1@ , or a protocol number other than @tcp@ , @udp@ , or @icmp@ , traffic on all ports is allowed, regardless of any ports or ICMP types or codes you specify. If you specify protocol @58@ (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 @58@ (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code. -- -- * 'cnaeRuleAction' - Indicates whether to allow or deny the traffic that matches the rule. ----- * 'cnaeEgress' - Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).+-- * 'cnaeRuleNumber' - 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. createNetworkACLEntry-    :: Text -- ^ 'cnaeNetworkACLId'-    -> Int -- ^ 'cnaeRuleNumber'+    :: Bool -- ^ 'cnaeEgress'+    -> Text -- ^ 'cnaeNetworkACLId'     -> Text -- ^ 'cnaeProtocol'     -> RuleAction -- ^ 'cnaeRuleAction'-    -> Bool -- ^ 'cnaeEgress'+    -> Int -- ^ 'cnaeRuleNumber'     -> CreateNetworkACLEntry-createNetworkACLEntry pNetworkACLId_ pRuleNumber_ pProtocol_ pRuleAction_ pEgress_ =-    CreateNetworkACLEntry'-    { _cnaeIPv6CidrBlock = Nothing-    , _cnaeICMPTypeCode = Nothing-    , _cnaePortRange = Nothing-    , _cnaeCidrBlock = Nothing-    , _cnaeDryRun = Nothing-    , _cnaeNetworkACLId = pNetworkACLId_-    , _cnaeRuleNumber = pRuleNumber_-    , _cnaeProtocol = pProtocol_-    , _cnaeRuleAction = pRuleAction_-    , _cnaeEgress = pEgress_-    }+createNetworkACLEntry pEgress_ pNetworkACLId_ pProtocol_ pRuleAction_ pRuleNumber_ =+  CreateNetworkACLEntry'+  { _cnaeIPv6CidrBlock = Nothing+  , _cnaeICMPTypeCode = Nothing+  , _cnaePortRange = Nothing+  , _cnaeCidrBlock = Nothing+  , _cnaeDryRun = Nothing+  , _cnaeEgress = pEgress_+  , _cnaeNetworkACLId = pNetworkACLId_+  , _cnaeProtocol = pProtocol_+  , _cnaeRuleAction = pRuleAction_+  , _cnaeRuleNumber = pRuleNumber_+  } + -- | The IPv6 network range to allow or deny, in CIDR notation (for example @2001:db8:1234:1a00::/64@ ). cnaeIPv6CidrBlock :: Lens' CreateNetworkACLEntry (Maybe Text) cnaeIPv6CidrBlock = lens _cnaeIPv6CidrBlock (\ s a -> s{_cnaeIPv6CidrBlock = a});@@ -138,14 +140,14 @@ cnaeDryRun :: Lens' CreateNetworkACLEntry (Maybe Bool) cnaeDryRun = lens _cnaeDryRun (\ s a -> s{_cnaeDryRun = a}); +-- | Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).+cnaeEgress :: Lens' CreateNetworkACLEntry Bool+cnaeEgress = lens _cnaeEgress (\ s a -> s{_cnaeEgress = a});+ -- | The ID of the network ACL. cnaeNetworkACLId :: Lens' CreateNetworkACLEntry Text cnaeNetworkACLId = lens _cnaeNetworkACLId (\ s a -> s{_cnaeNetworkACLId = 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.-cnaeRuleNumber :: Lens' CreateNetworkACLEntry Int-cnaeRuleNumber = lens _cnaeRuleNumber (\ s a -> s{_cnaeRuleNumber = a});- -- | The protocol. A value of @-1@ or @all@ means all protocols. If you specify @all@ , @-1@ , or a protocol number other than @tcp@ , @udp@ , or @icmp@ , traffic on all ports is allowed, regardless of any ports or ICMP types or codes you specify. If you specify protocol @58@ (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 @58@ (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code. cnaeProtocol :: Lens' CreateNetworkACLEntry Text cnaeProtocol = lens _cnaeProtocol (\ s a -> s{_cnaeProtocol = a});@@ -154,9 +156,9 @@ cnaeRuleAction :: Lens' CreateNetworkACLEntry RuleAction cnaeRuleAction = lens _cnaeRuleAction (\ s a -> s{_cnaeRuleAction = a}); --- | Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).-cnaeEgress :: Lens' CreateNetworkACLEntry Bool-cnaeEgress = lens _cnaeEgress (\ s a -> s{_cnaeEgress = 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.+cnaeRuleNumber :: Lens' CreateNetworkACLEntry Int+cnaeRuleNumber = lens _cnaeRuleNumber (\ s a -> s{_cnaeRuleNumber = a});  instance AWSRequest CreateNetworkACLEntry where         type Rs CreateNetworkACLEntry =@@ -164,9 +166,9 @@         request = postQuery ec2         response = receiveNull CreateNetworkACLEntryResponse' -instance Hashable CreateNetworkACLEntry+instance Hashable CreateNetworkACLEntry where -instance NFData CreateNetworkACLEntry+instance NFData CreateNetworkACLEntry where  instance ToHeaders CreateNetworkACLEntry where         toHeaders = const mempty@@ -183,22 +185,23 @@                "Icmp" =: _cnaeICMPTypeCode,                "PortRange" =: _cnaePortRange,                "CidrBlock" =: _cnaeCidrBlock,-               "DryRun" =: _cnaeDryRun,+               "DryRun" =: _cnaeDryRun, "Egress" =: _cnaeEgress,                "NetworkAclId" =: _cnaeNetworkACLId,-               "RuleNumber" =: _cnaeRuleNumber,                "Protocol" =: _cnaeProtocol,                "RuleAction" =: _cnaeRuleAction,-               "Egress" =: _cnaeEgress]+               "RuleNumber" =: _cnaeRuleNumber]  -- | /See:/ 'createNetworkACLEntryResponse' smart constructor. data CreateNetworkACLEntryResponse =-    CreateNetworkACLEntryResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CreateNetworkACLEntryResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNetworkACLEntryResponse' with the minimum fields required to make a request. -- createNetworkACLEntryResponse     :: CreateNetworkACLEntryResponse createNetworkACLEntryResponse = CreateNetworkACLEntryResponse' -instance NFData CreateNetworkACLEntryResponse++instance NFData CreateNetworkACLEntryResponse where
gen/Network/AWS/EC2/CreateNetworkInterface.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateNetworkInterface--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -47,12 +47,12 @@     , cnirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateNetworkInterface. --@@ -60,17 +60,18 @@ -- -- /See:/ 'createNetworkInterface' smart constructor. data CreateNetworkInterface = CreateNetworkInterface'-    { _cniGroups                         :: !(Maybe [Text])-    , _cniPrivateIPAddresses             :: !(Maybe [PrivateIPAddressSpecification])-    , _cniIPv6AddressCount               :: !(Maybe Int)-    , _cniPrivateIPAddress               :: !(Maybe Text)-    , _cniSecondaryPrivateIPAddressCount :: !(Maybe Int)-    , _cniDescription                    :: !(Maybe Text)-    , _cniDryRun                         :: !(Maybe Bool)-    , _cniIPv6Addresses                  :: !(Maybe [InstanceIPv6Address])-    , _cniSubnetId                       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cniGroups :: !(Maybe [Text])+  , _cniPrivateIPAddresses :: !(Maybe [PrivateIPAddressSpecification])+  , _cniIPv6AddressCount :: !(Maybe Int)+  , _cniPrivateIPAddress :: !(Maybe Text)+  , _cniSecondaryPrivateIPAddressCount :: !(Maybe Int)+  , _cniDescription :: !(Maybe Text)+  , _cniDryRun :: !(Maybe Bool)+  , _cniIPv6Addresses :: !(Maybe [InstanceIPv6Address])+  , _cniSubnetId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNetworkInterface' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -96,18 +97,19 @@     :: Text -- ^ 'cniSubnetId'     -> CreateNetworkInterface createNetworkInterface pSubnetId_ =-    CreateNetworkInterface'-    { _cniGroups = Nothing-    , _cniPrivateIPAddresses = Nothing-    , _cniIPv6AddressCount = Nothing-    , _cniPrivateIPAddress = Nothing-    , _cniSecondaryPrivateIPAddressCount = Nothing-    , _cniDescription = Nothing-    , _cniDryRun = Nothing-    , _cniIPv6Addresses = Nothing-    , _cniSubnetId = pSubnetId_-    }+  CreateNetworkInterface'+  { _cniGroups = Nothing+  , _cniPrivateIPAddresses = Nothing+  , _cniIPv6AddressCount = Nothing+  , _cniPrivateIPAddress = Nothing+  , _cniSecondaryPrivateIPAddressCount = Nothing+  , _cniDescription = Nothing+  , _cniDryRun = Nothing+  , _cniIPv6Addresses = Nothing+  , _cniSubnetId = pSubnetId_+  } + -- | The IDs of one or more security groups. cniGroups :: Lens' CreateNetworkInterface [Text] cniGroups = lens _cniGroups (\ s a -> s{_cniGroups = a}) . _Default . _Coerce;@@ -154,9 +156,9 @@                  CreateNetworkInterfaceResponse' <$>                    (x .@? "networkInterface") <*> (pure (fromEnum s))) -instance Hashable CreateNetworkInterface+instance Hashable CreateNetworkInterface where -instance NFData CreateNetworkInterface+instance NFData CreateNetworkInterface where  instance ToHeaders CreateNetworkInterface where         toHeaders = const mempty@@ -191,10 +193,11 @@ -- -- /See:/ 'createNetworkInterfaceResponse' smart constructor. data CreateNetworkInterfaceResponse = CreateNetworkInterfaceResponse'-    { _cnirsNetworkInterface :: !(Maybe NetworkInterface)-    , _cnirsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cnirsNetworkInterface :: !(Maybe NetworkInterface)+  , _cnirsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateNetworkInterfaceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -206,11 +209,10 @@     :: Int -- ^ 'cnirsResponseStatus'     -> CreateNetworkInterfaceResponse createNetworkInterfaceResponse pResponseStatus_ =-    CreateNetworkInterfaceResponse'-    { _cnirsNetworkInterface = Nothing-    , _cnirsResponseStatus = pResponseStatus_-    }+  CreateNetworkInterfaceResponse'+  {_cnirsNetworkInterface = Nothing, _cnirsResponseStatus = pResponseStatus_} + -- | Information about the network interface. cnirsNetworkInterface :: Lens' CreateNetworkInterfaceResponse (Maybe NetworkInterface) cnirsNetworkInterface = lens _cnirsNetworkInterface (\ s a -> s{_cnirsNetworkInterface = a});@@ -219,4 +221,4 @@ cnirsResponseStatus :: Lens' CreateNetworkInterfaceResponse Int cnirsResponseStatus = lens _cnirsResponseStatus (\ s a -> s{_cnirsResponseStatus = a}); -instance NFData CreateNetworkInterfaceResponse+instance NFData CreateNetworkInterfaceResponse where
+ gen/Network/AWS/EC2/CreateNetworkInterfacePermission.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.CreateNetworkInterfacePermission+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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+    (+    -- * Creating a Request+      createNetworkInterfacePermission+    , CreateNetworkInterfacePermission+    -- * Request Lenses+    , cnipAWSAccountId+    , cnipAWSService+    , cnipDryRun+    , cnipNetworkInterfaceId+    , cnipPermission++    -- * Destructuring the Response+    , createNetworkInterfacePermissionResponse+    , CreateNetworkInterfacePermissionResponse+    -- * Response Lenses+    , cniprsInterfacePermission+    , cniprsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for CreateNetworkInterfacePermission.+--+--+--+-- /See:/ 'createNetworkInterfacePermission' smart constructor.+data CreateNetworkInterfacePermission = CreateNetworkInterfacePermission'+  { _cnipAWSAccountId       :: !(Maybe Text)+  , _cnipAWSService         :: !(Maybe Text)+  , _cnipDryRun             :: !(Maybe Bool)+  , _cnipNetworkInterfaceId :: !Text+  , _cnipPermission         :: !InterfacePermissionType+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateNetworkInterfacePermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnipAWSAccountId' - The AWS account ID.+--+-- * 'cnipAWSService' - The AWS service. Currently not supported.+--+-- * 'cnipDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'cnipNetworkInterfaceId' - The ID of the network interface.+--+-- * 'cnipPermission' - The type of permission to grant.+createNetworkInterfacePermission+    :: Text -- ^ 'cnipNetworkInterfaceId'+    -> InterfacePermissionType -- ^ 'cnipPermission'+    -> CreateNetworkInterfacePermission+createNetworkInterfacePermission pNetworkInterfaceId_ pPermission_ =+  CreateNetworkInterfacePermission'+  { _cnipAWSAccountId = Nothing+  , _cnipAWSService = Nothing+  , _cnipDryRun = Nothing+  , _cnipNetworkInterfaceId = pNetworkInterfaceId_+  , _cnipPermission = pPermission_+  }+++-- | The AWS account ID.+cnipAWSAccountId :: Lens' CreateNetworkInterfacePermission (Maybe Text)+cnipAWSAccountId = lens _cnipAWSAccountId (\ s a -> s{_cnipAWSAccountId = a});++-- | The AWS service. Currently not supported.+cnipAWSService :: Lens' CreateNetworkInterfacePermission (Maybe Text)+cnipAWSService = lens _cnipAWSService (\ s a -> s{_cnipAWSService = a});++-- | Checks whether you have the required permissions for the action, 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@ .+cnipDryRun :: Lens' CreateNetworkInterfacePermission (Maybe Bool)+cnipDryRun = lens _cnipDryRun (\ s a -> s{_cnipDryRun = a});++-- | The ID of the network interface.+cnipNetworkInterfaceId :: Lens' CreateNetworkInterfacePermission Text+cnipNetworkInterfaceId = lens _cnipNetworkInterfaceId (\ s a -> s{_cnipNetworkInterfaceId = a});++-- | The type of permission to grant.+cnipPermission :: Lens' CreateNetworkInterfacePermission InterfacePermissionType+cnipPermission = lens _cnipPermission (\ s a -> s{_cnipPermission = a});++instance AWSRequest CreateNetworkInterfacePermission+         where+        type Rs CreateNetworkInterfacePermission =+             CreateNetworkInterfacePermissionResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 CreateNetworkInterfacePermissionResponse' <$>+                   (x .@? "interfacePermission") <*>+                     (pure (fromEnum s)))++instance Hashable CreateNetworkInterfacePermission+         where++instance NFData CreateNetworkInterfacePermission+         where++instance ToHeaders CreateNetworkInterfacePermission+         where+        toHeaders = const mempty++instance ToPath CreateNetworkInterfacePermission+         where+        toPath = const "/"++instance ToQuery CreateNetworkInterfacePermission+         where+        toQuery CreateNetworkInterfacePermission'{..}+          = mconcat+              ["Action" =:+                 ("CreateNetworkInterfacePermission" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "AwsAccountId" =: _cnipAWSAccountId,+               "AwsService" =: _cnipAWSService,+               "DryRun" =: _cnipDryRun,+               "NetworkInterfaceId" =: _cnipNetworkInterfaceId,+               "Permission" =: _cnipPermission]++-- | Contains the output of CreateNetworkInterfacePermission.+--+--+--+-- /See:/ 'createNetworkInterfacePermissionResponse' smart constructor.+data CreateNetworkInterfacePermissionResponse = CreateNetworkInterfacePermissionResponse'+  { _cniprsInterfacePermission :: !(Maybe NetworkInterfacePermission)+  , _cniprsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateNetworkInterfacePermissionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cniprsInterfacePermission' - Information about the permission for the network interface.+--+-- * 'cniprsResponseStatus' - -- | The response status code.+createNetworkInterfacePermissionResponse+    :: Int -- ^ 'cniprsResponseStatus'+    -> CreateNetworkInterfacePermissionResponse+createNetworkInterfacePermissionResponse pResponseStatus_ =+  CreateNetworkInterfacePermissionResponse'+  { _cniprsInterfacePermission = Nothing+  , _cniprsResponseStatus = pResponseStatus_+  }+++-- | Information about the permission for the network interface.+cniprsInterfacePermission :: Lens' CreateNetworkInterfacePermissionResponse (Maybe NetworkInterfacePermission)+cniprsInterfacePermission = lens _cniprsInterfacePermission (\ s a -> s{_cniprsInterfacePermission = a});++-- | -- | The response status code.+cniprsResponseStatus :: Lens' CreateNetworkInterfacePermissionResponse Int+cniprsResponseStatus = lens _cniprsResponseStatus (\ s a -> s{_cniprsResponseStatus = a});++instance NFData+           CreateNetworkInterfacePermissionResponse+         where
gen/Network/AWS/EC2/CreatePlacementGroup.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.CreatePlacementGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account.+-- Creates a placement group that you launch cluster instances into. Give the group a name that's unique within the scope of your account. -- -- -- For more information about placement groups and cluster instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html Cluster Instances> in the /Amazon Elastic Compute Cloud User Guide/ .@@ -38,12 +38,12 @@     , CreatePlacementGroupResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreatePlacementGroup. --@@ -51,11 +51,12 @@ -- -- /See:/ 'createPlacementGroup' smart constructor. data CreatePlacementGroup = CreatePlacementGroup'-    { _cpgDryRun    :: !(Maybe Bool)-    , _cpgGroupName :: !Text-    , _cpgStrategy  :: !PlacementStrategy-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cpgDryRun    :: !(Maybe Bool)+  , _cpgGroupName :: !Text+  , _cpgStrategy  :: !PlacementStrategy+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreatePlacementGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,10 @@     -> PlacementStrategy -- ^ 'cpgStrategy'     -> CreatePlacementGroup createPlacementGroup pGroupName_ pStrategy_ =-    CreatePlacementGroup'-    { _cpgDryRun = Nothing-    , _cpgGroupName = pGroupName_-    , _cpgStrategy = pStrategy_-    }+  CreatePlacementGroup'+  {_cpgDryRun = Nothing, _cpgGroupName = pGroupName_, _cpgStrategy = pStrategy_} + -- | Checks whether you have the required permissions for the action, 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@ . cpgDryRun :: Lens' CreatePlacementGroup (Maybe Bool) cpgDryRun = lens _cpgDryRun (\ s a -> s{_cpgDryRun = a});@@ -94,9 +93,9 @@         request = postQuery ec2         response = receiveNull CreatePlacementGroupResponse' -instance Hashable CreatePlacementGroup+instance Hashable CreatePlacementGroup where -instance NFData CreatePlacementGroup+instance NFData CreatePlacementGroup where  instance ToHeaders CreatePlacementGroup where         toHeaders = const mempty@@ -114,13 +113,15 @@  -- | /See:/ 'createPlacementGroupResponse' smart constructor. data CreatePlacementGroupResponse =-    CreatePlacementGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CreatePlacementGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreatePlacementGroupResponse' with the minimum fields required to make a request. -- createPlacementGroupResponse     :: CreatePlacementGroupResponse createPlacementGroupResponse = CreatePlacementGroupResponse' -instance NFData CreatePlacementGroupResponse++instance NFData CreatePlacementGroupResponse where
gen/Network/AWS/EC2/CreateReservedInstancesListing.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateReservedInstancesListing--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -33,25 +33,25 @@       createReservedInstancesListing     , CreateReservedInstancesListing     -- * Request Lenses-    , crilReservedInstancesId+    , crilClientToken     , crilInstanceCount     , crilPriceSchedules-    , crilClientToken+    , crilReservedInstancesId      -- * Destructuring the Response     , createReservedInstancesListingResponse     , CreateReservedInstancesListingResponse     -- * Response Lenses-    , crersReservedInstancesListings-    , crersResponseStatus+    , crilrrsReservedInstancesListings+    , crilrrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateReservedInstancesListing. --@@ -59,40 +59,42 @@ -- -- /See:/ 'createReservedInstancesListing' smart constructor. data CreateReservedInstancesListing = CreateReservedInstancesListing'-    { _crilReservedInstancesId :: !Text-    , _crilInstanceCount       :: !Int-    , _crilPriceSchedules      :: ![PriceScheduleSpecification]-    , _crilClientToken         :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crilClientToken         :: !Text+  , _crilInstanceCount       :: !Int+  , _crilPriceSchedules      :: ![PriceScheduleSpecification]+  , _crilReservedInstancesId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateReservedInstancesListing' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'crilReservedInstancesId' - The ID of the active Standard Reserved Instance.+-- * 'crilClientToken' - Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> . -- -- * 'crilInstanceCount' - 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. -- -- * 'crilPriceSchedules' - A list specifying the price of the Standard Reserved Instance for each month remaining in the Reserved Instance term. ----- * 'crilClientToken' - Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+-- * 'crilReservedInstancesId' - The ID of the active Standard Reserved Instance. createReservedInstancesListing-    :: Text -- ^ 'crilReservedInstancesId'+    :: Text -- ^ 'crilClientToken'     -> Int -- ^ 'crilInstanceCount'-    -> Text -- ^ 'crilClientToken'+    -> Text -- ^ 'crilReservedInstancesId'     -> CreateReservedInstancesListing-createReservedInstancesListing pReservedInstancesId_ pInstanceCount_ pClientToken_ =-    CreateReservedInstancesListing'-    { _crilReservedInstancesId = pReservedInstancesId_-    , _crilInstanceCount = pInstanceCount_-    , _crilPriceSchedules = mempty-    , _crilClientToken = pClientToken_-    }+createReservedInstancesListing pClientToken_ pInstanceCount_ pReservedInstancesId_ =+  CreateReservedInstancesListing'+  { _crilClientToken = pClientToken_+  , _crilInstanceCount = pInstanceCount_+  , _crilPriceSchedules = mempty+  , _crilReservedInstancesId = pReservedInstancesId_+  } --- | The ID of the active Standard Reserved Instance.-crilReservedInstancesId :: Lens' CreateReservedInstancesListing Text-crilReservedInstancesId = lens _crilReservedInstancesId (\ s a -> s{_crilReservedInstancesId = a}); +-- | Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+crilClientToken :: Lens' CreateReservedInstancesListing Text+crilClientToken = lens _crilClientToken (\ s a -> s{_crilClientToken = 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. crilInstanceCount :: Lens' CreateReservedInstancesListing Int crilInstanceCount = lens _crilInstanceCount (\ s a -> s{_crilInstanceCount = a});@@ -101,9 +103,9 @@ crilPriceSchedules :: Lens' CreateReservedInstancesListing [PriceScheduleSpecification] crilPriceSchedules = lens _crilPriceSchedules (\ s a -> s{_crilPriceSchedules = a}) . _Coerce; --- | Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .-crilClientToken :: Lens' CreateReservedInstancesListing Text-crilClientToken = lens _crilClientToken (\ s a -> s{_crilClientToken = a});+-- | The ID of the active Standard Reserved Instance.+crilReservedInstancesId :: Lens' CreateReservedInstancesListing Text+crilReservedInstancesId = lens _crilReservedInstancesId (\ s a -> s{_crilReservedInstancesId = a});  instance AWSRequest CreateReservedInstancesListing          where@@ -119,8 +121,9 @@                      <*> (pure (fromEnum s)))  instance Hashable CreateReservedInstancesListing+         where -instance NFData CreateReservedInstancesListing+instance NFData CreateReservedInstancesListing where  instance ToHeaders CreateReservedInstancesListing          where@@ -135,10 +138,10 @@               ["Action" =:                  ("CreateReservedInstancesListing" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "ReservedInstancesId" =: _crilReservedInstancesId,+               "ClientToken" =: _crilClientToken,                "InstanceCount" =: _crilInstanceCount,                toQueryList "PriceSchedules" _crilPriceSchedules,-               "ClientToken" =: _crilClientToken]+               "ReservedInstancesId" =: _crilReservedInstancesId]  -- | Contains the output of CreateReservedInstancesListing. --@@ -146,33 +149,36 @@ -- -- /See:/ 'createReservedInstancesListingResponse' smart constructor. data CreateReservedInstancesListingResponse = CreateReservedInstancesListingResponse'-    { _crersReservedInstancesListings :: !(Maybe [ReservedInstancesListing])-    , _crersResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crilrrsReservedInstancesListings :: !(Maybe [ReservedInstancesListing])+  , _crilrrsResponseStatus            :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateReservedInstancesListingResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'crersReservedInstancesListings' - Information about the Standard Reserved Instance listing.+-- * 'crilrrsReservedInstancesListings' - Information about the Standard Reserved Instance listing. ----- * 'crersResponseStatus' - -- | The response status code.+-- * 'crilrrsResponseStatus' - -- | The response status code. createReservedInstancesListingResponse-    :: Int -- ^ 'crersResponseStatus'+    :: Int -- ^ 'crilrrsResponseStatus'     -> CreateReservedInstancesListingResponse createReservedInstancesListingResponse pResponseStatus_ =-    CreateReservedInstancesListingResponse'-    { _crersReservedInstancesListings = Nothing-    , _crersResponseStatus = pResponseStatus_-    }+  CreateReservedInstancesListingResponse'+  { _crilrrsReservedInstancesListings = Nothing+  , _crilrrsResponseStatus = pResponseStatus_+  } + -- | Information about the Standard Reserved Instance listing.-crersReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]-crersReservedInstancesListings = lens _crersReservedInstancesListings (\ s a -> s{_crersReservedInstancesListings = a}) . _Default . _Coerce;+crilrrsReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]+crilrrsReservedInstancesListings = lens _crilrrsReservedInstancesListings (\ s a -> s{_crilrrsReservedInstancesListings = a}) . _Default . _Coerce;  -- | -- | The response status code.-crersResponseStatus :: Lens' CreateReservedInstancesListingResponse Int-crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a});+crilrrsResponseStatus :: Lens' CreateReservedInstancesListingResponse Int+crilrrsResponseStatus = lens _crilrrsResponseStatus (\ s a -> s{_crilrrsResponseStatus = a});  instance NFData-         CreateReservedInstancesListingResponse+           CreateReservedInstancesListingResponse+         where
gen/Network/AWS/EC2/CreateRoute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateRoute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -60,12 +60,12 @@     , crrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateRoute. --@@ -73,18 +73,19 @@ -- -- /See:/ 'createRoute' smart constructor. data CreateRoute = CreateRoute'-    { _crVPCPeeringConnectionId      :: !(Maybe Text)-    , _crInstanceId                  :: !(Maybe Text)-    , _crEgressOnlyInternetGatewayId :: !(Maybe Text)-    , _crDestinationIPv6CidrBlock    :: !(Maybe Text)-    , _crNatGatewayId                :: !(Maybe Text)-    , _crNetworkInterfaceId          :: !(Maybe Text)-    , _crGatewayId                   :: !(Maybe Text)-    , _crDryRun                      :: !(Maybe Bool)-    , _crDestinationCidrBlock        :: !(Maybe Text)-    , _crRouteTableId                :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crVPCPeeringConnectionId      :: !(Maybe Text)+  , _crInstanceId                  :: !(Maybe Text)+  , _crEgressOnlyInternetGatewayId :: !(Maybe Text)+  , _crDestinationIPv6CidrBlock    :: !(Maybe Text)+  , _crNatGatewayId                :: !(Maybe Text)+  , _crNetworkInterfaceId          :: !(Maybe Text)+  , _crGatewayId                   :: !(Maybe Text)+  , _crDryRun                      :: !(Maybe Bool)+  , _crDestinationCidrBlock        :: !(Maybe Text)+  , _crRouteTableId                :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateRoute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -112,19 +113,20 @@     :: Text -- ^ 'crRouteTableId'     -> CreateRoute createRoute pRouteTableId_ =-    CreateRoute'-    { _crVPCPeeringConnectionId = Nothing-    , _crInstanceId = Nothing-    , _crEgressOnlyInternetGatewayId = Nothing-    , _crDestinationIPv6CidrBlock = Nothing-    , _crNatGatewayId = Nothing-    , _crNetworkInterfaceId = Nothing-    , _crGatewayId = Nothing-    , _crDryRun = Nothing-    , _crDestinationCidrBlock = Nothing-    , _crRouteTableId = pRouteTableId_-    }+  CreateRoute'+  { _crVPCPeeringConnectionId = Nothing+  , _crInstanceId = Nothing+  , _crEgressOnlyInternetGatewayId = Nothing+  , _crDestinationIPv6CidrBlock = Nothing+  , _crNatGatewayId = Nothing+  , _crNetworkInterfaceId = Nothing+  , _crGatewayId = Nothing+  , _crDryRun = Nothing+  , _crDestinationCidrBlock = Nothing+  , _crRouteTableId = pRouteTableId_+  } + -- | The ID of a VPC peering connection. crVPCPeeringConnectionId :: Lens' CreateRoute (Maybe Text) crVPCPeeringConnectionId = lens _crVPCPeeringConnectionId (\ s a -> s{_crVPCPeeringConnectionId = a});@@ -174,9 +176,9 @@                  CreateRouteResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable CreateRoute+instance Hashable CreateRoute where -instance NFData CreateRoute+instance NFData CreateRoute where  instance ToHeaders CreateRoute where         toHeaders = const mempty@@ -208,10 +210,11 @@ -- -- /See:/ 'createRouteResponse' smart constructor. data CreateRouteResponse = CreateRouteResponse'-    { _crrsReturn         :: !(Maybe Bool)-    , _crrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crrsReturn         :: !(Maybe Bool)+  , _crrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateRouteResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -223,11 +226,10 @@     :: Int -- ^ 'crrsResponseStatus'     -> CreateRouteResponse createRouteResponse pResponseStatus_ =-    CreateRouteResponse'-    { _crrsReturn = Nothing-    , _crrsResponseStatus = pResponseStatus_-    }+  CreateRouteResponse'+  {_crrsReturn = Nothing, _crrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. crrsReturn :: Lens' CreateRouteResponse (Maybe Bool) crrsReturn = lens _crrsReturn (\ s a -> s{_crrsReturn = a});@@ -236,4 +238,4 @@ crrsResponseStatus :: Lens' CreateRouteResponse Int crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a}); -instance NFData CreateRouteResponse+instance NFData CreateRouteResponse where
gen/Network/AWS/EC2/CreateRouteTable.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateRouteTable--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , crtrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateRouteTable. --@@ -53,10 +53,11 @@ -- -- /See:/ 'createRouteTable' smart constructor. data CreateRouteTable = CreateRouteTable'-    { _crtDryRun :: !(Maybe Bool)-    , _crtVPCId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crtDryRun :: !(Maybe Bool)+  , _crtVPCId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateRouteTable' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,9 @@     :: Text -- ^ 'crtVPCId'     -> CreateRouteTable createRouteTable pVPCId_ =-    CreateRouteTable'-    { _crtDryRun = Nothing-    , _crtVPCId = pVPCId_-    }+  CreateRouteTable' {_crtDryRun = Nothing, _crtVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . crtDryRun :: Lens' CreateRouteTable (Maybe Bool) crtDryRun = lens _crtDryRun (\ s a -> s{_crtDryRun = a});@@ -90,9 +89,9 @@                  CreateRouteTableResponse' <$>                    (x .@? "routeTable") <*> (pure (fromEnum s))) -instance Hashable CreateRouteTable+instance Hashable CreateRouteTable where -instance NFData CreateRouteTable+instance NFData CreateRouteTable where  instance ToHeaders CreateRouteTable where         toHeaders = const mempty@@ -113,10 +112,11 @@ -- -- /See:/ 'createRouteTableResponse' smart constructor. data CreateRouteTableResponse = CreateRouteTableResponse'-    { _crtrsRouteTable     :: !(Maybe RouteTable)-    , _crtrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crtrsRouteTable     :: !(Maybe RouteTable)+  , _crtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateRouteTableResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -128,11 +128,10 @@     :: Int -- ^ 'crtrsResponseStatus'     -> CreateRouteTableResponse createRouteTableResponse pResponseStatus_ =-    CreateRouteTableResponse'-    { _crtrsRouteTable = Nothing-    , _crtrsResponseStatus = pResponseStatus_-    }+  CreateRouteTableResponse'+  {_crtrsRouteTable = Nothing, _crtrsResponseStatus = pResponseStatus_} + -- | Information about the route table. crtrsRouteTable :: Lens' CreateRouteTableResponse (Maybe RouteTable) crtrsRouteTable = lens _crtrsRouteTable (\ s a -> s{_crtrsRouteTable = a});@@ -141,4 +140,4 @@ crtrsResponseStatus :: Lens' CreateRouteTableResponse Int crtrsResponseStatus = lens _crtrsResponseStatus (\ s a -> s{_crtrsResponseStatus = a}); -instance NFData CreateRouteTableResponse+instance NFData CreateRouteTableResponse where
gen/Network/AWS/EC2/CreateSecurityGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateSecurityGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,8 +41,8 @@     -- * Request Lenses     , csgVPCId     , csgDryRun-    , csgGroupName     , csgDescription+    , csgGroupName      -- * Destructuring the Response     , createSecurityGroupResponse@@ -52,12 +52,12 @@     , csgrsGroupId     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateSecurityGroup. --@@ -65,12 +65,13 @@ -- -- /See:/ 'createSecurityGroup' smart constructor. data CreateSecurityGroup = CreateSecurityGroup'-    { _csgVPCId       :: !(Maybe Text)-    , _csgDryRun      :: !(Maybe Bool)-    , _csgGroupName   :: !Text-    , _csgDescription :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csgVPCId       :: !(Maybe Text)+  , _csgDryRun      :: !(Maybe Bool)+  , _csgDescription :: !Text+  , _csgGroupName   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,21 +80,22 @@ -- -- * 'csgDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'csgGroupName' - The name of the security group. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*--- -- * 'csgDescription' - 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 ._-:/()#,@[]+=&;{}!$*+--+-- * 'csgGroupName' - The name of the security group. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* createSecurityGroup-    :: Text -- ^ 'csgGroupName'-    -> Text -- ^ 'csgDescription'+    :: Text -- ^ 'csgDescription'+    -> Text -- ^ 'csgGroupName'     -> CreateSecurityGroup-createSecurityGroup pGroupName_ pDescription_ =-    CreateSecurityGroup'-    { _csgVPCId = Nothing-    , _csgDryRun = Nothing-    , _csgGroupName = pGroupName_-    , _csgDescription = pDescription_-    }+createSecurityGroup pDescription_ pGroupName_ =+  CreateSecurityGroup'+  { _csgVPCId = Nothing+  , _csgDryRun = Nothing+  , _csgDescription = pDescription_+  , _csgGroupName = pGroupName_+  } + -- | [EC2-VPC] The ID of the VPC. Required for EC2-VPC. csgVPCId :: Lens' CreateSecurityGroup (Maybe Text) csgVPCId = lens _csgVPCId (\ s a -> s{_csgVPCId = a});@@ -102,14 +104,14 @@ csgDryRun :: Lens' CreateSecurityGroup (Maybe Bool) csgDryRun = lens _csgDryRun (\ s a -> s{_csgDryRun = a}); --- | The name of the security group. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*-csgGroupName :: Lens' CreateSecurityGroup Text-csgGroupName = lens _csgGroupName (\ s a -> s{_csgGroupName = 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 ._-:/()#,@[]+=&;{}!$* csgDescription :: Lens' CreateSecurityGroup Text csgDescription = lens _csgDescription (\ s a -> s{_csgDescription = a}); +-- | The name of the security group. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*+csgGroupName :: Lens' CreateSecurityGroup Text+csgGroupName = lens _csgGroupName (\ s a -> s{_csgGroupName = a});+ instance AWSRequest CreateSecurityGroup where         type Rs CreateSecurityGroup =              CreateSecurityGroupResponse@@ -120,9 +122,9 @@                  CreateSecurityGroupResponse' <$>                    (pure (fromEnum s)) <*> (x .@ "groupId")) -instance Hashable CreateSecurityGroup+instance Hashable CreateSecurityGroup where -instance NFData CreateSecurityGroup+instance NFData CreateSecurityGroup where  instance ToHeaders CreateSecurityGroup where         toHeaders = const mempty@@ -136,8 +138,8 @@               ["Action" =: ("CreateSecurityGroup" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "VpcId" =: _csgVPCId, "DryRun" =: _csgDryRun,-               "GroupName" =: _csgGroupName,-               "GroupDescription" =: _csgDescription]+               "GroupDescription" =: _csgDescription,+               "GroupName" =: _csgGroupName]  -- | Contains the output of CreateSecurityGroup. --@@ -145,10 +147,11 @@ -- -- /See:/ 'createSecurityGroupResponse' smart constructor. data CreateSecurityGroupResponse = CreateSecurityGroupResponse'-    { _csgrsResponseStatus :: !Int-    , _csgrsGroupId        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csgrsResponseStatus :: !Int+  , _csgrsGroupId        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSecurityGroupResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -161,11 +164,10 @@     -> Text -- ^ 'csgrsGroupId'     -> CreateSecurityGroupResponse createSecurityGroupResponse pResponseStatus_ pGroupId_ =-    CreateSecurityGroupResponse'-    { _csgrsResponseStatus = pResponseStatus_-    , _csgrsGroupId = pGroupId_-    }+  CreateSecurityGroupResponse'+  {_csgrsResponseStatus = pResponseStatus_, _csgrsGroupId = pGroupId_} + -- | -- | The response status code. csgrsResponseStatus :: Lens' CreateSecurityGroupResponse Int csgrsResponseStatus = lens _csgrsResponseStatus (\ s a -> s{_csgrsResponseStatus = a});@@ -174,4 +176,4 @@ csgrsGroupId :: Lens' CreateSecurityGroupResponse Text csgrsGroupId = lens _csgrsGroupId (\ s a -> s{_csgrsGroupId = a}); -instance NFData CreateSecurityGroupResponse+instance NFData CreateSecurityGroupResponse where
gen/Network/AWS/EC2/CreateSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -61,12 +61,12 @@     , sEncrypted     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateSnapshot. --@@ -74,11 +74,12 @@ -- -- /See:/ 'createSnapshot' smart constructor. data CreateSnapshot = CreateSnapshot'-    { _ccDescription :: !(Maybe Text)-    , _ccDryRun      :: !(Maybe Bool)-    , _ccVolumeId    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ccDescription :: !(Maybe Text)+  , _ccDryRun      :: !(Maybe Bool)+  , _ccVolumeId    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -92,12 +93,10 @@     :: Text -- ^ 'ccVolumeId'     -> CreateSnapshot createSnapshot pVolumeId_ =-    CreateSnapshot'-    { _ccDescription = Nothing-    , _ccDryRun = Nothing-    , _ccVolumeId = pVolumeId_-    }+  CreateSnapshot'+  {_ccDescription = Nothing, _ccDryRun = Nothing, _ccVolumeId = pVolumeId_} + -- | A description for the snapshot. ccDescription :: Lens' CreateSnapshot (Maybe Text) ccDescription = lens _ccDescription (\ s a -> s{_ccDescription = a});@@ -115,9 +114,9 @@         request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x) -instance Hashable CreateSnapshot+instance Hashable CreateSnapshot where -instance NFData CreateSnapshot+instance NFData CreateSnapshot where  instance ToHeaders CreateSnapshot where         toHeaders = const mempty
gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateSpotDatafeedSubscription--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , csdsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateSpotDatafeedSubscription. --@@ -52,11 +52,12 @@ -- -- /See:/ 'createSpotDatafeedSubscription' smart constructor. data CreateSpotDatafeedSubscription = CreateSpotDatafeedSubscription'-    { _csdsPrefix :: !(Maybe Text)-    , _csdsDryRun :: !(Maybe Bool)-    , _csdsBucket :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csdsPrefix :: !(Maybe Text)+  , _csdsDryRun :: !(Maybe Bool)+  , _csdsBucket :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSpotDatafeedSubscription' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,10 @@     :: Text -- ^ 'csdsBucket'     -> CreateSpotDatafeedSubscription createSpotDatafeedSubscription pBucket_ =-    CreateSpotDatafeedSubscription'-    { _csdsPrefix = Nothing-    , _csdsDryRun = Nothing-    , _csdsBucket = pBucket_-    }+  CreateSpotDatafeedSubscription'+  {_csdsPrefix = Nothing, _csdsDryRun = Nothing, _csdsBucket = pBucket_} + -- | A prefix for the data feed file names. csdsPrefix :: Lens' CreateSpotDatafeedSubscription (Maybe Text) csdsPrefix = lens _csdsPrefix (\ s a -> s{_csdsPrefix = a});@@ -101,8 +100,9 @@                      (pure (fromEnum s)))  instance Hashable CreateSpotDatafeedSubscription+         where -instance NFData CreateSpotDatafeedSubscription+instance NFData CreateSpotDatafeedSubscription where  instance ToHeaders CreateSpotDatafeedSubscription          where@@ -126,10 +126,11 @@ -- -- /See:/ 'createSpotDatafeedSubscriptionResponse' smart constructor. data CreateSpotDatafeedSubscriptionResponse = CreateSpotDatafeedSubscriptionResponse'-    { _csdsrsSpotDatafeedSubscription :: !(Maybe SpotDatafeedSubscription)-    , _csdsrsResponseStatus           :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _csdsrsSpotDatafeedSubscription :: !(Maybe SpotDatafeedSubscription)+  , _csdsrsResponseStatus           :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSpotDatafeedSubscriptionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +142,12 @@     :: Int -- ^ 'csdsrsResponseStatus'     -> CreateSpotDatafeedSubscriptionResponse createSpotDatafeedSubscriptionResponse pResponseStatus_ =-    CreateSpotDatafeedSubscriptionResponse'-    { _csdsrsSpotDatafeedSubscription = Nothing-    , _csdsrsResponseStatus = pResponseStatus_-    }+  CreateSpotDatafeedSubscriptionResponse'+  { _csdsrsSpotDatafeedSubscription = Nothing+  , _csdsrsResponseStatus = pResponseStatus_+  } + -- | The Spot instance data feed subscription. csdsrsSpotDatafeedSubscription :: Lens' CreateSpotDatafeedSubscriptionResponse (Maybe SpotDatafeedSubscription) csdsrsSpotDatafeedSubscription = lens _csdsrsSpotDatafeedSubscription (\ s a -> s{_csdsrsSpotDatafeedSubscription = a});@@ -155,4 +157,5 @@ csdsrsResponseStatus = lens _csdsrsResponseStatus (\ s a -> s{_csdsrsResponseStatus = a});  instance NFData-         CreateSpotDatafeedSubscriptionResponse+           CreateSpotDatafeedSubscriptionResponse+         where
gen/Network/AWS/EC2/CreateSubnet.hs view
@@ -12,20 +12,20 @@  -- | -- Module      : Network.AWS.EC2.CreateSubnet--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a subnet in an existing VPC. -- ----- When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's IPv4 CIDR block can be the same as the VPC's IPv4 CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).+-- 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 /28 netmask (16 IPv4 addresses), and the largest uses a /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. ----- /Important:/ AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for use.+-- /Important:/ 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. --@@ -42,23 +42,23 @@     , cssIPv6CidrBlock     , cssAvailabilityZone     , cssDryRun-    , cssVPCId     , cssCidrBlock+    , cssVPCId      -- * Destructuring the Response     , createSubnetResponse     , CreateSubnetResponse     -- * Response Lenses-    , crsSubnet-    , crsResponseStatus+    , crersSubnet+    , crersResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateSubnet. --@@ -66,13 +66,14 @@ -- -- /See:/ 'createSubnet' smart constructor. data CreateSubnet = CreateSubnet'-    { _cssIPv6CidrBlock    :: !(Maybe Text)-    , _cssAvailabilityZone :: !(Maybe Text)-    , _cssDryRun           :: !(Maybe Bool)-    , _cssVPCId            :: !Text-    , _cssCidrBlock        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cssIPv6CidrBlock    :: !(Maybe Text)+  , _cssAvailabilityZone :: !(Maybe Text)+  , _cssDryRun           :: !(Maybe Bool)+  , _cssCidrBlock        :: !Text+  , _cssVPCId            :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSubnet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,22 +84,23 @@ -- -- * 'cssDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'cssVPCId' - The ID of the VPC.--- -- * 'cssCidrBlock' - The IPv4 network range for the subnet, in CIDR notation. For example, @10.0.0.0/24@ .+--+-- * 'cssVPCId' - The ID of the VPC. createSubnet-    :: Text -- ^ 'cssVPCId'-    -> Text -- ^ 'cssCidrBlock'+    :: Text -- ^ 'cssCidrBlock'+    -> Text -- ^ 'cssVPCId'     -> CreateSubnet-createSubnet pVPCId_ pCidrBlock_ =-    CreateSubnet'-    { _cssIPv6CidrBlock = Nothing-    , _cssAvailabilityZone = Nothing-    , _cssDryRun = Nothing-    , _cssVPCId = pVPCId_-    , _cssCidrBlock = pCidrBlock_-    }+createSubnet pCidrBlock_ pVPCId_ =+  CreateSubnet'+  { _cssIPv6CidrBlock = Nothing+  , _cssAvailabilityZone = Nothing+  , _cssDryRun = Nothing+  , _cssCidrBlock = pCidrBlock_+  , _cssVPCId = pVPCId_+  } + -- | The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length. cssIPv6CidrBlock :: Lens' CreateSubnet (Maybe Text) cssIPv6CidrBlock = lens _cssIPv6CidrBlock (\ s a -> s{_cssIPv6CidrBlock = a});@@ -111,14 +113,14 @@ cssDryRun :: Lens' CreateSubnet (Maybe Bool) cssDryRun = lens _cssDryRun (\ s a -> s{_cssDryRun = a}); --- | The ID of the VPC.-cssVPCId :: Lens' CreateSubnet Text-cssVPCId = lens _cssVPCId (\ s a -> s{_cssVPCId = a});- -- | The IPv4 network range for the subnet, in CIDR notation. For example, @10.0.0.0/24@ . cssCidrBlock :: Lens' CreateSubnet Text cssCidrBlock = lens _cssCidrBlock (\ s a -> s{_cssCidrBlock = a}); +-- | The ID of the VPC.+cssVPCId :: Lens' CreateSubnet Text+cssVPCId = lens _cssVPCId (\ s a -> s{_cssVPCId = a});+ instance AWSRequest CreateSubnet where         type Rs CreateSubnet = CreateSubnetResponse         request = postQuery ec2@@ -128,9 +130,9 @@                  CreateSubnetResponse' <$>                    (x .@? "subnet") <*> (pure (fromEnum s))) -instance Hashable CreateSubnet+instance Hashable CreateSubnet where -instance NFData CreateSubnet+instance NFData CreateSubnet where  instance ToHeaders CreateSubnet where         toHeaders = const mempty@@ -145,8 +147,8 @@                "Version" =: ("2016-11-15" :: ByteString),                "Ipv6CidrBlock" =: _cssIPv6CidrBlock,                "AvailabilityZone" =: _cssAvailabilityZone,-               "DryRun" =: _cssDryRun, "VpcId" =: _cssVPCId,-               "CidrBlock" =: _cssCidrBlock]+               "DryRun" =: _cssDryRun, "CidrBlock" =: _cssCidrBlock,+               "VpcId" =: _cssVPCId]  -- | Contains the output of CreateSubnet. --@@ -154,32 +156,32 @@ -- -- /See:/ 'createSubnetResponse' smart constructor. data CreateSubnetResponse = CreateSubnetResponse'-    { _crsSubnet         :: !(Maybe Subnet)-    , _crsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _crersSubnet         :: !(Maybe Subnet)+  , _crersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSubnetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'crsSubnet' - Information about the subnet.+-- * 'crersSubnet' - Information about the subnet. ----- * 'crsResponseStatus' - -- | The response status code.+-- * 'crersResponseStatus' - -- | The response status code. createSubnetResponse-    :: Int -- ^ 'crsResponseStatus'+    :: Int -- ^ 'crersResponseStatus'     -> CreateSubnetResponse createSubnetResponse pResponseStatus_ =-    CreateSubnetResponse'-    { _crsSubnet = Nothing-    , _crsResponseStatus = pResponseStatus_-    }+  CreateSubnetResponse'+  {_crersSubnet = Nothing, _crersResponseStatus = pResponseStatus_} + -- | Information about the subnet.-crsSubnet :: Lens' CreateSubnetResponse (Maybe Subnet)-crsSubnet = lens _crsSubnet (\ s a -> s{_crsSubnet = a});+crersSubnet :: Lens' CreateSubnetResponse (Maybe Subnet)+crersSubnet = lens _crersSubnet (\ s a -> s{_crersSubnet = a});  -- | -- | The response status code.-crsResponseStatus :: Lens' CreateSubnetResponse Int-crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});+crersResponseStatus :: Lens' CreateSubnetResponse Int+crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a}); -instance NFData CreateSubnetResponse+instance NFData CreateSubnetResponse where
gen/Network/AWS/EC2/CreateTags.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateTags--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , CreateTagsResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateTags. --@@ -51,11 +51,12 @@ -- -- /See:/ 'createTags' smart constructor. data CreateTags = CreateTags'-    { _cDryRun    :: !(Maybe Bool)-    , _cResources :: ![Text]-    , _cTags      :: ![Tag]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cDryRun    :: !(Maybe Bool)+  , _cResources :: ![Text]+  , _cTags      :: ![Tag]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,12 +69,9 @@ createTags     :: CreateTags createTags =-    CreateTags'-    { _cDryRun = Nothing-    , _cResources = mempty-    , _cTags = mempty-    }+  CreateTags' {_cDryRun = Nothing, _cResources = mempty, _cTags = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . cDryRun :: Lens' CreateTags (Maybe Bool) cDryRun = lens _cDryRun (\ s a -> s{_cDryRun = a});@@ -91,9 +89,9 @@         request = postQuery ec2         response = receiveNull CreateTagsResponse' -instance Hashable CreateTags+instance Hashable CreateTags where -instance NFData CreateTags+instance NFData CreateTags where  instance ToHeaders CreateTags where         toHeaders = const mempty@@ -112,13 +110,15 @@  -- | /See:/ 'createTagsResponse' smart constructor. data CreateTagsResponse =-    CreateTagsResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CreateTagsResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateTagsResponse' with the minimum fields required to make a request. -- createTagsResponse     :: CreateTagsResponse createTagsResponse = CreateTagsResponse' -instance NFData CreateTagsResponse++instance NFData CreateTagsResponse where
gen/Network/AWS/EC2/CreateVPC.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateVPC--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -25,7 +25,7 @@ -- -- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> in the /Amazon Virtual Private Cloud User Guide/ . ----- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/dedicated-instance.html.html Dedicated Instances> in the /Amazon Virtual Private Cloud User Guide/ .+-- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html Dedicated Instances> in the /Amazon Elastic Compute Cloud User Guide/ . -- module Network.AWS.EC2.CreateVPC     (@@ -46,12 +46,12 @@     , cvrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVpc. --@@ -59,12 +59,13 @@ -- -- /See:/ 'createVPC' smart constructor. data CreateVPC = CreateVPC'-    { _cvAmazonProvidedIPv6CidrBlock :: !(Maybe Bool)-    , _cvInstanceTenancy             :: !(Maybe Tenancy)-    , _cvDryRun                      :: !(Maybe Bool)-    , _cvCidrBlock                   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvAmazonProvidedIPv6CidrBlock :: !(Maybe Bool)+  , _cvInstanceTenancy             :: !(Maybe Tenancy)+  , _cvDryRun                      :: !(Maybe Bool)+  , _cvCidrBlock                   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPC' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,13 +81,14 @@     :: Text -- ^ 'cvCidrBlock'     -> CreateVPC createVPC pCidrBlock_ =-    CreateVPC'-    { _cvAmazonProvidedIPv6CidrBlock = Nothing-    , _cvInstanceTenancy = Nothing-    , _cvDryRun = Nothing-    , _cvCidrBlock = pCidrBlock_-    }+  CreateVPC'+  { _cvAmazonProvidedIPv6CidrBlock = Nothing+  , _cvInstanceTenancy = Nothing+  , _cvDryRun = Nothing+  , _cvCidrBlock = pCidrBlock_+  } + -- | 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) cvAmazonProvidedIPv6CidrBlock = lens _cvAmazonProvidedIPv6CidrBlock (\ s a -> s{_cvAmazonProvidedIPv6CidrBlock = a});@@ -112,9 +114,9 @@                  CreateVPCResponse' <$>                    (x .@? "vpc") <*> (pure (fromEnum s))) -instance Hashable CreateVPC+instance Hashable CreateVPC where -instance NFData CreateVPC+instance NFData CreateVPC where  instance ToHeaders CreateVPC where         toHeaders = const mempty@@ -138,10 +140,11 @@ -- -- /See:/ 'createVPCResponse' smart constructor. data CreateVPCResponse = CreateVPCResponse'-    { _cvrsVPC            :: !(Maybe VPC)-    , _cvrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvrsVPC            :: !(Maybe VPC)+  , _cvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPCResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,11 +156,10 @@     :: Int -- ^ 'cvrsResponseStatus'     -> CreateVPCResponse createVPCResponse pResponseStatus_ =-    CreateVPCResponse'-    { _cvrsVPC = Nothing-    , _cvrsResponseStatus = pResponseStatus_-    }+  CreateVPCResponse'+  {_cvrsVPC = Nothing, _cvrsResponseStatus = pResponseStatus_} + -- | Information about the VPC. cvrsVPC :: Lens' CreateVPCResponse (Maybe VPC) cvrsVPC = lens _cvrsVPC (\ s a -> s{_cvrsVPC = a});@@ -166,4 +168,4 @@ cvrsResponseStatus :: Lens' CreateVPCResponse Int cvrsResponseStatus = lens _cvrsResponseStatus (\ s a -> s{_cvrsResponseStatus = a}); -instance NFData CreateVPCResponse+instance NFData CreateVPCResponse where
gen/Network/AWS/EC2/CreateVPCEndpoint.hs view
@@ -12,17 +12,19 @@  -- | -- Module      : Network.AWS.EC2.CreateVPCEndpoint--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint.+-- Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can create a gateway endpoint or an interface endpoint. -- ----- Currently, only endpoints to Amazon S3 are supported.+-- A gateway endpoint serves as a target for a route in your route table for traffic destined for the AWS service. You can specify the VPC route tables that use the endpoint, and you can optionally specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. --+-- An interface endpoint is a network interface in your subnet with a private IP address that serves as an entry point for traffic destined to the AWS service. You can specify the subnets in which to create an endpoint, and the security groups to associate with the network interface.+-- module Network.AWS.EC2.CreateVPCEndpoint     (     -- * Creating a Request@@ -30,7 +32,11 @@     , CreateVPCEndpoint     -- * Request Lenses     , cvePolicyDocument+    , cveSecurityGroupIds     , cveClientToken+    , cveSubnetIds+    , cveVPCEndpointType+    , cvePrivateDNSEnabled     , cveDryRun     , cveRouteTableIds     , cveVPCId@@ -45,12 +51,12 @@     , cversResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVpcEndpoint. --@@ -58,25 +64,38 @@ -- -- /See:/ 'createVPCEndpoint' smart constructor. data CreateVPCEndpoint = CreateVPCEndpoint'-    { _cvePolicyDocument :: !(Maybe Text)-    , _cveClientToken    :: !(Maybe Text)-    , _cveDryRun         :: !(Maybe Bool)-    , _cveRouteTableIds  :: !(Maybe [Text])-    , _cveVPCId          :: !Text-    , _cveServiceName    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvePolicyDocument    :: !(Maybe Text)+  , _cveSecurityGroupIds  :: !(Maybe [Text])+  , _cveClientToken       :: !(Maybe Text)+  , _cveSubnetIds         :: !(Maybe [Text])+  , _cveVPCEndpointType   :: !(Maybe VPCEndpointType)+  , _cvePrivateDNSEnabled :: !(Maybe Bool)+  , _cveDryRun            :: !(Maybe Bool)+  , _cveRouteTableIds     :: !(Maybe [Text])+  , _cveVPCId             :: !Text+  , _cveServiceName       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPCEndpoint' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'cvePolicyDocument' - 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' - (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. --+-- * 'cveSecurityGroupIds' - (Interface endpoint) The ID of one or more security groups to associate with the network interface.+-- -- * 'cveClientToken' - Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html How to Ensure Idempotency> . --+-- * 'cveSubnetIds' - (Interface endpoint) The ID of one or more subnets in which to create a network interface for the endpoint.+--+-- * 'cveVPCEndpointType' - The type of endpoint. If not specified, the default is a gateway endpoint.+--+-- * 'cvePrivateDNSEnabled' - (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, @kinesis.us-east-1.amazonaws.com@ ) 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 @true@ : @enableDnsHostnames@ and @enableDnsSupport@ . Use 'ModifyVpcAttribute' to set the VPC attributes. Default: @true@+-- -- * 'cveDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'cveRouteTableIds' - One or more route table IDs.+-- * 'cveRouteTableIds' - (Gateway endpoint) One or more route table IDs. -- -- * 'cveVPCId' - The ID of the VPC in which the endpoint will be used. --@@ -86,28 +105,49 @@     -> Text -- ^ 'cveServiceName'     -> CreateVPCEndpoint createVPCEndpoint pVPCId_ pServiceName_ =-    CreateVPCEndpoint'-    { _cvePolicyDocument = Nothing-    , _cveClientToken = Nothing-    , _cveDryRun = Nothing-    , _cveRouteTableIds = Nothing-    , _cveVPCId = pVPCId_-    , _cveServiceName = pServiceName_-    }+  CreateVPCEndpoint'+  { _cvePolicyDocument = Nothing+  , _cveSecurityGroupIds = Nothing+  , _cveClientToken = Nothing+  , _cveSubnetIds = Nothing+  , _cveVPCEndpointType = Nothing+  , _cvePrivateDNSEnabled = Nothing+  , _cveDryRun = Nothing+  , _cveRouteTableIds = Nothing+  , _cveVPCId = pVPCId_+  , _cveServiceName = pServiceName_+  } --- | 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.++-- | (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) cvePolicyDocument = lens _cvePolicyDocument (\ s a -> s{_cvePolicyDocument = a}); +-- | (Interface endpoint) The ID of one or more security groups to associate with the network interface.+cveSecurityGroupIds :: Lens' CreateVPCEndpoint [Text]+cveSecurityGroupIds = lens _cveSecurityGroupIds (\ s a -> s{_cveSecurityGroupIds = a}) . _Default . _Coerce;+ -- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html How to Ensure Idempotency> . cveClientToken :: Lens' CreateVPCEndpoint (Maybe Text) cveClientToken = lens _cveClientToken (\ s a -> s{_cveClientToken = a}); +-- | (Interface endpoint) The ID of one or more subnets in which to create a network interface for the endpoint.+cveSubnetIds :: Lens' CreateVPCEndpoint [Text]+cveSubnetIds = lens _cveSubnetIds (\ s a -> s{_cveSubnetIds = a}) . _Default . _Coerce;++-- | The type of endpoint. If not specified, the default is a gateway endpoint.+cveVPCEndpointType :: Lens' CreateVPCEndpoint (Maybe VPCEndpointType)+cveVPCEndpointType = lens _cveVPCEndpointType (\ s a -> s{_cveVPCEndpointType = 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, @kinesis.us-east-1.amazonaws.com@ ) 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 @true@ : @enableDnsHostnames@ and @enableDnsSupport@ . Use 'ModifyVpcAttribute' to set the VPC attributes. Default: @true@+cvePrivateDNSEnabled :: Lens' CreateVPCEndpoint (Maybe Bool)+cvePrivateDNSEnabled = lens _cvePrivateDNSEnabled (\ s a -> s{_cvePrivateDNSEnabled = a});+ -- | Checks whether you have the required permissions for the action, 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@ . cveDryRun :: Lens' CreateVPCEndpoint (Maybe Bool) cveDryRun = lens _cveDryRun (\ s a -> s{_cveDryRun = a}); --- | One or more route table IDs.+-- | (Gateway endpoint) One or more route table IDs. cveRouteTableIds :: Lens' CreateVPCEndpoint [Text] cveRouteTableIds = lens _cveRouteTableIds (\ s a -> s{_cveRouteTableIds = a}) . _Default . _Coerce; @@ -129,9 +169,9 @@                    (x .@? "clientToken") <*> (x .@? "vpcEndpoint") <*>                      (pure (fromEnum s))) -instance Hashable CreateVPCEndpoint+instance Hashable CreateVPCEndpoint where -instance NFData CreateVPCEndpoint+instance NFData CreateVPCEndpoint where  instance ToHeaders CreateVPCEndpoint where         toHeaders = const mempty@@ -145,7 +185,13 @@               ["Action" =: ("CreateVpcEndpoint" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "PolicyDocument" =: _cvePolicyDocument,+               toQuery+                 (toQueryList "SecurityGroupId" <$>+                    _cveSecurityGroupIds),                "ClientToken" =: _cveClientToken,+               toQuery (toQueryList "SubnetId" <$> _cveSubnetIds),+               "VpcEndpointType" =: _cveVPCEndpointType,+               "PrivateDnsEnabled" =: _cvePrivateDNSEnabled,                "DryRun" =: _cveDryRun,                toQuery                  (toQueryList "RouteTableId" <$> _cveRouteTableIds),@@ -158,11 +204,12 @@ -- -- /See:/ 'createVPCEndpointResponse' smart constructor. data CreateVPCEndpointResponse = CreateVPCEndpointResponse'-    { _cversClientToken    :: !(Maybe Text)-    , _cversVPCEndpoint    :: !(Maybe VPCEndpoint)-    , _cversResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cversClientToken    :: !(Maybe Text)+  , _cversVPCEndpoint    :: !(Maybe VPCEndpoint)+  , _cversResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPCEndpointResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -176,12 +223,13 @@     :: Int -- ^ 'cversResponseStatus'     -> CreateVPCEndpointResponse createVPCEndpointResponse pResponseStatus_ =-    CreateVPCEndpointResponse'-    { _cversClientToken = Nothing-    , _cversVPCEndpoint = Nothing-    , _cversResponseStatus = pResponseStatus_-    }+  CreateVPCEndpointResponse'+  { _cversClientToken = Nothing+  , _cversVPCEndpoint = Nothing+  , _cversResponseStatus = pResponseStatus_+  } + -- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. cversClientToken :: Lens' CreateVPCEndpointResponse (Maybe Text) cversClientToken = lens _cversClientToken (\ s a -> s{_cversClientToken = a});@@ -194,4 +242,4 @@ cversResponseStatus :: Lens' CreateVPCEndpointResponse Int cversResponseStatus = lens _cversResponseStatus (\ s a -> s{_cversResponseStatus = a}); -instance NFData CreateVPCEndpointResponse+instance NFData CreateVPCEndpointResponse where
gen/Network/AWS/EC2/CreateVPCPeeringConnection.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateVPCPeeringConnection--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,7 +23,7 @@ -- -- The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected. ----- A @CreateVpcPeeringConnection@ request between VPCs with overlapping CIDR blocks results in the VPC peering connection having a status of @failed@ .+-- If you try to create a VPC peering connection between VPCs that have overlapping CIDR blocks, the VPC peering connection status goes to @failed@ . -- module Network.AWS.EC2.CreateVPCPeeringConnection     (@@ -44,12 +44,12 @@     , cvpcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVpcPeeringConnection. --@@ -57,12 +57,13 @@ -- -- /See:/ 'createVPCPeeringConnection' smart constructor. data CreateVPCPeeringConnection = CreateVPCPeeringConnection'-    { _cvpcPeerVPCId   :: !(Maybe Text)-    , _cvpcVPCId       :: !(Maybe Text)-    , _cvpcPeerOwnerId :: !(Maybe Text)-    , _cvpcDryRun      :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvpcPeerVPCId   :: !(Maybe Text)+  , _cvpcVPCId       :: !(Maybe Text)+  , _cvpcPeerOwnerId :: !(Maybe Text)+  , _cvpcDryRun      :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPCPeeringConnection' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,13 +78,14 @@ createVPCPeeringConnection     :: CreateVPCPeeringConnection createVPCPeeringConnection =-    CreateVPCPeeringConnection'-    { _cvpcPeerVPCId = Nothing-    , _cvpcVPCId = Nothing-    , _cvpcPeerOwnerId = Nothing-    , _cvpcDryRun = Nothing-    }+  CreateVPCPeeringConnection'+  { _cvpcPeerVPCId = Nothing+  , _cvpcVPCId = Nothing+  , _cvpcPeerOwnerId = Nothing+  , _cvpcDryRun = Nothing+  } + -- | The ID of the VPC with which you are creating the VPC peering connection. cvpcPeerVPCId :: Lens' CreateVPCPeeringConnection (Maybe Text) cvpcPeerVPCId = lens _cvpcPeerVPCId (\ s a -> s{_cvpcPeerVPCId = a});@@ -111,9 +113,9 @@                    (x .@? "vpcPeeringConnection") <*>                      (pure (fromEnum s))) -instance Hashable CreateVPCPeeringConnection+instance Hashable CreateVPCPeeringConnection where -instance NFData CreateVPCPeeringConnection+instance NFData CreateVPCPeeringConnection where  instance ToHeaders CreateVPCPeeringConnection where         toHeaders = const mempty@@ -137,10 +139,11 @@ -- -- /See:/ 'createVPCPeeringConnectionResponse' smart constructor. data CreateVPCPeeringConnectionResponse = CreateVPCPeeringConnectionResponse'-    { _cvpcrsVPCPeeringConnection :: !(Maybe VPCPeeringConnection)-    , _cvpcrsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvpcrsVPCPeeringConnection :: !(Maybe VPCPeeringConnection)+  , _cvpcrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPCPeeringConnectionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -152,11 +155,12 @@     :: Int -- ^ 'cvpcrsResponseStatus'     -> CreateVPCPeeringConnectionResponse createVPCPeeringConnectionResponse pResponseStatus_ =-    CreateVPCPeeringConnectionResponse'-    { _cvpcrsVPCPeeringConnection = Nothing-    , _cvpcrsResponseStatus = pResponseStatus_-    }+  CreateVPCPeeringConnectionResponse'+  { _cvpcrsVPCPeeringConnection = Nothing+  , _cvpcrsResponseStatus = pResponseStatus_+  } + -- | Information about the VPC peering connection. cvpcrsVPCPeeringConnection :: Lens' CreateVPCPeeringConnectionResponse (Maybe VPCPeeringConnection) cvpcrsVPCPeeringConnection = lens _cvpcrsVPCPeeringConnection (\ s a -> s{_cvpcrsVPCPeeringConnection = a});@@ -166,3 +170,4 @@ cvpcrsResponseStatus = lens _cvpcrsResponseStatus (\ s a -> s{_cvpcrsResponseStatus = a});  instance NFData CreateVPCPeeringConnectionResponse+         where
gen/Network/AWS/EC2/CreateVPNConnection.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateVPNConnection--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -29,7 +29,7 @@ -- -- This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. ----- For more information about VPN connections, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- module Network.AWS.EC2.CreateVPNConnection     (@@ -39,8 +39,8 @@     -- * Request Lenses     , cvcOptions     , cvcDryRun-    , cvcType     , cvcCustomerGatewayId+    , cvcType     , cvcVPNGatewayId      -- * Destructuring the Response@@ -51,12 +51,12 @@     , cvcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVpnConnection. --@@ -64,41 +64,43 @@ -- -- /See:/ 'createVPNConnection' smart constructor. data CreateVPNConnection = CreateVPNConnection'-    { _cvcOptions           :: !(Maybe VPNConnectionOptionsSpecification)-    , _cvcDryRun            :: !(Maybe Bool)-    , _cvcType              :: !Text-    , _cvcCustomerGatewayId :: !Text-    , _cvcVPNGatewayId      :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvcOptions           :: !(Maybe VPNConnectionOptionsSpecification)+  , _cvcDryRun            :: !(Maybe Bool)+  , _cvcCustomerGatewayId :: !Text+  , _cvcType              :: !Text+  , _cvcVPNGatewayId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPNConnection' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'cvcOptions' - Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify @true@ . Default: @false@+-- * 'cvcOptions' - The options for the VPN connection. -- -- * 'cvcDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'cvcType' - The type of VPN connection (@ipsec.1@ ).--- -- * 'cvcCustomerGatewayId' - The ID of the customer gateway. --+-- * 'cvcType' - The type of VPN connection (@ipsec.1@ ).+-- -- * 'cvcVPNGatewayId' - The ID of the virtual private gateway. createVPNConnection-    :: Text -- ^ 'cvcType'-    -> Text -- ^ 'cvcCustomerGatewayId'+    :: Text -- ^ 'cvcCustomerGatewayId'+    -> Text -- ^ 'cvcType'     -> Text -- ^ 'cvcVPNGatewayId'     -> CreateVPNConnection-createVPNConnection pType_ pCustomerGatewayId_ pVPNGatewayId_ =-    CreateVPNConnection'-    { _cvcOptions = Nothing-    , _cvcDryRun = Nothing-    , _cvcType = pType_-    , _cvcCustomerGatewayId = pCustomerGatewayId_-    , _cvcVPNGatewayId = pVPNGatewayId_-    }+createVPNConnection pCustomerGatewayId_ pType_ pVPNGatewayId_ =+  CreateVPNConnection'+  { _cvcOptions = Nothing+  , _cvcDryRun = Nothing+  , _cvcCustomerGatewayId = pCustomerGatewayId_+  , _cvcType = pType_+  , _cvcVPNGatewayId = pVPNGatewayId_+  } --- | Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify @true@ . Default: @false@++-- | The options for the VPN connection. cvcOptions :: Lens' CreateVPNConnection (Maybe VPNConnectionOptionsSpecification) cvcOptions = lens _cvcOptions (\ s a -> s{_cvcOptions = a}); @@ -106,14 +108,14 @@ cvcDryRun :: Lens' CreateVPNConnection (Maybe Bool) cvcDryRun = lens _cvcDryRun (\ s a -> s{_cvcDryRun = a}); --- | The type of VPN connection (@ipsec.1@ ).-cvcType :: Lens' CreateVPNConnection Text-cvcType = lens _cvcType (\ s a -> s{_cvcType = a});- -- | The ID of the customer gateway. cvcCustomerGatewayId :: Lens' CreateVPNConnection Text cvcCustomerGatewayId = lens _cvcCustomerGatewayId (\ s a -> s{_cvcCustomerGatewayId = a}); +-- | The type of VPN connection (@ipsec.1@ ).+cvcType :: Lens' CreateVPNConnection Text+cvcType = lens _cvcType (\ s a -> s{_cvcType = a});+ -- | The ID of the virtual private gateway. cvcVPNGatewayId :: Lens' CreateVPNConnection Text cvcVPNGatewayId = lens _cvcVPNGatewayId (\ s a -> s{_cvcVPNGatewayId = a});@@ -128,9 +130,9 @@                  CreateVPNConnectionResponse' <$>                    (x .@? "vpnConnection") <*> (pure (fromEnum s))) -instance Hashable CreateVPNConnection+instance Hashable CreateVPNConnection where -instance NFData CreateVPNConnection+instance NFData CreateVPNConnection where  instance ToHeaders CreateVPNConnection where         toHeaders = const mempty@@ -144,8 +146,8 @@               ["Action" =: ("CreateVpnConnection" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),                "Options" =: _cvcOptions, "DryRun" =: _cvcDryRun,-               "Type" =: _cvcType,                "CustomerGatewayId" =: _cvcCustomerGatewayId,+               "Type" =: _cvcType,                "VpnGatewayId" =: _cvcVPNGatewayId]  -- | Contains the output of CreateVpnConnection.@@ -154,10 +156,11 @@ -- -- /See:/ 'createVPNConnectionResponse' smart constructor. data CreateVPNConnectionResponse = CreateVPNConnectionResponse'-    { _cvcrsVPNConnection  :: !(Maybe VPNConnection)-    , _cvcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvcrsVPNConnection  :: !(Maybe VPNConnection)+  , _cvcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPNConnectionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -169,11 +172,10 @@     :: Int -- ^ 'cvcrsResponseStatus'     -> CreateVPNConnectionResponse createVPNConnectionResponse pResponseStatus_ =-    CreateVPNConnectionResponse'-    { _cvcrsVPNConnection = Nothing-    , _cvcrsResponseStatus = pResponseStatus_-    }+  CreateVPNConnectionResponse'+  {_cvcrsVPNConnection = Nothing, _cvcrsResponseStatus = pResponseStatus_} + -- | Information about the VPN connection. cvcrsVPNConnection :: Lens' CreateVPNConnectionResponse (Maybe VPNConnection) cvcrsVPNConnection = lens _cvcrsVPNConnection (\ s a -> s{_cvcrsVPNConnection = a});@@ -182,4 +184,4 @@ cvcrsResponseStatus :: Lens' CreateVPNConnectionResponse Int cvcrsResponseStatus = lens _cvcrsResponseStatus (\ s a -> s{_cvcrsResponseStatus = a}); -instance NFData CreateVPNConnectionResponse+instance NFData CreateVPNConnectionResponse where
gen/Network/AWS/EC2/CreateVPNConnectionRoute.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.CreateVPNConnectionRoute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information about VPN connections, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- module Network.AWS.EC2.CreateVPNConnectionRoute     (@@ -29,20 +29,20 @@       createVPNConnectionRoute     , CreateVPNConnectionRoute     -- * Request Lenses-    , cvcrVPNConnectionId     , cvcrDestinationCidrBlock+    , cvcrVPNConnectionId      -- * Destructuring the Response     , createVPNConnectionRouteResponse     , CreateVPNConnectionRouteResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVpnConnectionRoute. --@@ -50,35 +50,37 @@ -- -- /See:/ 'createVPNConnectionRoute' smart constructor. data CreateVPNConnectionRoute = CreateVPNConnectionRoute'-    { _cvcrVPNConnectionId      :: !Text-    , _cvcrDestinationCidrBlock :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvcrDestinationCidrBlock :: !Text+  , _cvcrVPNConnectionId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPNConnectionRoute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'cvcrVPNConnectionId' - The ID of the VPN connection.--- -- * 'cvcrDestinationCidrBlock' - The CIDR block associated with the local subnet of the customer network.+--+-- * 'cvcrVPNConnectionId' - The ID of the VPN connection. createVPNConnectionRoute-    :: Text -- ^ 'cvcrVPNConnectionId'-    -> Text -- ^ 'cvcrDestinationCidrBlock'+    :: Text -- ^ 'cvcrDestinationCidrBlock'+    -> Text -- ^ 'cvcrVPNConnectionId'     -> CreateVPNConnectionRoute-createVPNConnectionRoute pVPNConnectionId_ pDestinationCidrBlock_ =-    CreateVPNConnectionRoute'-    { _cvcrVPNConnectionId = pVPNConnectionId_-    , _cvcrDestinationCidrBlock = pDestinationCidrBlock_-    }+createVPNConnectionRoute pDestinationCidrBlock_ pVPNConnectionId_ =+  CreateVPNConnectionRoute'+  { _cvcrDestinationCidrBlock = pDestinationCidrBlock_+  , _cvcrVPNConnectionId = pVPNConnectionId_+  } --- | The ID of the VPN connection.-cvcrVPNConnectionId :: Lens' CreateVPNConnectionRoute Text-cvcrVPNConnectionId = lens _cvcrVPNConnectionId (\ s a -> s{_cvcrVPNConnectionId = a});  -- | The CIDR block associated with the local subnet of the customer network. cvcrDestinationCidrBlock :: Lens' CreateVPNConnectionRoute Text cvcrDestinationCidrBlock = lens _cvcrDestinationCidrBlock (\ s a -> s{_cvcrDestinationCidrBlock = a}); +-- | The ID of the VPN connection.+cvcrVPNConnectionId :: Lens' CreateVPNConnectionRoute Text+cvcrVPNConnectionId = lens _cvcrVPNConnectionId (\ s a -> s{_cvcrVPNConnectionId = a});+ instance AWSRequest CreateVPNConnectionRoute where         type Rs CreateVPNConnectionRoute =              CreateVPNConnectionRouteResponse@@ -86,9 +88,9 @@         response           = receiveNull CreateVPNConnectionRouteResponse' -instance Hashable CreateVPNConnectionRoute+instance Hashable CreateVPNConnectionRoute where -instance NFData CreateVPNConnectionRoute+instance NFData CreateVPNConnectionRoute where  instance ToHeaders CreateVPNConnectionRoute where         toHeaders = const mempty@@ -102,18 +104,21 @@               ["Action" =:                  ("CreateVpnConnectionRoute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "VpnConnectionId" =: _cvcrVPNConnectionId,-               "DestinationCidrBlock" =: _cvcrDestinationCidrBlock]+               "DestinationCidrBlock" =: _cvcrDestinationCidrBlock,+               "VpnConnectionId" =: _cvcrVPNConnectionId]  -- | /See:/ 'createVPNConnectionRouteResponse' smart constructor. data CreateVPNConnectionRouteResponse =-    CreateVPNConnectionRouteResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  CreateVPNConnectionRouteResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPNConnectionRouteResponse' with the minimum fields required to make a request. -- createVPNConnectionRouteResponse     :: CreateVPNConnectionRouteResponse createVPNConnectionRouteResponse = CreateVPNConnectionRouteResponse' + instance NFData CreateVPNConnectionRouteResponse+         where
gen/Network/AWS/EC2/CreateVPNGateway.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.CreateVPNGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information about virtual private gateways, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- module Network.AWS.EC2.CreateVPNGateway     (@@ -29,6 +29,7 @@       createVPNGateway     , CreateVPNGateway     -- * Request Lenses+    , cvgAmazonSideASN     , cvgAvailabilityZone     , cvgDryRun     , cvgType@@ -41,12 +42,12 @@     , cvgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVpnGateway. --@@ -54,15 +55,19 @@ -- -- /See:/ 'createVPNGateway' smart constructor. data CreateVPNGateway = CreateVPNGateway'-    { _cvgAvailabilityZone :: !(Maybe Text)-    , _cvgDryRun           :: !(Maybe Bool)-    , _cvgType             :: !GatewayType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvgAmazonSideASN    :: !(Maybe Integer)+  , _cvgAvailabilityZone :: !(Maybe Text)+  , _cvgDryRun           :: !(Maybe Bool)+  , _cvgType             :: !GatewayType+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPNGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'cvgAmazonSideASN' - 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+-- -- * 'cvgAvailabilityZone' - The Availability Zone for the virtual private gateway. -- -- * 'cvgDryRun' - Checks whether you have the required permissions for the action, 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@ .@@ -72,12 +77,18 @@     :: GatewayType -- ^ 'cvgType'     -> CreateVPNGateway createVPNGateway pType_ =-    CreateVPNGateway'-    { _cvgAvailabilityZone = Nothing-    , _cvgDryRun = Nothing-    , _cvgType = pType_-    }+  CreateVPNGateway'+  { _cvgAmazonSideASN = Nothing+  , _cvgAvailabilityZone = Nothing+  , _cvgDryRun = Nothing+  , _cvgType = pType_+  } ++-- | 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)+cvgAmazonSideASN = lens _cvgAmazonSideASN (\ s a -> s{_cvgAmazonSideASN = a});+ -- | The Availability Zone for the virtual private gateway. cvgAvailabilityZone :: Lens' CreateVPNGateway (Maybe Text) cvgAvailabilityZone = lens _cvgAvailabilityZone (\ s a -> s{_cvgAvailabilityZone = a});@@ -99,9 +110,9 @@                  CreateVPNGatewayResponse' <$>                    (x .@? "vpnGateway") <*> (pure (fromEnum s))) -instance Hashable CreateVPNGateway+instance Hashable CreateVPNGateway where -instance NFData CreateVPNGateway+instance NFData CreateVPNGateway where  instance ToHeaders CreateVPNGateway where         toHeaders = const mempty@@ -114,6 +125,7 @@           = mconcat               ["Action" =: ("CreateVpnGateway" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),+               "AmazonSideAsn" =: _cvgAmazonSideASN,                "AvailabilityZone" =: _cvgAvailabilityZone,                "DryRun" =: _cvgDryRun, "Type" =: _cvgType] @@ -123,10 +135,11 @@ -- -- /See:/ 'createVPNGatewayResponse' smart constructor. data CreateVPNGatewayResponse = CreateVPNGatewayResponse'-    { _cvgrsVPNGateway     :: !(Maybe VPNGateway)-    , _cvgrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvgrsVPNGateway     :: !(Maybe VPNGateway)+  , _cvgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVPNGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +151,10 @@     :: Int -- ^ 'cvgrsResponseStatus'     -> CreateVPNGatewayResponse createVPNGatewayResponse pResponseStatus_ =-    CreateVPNGatewayResponse'-    { _cvgrsVPNGateway = Nothing-    , _cvgrsResponseStatus = pResponseStatus_-    }+  CreateVPNGatewayResponse'+  {_cvgrsVPNGateway = Nothing, _cvgrsResponseStatus = pResponseStatus_} + -- | Information about the virtual private gateway. cvgrsVPNGateway :: Lens' CreateVPNGatewayResponse (Maybe VPNGateway) cvgrsVPNGateway = lens _cvgrsVPNGateway (\ s a -> s{_cvgrsVPNGateway = a});@@ -151,4 +163,4 @@ cvgrsResponseStatus :: Lens' CreateVPNGatewayResponse Int cvgrsResponseStatus = lens _cvgrsResponseStatus (\ s a -> s{_cvgrsResponseStatus = a}); -instance NFData CreateVPNGatewayResponse+instance NFData CreateVPNGatewayResponse where
gen/Network/AWS/EC2/CreateVolume.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.CreateVolume--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -25,22 +25,25 @@ -- -- You can create encrypted volumes with the @Encrypted@ 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /Amazon Elastic Compute Cloud User Guide/ . ----- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html Creating or Restoring an Amazon EBS Volume> in the /Amazon Elastic Compute Cloud User Guide/ .+-- You can tag your volumes during creation. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Amazon EC2 Resources> . --+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html Creating an Amazon EBS Volume> in the /Amazon Elastic Compute Cloud User Guide/ .+-- module Network.AWS.EC2.CreateVolume     (     -- * Creating a Request       createVolume     , CreateVolume     -- * Request Lenses-    , creSize-    , creIOPS-    , creEncrypted-    , creKMSKeyId-    , creVolumeType-    , creDryRun-    , creSnapshotId-    , creAvailabilityZone+    , cvvSize+    , cvvIOPS+    , cvvEncrypted+    , cvvTagSpecifications+    , cvvKMSKeyId+    , cvvVolumeType+    , cvvDryRun+    , cvvSnapshotId+    , cvvAvailabilityZone      -- * Destructuring the Response     , volume@@ -60,12 +63,12 @@     , vVolumeType     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for CreateVolume. --@@ -73,90 +76,100 @@ -- -- /See:/ 'createVolume' smart constructor. data CreateVolume = CreateVolume'-    { _creSize             :: !(Maybe Int)-    , _creIOPS             :: !(Maybe Int)-    , _creEncrypted        :: !(Maybe Bool)-    , _creKMSKeyId         :: !(Maybe Text)-    , _creVolumeType       :: !(Maybe VolumeType)-    , _creDryRun           :: !(Maybe Bool)-    , _creSnapshotId       :: !(Maybe Text)-    , _creAvailabilityZone :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _cvvSize              :: !(Maybe Int)+  , _cvvIOPS              :: !(Maybe Int)+  , _cvvEncrypted         :: !(Maybe Bool)+  , _cvvTagSpecifications :: !(Maybe [TagSpecification])+  , _cvvKMSKeyId          :: !(Maybe Text)+  , _cvvVolumeType        :: !(Maybe VolumeType)+  , _cvvDryRun            :: !(Maybe Bool)+  , _cvvSnapshotId        :: !(Maybe Text)+  , _cvvAvailabilityZone  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'creSize' - The size of the volume, in GiBs. Constraints: 1-16384 for @gp2@ , 4-16384 for @io1@ , 500-16384 for @st1@ , 500-16384 for @sc1@ , and 1-1024 for @standard@ . 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' - The size of the volume, in GiBs. Constraints: 1-16384 for @gp2@ , 4-16384 for @io1@ , 500-16384 for @st1@ , 500-16384 for @sc1@ , and 1-1024 for @standard@ . 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. ----- * 'creIOPS' - Only valid for Provisioned IOPS SSD volumes. The number of I/O operations per second (IOPS) to provision for the volume, with a maximum ratio of 50 IOPS/GiB. Constraint: Range is 100 to 20000 for Provisioned IOPS SSD volumes+-- * 'cvvIOPS' - Only valid for Provisioned IOPS SSD volumes. The number of I/O operations per second (IOPS) to provision for the volume, with a maximum ratio of 50 IOPS/GiB. Constraint: Range is 100 to 20000 for Provisioned IOPS SSD volumes ----- * 'creEncrypted' - 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /Amazon Elastic Compute Cloud User Guide/ .+-- * 'cvvEncrypted' - 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /Amazon Elastic Compute Cloud User Guide/ . ----- * 'creKMSKeyId' - The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the @arn:aws:kms@ namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the @key@ namespace, and then the CMK ID. For example, arn:aws:kms:/us-east-1/ :/012345678910/ :key//abcd1234-a123-456a-a12b-a123b4cd56ef/ . If a @KmsKeyId@ is specified, the @Encrypted@ flag must also be set.+-- * 'cvvTagSpecifications' - The tags to apply to the volume during creation. ----- * 'creVolumeType' - The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes. Default: @standard@+-- * 'cvvKMSKeyId' - The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the @arn:aws:kms@ namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the @key@ namespace, and then the CMK ID. For example, arn:aws:kms:/us-east-1/ :/012345678910/ :key//abcd1234-a123-456a-a12b-a123b4cd56ef/ . If a @KmsKeyId@ is specified, the @Encrypted@ flag must also be set. ----- * 'creDryRun' - Checks whether you have the required permissions for the action, 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@ .+-- * 'cvvVolumeType' - The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes. Default: @standard@ ----- * 'creSnapshotId' - The snapshot from which to create the volume.+-- * 'cvvDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'creAvailabilityZone' - The Availability Zone in which to create the volume. Use 'DescribeAvailabilityZones' to list the Availability Zones that are currently available to you.+-- * 'cvvSnapshotId' - The snapshot from which to create the volume.+--+-- * 'cvvAvailabilityZone' - The Availability Zone in which to create the volume. Use 'DescribeAvailabilityZones' to list the Availability Zones that are currently available to you. createVolume-    :: Text -- ^ 'creAvailabilityZone'+    :: Text -- ^ 'cvvAvailabilityZone'     -> CreateVolume createVolume pAvailabilityZone_ =-    CreateVolume'-    { _creSize = Nothing-    , _creIOPS = Nothing-    , _creEncrypted = Nothing-    , _creKMSKeyId = Nothing-    , _creVolumeType = Nothing-    , _creDryRun = Nothing-    , _creSnapshotId = Nothing-    , _creAvailabilityZone = pAvailabilityZone_-    }+  CreateVolume'+  { _cvvSize = Nothing+  , _cvvIOPS = Nothing+  , _cvvEncrypted = Nothing+  , _cvvTagSpecifications = Nothing+  , _cvvKMSKeyId = Nothing+  , _cvvVolumeType = Nothing+  , _cvvDryRun = Nothing+  , _cvvSnapshotId = Nothing+  , _cvvAvailabilityZone = pAvailabilityZone_+  } + -- | The size of the volume, in GiBs. Constraints: 1-16384 for @gp2@ , 4-16384 for @io1@ , 500-16384 for @st1@ , 500-16384 for @sc1@ , and 1-1024 for @standard@ . If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.-creSize :: Lens' CreateVolume (Maybe Int)-creSize = lens _creSize (\ s a -> s{_creSize = a});+cvvSize :: Lens' CreateVolume (Maybe Int)+cvvSize = lens _cvvSize (\ s a -> s{_cvvSize = a});  -- | Only valid for Provisioned IOPS SSD volumes. The number of I/O operations per second (IOPS) to provision for the volume, with a maximum ratio of 50 IOPS/GiB. Constraint: Range is 100 to 20000 for Provisioned IOPS SSD volumes-creIOPS :: Lens' CreateVolume (Maybe Int)-creIOPS = lens _creIOPS (\ s a -> s{_creIOPS = a});+cvvIOPS :: Lens' CreateVolume (Maybe Int)+cvvIOPS = lens _cvvIOPS (\ s a -> s{_cvvIOPS = 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /Amazon Elastic Compute Cloud User Guide/ .-creEncrypted :: Lens' CreateVolume (Maybe Bool)-creEncrypted = lens _creEncrypted (\ s a -> s{_creEncrypted = a});+cvvEncrypted :: Lens' CreateVolume (Maybe Bool)+cvvEncrypted = lens _cvvEncrypted (\ s a -> s{_cvvEncrypted = a}); +-- | The tags to apply to the volume during creation.+cvvTagSpecifications :: Lens' CreateVolume [TagSpecification]+cvvTagSpecifications = lens _cvvTagSpecifications (\ s a -> s{_cvvTagSpecifications = a}) . _Default . _Coerce;+ -- | The full ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. The ARN contains the @arn:aws:kms@ namespace, followed by the region of the CMK, the AWS account ID of the CMK owner, the @key@ namespace, and then the CMK ID. For example, arn:aws:kms:/us-east-1/ :/012345678910/ :key//abcd1234-a123-456a-a12b-a123b4cd56ef/ . If a @KmsKeyId@ is specified, the @Encrypted@ flag must also be set.-creKMSKeyId :: Lens' CreateVolume (Maybe Text)-creKMSKeyId = lens _creKMSKeyId (\ s a -> s{_creKMSKeyId = a});+cvvKMSKeyId :: Lens' CreateVolume (Maybe Text)+cvvKMSKeyId = lens _cvvKMSKeyId (\ s a -> s{_cvvKMSKeyId = a});  -- | The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes. Default: @standard@-creVolumeType :: Lens' CreateVolume (Maybe VolumeType)-creVolumeType = lens _creVolumeType (\ s a -> s{_creVolumeType = a});+cvvVolumeType :: Lens' CreateVolume (Maybe VolumeType)+cvvVolumeType = lens _cvvVolumeType (\ s a -> s{_cvvVolumeType = a});  -- | Checks whether you have the required permissions for the action, 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@ .-creDryRun :: Lens' CreateVolume (Maybe Bool)-creDryRun = lens _creDryRun (\ s a -> s{_creDryRun = a});+cvvDryRun :: Lens' CreateVolume (Maybe Bool)+cvvDryRun = lens _cvvDryRun (\ s a -> s{_cvvDryRun = a});  -- | The snapshot from which to create the volume.-creSnapshotId :: Lens' CreateVolume (Maybe Text)-creSnapshotId = lens _creSnapshotId (\ s a -> s{_creSnapshotId = a});+cvvSnapshotId :: Lens' CreateVolume (Maybe Text)+cvvSnapshotId = lens _cvvSnapshotId (\ s a -> s{_cvvSnapshotId = a});  -- | The Availability Zone in which to create the volume. Use 'DescribeAvailabilityZones' to list the Availability Zones that are currently available to you.-creAvailabilityZone :: Lens' CreateVolume Text-creAvailabilityZone = lens _creAvailabilityZone (\ s a -> s{_creAvailabilityZone = a});+cvvAvailabilityZone :: Lens' CreateVolume Text+cvvAvailabilityZone = lens _cvvAvailabilityZone (\ s a -> s{_cvvAvailabilityZone = a});  instance AWSRequest CreateVolume where         type Rs CreateVolume = Volume         request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x) -instance Hashable CreateVolume+instance Hashable CreateVolume where -instance NFData CreateVolume+instance NFData CreateVolume where  instance ToHeaders CreateVolume where         toHeaders = const mempty@@ -169,10 +182,13 @@           = mconcat               ["Action" =: ("CreateVolume" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "Size" =: _creSize, "Iops" =: _creIOPS,-               "Encrypted" =: _creEncrypted,-               "KmsKeyId" =: _creKMSKeyId,-               "VolumeType" =: _creVolumeType,-               "DryRun" =: _creDryRun,-               "SnapshotId" =: _creSnapshotId,-               "AvailabilityZone" =: _creAvailabilityZone]+               "Size" =: _cvvSize, "Iops" =: _cvvIOPS,+               "Encrypted" =: _cvvEncrypted,+               toQuery+                 (toQueryList "TagSpecification" <$>+                    _cvvTagSpecifications),+               "KmsKeyId" =: _cvvKMSKeyId,+               "VolumeType" =: _cvvVolumeType,+               "DryRun" =: _cvvDryRun,+               "SnapshotId" =: _cvvSnapshotId,+               "AvailabilityZone" =: _cvvAvailabilityZone]
gen/Network/AWS/EC2/DeleteCustomerGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteCustomerGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteCustomerGatewayResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteCustomerGateway. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteCustomerGateway' smart constructor. data DeleteCustomerGateway = DeleteCustomerGateway'-    { _dcgcDryRun            :: !(Maybe Bool)-    , _dcgcCustomerGatewayId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcgcDryRun            :: !(Maybe Bool)+  , _dcgcCustomerGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCustomerGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,10 @@     :: Text -- ^ 'dcgcCustomerGatewayId'     -> DeleteCustomerGateway deleteCustomerGateway pCustomerGatewayId_ =-    DeleteCustomerGateway'-    { _dcgcDryRun = Nothing-    , _dcgcCustomerGatewayId = pCustomerGatewayId_-    }+  DeleteCustomerGateway'+  {_dcgcDryRun = Nothing, _dcgcCustomerGatewayId = pCustomerGatewayId_} + -- | Checks whether you have the required permissions for the action, 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@ . dcgcDryRun :: Lens' DeleteCustomerGateway (Maybe Bool) dcgcDryRun = lens _dcgcDryRun (\ s a -> s{_dcgcDryRun = a});@@ -82,9 +82,9 @@         request = postQuery ec2         response = receiveNull DeleteCustomerGatewayResponse' -instance Hashable DeleteCustomerGateway+instance Hashable DeleteCustomerGateway where -instance NFData DeleteCustomerGateway+instance NFData DeleteCustomerGateway where  instance ToHeaders DeleteCustomerGateway where         toHeaders = const mempty@@ -102,13 +102,15 @@  -- | /See:/ 'deleteCustomerGatewayResponse' smart constructor. data DeleteCustomerGatewayResponse =-    DeleteCustomerGatewayResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteCustomerGatewayResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCustomerGatewayResponse' with the minimum fields required to make a request. -- deleteCustomerGatewayResponse     :: DeleteCustomerGatewayResponse deleteCustomerGatewayResponse = DeleteCustomerGatewayResponse' -instance NFData DeleteCustomerGatewayResponse++instance NFData DeleteCustomerGatewayResponse where
gen/Network/AWS/EC2/DeleteDHCPOptions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteDHCPOptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteDHCPOptionsResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteDhcpOptions. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteDHCPOptions' smart constructor. data DeleteDHCPOptions = DeleteDHCPOptions'-    { _ddhcpoDryRun        :: !(Maybe Bool)-    , _ddhcpoDHCPOptionsId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ddhcpoDryRun        :: !(Maybe Bool)+  , _ddhcpoDHCPOptionsId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteDHCPOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,10 @@     :: Text -- ^ 'ddhcpoDHCPOptionsId'     -> DeleteDHCPOptions deleteDHCPOptions pDHCPOptionsId_ =-    DeleteDHCPOptions'-    { _ddhcpoDryRun = Nothing-    , _ddhcpoDHCPOptionsId = pDHCPOptionsId_-    }+  DeleteDHCPOptions'+  {_ddhcpoDryRun = Nothing, _ddhcpoDHCPOptionsId = pDHCPOptionsId_} + -- | Checks whether you have the required permissions for the action, 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@ . ddhcpoDryRun :: Lens' DeleteDHCPOptions (Maybe Bool) ddhcpoDryRun = lens _ddhcpoDryRun (\ s a -> s{_ddhcpoDryRun = a});@@ -81,9 +81,9 @@         request = postQuery ec2         response = receiveNull DeleteDHCPOptionsResponse' -instance Hashable DeleteDHCPOptions+instance Hashable DeleteDHCPOptions where -instance NFData DeleteDHCPOptions+instance NFData DeleteDHCPOptions where  instance ToHeaders DeleteDHCPOptions where         toHeaders = const mempty@@ -101,13 +101,15 @@  -- | /See:/ 'deleteDHCPOptionsResponse' smart constructor. data DeleteDHCPOptionsResponse =-    DeleteDHCPOptionsResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteDHCPOptionsResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteDHCPOptionsResponse' with the minimum fields required to make a request. -- deleteDHCPOptionsResponse     :: DeleteDHCPOptionsResponse deleteDHCPOptionsResponse = DeleteDHCPOptionsResponse' -instance NFData DeleteDHCPOptionsResponse++instance NFData DeleteDHCPOptionsResponse where
gen/Network/AWS/EC2/DeleteEgressOnlyInternetGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteEgressOnlyInternetGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,23 +34,24 @@     , deleteEgressOnlyInternetGatewayResponse     , DeleteEgressOnlyInternetGatewayResponse     -- * Response Lenses-    , delrsReturnCode-    , delrsResponseStatus+    , deoigersReturnCode+    , deoigersResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'deleteEgressOnlyInternetGateway' smart constructor. data DeleteEgressOnlyInternetGateway = DeleteEgressOnlyInternetGateway'-    { _deoigeDryRun                      :: !(Maybe Bool)-    , _deoigeEgressOnlyInternetGatewayId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deoigeDryRun                      :: !(Maybe Bool)+  , _deoigeEgressOnlyInternetGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteEgressOnlyInternetGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,11 +63,12 @@     :: Text -- ^ 'deoigeEgressOnlyInternetGatewayId'     -> DeleteEgressOnlyInternetGateway deleteEgressOnlyInternetGateway pEgressOnlyInternetGatewayId_ =-    DeleteEgressOnlyInternetGateway'-    { _deoigeDryRun = Nothing-    , _deoigeEgressOnlyInternetGatewayId = pEgressOnlyInternetGatewayId_-    }+  DeleteEgressOnlyInternetGateway'+  { _deoigeDryRun = Nothing+  , _deoigeEgressOnlyInternetGatewayId = pEgressOnlyInternetGatewayId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . deoigeDryRun :: Lens' DeleteEgressOnlyInternetGateway (Maybe Bool) deoigeDryRun = lens _deoigeDryRun (\ s a -> s{_deoigeDryRun = a});@@ -87,8 +89,9 @@                    (x .@? "returnCode") <*> (pure (fromEnum s)))  instance Hashable DeleteEgressOnlyInternetGateway+         where -instance NFData DeleteEgressOnlyInternetGateway+instance NFData DeleteEgressOnlyInternetGateway where  instance ToHeaders DeleteEgressOnlyInternetGateway          where@@ -110,33 +113,34 @@  -- | /See:/ 'deleteEgressOnlyInternetGatewayResponse' smart constructor. data DeleteEgressOnlyInternetGatewayResponse = DeleteEgressOnlyInternetGatewayResponse'-    { _delrsReturnCode     :: !(Maybe Bool)-    , _delrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deoigersReturnCode     :: !(Maybe Bool)+  , _deoigersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteEgressOnlyInternetGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'delrsReturnCode' - Returns @true@ if the request succeeds; otherwise, it returns an error.+-- * 'deoigersReturnCode' - Returns @true@ if the request succeeds; otherwise, it returns an error. ----- * 'delrsResponseStatus' - -- | The response status code.+-- * 'deoigersResponseStatus' - -- | The response status code. deleteEgressOnlyInternetGatewayResponse-    :: Int -- ^ 'delrsResponseStatus'+    :: Int -- ^ 'deoigersResponseStatus'     -> DeleteEgressOnlyInternetGatewayResponse deleteEgressOnlyInternetGatewayResponse pResponseStatus_ =-    DeleteEgressOnlyInternetGatewayResponse'-    { _delrsReturnCode = Nothing-    , _delrsResponseStatus = pResponseStatus_-    }+  DeleteEgressOnlyInternetGatewayResponse'+  {_deoigersReturnCode = Nothing, _deoigersResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error.-delrsReturnCode :: Lens' DeleteEgressOnlyInternetGatewayResponse (Maybe Bool)-delrsReturnCode = lens _delrsReturnCode (\ s a -> s{_delrsReturnCode = a});+deoigersReturnCode :: Lens' DeleteEgressOnlyInternetGatewayResponse (Maybe Bool)+deoigersReturnCode = lens _deoigersReturnCode (\ s a -> s{_deoigersReturnCode = a});  -- | -- | The response status code.-delrsResponseStatus :: Lens' DeleteEgressOnlyInternetGatewayResponse Int-delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a});+deoigersResponseStatus :: Lens' DeleteEgressOnlyInternetGatewayResponse Int+deoigersResponseStatus = lens _deoigersResponseStatus (\ s a -> s{_deoigersResponseStatus = a});  instance NFData-         DeleteEgressOnlyInternetGatewayResponse+           DeleteEgressOnlyInternetGatewayResponse+         where
gen/Network/AWS/EC2/DeleteFlowLogs.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteFlowLogs--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , dflrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteFlowLogs. --@@ -50,9 +50,10 @@ -- -- /See:/ 'deleteFlowLogs' smart constructor. newtype DeleteFlowLogs = DeleteFlowLogs'-    { _dflFlowLogIds :: [Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dflFlowLogIds :: [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteFlowLogs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -60,11 +61,9 @@ -- * 'dflFlowLogIds' - One or more flow log IDs. deleteFlowLogs     :: DeleteFlowLogs-deleteFlowLogs =-    DeleteFlowLogs'-    { _dflFlowLogIds = mempty-    }+deleteFlowLogs = DeleteFlowLogs' {_dflFlowLogIds = mempty} + -- | One or more flow log IDs. dflFlowLogIds :: Lens' DeleteFlowLogs [Text] dflFlowLogIds = lens _dflFlowLogIds (\ s a -> s{_dflFlowLogIds = a}) . _Coerce;@@ -80,9 +79,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DeleteFlowLogs+instance Hashable DeleteFlowLogs where -instance NFData DeleteFlowLogs+instance NFData DeleteFlowLogs where  instance ToHeaders DeleteFlowLogs where         toHeaders = const mempty@@ -103,10 +102,11 @@ -- -- /See:/ 'deleteFlowLogsResponse' smart constructor. data DeleteFlowLogsResponse = DeleteFlowLogsResponse'-    { _dflrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])-    , _dflrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dflrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])+  , _dflrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteFlowLogsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -118,11 +118,10 @@     :: Int -- ^ 'dflrsResponseStatus'     -> DeleteFlowLogsResponse deleteFlowLogsResponse pResponseStatus_ =-    DeleteFlowLogsResponse'-    { _dflrsUnsuccessful = Nothing-    , _dflrsResponseStatus = pResponseStatus_-    }+  DeleteFlowLogsResponse'+  {_dflrsUnsuccessful = Nothing, _dflrsResponseStatus = pResponseStatus_} + -- | Information about the flow logs that could not be deleted successfully. dflrsUnsuccessful :: Lens' DeleteFlowLogsResponse [UnsuccessfulItem] dflrsUnsuccessful = lens _dflrsUnsuccessful (\ s a -> s{_dflrsUnsuccessful = a}) . _Default . _Coerce;@@ -131,4 +130,4 @@ dflrsResponseStatus :: Lens' DeleteFlowLogsResponse Int dflrsResponseStatus = lens _dflrsResponseStatus (\ s a -> s{_dflrsResponseStatus = a}); -instance NFData DeleteFlowLogsResponse+instance NFData DeleteFlowLogsResponse where
+ gen/Network/AWS/EC2/DeleteFpgaImage.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DeleteFpgaImage+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified Amazon FPGA Image (AFI).+--+--+module Network.AWS.EC2.DeleteFpgaImage+    (+    -- * Creating a Request+      deleteFpgaImage+    , DeleteFpgaImage+    -- * Request Lenses+    , dfiDryRun+    , dfiFpgaImageId++    -- * Destructuring the Response+    , deleteFpgaImageResponse+    , DeleteFpgaImageResponse+    -- * Response Lenses+    , delrsReturn+    , delrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteFpgaImage' smart constructor.+data DeleteFpgaImage = DeleteFpgaImage'+  { _dfiDryRun      :: !(Maybe Bool)+  , _dfiFpgaImageId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteFpgaImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfiDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'dfiFpgaImageId' - The ID of the AFI.+deleteFpgaImage+    :: Text -- ^ 'dfiFpgaImageId'+    -> DeleteFpgaImage+deleteFpgaImage pFpgaImageId_ =+  DeleteFpgaImage' {_dfiDryRun = Nothing, _dfiFpgaImageId = pFpgaImageId_}+++-- | Checks whether you have the required permissions for the action, 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@ .+dfiDryRun :: Lens' DeleteFpgaImage (Maybe Bool)+dfiDryRun = lens _dfiDryRun (\ s a -> s{_dfiDryRun = a});++-- | The ID of the AFI.+dfiFpgaImageId :: Lens' DeleteFpgaImage Text+dfiFpgaImageId = lens _dfiFpgaImageId (\ s a -> s{_dfiFpgaImageId = a});++instance AWSRequest DeleteFpgaImage where+        type Rs DeleteFpgaImage = DeleteFpgaImageResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DeleteFpgaImageResponse' <$>+                   (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable DeleteFpgaImage where++instance NFData DeleteFpgaImage where++instance ToHeaders DeleteFpgaImage where+        toHeaders = const mempty++instance ToPath DeleteFpgaImage where+        toPath = const "/"++instance ToQuery DeleteFpgaImage where+        toQuery DeleteFpgaImage'{..}+          = mconcat+              ["Action" =: ("DeleteFpgaImage" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "DryRun" =: _dfiDryRun,+               "FpgaImageId" =: _dfiFpgaImageId]++-- | /See:/ 'deleteFpgaImageResponse' smart constructor.+data DeleteFpgaImageResponse = DeleteFpgaImageResponse'+  { _delrsReturn         :: !(Maybe Bool)+  , _delrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteFpgaImageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'delrsReturn' - Is @true@ if the request succeeds, and an error otherwise.+--+-- * 'delrsResponseStatus' - -- | The response status code.+deleteFpgaImageResponse+    :: Int -- ^ 'delrsResponseStatus'+    -> DeleteFpgaImageResponse+deleteFpgaImageResponse pResponseStatus_ =+  DeleteFpgaImageResponse'+  {_delrsReturn = Nothing, _delrsResponseStatus = pResponseStatus_}+++-- | Is @true@ if the request succeeds, and an error otherwise.+delrsReturn :: Lens' DeleteFpgaImageResponse (Maybe Bool)+delrsReturn = lens _delrsReturn (\ s a -> s{_delrsReturn = a});++-- | -- | The response status code.+delrsResponseStatus :: Lens' DeleteFpgaImageResponse Int+delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a});++instance NFData DeleteFpgaImageResponse where
gen/Network/AWS/EC2/DeleteInternetGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteInternetGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteInternetGatewayResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteInternetGateway. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteInternetGateway' smart constructor. data DeleteInternetGateway = DeleteInternetGateway'-    { _digiDryRun            :: !(Maybe Bool)-    , _digiInternetGatewayId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _digiDryRun            :: !(Maybe Bool)+  , _digiInternetGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteInternetGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,10 @@     :: Text -- ^ 'digiInternetGatewayId'     -> DeleteInternetGateway deleteInternetGateway pInternetGatewayId_ =-    DeleteInternetGateway'-    { _digiDryRun = Nothing-    , _digiInternetGatewayId = pInternetGatewayId_-    }+  DeleteInternetGateway'+  {_digiDryRun = Nothing, _digiInternetGatewayId = pInternetGatewayId_} + -- | Checks whether you have the required permissions for the action, 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@ . digiDryRun :: Lens' DeleteInternetGateway (Maybe Bool) digiDryRun = lens _digiDryRun (\ s a -> s{_digiDryRun = a});@@ -82,9 +82,9 @@         request = postQuery ec2         response = receiveNull DeleteInternetGatewayResponse' -instance Hashable DeleteInternetGateway+instance Hashable DeleteInternetGateway where -instance NFData DeleteInternetGateway+instance NFData DeleteInternetGateway where  instance ToHeaders DeleteInternetGateway where         toHeaders = const mempty@@ -102,13 +102,15 @@  -- | /See:/ 'deleteInternetGatewayResponse' smart constructor. data DeleteInternetGatewayResponse =-    DeleteInternetGatewayResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteInternetGatewayResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteInternetGatewayResponse' with the minimum fields required to make a request. -- deleteInternetGatewayResponse     :: DeleteInternetGatewayResponse deleteInternetGatewayResponse = DeleteInternetGatewayResponse' -instance NFData DeleteInternetGatewayResponse++instance NFData DeleteInternetGatewayResponse where
gen/Network/AWS/EC2/DeleteKeyPair.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteKeyPair--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteKeyPairResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteKeyPair. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteKeyPair' smart constructor. data DeleteKeyPair = DeleteKeyPair'-    { _dkpDryRun  :: !(Maybe Bool)-    , _dkpKeyName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dkpDryRun  :: !(Maybe Bool)+  , _dkpKeyName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteKeyPair' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'dkpKeyName'     -> DeleteKeyPair deleteKeyPair pKeyName_ =-    DeleteKeyPair'-    { _dkpDryRun = Nothing-    , _dkpKeyName = pKeyName_-    }+  DeleteKeyPair' {_dkpDryRun = Nothing, _dkpKeyName = pKeyName_} + -- | Checks whether you have the required permissions for the action, 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@ . dkpDryRun :: Lens' DeleteKeyPair (Maybe Bool) dkpDryRun = lens _dkpDryRun (\ s a -> s{_dkpDryRun = a});@@ -81,9 +80,9 @@         request = postQuery ec2         response = receiveNull DeleteKeyPairResponse' -instance Hashable DeleteKeyPair+instance Hashable DeleteKeyPair where -instance NFData DeleteKeyPair+instance NFData DeleteKeyPair where  instance ToHeaders DeleteKeyPair where         toHeaders = const mempty@@ -100,13 +99,15 @@  -- | /See:/ 'deleteKeyPairResponse' smart constructor. data DeleteKeyPairResponse =-    DeleteKeyPairResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteKeyPairResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteKeyPairResponse' with the minimum fields required to make a request. -- deleteKeyPairResponse     :: DeleteKeyPairResponse deleteKeyPairResponse = DeleteKeyPairResponse' -instance NFData DeleteKeyPairResponse++instance NFData DeleteKeyPairResponse where
gen/Network/AWS/EC2/DeleteNatGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteNatGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , dngnrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteNatGateway. --@@ -50,9 +50,10 @@ -- -- /See:/ 'deleteNatGateway' smart constructor. newtype DeleteNatGateway = DeleteNatGateway'-    { _dngNatGatewayId :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dngNatGatewayId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNatGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,10 +63,9 @@     :: Text -- ^ 'dngNatGatewayId'     -> DeleteNatGateway deleteNatGateway pNatGatewayId_ =-    DeleteNatGateway'-    { _dngNatGatewayId = pNatGatewayId_-    }+  DeleteNatGateway' {_dngNatGatewayId = pNatGatewayId_} + -- | The ID of the NAT gateway. dngNatGatewayId :: Lens' DeleteNatGateway Text dngNatGatewayId = lens _dngNatGatewayId (\ s a -> s{_dngNatGatewayId = a});@@ -79,9 +79,9 @@                  DeleteNatGatewayResponse' <$>                    (x .@? "natGatewayId") <*> (pure (fromEnum s))) -instance Hashable DeleteNatGateway+instance Hashable DeleteNatGateway where -instance NFData DeleteNatGateway+instance NFData DeleteNatGateway where  instance ToHeaders DeleteNatGateway where         toHeaders = const mempty@@ -102,10 +102,11 @@ -- -- /See:/ 'deleteNatGatewayResponse' smart constructor. data DeleteNatGatewayResponse = DeleteNatGatewayResponse'-    { _dngnrsNatGatewayId   :: !(Maybe Text)-    , _dngnrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dngnrsNatGatewayId   :: !(Maybe Text)+  , _dngnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNatGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -117,11 +118,10 @@     :: Int -- ^ 'dngnrsResponseStatus'     -> DeleteNatGatewayResponse deleteNatGatewayResponse pResponseStatus_ =-    DeleteNatGatewayResponse'-    { _dngnrsNatGatewayId = Nothing-    , _dngnrsResponseStatus = pResponseStatus_-    }+  DeleteNatGatewayResponse'+  {_dngnrsNatGatewayId = Nothing, _dngnrsResponseStatus = pResponseStatus_} + -- | The ID of the NAT gateway. dngnrsNatGatewayId :: Lens' DeleteNatGatewayResponse (Maybe Text) dngnrsNatGatewayId = lens _dngnrsNatGatewayId (\ s a -> s{_dngnrsNatGatewayId = a});@@ -130,4 +130,4 @@ dngnrsResponseStatus :: Lens' DeleteNatGatewayResponse Int dngnrsResponseStatus = lens _dngnrsResponseStatus (\ s a -> s{_dngnrsResponseStatus = a}); -instance NFData DeleteNatGatewayResponse+instance NFData DeleteNatGatewayResponse where
gen/Network/AWS/EC2/DeleteNetworkACL.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteNetworkACL--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteNetworkACLResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteNetworkAcl. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteNetworkACL' smart constructor. data DeleteNetworkACL = DeleteNetworkACL'-    { _dnaDryRun       :: !(Maybe Bool)-    , _dnaNetworkACLId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dnaDryRun       :: !(Maybe Bool)+  , _dnaNetworkACLId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNetworkACL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'dnaNetworkACLId'     -> DeleteNetworkACL deleteNetworkACL pNetworkACLId_ =-    DeleteNetworkACL'-    { _dnaDryRun = Nothing-    , _dnaNetworkACLId = pNetworkACLId_-    }+  DeleteNetworkACL' {_dnaDryRun = Nothing, _dnaNetworkACLId = pNetworkACLId_} + -- | Checks whether you have the required permissions for the action, 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@ . dnaDryRun :: Lens' DeleteNetworkACL (Maybe Bool) dnaDryRun = lens _dnaDryRun (\ s a -> s{_dnaDryRun = a});@@ -81,9 +80,9 @@         request = postQuery ec2         response = receiveNull DeleteNetworkACLResponse' -instance Hashable DeleteNetworkACL+instance Hashable DeleteNetworkACL where -instance NFData DeleteNetworkACL+instance NFData DeleteNetworkACL where  instance ToHeaders DeleteNetworkACL where         toHeaders = const mempty@@ -101,13 +100,15 @@  -- | /See:/ 'deleteNetworkACLResponse' smart constructor. data DeleteNetworkACLResponse =-    DeleteNetworkACLResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteNetworkACLResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNetworkACLResponse' with the minimum fields required to make a request. -- deleteNetworkACLResponse     :: DeleteNetworkACLResponse deleteNetworkACLResponse = DeleteNetworkACLResponse' -instance NFData DeleteNetworkACLResponse++instance NFData DeleteNetworkACLResponse where
gen/Network/AWS/EC2/DeleteNetworkACLEntry.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteNetworkACLEntry--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,21 +28,21 @@     , DeleteNetworkACLEntry     -- * Request Lenses     , dnaeDryRun+    , dnaeEgress     , dnaeNetworkACLId     , dnaeRuleNumber-    , dnaeEgress      -- * Destructuring the Response     , deleteNetworkACLEntryResponse     , DeleteNetworkACLEntryResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteNetworkAclEntry. --@@ -50,40 +50,46 @@ -- -- /See:/ 'deleteNetworkACLEntry' smart constructor. data DeleteNetworkACLEntry = DeleteNetworkACLEntry'-    { _dnaeDryRun       :: !(Maybe Bool)-    , _dnaeNetworkACLId :: !Text-    , _dnaeRuleNumber   :: !Int-    , _dnaeEgress       :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dnaeDryRun       :: !(Maybe Bool)+  , _dnaeEgress       :: !Bool+  , _dnaeNetworkACLId :: !Text+  , _dnaeRuleNumber   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNetworkACLEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dnaeDryRun' - Checks whether you have the required permissions for the action, 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@ . --+-- * 'dnaeEgress' - Indicates whether the rule is an egress rule.+-- -- * 'dnaeNetworkACLId' - The ID of the network ACL. -- -- * 'dnaeRuleNumber' - The rule number of the entry to delete.------ * 'dnaeEgress' - Indicates whether the rule is an egress rule. deleteNetworkACLEntry-    :: Text -- ^ 'dnaeNetworkACLId'+    :: Bool -- ^ 'dnaeEgress'+    -> Text -- ^ 'dnaeNetworkACLId'     -> Int -- ^ 'dnaeRuleNumber'-    -> Bool -- ^ 'dnaeEgress'     -> DeleteNetworkACLEntry-deleteNetworkACLEntry pNetworkACLId_ pRuleNumber_ pEgress_ =-    DeleteNetworkACLEntry'-    { _dnaeDryRun = Nothing-    , _dnaeNetworkACLId = pNetworkACLId_-    , _dnaeRuleNumber = pRuleNumber_-    , _dnaeEgress = pEgress_-    }+deleteNetworkACLEntry pEgress_ pNetworkACLId_ pRuleNumber_ =+  DeleteNetworkACLEntry'+  { _dnaeDryRun = Nothing+  , _dnaeEgress = pEgress_+  , _dnaeNetworkACLId = pNetworkACLId_+  , _dnaeRuleNumber = pRuleNumber_+  } + -- | Checks whether you have the required permissions for the action, 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@ . dnaeDryRun :: Lens' DeleteNetworkACLEntry (Maybe Bool) dnaeDryRun = lens _dnaeDryRun (\ s a -> s{_dnaeDryRun = a}); +-- | Indicates whether the rule is an egress rule.+dnaeEgress :: Lens' DeleteNetworkACLEntry Bool+dnaeEgress = lens _dnaeEgress (\ s a -> s{_dnaeEgress = a});+ -- | The ID of the network ACL. dnaeNetworkACLId :: Lens' DeleteNetworkACLEntry Text dnaeNetworkACLId = lens _dnaeNetworkACLId (\ s a -> s{_dnaeNetworkACLId = a});@@ -92,19 +98,15 @@ dnaeRuleNumber :: Lens' DeleteNetworkACLEntry Int dnaeRuleNumber = lens _dnaeRuleNumber (\ s a -> s{_dnaeRuleNumber = a}); --- | Indicates whether the rule is an egress rule.-dnaeEgress :: Lens' DeleteNetworkACLEntry Bool-dnaeEgress = lens _dnaeEgress (\ s a -> s{_dnaeEgress = a});- instance AWSRequest DeleteNetworkACLEntry where         type Rs DeleteNetworkACLEntry =              DeleteNetworkACLEntryResponse         request = postQuery ec2         response = receiveNull DeleteNetworkACLEntryResponse' -instance Hashable DeleteNetworkACLEntry+instance Hashable DeleteNetworkACLEntry where -instance NFData DeleteNetworkACLEntry+instance NFData DeleteNetworkACLEntry where  instance ToHeaders DeleteNetworkACLEntry where         toHeaders = const mempty@@ -117,20 +119,21 @@           = mconcat               ["Action" =: ("DeleteNetworkAclEntry" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _dnaeDryRun,+               "DryRun" =: _dnaeDryRun, "Egress" =: _dnaeEgress,                "NetworkAclId" =: _dnaeNetworkACLId,-               "RuleNumber" =: _dnaeRuleNumber,-               "Egress" =: _dnaeEgress]+               "RuleNumber" =: _dnaeRuleNumber]  -- | /See:/ 'deleteNetworkACLEntryResponse' smart constructor. data DeleteNetworkACLEntryResponse =-    DeleteNetworkACLEntryResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteNetworkACLEntryResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNetworkACLEntryResponse' with the minimum fields required to make a request. -- deleteNetworkACLEntryResponse     :: DeleteNetworkACLEntryResponse deleteNetworkACLEntryResponse = DeleteNetworkACLEntryResponse' -instance NFData DeleteNetworkACLEntryResponse++instance NFData DeleteNetworkACLEntryResponse where
gen/Network/AWS/EC2/DeleteNetworkInterface.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteNetworkInterface--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteNetworkInterfaceResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteNetworkInterface. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteNetworkInterface' smart constructor. data DeleteNetworkInterface = DeleteNetworkInterface'-    { _dninDryRun             :: !(Maybe Bool)-    , _dninNetworkInterfaceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dninDryRun             :: !(Maybe Bool)+  , _dninNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNetworkInterface' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,10 @@     :: Text -- ^ 'dninNetworkInterfaceId'     -> DeleteNetworkInterface deleteNetworkInterface pNetworkInterfaceId_ =-    DeleteNetworkInterface'-    { _dninDryRun = Nothing-    , _dninNetworkInterfaceId = pNetworkInterfaceId_-    }+  DeleteNetworkInterface'+  {_dninDryRun = Nothing, _dninNetworkInterfaceId = pNetworkInterfaceId_} + -- | Checks whether you have the required permissions for the action, 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@ . dninDryRun :: Lens' DeleteNetworkInterface (Maybe Bool) dninDryRun = lens _dninDryRun (\ s a -> s{_dninDryRun = a});@@ -83,9 +83,9 @@         response           = receiveNull DeleteNetworkInterfaceResponse' -instance Hashable DeleteNetworkInterface+instance Hashable DeleteNetworkInterface where -instance NFData DeleteNetworkInterface+instance NFData DeleteNetworkInterface where  instance ToHeaders DeleteNetworkInterface where         toHeaders = const mempty@@ -104,13 +104,15 @@  -- | /See:/ 'deleteNetworkInterfaceResponse' smart constructor. data DeleteNetworkInterfaceResponse =-    DeleteNetworkInterfaceResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteNetworkInterfaceResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteNetworkInterfaceResponse' with the minimum fields required to make a request. -- deleteNetworkInterfaceResponse     :: DeleteNetworkInterfaceResponse deleteNetworkInterfaceResponse = DeleteNetworkInterfaceResponse' -instance NFData DeleteNetworkInterfaceResponse++instance NFData DeleteNetworkInterfaceResponse where
+ gen/Network/AWS/EC2/DeleteNetworkInterfacePermission.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DeleteNetworkInterfacePermission+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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+    (+    -- * Creating a Request+      deleteNetworkInterfacePermission+    , DeleteNetworkInterfacePermission+    -- * Request Lenses+    , dnipForce+    , dnipDryRun+    , dnipNetworkInterfacePermissionId++    -- * Destructuring the Response+    , deleteNetworkInterfacePermissionResponse+    , DeleteNetworkInterfacePermissionResponse+    -- * Response Lenses+    , dniprsReturn+    , dniprsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for DeleteNetworkInterfacePermission.+--+--+--+-- /See:/ 'deleteNetworkInterfacePermission' smart constructor.+data DeleteNetworkInterfacePermission = DeleteNetworkInterfacePermission'+  { _dnipForce                        :: !(Maybe Bool)+  , _dnipDryRun                       :: !(Maybe Bool)+  , _dnipNetworkInterfacePermissionId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteNetworkInterfacePermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnipForce' - Specify @true@ to remove the permission even if the network interface is attached to an instance.+--+-- * 'dnipDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'dnipNetworkInterfacePermissionId' - The ID of the network interface permission.+deleteNetworkInterfacePermission+    :: Text -- ^ 'dnipNetworkInterfacePermissionId'+    -> DeleteNetworkInterfacePermission+deleteNetworkInterfacePermission pNetworkInterfacePermissionId_ =+  DeleteNetworkInterfacePermission'+  { _dnipForce = Nothing+  , _dnipDryRun = Nothing+  , _dnipNetworkInterfacePermissionId = pNetworkInterfacePermissionId_+  }+++-- | Specify @true@ to remove the permission even if the network interface is attached to an instance.+dnipForce :: Lens' DeleteNetworkInterfacePermission (Maybe Bool)+dnipForce = lens _dnipForce (\ s a -> s{_dnipForce = a});++-- | Checks whether you have the required permissions for the action, 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@ .+dnipDryRun :: Lens' DeleteNetworkInterfacePermission (Maybe Bool)+dnipDryRun = lens _dnipDryRun (\ s a -> s{_dnipDryRun = a});++-- | The ID of the network interface permission.+dnipNetworkInterfacePermissionId :: Lens' DeleteNetworkInterfacePermission Text+dnipNetworkInterfacePermissionId = lens _dnipNetworkInterfacePermissionId (\ s a -> s{_dnipNetworkInterfacePermissionId = a});++instance AWSRequest DeleteNetworkInterfacePermission+         where+        type Rs DeleteNetworkInterfacePermission =+             DeleteNetworkInterfacePermissionResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DeleteNetworkInterfacePermissionResponse' <$>+                   (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable DeleteNetworkInterfacePermission+         where++instance NFData DeleteNetworkInterfacePermission+         where++instance ToHeaders DeleteNetworkInterfacePermission+         where+        toHeaders = const mempty++instance ToPath DeleteNetworkInterfacePermission+         where+        toPath = const "/"++instance ToQuery DeleteNetworkInterfacePermission+         where+        toQuery DeleteNetworkInterfacePermission'{..}+          = mconcat+              ["Action" =:+                 ("DeleteNetworkInterfacePermission" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "Force" =: _dnipForce, "DryRun" =: _dnipDryRun,+               "NetworkInterfacePermissionId" =:+                 _dnipNetworkInterfacePermissionId]++-- | Contains the output for DeleteNetworkInterfacePermission.+--+--+--+-- /See:/ 'deleteNetworkInterfacePermissionResponse' smart constructor.+data DeleteNetworkInterfacePermissionResponse = DeleteNetworkInterfacePermissionResponse'+  { _dniprsReturn         :: !(Maybe Bool)+  , _dniprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteNetworkInterfacePermissionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dniprsReturn' - Returns @true@ if the request succeeds, otherwise returns an error.+--+-- * 'dniprsResponseStatus' - -- | The response status code.+deleteNetworkInterfacePermissionResponse+    :: Int -- ^ 'dniprsResponseStatus'+    -> DeleteNetworkInterfacePermissionResponse+deleteNetworkInterfacePermissionResponse pResponseStatus_ =+  DeleteNetworkInterfacePermissionResponse'+  {_dniprsReturn = Nothing, _dniprsResponseStatus = pResponseStatus_}+++-- | Returns @true@ if the request succeeds, otherwise returns an error.+dniprsReturn :: Lens' DeleteNetworkInterfacePermissionResponse (Maybe Bool)+dniprsReturn = lens _dniprsReturn (\ s a -> s{_dniprsReturn = a});++-- | -- | The response status code.+dniprsResponseStatus :: Lens' DeleteNetworkInterfacePermissionResponse Int+dniprsResponseStatus = lens _dniprsResponseStatus (\ s a -> s{_dniprsResponseStatus = a});++instance NFData+           DeleteNetworkInterfacePermissionResponse+         where
gen/Network/AWS/EC2/DeletePlacementGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeletePlacementGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeletePlacementGroupResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeletePlacementGroup. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deletePlacementGroup' smart constructor. data DeletePlacementGroup = DeletePlacementGroup'-    { _dpgDryRun    :: !(Maybe Bool)-    , _dpgGroupName :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dpgDryRun    :: !(Maybe Bool)+  , _dpgGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeletePlacementGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'dpgGroupName'     -> DeletePlacementGroup deletePlacementGroup pGroupName_ =-    DeletePlacementGroup'-    { _dpgDryRun = Nothing-    , _dpgGroupName = pGroupName_-    }+  DeletePlacementGroup' {_dpgDryRun = Nothing, _dpgGroupName = pGroupName_} + -- | Checks whether you have the required permissions for the action, 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@ . dpgDryRun :: Lens' DeletePlacementGroup (Maybe Bool) dpgDryRun = lens _dpgDryRun (\ s a -> s{_dpgDryRun = a});@@ -82,9 +81,9 @@         request = postQuery ec2         response = receiveNull DeletePlacementGroupResponse' -instance Hashable DeletePlacementGroup+instance Hashable DeletePlacementGroup where -instance NFData DeletePlacementGroup+instance NFData DeletePlacementGroup where  instance ToHeaders DeletePlacementGroup where         toHeaders = const mempty@@ -101,13 +100,15 @@  -- | /See:/ 'deletePlacementGroupResponse' smart constructor. data DeletePlacementGroupResponse =-    DeletePlacementGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeletePlacementGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeletePlacementGroupResponse' with the minimum fields required to make a request. -- deletePlacementGroupResponse     :: DeletePlacementGroupResponse deletePlacementGroupResponse = DeletePlacementGroupResponse' -instance NFData DeletePlacementGroupResponse++instance NFData DeletePlacementGroupResponse where
gen/Network/AWS/EC2/DeleteRoute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteRoute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , DeleteRouteResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteRoute. --@@ -50,12 +50,13 @@ -- -- /See:/ 'deleteRoute' smart constructor. data DeleteRoute = DeleteRoute'-    { _drDestinationIPv6CidrBlock :: !(Maybe Text)-    , _drDryRun                   :: !(Maybe Bool)-    , _drDestinationCidrBlock     :: !(Maybe Text)-    , _drRouteTableId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drDestinationIPv6CidrBlock :: !(Maybe Text)+  , _drDryRun                   :: !(Maybe Bool)+  , _drDestinationCidrBlock     :: !(Maybe Text)+  , _drRouteTableId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteRoute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,13 +72,14 @@     :: Text -- ^ 'drRouteTableId'     -> DeleteRoute deleteRoute pRouteTableId_ =-    DeleteRoute'-    { _drDestinationIPv6CidrBlock = Nothing-    , _drDryRun = Nothing-    , _drDestinationCidrBlock = Nothing-    , _drRouteTableId = pRouteTableId_-    }+  DeleteRoute'+  { _drDestinationIPv6CidrBlock = Nothing+  , _drDryRun = Nothing+  , _drDestinationCidrBlock = Nothing+  , _drRouteTableId = pRouteTableId_+  } + -- | The IPv6 CIDR range for the route. The value you specify must match the CIDR for the route exactly. drDestinationIPv6CidrBlock :: Lens' DeleteRoute (Maybe Text) drDestinationIPv6CidrBlock = lens _drDestinationIPv6CidrBlock (\ s a -> s{_drDestinationIPv6CidrBlock = a});@@ -99,9 +101,9 @@         request = postQuery ec2         response = receiveNull DeleteRouteResponse' -instance Hashable DeleteRoute+instance Hashable DeleteRoute where -instance NFData DeleteRoute+instance NFData DeleteRoute where  instance ToHeaders DeleteRoute where         toHeaders = const mempty@@ -122,13 +124,15 @@  -- | /See:/ 'deleteRouteResponse' smart constructor. data DeleteRouteResponse =-    DeleteRouteResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteRouteResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteRouteResponse' with the minimum fields required to make a request. -- deleteRouteResponse     :: DeleteRouteResponse deleteRouteResponse = DeleteRouteResponse' -instance NFData DeleteRouteResponse++instance NFData DeleteRouteResponse where
gen/Network/AWS/EC2/DeleteRouteTable.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteRouteTable--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteRouteTableResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteRouteTable. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteRouteTable' smart constructor. data DeleteRouteTable = DeleteRouteTable'-    { _drtrDryRun       :: !(Maybe Bool)-    , _drtrRouteTableId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drtrDryRun       :: !(Maybe Bool)+  , _drtrRouteTableId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteRouteTable' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'drtrRouteTableId'     -> DeleteRouteTable deleteRouteTable pRouteTableId_ =-    DeleteRouteTable'-    { _drtrDryRun = Nothing-    , _drtrRouteTableId = pRouteTableId_-    }+  DeleteRouteTable' {_drtrDryRun = Nothing, _drtrRouteTableId = pRouteTableId_} + -- | Checks whether you have the required permissions for the action, 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@ . drtrDryRun :: Lens' DeleteRouteTable (Maybe Bool) drtrDryRun = lens _drtrDryRun (\ s a -> s{_drtrDryRun = a});@@ -81,9 +80,9 @@         request = postQuery ec2         response = receiveNull DeleteRouteTableResponse' -instance Hashable DeleteRouteTable+instance Hashable DeleteRouteTable where -instance NFData DeleteRouteTable+instance NFData DeleteRouteTable where  instance ToHeaders DeleteRouteTable where         toHeaders = const mempty@@ -101,13 +100,15 @@  -- | /See:/ 'deleteRouteTableResponse' smart constructor. data DeleteRouteTableResponse =-    DeleteRouteTableResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteRouteTableResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteRouteTableResponse' with the minimum fields required to make a request. -- deleteRouteTableResponse     :: DeleteRouteTableResponse deleteRouteTableResponse = DeleteRouteTableResponse' -instance NFData DeleteRouteTableResponse++instance NFData DeleteRouteTableResponse where
gen/Network/AWS/EC2/DeleteSecurityGroup.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteSecurityGroup--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , DeleteSecurityGroupResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteSecurityGroup. --@@ -51,11 +51,12 @@ -- -- /See:/ 'deleteSecurityGroup' smart constructor. data DeleteSecurityGroup = DeleteSecurityGroup'-    { _dsgGroupId   :: !(Maybe Text)-    , _dsgGroupName :: !(Maybe Text)-    , _dsgDryRun    :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsgGroupId   :: !(Maybe Text)+  , _dsgGroupName :: !(Maybe Text)+  , _dsgDryRun    :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,12 +69,10 @@ deleteSecurityGroup     :: DeleteSecurityGroup deleteSecurityGroup =-    DeleteSecurityGroup'-    { _dsgGroupId = Nothing-    , _dsgGroupName = Nothing-    , _dsgDryRun = Nothing-    }+  DeleteSecurityGroup'+  {_dsgGroupId = Nothing, _dsgGroupName = Nothing, _dsgDryRun = Nothing} + -- | The ID of the security group. Required for a nondefault VPC. dsgGroupId :: Lens' DeleteSecurityGroup (Maybe Text) dsgGroupId = lens _dsgGroupId (\ s a -> s{_dsgGroupId = a});@@ -92,9 +91,9 @@         request = postQuery ec2         response = receiveNull DeleteSecurityGroupResponse' -instance Hashable DeleteSecurityGroup+instance Hashable DeleteSecurityGroup where -instance NFData DeleteSecurityGroup+instance NFData DeleteSecurityGroup where  instance ToHeaders DeleteSecurityGroup where         toHeaders = const mempty@@ -112,13 +111,15 @@  -- | /See:/ 'deleteSecurityGroupResponse' smart constructor. data DeleteSecurityGroupResponse =-    DeleteSecurityGroupResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteSecurityGroupResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSecurityGroupResponse' with the minimum fields required to make a request. -- deleteSecurityGroupResponse     :: DeleteSecurityGroupResponse deleteSecurityGroupResponse = DeleteSecurityGroupResponse' -instance NFData DeleteSecurityGroupResponse++instance NFData DeleteSecurityGroupResponse where
gen/Network/AWS/EC2/DeleteSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , DeleteSnapshotResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteSnapshot. --@@ -54,10 +54,11 @@ -- -- /See:/ 'deleteSnapshot' smart constructor. data DeleteSnapshot = DeleteSnapshot'-    { _deleDryRun     :: !(Maybe Bool)-    , _deleSnapshotId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deleDryRun     :: !(Maybe Bool)+  , _deleSnapshotId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,11 +70,9 @@     :: Text -- ^ 'deleSnapshotId'     -> DeleteSnapshot deleteSnapshot pSnapshotId_ =-    DeleteSnapshot'-    { _deleDryRun = Nothing-    , _deleSnapshotId = pSnapshotId_-    }+  DeleteSnapshot' {_deleDryRun = Nothing, _deleSnapshotId = pSnapshotId_} + -- | Checks whether you have the required permissions for the action, 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@ . deleDryRun :: Lens' DeleteSnapshot (Maybe Bool) deleDryRun = lens _deleDryRun (\ s a -> s{_deleDryRun = a});@@ -87,9 +86,9 @@         request = postQuery ec2         response = receiveNull DeleteSnapshotResponse' -instance Hashable DeleteSnapshot+instance Hashable DeleteSnapshot where -instance NFData DeleteSnapshot+instance NFData DeleteSnapshot where  instance ToHeaders DeleteSnapshot where         toHeaders = const mempty@@ -107,13 +106,15 @@  -- | /See:/ 'deleteSnapshotResponse' smart constructor. data DeleteSnapshotResponse =-    DeleteSnapshotResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteSnapshotResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSnapshotResponse' with the minimum fields required to make a request. -- deleteSnapshotResponse     :: DeleteSnapshotResponse deleteSnapshotResponse = DeleteSnapshotResponse' -instance NFData DeleteSnapshotResponse++instance NFData DeleteSnapshotResponse where
gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteSpotDatafeedSubscription--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,12 +34,12 @@     , DeleteSpotDatafeedSubscriptionResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteSpotDatafeedSubscription. --@@ -47,9 +47,10 @@ -- -- /See:/ 'deleteSpotDatafeedSubscription' smart constructor. newtype DeleteSpotDatafeedSubscription = DeleteSpotDatafeedSubscription'-    { _dsdssDryRun :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsdssDryRun :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSpotDatafeedSubscription' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -58,10 +59,9 @@ deleteSpotDatafeedSubscription     :: DeleteSpotDatafeedSubscription deleteSpotDatafeedSubscription =-    DeleteSpotDatafeedSubscription'-    { _dsdssDryRun = Nothing-    }+  DeleteSpotDatafeedSubscription' {_dsdssDryRun = Nothing} + -- | Checks whether you have the required permissions for the action, 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@ . dsdssDryRun :: Lens' DeleteSpotDatafeedSubscription (Maybe Bool) dsdssDryRun = lens _dsdssDryRun (\ s a -> s{_dsdssDryRun = a});@@ -75,8 +75,9 @@           = receiveNull DeleteSpotDatafeedSubscriptionResponse'  instance Hashable DeleteSpotDatafeedSubscription+         where -instance NFData DeleteSpotDatafeedSubscription+instance NFData DeleteSpotDatafeedSubscription where  instance ToHeaders DeleteSpotDatafeedSubscription          where@@ -95,15 +96,17 @@  -- | /See:/ 'deleteSpotDatafeedSubscriptionResponse' smart constructor. data DeleteSpotDatafeedSubscriptionResponse =-    DeleteSpotDatafeedSubscriptionResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteSpotDatafeedSubscriptionResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSpotDatafeedSubscriptionResponse' with the minimum fields required to make a request. -- deleteSpotDatafeedSubscriptionResponse     :: DeleteSpotDatafeedSubscriptionResponse-deleteSpotDatafeedSubscriptionResponse =-    DeleteSpotDatafeedSubscriptionResponse'+deleteSpotDatafeedSubscriptionResponse = DeleteSpotDatafeedSubscriptionResponse' + instance NFData-         DeleteSpotDatafeedSubscriptionResponse+           DeleteSpotDatafeedSubscriptionResponse+         where
gen/Network/AWS/EC2/DeleteSubnet.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteSubnet--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteSubnetResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteSubnet. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteSubnet' smart constructor. data DeleteSubnet = DeleteSubnet'-    { _ddDryRun   :: !(Maybe Bool)-    , _ddSubnetId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ddDryRun   :: !(Maybe Bool)+  , _ddSubnetId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSubnet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'ddSubnetId'     -> DeleteSubnet deleteSubnet pSubnetId_ =-    DeleteSubnet'-    { _ddDryRun = Nothing-    , _ddSubnetId = pSubnetId_-    }+  DeleteSubnet' {_ddDryRun = Nothing, _ddSubnetId = pSubnetId_} + -- | Checks whether you have the required permissions for the action, 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@ . ddDryRun :: Lens' DeleteSubnet (Maybe Bool) ddDryRun = lens _ddDryRun (\ s a -> s{_ddDryRun = a});@@ -81,9 +80,9 @@         request = postQuery ec2         response = receiveNull DeleteSubnetResponse' -instance Hashable DeleteSubnet+instance Hashable DeleteSubnet where -instance NFData DeleteSubnet+instance NFData DeleteSubnet where  instance ToHeaders DeleteSubnet where         toHeaders = const mempty@@ -100,13 +99,15 @@  -- | /See:/ 'deleteSubnetResponse' smart constructor. data DeleteSubnetResponse =-    DeleteSubnetResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteSubnetResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSubnetResponse' with the minimum fields required to make a request. -- deleteSubnetResponse     :: DeleteSubnetResponse deleteSubnetResponse = DeleteSubnetResponse' -instance NFData DeleteSubnetResponse++instance NFData DeleteSubnetResponse where
gen/Network/AWS/EC2/DeleteTags.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.DeleteTags--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Deletes the specified set of tags from the specified set of resources. This call is designed to follow a @DescribeTags@ request.+-- Deletes the specified set of tags from the specified set of resources. -- ----- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /Amazon Elastic Compute Cloud User Guide/ .+-- To list the current tags, use 'DescribeTags' . For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /Amazon Elastic Compute Cloud User Guide/ . -- module Network.AWS.EC2.DeleteTags     (@@ -38,12 +38,12 @@     , DeleteTagsResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteTags. --@@ -51,38 +51,36 @@ -- -- /See:/ 'deleteTags' smart constructor. data DeleteTags = DeleteTags'-    { _dtsDryRun    :: !(Maybe Bool)-    , _dtsTags      :: !(Maybe [Tag])-    , _dtsResources :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtsDryRun    :: !(Maybe Bool)+  , _dtsTags      :: !(Maybe [Tag])+  , _dtsResources :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dtsDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'dtsTags' - One or more tags to delete. If you omit the @value@ parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.+-- * 'dtsTags' - One or more tags to delete. If you omit this parameter, we delete all tags for the specified resources. 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. ----- * 'dtsResources' - The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.+-- * 'dtsResources' - The IDs of one or more resources. deleteTags     :: DeleteTags deleteTags =-    DeleteTags'-    { _dtsDryRun = Nothing-    , _dtsTags = Nothing-    , _dtsResources = mempty-    }+  DeleteTags' {_dtsDryRun = Nothing, _dtsTags = Nothing, _dtsResources = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . dtsDryRun :: Lens' DeleteTags (Maybe Bool) dtsDryRun = lens _dtsDryRun (\ s a -> s{_dtsDryRun = a}); --- | One or more tags to delete. If you omit the @value@ parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.+-- | One or more tags to delete. If you omit this parameter, we delete all tags for the specified resources. 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. dtsTags :: Lens' DeleteTags [Tag] dtsTags = lens _dtsTags (\ s a -> s{_dtsTags = a}) . _Default . _Coerce; --- | The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.+-- | The IDs of one or more resources. dtsResources :: Lens' DeleteTags [Text] dtsResources = lens _dtsResources (\ s a -> s{_dtsResources = a}) . _Coerce; @@ -91,9 +89,9 @@         request = postQuery ec2         response = receiveNull DeleteTagsResponse' -instance Hashable DeleteTags+instance Hashable DeleteTags where -instance NFData DeleteTags+instance NFData DeleteTags where  instance ToHeaders DeleteTags where         toHeaders = const mempty@@ -112,13 +110,15 @@  -- | /See:/ 'deleteTagsResponse' smart constructor. data DeleteTagsResponse =-    DeleteTagsResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteTagsResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteTagsResponse' with the minimum fields required to make a request. -- deleteTagsResponse     :: DeleteTagsResponse deleteTagsResponse = DeleteTagsResponse' -instance NFData DeleteTagsResponse++instance NFData DeleteTagsResponse where
gen/Network/AWS/EC2/DeleteVPC.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPC--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteVPCResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVpc. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteVPC' smart constructor. data DeleteVPC = DeleteVPC'-    { _delDryRun :: !(Maybe Bool)-    , _delVPCId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _delDryRun :: !(Maybe Bool)+  , _delVPCId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPC' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,12 +63,9 @@ deleteVPC     :: Text -- ^ 'delVPCId'     -> DeleteVPC-deleteVPC pVPCId_ =-    DeleteVPC'-    { _delDryRun = Nothing-    , _delVPCId = pVPCId_-    }+deleteVPC pVPCId_ = DeleteVPC' {_delDryRun = Nothing, _delVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . delDryRun :: Lens' DeleteVPC (Maybe Bool) delDryRun = lens _delDryRun (\ s a -> s{_delDryRun = a});@@ -81,9 +79,9 @@         request = postQuery ec2         response = receiveNull DeleteVPCResponse' -instance Hashable DeleteVPC+instance Hashable DeleteVPC where -instance NFData DeleteVPC+instance NFData DeleteVPC where  instance ToHeaders DeleteVPC where         toHeaders = const mempty@@ -100,13 +98,15 @@  -- | /See:/ 'deleteVPCResponse' smart constructor. data DeleteVPCResponse =-    DeleteVPCResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteVPCResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPCResponse' with the minimum fields required to make a request. -- deleteVPCResponse     :: DeleteVPCResponse deleteVPCResponse = DeleteVPCResponse' -instance NFData DeleteVPCResponse++instance NFData DeleteVPCResponse where
gen/Network/AWS/EC2/DeleteVPCEndpoints.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPCEndpoints--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint.+-- 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@@ -38,12 +38,12 @@     , dversResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVpcEndpoints. --@@ -51,10 +51,11 @@ -- -- /See:/ 'deleteVPCEndpoints' smart constructor. data DeleteVPCEndpoints = DeleteVPCEndpoints'-    { _dveDryRun         :: !(Maybe Bool)-    , _dveVPCEndpointIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dveDryRun         :: !(Maybe Bool)+  , _dveVPCEndpointIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPCEndpoints' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@ deleteVPCEndpoints     :: DeleteVPCEndpoints deleteVPCEndpoints =-    DeleteVPCEndpoints'-    { _dveDryRun = Nothing-    , _dveVPCEndpointIds = mempty-    }+  DeleteVPCEndpoints' {_dveDryRun = Nothing, _dveVPCEndpointIds = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . dveDryRun :: Lens' DeleteVPCEndpoints (Maybe Bool) dveDryRun = lens _dveDryRun (\ s a -> s{_dveDryRun = a});@@ -90,9 +89,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DeleteVPCEndpoints+instance Hashable DeleteVPCEndpoints where -instance NFData DeleteVPCEndpoints+instance NFData DeleteVPCEndpoints where  instance ToHeaders DeleteVPCEndpoints where         toHeaders = const mempty@@ -114,10 +113,11 @@ -- -- /See:/ 'deleteVPCEndpointsResponse' smart constructor. data DeleteVPCEndpointsResponse = DeleteVPCEndpointsResponse'-    { _dversUnsuccessful   :: !(Maybe [UnsuccessfulItem])-    , _dversResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dversUnsuccessful   :: !(Maybe [UnsuccessfulItem])+  , _dversResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPCEndpointsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -129,11 +129,10 @@     :: Int -- ^ 'dversResponseStatus'     -> DeleteVPCEndpointsResponse deleteVPCEndpointsResponse pResponseStatus_ =-    DeleteVPCEndpointsResponse'-    { _dversUnsuccessful = Nothing-    , _dversResponseStatus = pResponseStatus_-    }+  DeleteVPCEndpointsResponse'+  {_dversUnsuccessful = Nothing, _dversResponseStatus = pResponseStatus_} + -- | Information about the endpoints that were not successfully deleted. dversUnsuccessful :: Lens' DeleteVPCEndpointsResponse [UnsuccessfulItem] dversUnsuccessful = lens _dversUnsuccessful (\ s a -> s{_dversUnsuccessful = a}) . _Default . _Coerce;@@ -142,4 +141,4 @@ dversResponseStatus :: Lens' DeleteVPCEndpointsResponse Int dversResponseStatus = lens _dversResponseStatus (\ s a -> s{_dversResponseStatus = a}); -instance NFData DeleteVPCEndpointsResponse+instance NFData DeleteVPCEndpointsResponse where
gen/Network/AWS/EC2/DeleteVPCPeeringConnection.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPCPeeringConnection--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , dvpcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVpcPeeringConnection. --@@ -51,10 +51,11 @@ -- -- /See:/ 'deleteVPCPeeringConnection' smart constructor. data DeleteVPCPeeringConnection = DeleteVPCPeeringConnection'-    { _dvpcDryRun                 :: !(Maybe Bool)-    , _dvpcVPCPeeringConnectionId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcDryRun                 :: !(Maybe Bool)+  , _dvpcVPCPeeringConnectionId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPCPeeringConnection' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,11 +67,12 @@     :: Text -- ^ 'dvpcVPCPeeringConnectionId'     -> DeleteVPCPeeringConnection deleteVPCPeeringConnection pVPCPeeringConnectionId_ =-    DeleteVPCPeeringConnection'-    { _dvpcDryRun = Nothing-    , _dvpcVPCPeeringConnectionId = pVPCPeeringConnectionId_-    }+  DeleteVPCPeeringConnection'+  { _dvpcDryRun = Nothing+  , _dvpcVPCPeeringConnectionId = pVPCPeeringConnectionId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . dvpcDryRun :: Lens' DeleteVPCPeeringConnection (Maybe Bool) dvpcDryRun = lens _dvpcDryRun (\ s a -> s{_dvpcDryRun = a});@@ -89,9 +91,9 @@                  DeleteVPCPeeringConnectionResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable DeleteVPCPeeringConnection+instance Hashable DeleteVPCPeeringConnection where -instance NFData DeleteVPCPeeringConnection+instance NFData DeleteVPCPeeringConnection where  instance ToHeaders DeleteVPCPeeringConnection where         toHeaders = const mempty@@ -115,10 +117,11 @@ -- -- /See:/ 'deleteVPCPeeringConnectionResponse' smart constructor. data DeleteVPCPeeringConnectionResponse = DeleteVPCPeeringConnectionResponse'-    { _dvpcrsReturn         :: !(Maybe Bool)-    , _dvpcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcrsReturn         :: !(Maybe Bool)+  , _dvpcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPCPeeringConnectionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +133,10 @@     :: Int -- ^ 'dvpcrsResponseStatus'     -> DeleteVPCPeeringConnectionResponse deleteVPCPeeringConnectionResponse pResponseStatus_ =-    DeleteVPCPeeringConnectionResponse'-    { _dvpcrsReturn = Nothing-    , _dvpcrsResponseStatus = pResponseStatus_-    }+  DeleteVPCPeeringConnectionResponse'+  {_dvpcrsReturn = Nothing, _dvpcrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. dvpcrsReturn :: Lens' DeleteVPCPeeringConnectionResponse (Maybe Bool) dvpcrsReturn = lens _dvpcrsReturn (\ s a -> s{_dvpcrsReturn = a});@@ -144,3 +146,4 @@ dvpcrsResponseStatus = lens _dvpcrsResponseStatus (\ s a -> s{_dvpcrsResponseStatus = a});  instance NFData DeleteVPCPeeringConnectionResponse+         where
gen/Network/AWS/EC2/DeleteVPNConnection.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPNConnection--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , DeleteVPNConnectionResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVpnConnection. --@@ -50,10 +50,11 @@ -- -- /See:/ 'deleteVPNConnection' smart constructor. data DeleteVPNConnection = DeleteVPNConnection'-    { _dvcDryRun          :: !(Maybe Bool)-    , _dvcVPNConnectionId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcDryRun          :: !(Maybe Bool)+  , _dvcVPNConnectionId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPNConnection' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,10 @@     :: Text -- ^ 'dvcVPNConnectionId'     -> DeleteVPNConnection deleteVPNConnection pVPNConnectionId_ =-    DeleteVPNConnection'-    { _dvcDryRun = Nothing-    , _dvcVPNConnectionId = pVPNConnectionId_-    }+  DeleteVPNConnection'+  {_dvcDryRun = Nothing, _dvcVPNConnectionId = pVPNConnectionId_} + -- | Checks whether you have the required permissions for the action, 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@ . dvcDryRun :: Lens' DeleteVPNConnection (Maybe Bool) dvcDryRun = lens _dvcDryRun (\ s a -> s{_dvcDryRun = a});@@ -84,9 +84,9 @@         request = postQuery ec2         response = receiveNull DeleteVPNConnectionResponse' -instance Hashable DeleteVPNConnection+instance Hashable DeleteVPNConnection where -instance NFData DeleteVPNConnection+instance NFData DeleteVPNConnection where  instance ToHeaders DeleteVPNConnection where         toHeaders = const mempty@@ -104,13 +104,15 @@  -- | /See:/ 'deleteVPNConnectionResponse' smart constructor. data DeleteVPNConnectionResponse =-    DeleteVPNConnectionResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteVPNConnectionResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPNConnectionResponse' with the minimum fields required to make a request. -- deleteVPNConnectionResponse     :: DeleteVPNConnectionResponse deleteVPNConnectionResponse = DeleteVPNConnectionResponse' -instance NFData DeleteVPNConnectionResponse++instance NFData DeleteVPNConnectionResponse where
gen/Network/AWS/EC2/DeleteVPNConnectionRoute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPNConnectionRoute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,20 +27,20 @@       deleteVPNConnectionRoute     , DeleteVPNConnectionRoute     -- * Request Lenses-    , dvcrVPNConnectionId     , dvcrDestinationCidrBlock+    , dvcrVPNConnectionId      -- * Destructuring the Response     , deleteVPNConnectionRouteResponse     , DeleteVPNConnectionRouteResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVpnConnectionRoute. --@@ -48,35 +48,37 @@ -- -- /See:/ 'deleteVPNConnectionRoute' smart constructor. data DeleteVPNConnectionRoute = DeleteVPNConnectionRoute'-    { _dvcrVPNConnectionId      :: !Text-    , _dvcrDestinationCidrBlock :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcrDestinationCidrBlock :: !Text+  , _dvcrVPNConnectionId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPNConnectionRoute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvcrVPNConnectionId' - The ID of the VPN connection.--- -- * 'dvcrDestinationCidrBlock' - The CIDR block associated with the local subnet of the customer network.+--+-- * 'dvcrVPNConnectionId' - The ID of the VPN connection. deleteVPNConnectionRoute-    :: Text -- ^ 'dvcrVPNConnectionId'-    -> Text -- ^ 'dvcrDestinationCidrBlock'+    :: Text -- ^ 'dvcrDestinationCidrBlock'+    -> Text -- ^ 'dvcrVPNConnectionId'     -> DeleteVPNConnectionRoute-deleteVPNConnectionRoute pVPNConnectionId_ pDestinationCidrBlock_ =-    DeleteVPNConnectionRoute'-    { _dvcrVPNConnectionId = pVPNConnectionId_-    , _dvcrDestinationCidrBlock = pDestinationCidrBlock_-    }+deleteVPNConnectionRoute pDestinationCidrBlock_ pVPNConnectionId_ =+  DeleteVPNConnectionRoute'+  { _dvcrDestinationCidrBlock = pDestinationCidrBlock_+  , _dvcrVPNConnectionId = pVPNConnectionId_+  } --- | The ID of the VPN connection.-dvcrVPNConnectionId :: Lens' DeleteVPNConnectionRoute Text-dvcrVPNConnectionId = lens _dvcrVPNConnectionId (\ s a -> s{_dvcrVPNConnectionId = a});  -- | The CIDR block associated with the local subnet of the customer network. dvcrDestinationCidrBlock :: Lens' DeleteVPNConnectionRoute Text dvcrDestinationCidrBlock = lens _dvcrDestinationCidrBlock (\ s a -> s{_dvcrDestinationCidrBlock = a}); +-- | The ID of the VPN connection.+dvcrVPNConnectionId :: Lens' DeleteVPNConnectionRoute Text+dvcrVPNConnectionId = lens _dvcrVPNConnectionId (\ s a -> s{_dvcrVPNConnectionId = a});+ instance AWSRequest DeleteVPNConnectionRoute where         type Rs DeleteVPNConnectionRoute =              DeleteVPNConnectionRouteResponse@@ -84,9 +86,9 @@         response           = receiveNull DeleteVPNConnectionRouteResponse' -instance Hashable DeleteVPNConnectionRoute+instance Hashable DeleteVPNConnectionRoute where -instance NFData DeleteVPNConnectionRoute+instance NFData DeleteVPNConnectionRoute where  instance ToHeaders DeleteVPNConnectionRoute where         toHeaders = const mempty@@ -100,18 +102,21 @@               ["Action" =:                  ("DeleteVpnConnectionRoute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "VpnConnectionId" =: _dvcrVPNConnectionId,-               "DestinationCidrBlock" =: _dvcrDestinationCidrBlock]+               "DestinationCidrBlock" =: _dvcrDestinationCidrBlock,+               "VpnConnectionId" =: _dvcrVPNConnectionId]  -- | /See:/ 'deleteVPNConnectionRouteResponse' smart constructor. data DeleteVPNConnectionRouteResponse =-    DeleteVPNConnectionRouteResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteVPNConnectionRouteResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPNConnectionRouteResponse' with the minimum fields required to make a request. -- deleteVPNConnectionRouteResponse     :: DeleteVPNConnectionRouteResponse deleteVPNConnectionRouteResponse = DeleteVPNConnectionRouteResponse' + instance NFData DeleteVPNConnectionRouteResponse+         where
gen/Network/AWS/EC2/DeleteVPNGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteVPNGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , DeleteVPNGatewayResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVpnGateway. --@@ -48,10 +48,11 @@ -- -- /See:/ 'deleteVPNGateway' smart constructor. data DeleteVPNGateway = DeleteVPNGateway'-    { _dvgDryRun       :: !(Maybe Bool)-    , _dvgVPNGatewayId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvgDryRun       :: !(Maybe Bool)+  , _dvgVPNGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPNGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'dvgVPNGatewayId'     -> DeleteVPNGateway deleteVPNGateway pVPNGatewayId_ =-    DeleteVPNGateway'-    { _dvgDryRun = Nothing-    , _dvgVPNGatewayId = pVPNGatewayId_-    }+  DeleteVPNGateway' {_dvgDryRun = Nothing, _dvgVPNGatewayId = pVPNGatewayId_} + -- | Checks whether you have the required permissions for the action, 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@ . dvgDryRun :: Lens' DeleteVPNGateway (Maybe Bool) dvgDryRun = lens _dvgDryRun (\ s a -> s{_dvgDryRun = a});@@ -81,9 +80,9 @@         request = postQuery ec2         response = receiveNull DeleteVPNGatewayResponse' -instance Hashable DeleteVPNGateway+instance Hashable DeleteVPNGateway where -instance NFData DeleteVPNGateway+instance NFData DeleteVPNGateway where  instance ToHeaders DeleteVPNGateway where         toHeaders = const mempty@@ -101,13 +100,15 @@  -- | /See:/ 'deleteVPNGatewayResponse' smart constructor. data DeleteVPNGatewayResponse =-    DeleteVPNGatewayResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteVPNGatewayResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVPNGatewayResponse' with the minimum fields required to make a request. -- deleteVPNGatewayResponse     :: DeleteVPNGatewayResponse deleteVPNGatewayResponse = DeleteVPNGatewayResponse' -instance NFData DeleteVPNGatewayResponse++instance NFData DeleteVPNGatewayResponse where
gen/Network/AWS/EC2/DeleteVolume.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DeleteVolume--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , DeleteVolumeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeleteVolume. --@@ -50,10 +50,11 @@ -- -- /See:/ 'deleteVolume' smart constructor. data DeleteVolume = DeleteVolume'-    { _dvvDryRun   :: !(Maybe Bool)-    , _dvvVolumeId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvvDryRun   :: !(Maybe Bool)+  , _dvvVolumeId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@     :: Text -- ^ 'dvvVolumeId'     -> DeleteVolume deleteVolume pVolumeId_ =-    DeleteVolume'-    { _dvvDryRun = Nothing-    , _dvvVolumeId = pVolumeId_-    }+  DeleteVolume' {_dvvDryRun = Nothing, _dvvVolumeId = pVolumeId_} + -- | Checks whether you have the required permissions for the action, 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@ . dvvDryRun :: Lens' DeleteVolume (Maybe Bool) dvvDryRun = lens _dvvDryRun (\ s a -> s{_dvvDryRun = a});@@ -83,9 +82,9 @@         request = postQuery ec2         response = receiveNull DeleteVolumeResponse' -instance Hashable DeleteVolume+instance Hashable DeleteVolume where -instance NFData DeleteVolume+instance NFData DeleteVolume where  instance ToHeaders DeleteVolume where         toHeaders = const mempty@@ -102,13 +101,15 @@  -- | /See:/ 'deleteVolumeResponse' smart constructor. data DeleteVolumeResponse =-    DeleteVolumeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeleteVolumeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteVolumeResponse' with the minimum fields required to make a request. -- deleteVolumeResponse     :: DeleteVolumeResponse deleteVolumeResponse = DeleteVolumeResponse' -instance NFData DeleteVolumeResponse++instance NFData DeleteVolumeResponse where
gen/Network/AWS/EC2/DeregisterImage.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.DeregisterImage--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.+-- 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. -- ----- This command does not delete the AMI.+-- 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     (@@ -37,12 +37,12 @@     , DeregisterImageResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DeregisterImage. --@@ -50,10 +50,11 @@ -- -- /See:/ 'deregisterImage' smart constructor. data DeregisterImage = DeregisterImage'-    { _diDryRun  :: !(Maybe Bool)-    , _diImageId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diDryRun  :: !(Maybe Bool)+  , _diImageId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeregisterImage' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@     :: Text -- ^ 'diImageId'     -> DeregisterImage deregisterImage pImageId_ =-    DeregisterImage'-    { _diDryRun = Nothing-    , _diImageId = pImageId_-    }+  DeregisterImage' {_diDryRun = Nothing, _diImageId = pImageId_} + -- | Checks whether you have the required permissions for the action, 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@ . diDryRun :: Lens' DeregisterImage (Maybe Bool) diDryRun = lens _diDryRun (\ s a -> s{_diDryRun = a});@@ -83,9 +82,9 @@         request = postQuery ec2         response = receiveNull DeregisterImageResponse' -instance Hashable DeregisterImage+instance Hashable DeregisterImage where -instance NFData DeregisterImage+instance NFData DeregisterImage where  instance ToHeaders DeregisterImage where         toHeaders = const mempty@@ -102,13 +101,15 @@  -- | /See:/ 'deregisterImageResponse' smart constructor. data DeregisterImageResponse =-    DeregisterImageResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DeregisterImageResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeregisterImageResponse' with the minimum fields required to make a request. -- deregisterImageResponse     :: DeregisterImageResponse deregisterImageResponse = DeregisterImageResponse' -instance NFData DeregisterImageResponse++instance NFData DeregisterImageResponse where
gen/Network/AWS/EC2/DescribeAccountAttributes.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeAccountAttributes--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -52,12 +52,12 @@     , daarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeAccountAttributes. --@@ -65,10 +65,11 @@ -- -- /See:/ 'describeAccountAttributes' smart constructor. data DescribeAccountAttributes = DescribeAccountAttributes'-    { _daaAttributeNames :: !(Maybe [AccountAttributeName])-    , _daaDryRun         :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _daaAttributeNames :: !(Maybe [AccountAttributeName])+  , _daaDryRun         :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeAccountAttributes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +80,10 @@ describeAccountAttributes     :: DescribeAccountAttributes describeAccountAttributes =-    DescribeAccountAttributes'-    { _daaAttributeNames = Nothing-    , _daaDryRun = Nothing-    }+  DescribeAccountAttributes'+  {_daaAttributeNames = Nothing, _daaDryRun = Nothing} + -- | One or more account attribute names. daaAttributeNames :: Lens' DescribeAccountAttributes [AccountAttributeName] daaAttributeNames = lens _daaAttributeNames (\ s a -> s{_daaAttributeNames = a}) . _Default . _Coerce;@@ -104,9 +104,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeAccountAttributes+instance Hashable DescribeAccountAttributes where -instance NFData DescribeAccountAttributes+instance NFData DescribeAccountAttributes where  instance ToHeaders DescribeAccountAttributes where         toHeaders = const mempty@@ -130,10 +130,11 @@ -- -- /See:/ 'describeAccountAttributesResponse' smart constructor. data DescribeAccountAttributesResponse = DescribeAccountAttributesResponse'-    { _daarsAccountAttributes :: !(Maybe [AccountAttribute])-    , _daarsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _daarsAccountAttributes :: !(Maybe [AccountAttribute])+  , _daarsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeAccountAttributesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -145,11 +146,10 @@     :: Int -- ^ 'daarsResponseStatus'     -> DescribeAccountAttributesResponse describeAccountAttributesResponse pResponseStatus_ =-    DescribeAccountAttributesResponse'-    { _daarsAccountAttributes = Nothing-    , _daarsResponseStatus = pResponseStatus_-    }+  DescribeAccountAttributesResponse'+  {_daarsAccountAttributes = Nothing, _daarsResponseStatus = pResponseStatus_} + -- | Information about one or more account attributes. daarsAccountAttributes :: Lens' DescribeAccountAttributesResponse [AccountAttribute] daarsAccountAttributes = lens _daarsAccountAttributes (\ s a -> s{_daarsAccountAttributes = a}) . _Default . _Coerce;@@ -159,3 +159,4 @@ daarsResponseStatus = lens _daarsResponseStatus (\ s a -> s{_daarsResponseStatus = a});  instance NFData DescribeAccountAttributesResponse+         where
gen/Network/AWS/EC2/DescribeAddresses.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeAddresses--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , darsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeAddresses. --@@ -55,12 +55,13 @@ -- -- /See:/ 'describeAddresses' smart constructor. data DescribeAddresses = DescribeAddresses'-    { _daFilters       :: !(Maybe [Filter])-    , _daPublicIPs     :: !(Maybe [Text])-    , _daAllocationIds :: !(Maybe [Text])-    , _daDryRun        :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _daFilters       :: !(Maybe [Filter])+  , _daPublicIPs     :: !(Maybe [Text])+  , _daAllocationIds :: !(Maybe [Text])+  , _daDryRun        :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeAddresses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,13 +76,14 @@ describeAddresses     :: DescribeAddresses describeAddresses =-    DescribeAddresses'-    { _daFilters = Nothing-    , _daPublicIPs = Nothing-    , _daAllocationIds = Nothing-    , _daDryRun = Nothing-    }+  DescribeAddresses'+  { _daFilters = Nothing+  , _daPublicIPs = Nothing+  , _daAllocationIds = Nothing+  , _daDryRun = Nothing+  } + -- | One or more filters. Filter names and values are case-sensitive.     * @allocation-id@ - [EC2-VPC] The allocation ID for the address.     * @association-id@ - [EC2-VPC] The association ID for the address.     * @domain@ - Indicates whether the address is for use in EC2-Classic (@standard@ ) or in a VPC (@vpc@ ).     * @instance-id@ - The ID of the instance the address is associated with, if any.     * @network-interface-id@ - [EC2-VPC] The ID of the network interface that the address is associated with, if any.     * @network-interface-owner-id@ - The AWS account ID of the owner.     * @private-ip-address@ - [EC2-VPC] The private IP address associated with the Elastic IP address.     * @public-ip@ - The Elastic IP address. daFilters :: Lens' DescribeAddresses [Filter] daFilters = lens _daFilters (\ s a -> s{_daFilters = a}) . _Default . _Coerce;@@ -109,9 +111,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeAddresses+instance Hashable DescribeAddresses where -instance NFData DescribeAddresses+instance NFData DescribeAddresses where  instance ToHeaders DescribeAddresses where         toHeaders = const mempty@@ -136,10 +138,11 @@ -- -- /See:/ 'describeAddressesResponse' smart constructor. data DescribeAddressesResponse = DescribeAddressesResponse'-    { _darsAddresses      :: !(Maybe [Address])-    , _darsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _darsAddresses      :: !(Maybe [Address])+  , _darsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeAddressesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -151,11 +154,10 @@     :: Int -- ^ 'darsResponseStatus'     -> DescribeAddressesResponse describeAddressesResponse pResponseStatus_ =-    DescribeAddressesResponse'-    { _darsAddresses = Nothing-    , _darsResponseStatus = pResponseStatus_-    }+  DescribeAddressesResponse'+  {_darsAddresses = Nothing, _darsResponseStatus = pResponseStatus_} + -- | Information about one or more Elastic IP addresses. darsAddresses :: Lens' DescribeAddressesResponse [Address] darsAddresses = lens _darsAddresses (\ s a -> s{_darsAddresses = a}) . _Default . _Coerce;@@ -164,4 +166,4 @@ darsResponseStatus :: Lens' DescribeAddressesResponse Int darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a}); -instance NFData DescribeAddressesResponse+instance NFData DescribeAddressesResponse where
gen/Network/AWS/EC2/DescribeAvailabilityZones.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeAvailabilityZones--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , dazrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeAvailabilityZones. --@@ -54,11 +54,12 @@ -- -- /See:/ 'describeAvailabilityZones' smart constructor. data DescribeAvailabilityZones = DescribeAvailabilityZones'-    { _dazZoneNames :: !(Maybe [Text])-    , _dazFilters   :: !(Maybe [Filter])-    , _dazDryRun    :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dazZoneNames :: !(Maybe [Text])+  , _dazFilters   :: !(Maybe [Filter])+  , _dazDryRun    :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeAvailabilityZones' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,10 @@ describeAvailabilityZones     :: DescribeAvailabilityZones describeAvailabilityZones =-    DescribeAvailabilityZones'-    { _dazZoneNames = Nothing-    , _dazFilters = Nothing-    , _dazDryRun = Nothing-    }+  DescribeAvailabilityZones'+  {_dazZoneNames = Nothing, _dazFilters = Nothing, _dazDryRun = Nothing} + -- | The names of one or more Availability Zones. dazZoneNames :: Lens' DescribeAvailabilityZones [Text] dazZoneNames = lens _dazZoneNames (\ s a -> s{_dazZoneNames = a}) . _Default . _Coerce;@@ -101,9 +100,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeAvailabilityZones+instance Hashable DescribeAvailabilityZones where -instance NFData DescribeAvailabilityZones+instance NFData DescribeAvailabilityZones where  instance ToHeaders DescribeAvailabilityZones where         toHeaders = const mempty@@ -127,10 +126,11 @@ -- -- /See:/ 'describeAvailabilityZonesResponse' smart constructor. data DescribeAvailabilityZonesResponse = DescribeAvailabilityZonesResponse'-    { _dazrsAvailabilityZones :: !(Maybe [AvailabilityZone])-    , _dazrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dazrsAvailabilityZones :: !(Maybe [AvailabilityZone])+  , _dazrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeAvailabilityZonesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +142,10 @@     :: Int -- ^ 'dazrsResponseStatus'     -> DescribeAvailabilityZonesResponse describeAvailabilityZonesResponse pResponseStatus_ =-    DescribeAvailabilityZonesResponse'-    { _dazrsAvailabilityZones = Nothing-    , _dazrsResponseStatus = pResponseStatus_-    }+  DescribeAvailabilityZonesResponse'+  {_dazrsAvailabilityZones = Nothing, _dazrsResponseStatus = pResponseStatus_} + -- | Information about one or more Availability Zones. dazrsAvailabilityZones :: Lens' DescribeAvailabilityZonesResponse [AvailabilityZone] dazrsAvailabilityZones = lens _dazrsAvailabilityZones (\ s a -> s{_dazrsAvailabilityZones = a}) . _Default . _Coerce;@@ -156,3 +155,4 @@ dazrsResponseStatus = lens _dazrsResponseStatus (\ s a -> s{_dazrsResponseStatus = a});  instance NFData DescribeAvailabilityZonesResponse+         where
gen/Network/AWS/EC2/DescribeBundleTasks.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeBundleTasks--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dbtrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeBundleTasks. --@@ -52,11 +52,12 @@ -- -- /See:/ 'describeBundleTasks' smart constructor. data DescribeBundleTasks = DescribeBundleTasks'-    { _dbtBundleIds :: !(Maybe [Text])-    , _dbtFilters   :: !(Maybe [Filter])-    , _dbtDryRun    :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dbtBundleIds :: !(Maybe [Text])+  , _dbtFilters   :: !(Maybe [Filter])+  , _dbtDryRun    :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeBundleTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,12 +70,10 @@ describeBundleTasks     :: DescribeBundleTasks describeBundleTasks =-    DescribeBundleTasks'-    { _dbtBundleIds = Nothing-    , _dbtFilters = Nothing-    , _dbtDryRun = Nothing-    }+  DescribeBundleTasks'+  {_dbtBundleIds = Nothing, _dbtFilters = Nothing, _dbtDryRun = Nothing} + -- | One or more bundle task IDs. Default: Describes all your bundle tasks. dbtBundleIds :: Lens' DescribeBundleTasks [Text] dbtBundleIds = lens _dbtBundleIds (\ s a -> s{_dbtBundleIds = a}) . _Default . _Coerce;@@ -99,9 +98,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeBundleTasks+instance Hashable DescribeBundleTasks where -instance NFData DescribeBundleTasks+instance NFData DescribeBundleTasks where  instance ToHeaders DescribeBundleTasks where         toHeaders = const mempty@@ -124,10 +123,11 @@ -- -- /See:/ 'describeBundleTasksResponse' smart constructor. data DescribeBundleTasksResponse = DescribeBundleTasksResponse'-    { _dbtrsBundleTasks    :: !(Maybe [BundleTask])-    , _dbtrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dbtrsBundleTasks    :: !(Maybe [BundleTask])+  , _dbtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeBundleTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,11 +139,10 @@     :: Int -- ^ 'dbtrsResponseStatus'     -> DescribeBundleTasksResponse describeBundleTasksResponse pResponseStatus_ =-    DescribeBundleTasksResponse'-    { _dbtrsBundleTasks = Nothing-    , _dbtrsResponseStatus = pResponseStatus_-    }+  DescribeBundleTasksResponse'+  {_dbtrsBundleTasks = Nothing, _dbtrsResponseStatus = pResponseStatus_} + -- | Information about one or more bundle tasks. dbtrsBundleTasks :: Lens' DescribeBundleTasksResponse [BundleTask] dbtrsBundleTasks = lens _dbtrsBundleTasks (\ s a -> s{_dbtrsBundleTasks = a}) . _Default . _Coerce;@@ -152,4 +151,4 @@ dbtrsResponseStatus :: Lens' DescribeBundleTasksResponse Int dbtrsResponseStatus = lens _dbtrsResponseStatus (\ s a -> s{_dbtrsResponseStatus = a}); -instance NFData DescribeBundleTasksResponse+instance NFData DescribeBundleTasksResponse where
gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeClassicLinkInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , dclirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeClassicLinkInstances. --@@ -55,13 +55,14 @@ -- -- /See:/ 'describeClassicLinkInstances' smart constructor. data DescribeClassicLinkInstances = DescribeClassicLinkInstances'-    { _dcliFilters     :: !(Maybe [Filter])-    , _dcliNextToken   :: !(Maybe Text)-    , _dcliInstanceIds :: !(Maybe [Text])-    , _dcliDryRun      :: !(Maybe Bool)-    , _dcliMaxResults  :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcliFilters     :: !(Maybe [Filter])+  , _dcliNextToken   :: !(Maybe Text)+  , _dcliInstanceIds :: !(Maybe [Text])+  , _dcliDryRun      :: !(Maybe Bool)+  , _dcliMaxResults  :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClassicLinkInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,14 +79,15 @@ describeClassicLinkInstances     :: DescribeClassicLinkInstances describeClassicLinkInstances =-    DescribeClassicLinkInstances'-    { _dcliFilters = Nothing-    , _dcliNextToken = Nothing-    , _dcliInstanceIds = Nothing-    , _dcliDryRun = Nothing-    , _dcliMaxResults = Nothing-    }+  DescribeClassicLinkInstances'+  { _dcliFilters = Nothing+  , _dcliNextToken = Nothing+  , _dcliInstanceIds = Nothing+  , _dcliDryRun = Nothing+  , _dcliMaxResults = Nothing+  } + -- | One or more filters.     * @group-id@ - The ID of a VPC security group that's associated with the instance.     * @instance-id@ - The ID of the instance.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC that the instance is linked to. dcliFilters :: Lens' DescribeClassicLinkInstances [Filter] dcliFilters = lens _dcliFilters (\ s a -> s{_dcliFilters = a}) . _Default . _Coerce;@@ -120,9 +122,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeClassicLinkInstances+instance Hashable DescribeClassicLinkInstances where -instance NFData DescribeClassicLinkInstances+instance NFData DescribeClassicLinkInstances where  instance ToHeaders DescribeClassicLinkInstances where         toHeaders = const mempty@@ -149,11 +151,12 @@ -- -- /See:/ 'describeClassicLinkInstancesResponse' smart constructor. data DescribeClassicLinkInstancesResponse = DescribeClassicLinkInstancesResponse'-    { _dclirsNextToken      :: !(Maybe Text)-    , _dclirsInstances      :: !(Maybe [ClassicLinkInstance])-    , _dclirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dclirsNextToken      :: !(Maybe Text)+  , _dclirsInstances      :: !(Maybe [ClassicLinkInstance])+  , _dclirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClassicLinkInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -167,12 +170,13 @@     :: Int -- ^ 'dclirsResponseStatus'     -> DescribeClassicLinkInstancesResponse describeClassicLinkInstancesResponse pResponseStatus_ =-    DescribeClassicLinkInstancesResponse'-    { _dclirsNextToken = Nothing-    , _dclirsInstances = Nothing-    , _dclirsResponseStatus = pResponseStatus_-    }+  DescribeClassicLinkInstancesResponse'+  { _dclirsNextToken = Nothing+  , _dclirsInstances = Nothing+  , _dclirsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. dclirsNextToken :: Lens' DescribeClassicLinkInstancesResponse (Maybe Text) dclirsNextToken = lens _dclirsNextToken (\ s a -> s{_dclirsNextToken = a});@@ -186,3 +190,4 @@ dclirsResponseStatus = lens _dclirsResponseStatus (\ s a -> s{_dclirsResponseStatus = a});  instance NFData DescribeClassicLinkInstancesResponse+         where
gen/Network/AWS/EC2/DescribeConversionTasks.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeConversionTasks--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , dctrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeConversionTasks. --@@ -53,10 +53,11 @@ -- -- /See:/ 'describeConversionTasks' smart constructor. data DescribeConversionTasks = DescribeConversionTasks'-    { _dctConversionTaskIds :: !(Maybe [Text])-    , _dctDryRun            :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dctConversionTaskIds :: !(Maybe [Text])+  , _dctDryRun            :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeConversionTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,10 @@ describeConversionTasks     :: DescribeConversionTasks describeConversionTasks =-    DescribeConversionTasks'-    { _dctConversionTaskIds = Nothing-    , _dctDryRun = Nothing-    }+  DescribeConversionTasks'+  {_dctConversionTaskIds = Nothing, _dctDryRun = Nothing} + -- | One or more conversion task IDs. dctConversionTaskIds :: Lens' DescribeConversionTasks [Text] dctConversionTaskIds = lens _dctConversionTaskIds (\ s a -> s{_dctConversionTaskIds = a}) . _Default . _Coerce;@@ -92,9 +92,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeConversionTasks+instance Hashable DescribeConversionTasks where -instance NFData DescribeConversionTasks+instance NFData DescribeConversionTasks where  instance ToHeaders DescribeConversionTasks where         toHeaders = const mempty@@ -119,10 +119,11 @@ -- -- /See:/ 'describeConversionTasksResponse' smart constructor. data DescribeConversionTasksResponse = DescribeConversionTasksResponse'-    { _dctrsConversionTasks :: !(Maybe [ConversionTask])-    , _dctrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dctrsConversionTasks :: !(Maybe [ConversionTask])+  , _dctrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeConversionTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -134,11 +135,10 @@     :: Int -- ^ 'dctrsResponseStatus'     -> DescribeConversionTasksResponse describeConversionTasksResponse pResponseStatus_ =-    DescribeConversionTasksResponse'-    { _dctrsConversionTasks = Nothing-    , _dctrsResponseStatus = pResponseStatus_-    }+  DescribeConversionTasksResponse'+  {_dctrsConversionTasks = Nothing, _dctrsResponseStatus = pResponseStatus_} + -- | Information about the conversion tasks. dctrsConversionTasks :: Lens' DescribeConversionTasksResponse [ConversionTask] dctrsConversionTasks = lens _dctrsConversionTasks (\ s a -> s{_dctrsConversionTasks = a}) . _Default . _Coerce;@@ -147,4 +147,4 @@ dctrsResponseStatus :: Lens' DescribeConversionTasksResponse Int dctrsResponseStatus = lens _dctrsResponseStatus (\ s a -> s{_dctrsResponseStatus = a}); -instance NFData DescribeConversionTasksResponse+instance NFData DescribeConversionTasksResponse where
gen/Network/AWS/EC2/DescribeCustomerGateways.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.DescribeCustomerGateways--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your VPN customer gateways. -- ----- For more information about VPN customer gateways, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information about VPN customer gateways, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- module Network.AWS.EC2.DescribeCustomerGateways     (@@ -41,12 +41,12 @@     , dcgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeCustomerGateways. --@@ -54,34 +54,36 @@ -- -- /See:/ 'describeCustomerGateways' smart constructor. data DescribeCustomerGateways = DescribeCustomerGateways'-    { _dcgCustomerGatewayIds :: !(Maybe [Text])-    , _dcgFilters            :: !(Maybe [Filter])-    , _dcgDryRun             :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcgCustomerGatewayIds :: !(Maybe [Text])+  , _dcgFilters            :: !(Maybe [Filter])+  , _dcgDryRun             :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCustomerGateways' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dcgCustomerGatewayIds' - One or more customer gateway IDs. Default: Describes all your customer gateways. ----- * 'dcgFilters' - One or more filters.     * @bgp-asn@ - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).     * @customer-gateway-id@ - The ID of the customer gateway.     * @ip-address@ - The IP address of the customer gateway's Internet-routable external interface.     * @state@ - The state of the customer gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @type@ - The type of customer gateway. Currently, the only supported type is @ipsec.1@ .     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.+-- * 'dcgFilters' - One or more filters.     * @bgp-asn@ - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).     * @customer-gateway-id@ - The ID of the customer gateway.     * @ip-address@ - The IP address of the customer gateway's Internet-routable external interface.     * @state@ - The state of the customer gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @type@ - The type of customer gateway. Currently, the only supported type is @ipsec.1@ .     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. -- -- * 'dcgDryRun' - Checks whether you have the required permissions for the action, 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@ . describeCustomerGateways     :: DescribeCustomerGateways describeCustomerGateways =-    DescribeCustomerGateways'-    { _dcgCustomerGatewayIds = Nothing-    , _dcgFilters = Nothing-    , _dcgDryRun = Nothing-    }+  DescribeCustomerGateways'+  { _dcgCustomerGatewayIds = Nothing+  , _dcgFilters = Nothing+  , _dcgDryRun = Nothing+  } + -- | One or more customer gateway IDs. Default: Describes all your customer gateways. dcgCustomerGatewayIds :: Lens' DescribeCustomerGateways [Text] dcgCustomerGatewayIds = lens _dcgCustomerGatewayIds (\ s a -> s{_dcgCustomerGatewayIds = a}) . _Default . _Coerce; --- | One or more filters.     * @bgp-asn@ - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).     * @customer-gateway-id@ - The ID of the customer gateway.     * @ip-address@ - The IP address of the customer gateway's Internet-routable external interface.     * @state@ - The state of the customer gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @type@ - The type of customer gateway. Currently, the only supported type is @ipsec.1@ .     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.+-- | One or more filters.     * @bgp-asn@ - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).     * @customer-gateway-id@ - The ID of the customer gateway.     * @ip-address@ - The IP address of the customer gateway's Internet-routable external interface.     * @state@ - The state of the customer gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @type@ - The type of customer gateway. Currently, the only supported type is @ipsec.1@ .     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. dcgFilters :: Lens' DescribeCustomerGateways [Filter] dcgFilters = lens _dcgFilters (\ s a -> s{_dcgFilters = a}) . _Default . _Coerce; @@ -101,9 +103,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeCustomerGateways+instance Hashable DescribeCustomerGateways where -instance NFData DescribeCustomerGateways+instance NFData DescribeCustomerGateways where  instance ToHeaders DescribeCustomerGateways where         toHeaders = const mempty@@ -129,10 +131,11 @@ -- -- /See:/ 'describeCustomerGatewaysResponse' smart constructor. data DescribeCustomerGatewaysResponse = DescribeCustomerGatewaysResponse'-    { _dcgrsCustomerGateways :: !(Maybe [CustomerGateway])-    , _dcgrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dcgrsCustomerGateways :: !(Maybe [CustomerGateway])+  , _dcgrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeCustomerGatewaysResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,11 +147,10 @@     :: Int -- ^ 'dcgrsResponseStatus'     -> DescribeCustomerGatewaysResponse describeCustomerGatewaysResponse pResponseStatus_ =-    DescribeCustomerGatewaysResponse'-    { _dcgrsCustomerGateways = Nothing-    , _dcgrsResponseStatus = pResponseStatus_-    }+  DescribeCustomerGatewaysResponse'+  {_dcgrsCustomerGateways = Nothing, _dcgrsResponseStatus = pResponseStatus_} + -- | Information about one or more customer gateways. dcgrsCustomerGateways :: Lens' DescribeCustomerGatewaysResponse [CustomerGateway] dcgrsCustomerGateways = lens _dcgrsCustomerGateways (\ s a -> s{_dcgrsCustomerGateways = a}) . _Default . _Coerce;@@ -158,3 +160,4 @@ dcgrsResponseStatus = lens _dcgrsResponseStatus (\ s a -> s{_dcgrsResponseStatus = a});  instance NFData DescribeCustomerGatewaysResponse+         where
gen/Network/AWS/EC2/DescribeDHCPOptions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeDHCPOptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , ddorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeDhcpOptions. --@@ -54,16 +54,17 @@ -- -- /See:/ 'describeDHCPOptions' smart constructor. data DescribeDHCPOptions = DescribeDHCPOptions'-    { _ddoFilters        :: !(Maybe [Filter])-    , _ddoDHCPOptionsIds :: !(Maybe [Text])-    , _ddoDryRun         :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ddoFilters        :: !(Maybe [Filter])+  , _ddoDHCPOptionsIds :: !(Maybe [Text])+  , _ddoDryRun         :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeDHCPOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'ddoFilters' - One or more filters.     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @key@ - The key for one of the options (for example, @domain-name@ ).     * @value@ - The value for one of the options.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.+-- * 'ddoFilters' - One or more filters.     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @key@ - The key for one of the options (for example, @domain-name@ ).     * @value@ - The value for one of the options.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. -- -- * 'ddoDHCPOptionsIds' - The IDs of one or more DHCP options sets. Default: Describes all your DHCP options sets. --@@ -71,13 +72,11 @@ describeDHCPOptions     :: DescribeDHCPOptions describeDHCPOptions =-    DescribeDHCPOptions'-    { _ddoFilters = Nothing-    , _ddoDHCPOptionsIds = Nothing-    , _ddoDryRun = Nothing-    }+  DescribeDHCPOptions'+  {_ddoFilters = Nothing, _ddoDHCPOptionsIds = Nothing, _ddoDryRun = Nothing} --- | One or more filters.     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @key@ - The key for one of the options (for example, @domain-name@ ).     * @value@ - The value for one of the options.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.++-- | One or more filters.     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @key@ - The key for one of the options (for example, @domain-name@ ).     * @value@ - The value for one of the options.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. ddoFilters :: Lens' DescribeDHCPOptions [Filter] ddoFilters = lens _ddoFilters (\ s a -> s{_ddoFilters = a}) . _Default . _Coerce; @@ -101,9 +100,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeDHCPOptions+instance Hashable DescribeDHCPOptions where -instance NFData DescribeDHCPOptions+instance NFData DescribeDHCPOptions where  instance ToHeaders DescribeDHCPOptions where         toHeaders = const mempty@@ -127,10 +126,11 @@ -- -- /See:/ 'describeDHCPOptionsResponse' smart constructor. data DescribeDHCPOptionsResponse = DescribeDHCPOptionsResponse'-    { _ddorsDHCPOptions    :: !(Maybe [DHCPOptions])-    , _ddorsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ddorsDHCPOptions    :: !(Maybe [DHCPOptions])+  , _ddorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeDHCPOptionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +142,10 @@     :: Int -- ^ 'ddorsResponseStatus'     -> DescribeDHCPOptionsResponse describeDHCPOptionsResponse pResponseStatus_ =-    DescribeDHCPOptionsResponse'-    { _ddorsDHCPOptions = Nothing-    , _ddorsResponseStatus = pResponseStatus_-    }+  DescribeDHCPOptionsResponse'+  {_ddorsDHCPOptions = Nothing, _ddorsResponseStatus = pResponseStatus_} + -- | Information about one or more DHCP options sets. ddorsDHCPOptions :: Lens' DescribeDHCPOptionsResponse [DHCPOptions] ddorsDHCPOptions = lens _ddorsDHCPOptions (\ s a -> s{_ddorsDHCPOptions = a}) . _Default . _Coerce;@@ -155,4 +154,4 @@ ddorsResponseStatus :: Lens' DescribeDHCPOptionsResponse Int ddorsResponseStatus = lens _ddorsResponseStatus (\ s a -> s{_ddorsResponseStatus = a}); -instance NFData DescribeDHCPOptionsResponse+instance NFData DescribeDHCPOptionsResponse where
gen/Network/AWS/EC2/DescribeEgressOnlyInternetGateways.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeEgressOnlyInternetGateways--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,21 +41,22 @@     , deoigrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'describeEgressOnlyInternetGateways' smart constructor. data DescribeEgressOnlyInternetGateways = DescribeEgressOnlyInternetGateways'-    { _deoigEgressOnlyInternetGatewayIds :: !(Maybe [Text])-    , _deoigNextToken                    :: !(Maybe Text)-    , _deoigDryRun                       :: !(Maybe Bool)-    , _deoigMaxResults                   :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deoigEgressOnlyInternetGatewayIds :: !(Maybe [Text])+  , _deoigNextToken                    :: !(Maybe Text)+  , _deoigDryRun                       :: !(Maybe Bool)+  , _deoigMaxResults                   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEgressOnlyInternetGateways' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,13 +71,14 @@ describeEgressOnlyInternetGateways     :: DescribeEgressOnlyInternetGateways describeEgressOnlyInternetGateways =-    DescribeEgressOnlyInternetGateways'-    { _deoigEgressOnlyInternetGatewayIds = Nothing-    , _deoigNextToken = Nothing-    , _deoigDryRun = Nothing-    , _deoigMaxResults = Nothing-    }+  DescribeEgressOnlyInternetGateways'+  { _deoigEgressOnlyInternetGatewayIds = Nothing+  , _deoigNextToken = Nothing+  , _deoigDryRun = Nothing+  , _deoigMaxResults = Nothing+  } + -- | One or more egress-only Internet gateway IDs. deoigEgressOnlyInternetGatewayIds :: Lens' DescribeEgressOnlyInternetGateways [Text] deoigEgressOnlyInternetGatewayIds = lens _deoigEgressOnlyInternetGatewayIds (\ s a -> s{_deoigEgressOnlyInternetGatewayIds = a}) . _Default . _Coerce;@@ -94,7 +96,8 @@ deoigMaxResults = lens _deoigMaxResults (\ s a -> s{_deoigMaxResults = a});  instance AWSRequest-         DescribeEgressOnlyInternetGateways where+           DescribeEgressOnlyInternetGateways+         where         type Rs DescribeEgressOnlyInternetGateways =              DescribeEgressOnlyInternetGatewaysResponse         request = postQuery ec2@@ -108,8 +111,10 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeEgressOnlyInternetGateways+         where  instance NFData DescribeEgressOnlyInternetGateways+         where  instance ToHeaders DescribeEgressOnlyInternetGateways          where@@ -135,11 +140,12 @@  -- | /See:/ 'describeEgressOnlyInternetGatewaysResponse' smart constructor. data DescribeEgressOnlyInternetGatewaysResponse = DescribeEgressOnlyInternetGatewaysResponse'-    { _deoigrsEgressOnlyInternetGateways :: !(Maybe [EgressOnlyInternetGateway])-    , _deoigrsNextToken                  :: !(Maybe Text)-    , _deoigrsResponseStatus             :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deoigrsEgressOnlyInternetGateways :: !(Maybe [EgressOnlyInternetGateway])+  , _deoigrsNextToken                  :: !(Maybe Text)+  , _deoigrsResponseStatus             :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeEgressOnlyInternetGatewaysResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,12 +159,13 @@     :: Int -- ^ 'deoigrsResponseStatus'     -> DescribeEgressOnlyInternetGatewaysResponse describeEgressOnlyInternetGatewaysResponse pResponseStatus_ =-    DescribeEgressOnlyInternetGatewaysResponse'-    { _deoigrsEgressOnlyInternetGateways = Nothing-    , _deoigrsNextToken = Nothing-    , _deoigrsResponseStatus = pResponseStatus_-    }+  DescribeEgressOnlyInternetGatewaysResponse'+  { _deoigrsEgressOnlyInternetGateways = Nothing+  , _deoigrsNextToken = Nothing+  , _deoigrsResponseStatus = pResponseStatus_+  } + -- | Information about the egress-only Internet gateways. deoigrsEgressOnlyInternetGateways :: Lens' DescribeEgressOnlyInternetGatewaysResponse [EgressOnlyInternetGateway] deoigrsEgressOnlyInternetGateways = lens _deoigrsEgressOnlyInternetGateways (\ s a -> s{_deoigrsEgressOnlyInternetGateways = a}) . _Default . _Coerce;@@ -172,4 +179,5 @@ deoigrsResponseStatus = lens _deoigrsResponseStatus (\ s a -> s{_deoigrsResponseStatus = a});  instance NFData-         DescribeEgressOnlyInternetGatewaysResponse+           DescribeEgressOnlyInternetGatewaysResponse+         where
+ gen/Network/AWS/EC2/DescribeElasticGpus.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeElasticGpus+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the Elastic GPUs associated with your instances. For more information about Elastic GPUs, see <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-gpus.html Amazon EC2 Elastic GPUs> .+--+--+module Network.AWS.EC2.DescribeElasticGpus+    (+    -- * Creating a Request+      describeElasticGpus+    , DescribeElasticGpus+    -- * Request Lenses+    , degFilters+    , degNextToken+    , degDryRun+    , degMaxResults+    , degElasticGpuIds++    -- * Destructuring the Response+    , describeElasticGpusResponse+    , DescribeElasticGpusResponse+    -- * Response Lenses+    , degrsElasticGpuSet+    , degrsNextToken+    , degrsMaxResults+    , degrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeElasticGpus' smart constructor.+data DescribeElasticGpus = DescribeElasticGpus'+  { _degFilters       :: !(Maybe [Filter])+  , _degNextToken     :: !(Maybe Text)+  , _degDryRun        :: !(Maybe Bool)+  , _degMaxResults    :: !(Maybe Int)+  , _degElasticGpuIds :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeElasticGpus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'degFilters' - One or more filters.     * @availability-zone@ - The Availability Zone in which the Elastic GPU resides.     * @elastic-gpu-health@ - The status of the Elastic GPU (@OK@ | @IMPAIRED@ ).     * @elastic-gpu-state@ - The state of the Elastic GPU (@ATTACHED@ ).     * @elastic-gpu-type@ - The type of Elastic GPU; for example, @eg1.medium@ .     * @instance-id@ - The ID of the instance to which the Elastic GPU is associated.+--+-- * 'degNextToken' - The token to request the next page of results.+--+-- * 'degDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'degMaxResults' - The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned @NextToken@ value. This value can be between 5 and 1000.+--+-- * 'degElasticGpuIds' - One or more Elastic GPU IDs.+describeElasticGpus+    :: DescribeElasticGpus+describeElasticGpus =+  DescribeElasticGpus'+  { _degFilters = Nothing+  , _degNextToken = Nothing+  , _degDryRun = Nothing+  , _degMaxResults = Nothing+  , _degElasticGpuIds = Nothing+  }+++-- | One or more filters.     * @availability-zone@ - The Availability Zone in which the Elastic GPU resides.     * @elastic-gpu-health@ - The status of the Elastic GPU (@OK@ | @IMPAIRED@ ).     * @elastic-gpu-state@ - The state of the Elastic GPU (@ATTACHED@ ).     * @elastic-gpu-type@ - The type of Elastic GPU; for example, @eg1.medium@ .     * @instance-id@ - The ID of the instance to which the Elastic GPU is associated.+degFilters :: Lens' DescribeElasticGpus [Filter]+degFilters = lens _degFilters (\ s a -> s{_degFilters = a}) . _Default . _Coerce;++-- | The token to request the next page of results.+degNextToken :: Lens' DescribeElasticGpus (Maybe Text)+degNextToken = lens _degNextToken (\ s a -> s{_degNextToken = a});++-- | Checks whether you have the required permissions for the action, 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@ .+degDryRun :: Lens' DescribeElasticGpus (Maybe Bool)+degDryRun = lens _degDryRun (\ s a -> s{_degDryRun = 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. This value can be between 5 and 1000.+degMaxResults :: Lens' DescribeElasticGpus (Maybe Int)+degMaxResults = lens _degMaxResults (\ s a -> s{_degMaxResults = a});++-- | One or more Elastic GPU IDs.+degElasticGpuIds :: Lens' DescribeElasticGpus [Text]+degElasticGpuIds = lens _degElasticGpuIds (\ s a -> s{_degElasticGpuIds = a}) . _Default . _Coerce;++instance AWSRequest DescribeElasticGpus where+        type Rs DescribeElasticGpus =+             DescribeElasticGpusResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeElasticGpusResponse' <$>+                   (x .@? "elasticGpuSet" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (x .@? "maxResults")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeElasticGpus where++instance NFData DescribeElasticGpus where++instance ToHeaders DescribeElasticGpus where+        toHeaders = const mempty++instance ToPath DescribeElasticGpus where+        toPath = const "/"++instance ToQuery DescribeElasticGpus where+        toQuery DescribeElasticGpus'{..}+          = mconcat+              ["Action" =: ("DescribeElasticGpus" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               toQuery (toQueryList "Filter" <$> _degFilters),+               "NextToken" =: _degNextToken, "DryRun" =: _degDryRun,+               "MaxResults" =: _degMaxResults,+               toQuery+                 (toQueryList "ElasticGpuId" <$> _degElasticGpuIds)]++-- | /See:/ 'describeElasticGpusResponse' smart constructor.+data DescribeElasticGpusResponse = DescribeElasticGpusResponse'+  { _degrsElasticGpuSet  :: !(Maybe [ElasticGpus])+  , _degrsNextToken      :: !(Maybe Text)+  , _degrsMaxResults     :: !(Maybe Int)+  , _degrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeElasticGpusResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'degrsElasticGpuSet' - Information about the Elastic GPUs.+--+-- * 'degrsNextToken' - The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+--+-- * 'degrsMaxResults' - 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.+--+-- * 'degrsResponseStatus' - -- | The response status code.+describeElasticGpusResponse+    :: Int -- ^ 'degrsResponseStatus'+    -> DescribeElasticGpusResponse+describeElasticGpusResponse pResponseStatus_ =+  DescribeElasticGpusResponse'+  { _degrsElasticGpuSet = Nothing+  , _degrsNextToken = Nothing+  , _degrsMaxResults = Nothing+  , _degrsResponseStatus = pResponseStatus_+  }+++-- | Information about the Elastic GPUs.+degrsElasticGpuSet :: Lens' DescribeElasticGpusResponse [ElasticGpus]+degrsElasticGpuSet = lens _degrsElasticGpuSet (\ s a -> s{_degrsElasticGpuSet = a}) . _Default . _Coerce;++-- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+degrsNextToken :: Lens' DescribeElasticGpusResponse (Maybe Text)+degrsNextToken = lens _degrsNextToken (\ s a -> s{_degrsNextToken = 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.+degrsMaxResults :: Lens' DescribeElasticGpusResponse (Maybe Int)+degrsMaxResults = lens _degrsMaxResults (\ s a -> s{_degrsMaxResults = a});++-- | -- | The response status code.+degrsResponseStatus :: Lens' DescribeElasticGpusResponse Int+degrsResponseStatus = lens _degrsResponseStatus (\ s a -> s{_degrsResponseStatus = a});++instance NFData DescribeElasticGpusResponse where
gen/Network/AWS/EC2/DescribeExportTasks.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeExportTasks--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , detrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeExportTasks. --@@ -50,9 +50,10 @@ -- -- /See:/ 'describeExportTasks' smart constructor. newtype DescribeExportTasks = DescribeExportTasks'-    { _detExportTaskIds :: Maybe [Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _detExportTaskIds :: Maybe [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeExportTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -60,11 +61,9 @@ -- * 'detExportTaskIds' - One or more export task IDs. describeExportTasks     :: DescribeExportTasks-describeExportTasks =-    DescribeExportTasks'-    { _detExportTaskIds = Nothing-    }+describeExportTasks = DescribeExportTasks' {_detExportTaskIds = Nothing} + -- | One or more export task IDs. detExportTaskIds :: Lens' DescribeExportTasks [Text] detExportTaskIds = lens _detExportTaskIds (\ s a -> s{_detExportTaskIds = a}) . _Default . _Coerce;@@ -81,9 +80,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeExportTasks+instance Hashable DescribeExportTasks where -instance NFData DescribeExportTasks+instance NFData DescribeExportTasks where  instance ToHeaders DescribeExportTasks where         toHeaders = const mempty@@ -105,10 +104,11 @@ -- -- /See:/ 'describeExportTasksResponse' smart constructor. data DescribeExportTasksResponse = DescribeExportTasksResponse'-    { _detrsExportTasks    :: !(Maybe [ExportTask])-    , _detrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _detrsExportTasks    :: !(Maybe [ExportTask])+  , _detrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeExportTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -120,11 +120,10 @@     :: Int -- ^ 'detrsResponseStatus'     -> DescribeExportTasksResponse describeExportTasksResponse pResponseStatus_ =-    DescribeExportTasksResponse'-    { _detrsExportTasks = Nothing-    , _detrsResponseStatus = pResponseStatus_-    }+  DescribeExportTasksResponse'+  {_detrsExportTasks = Nothing, _detrsResponseStatus = pResponseStatus_} + -- | Information about the export tasks. detrsExportTasks :: Lens' DescribeExportTasksResponse [ExportTask] detrsExportTasks = lens _detrsExportTasks (\ s a -> s{_detrsExportTasks = a}) . _Default . _Coerce;@@ -133,4 +132,4 @@ detrsResponseStatus :: Lens' DescribeExportTasksResponse Int detrsResponseStatus = lens _detrsResponseStatus (\ s a -> s{_detrsResponseStatus = a}); -instance NFData DescribeExportTasksResponse+instance NFData DescribeExportTasksResponse where
gen/Network/AWS/EC2/DescribeFlowLogs.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeFlowLogs--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , dflsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeFlowLogs. --@@ -54,12 +54,13 @@ -- -- /See:/ 'describeFlowLogs' smart constructor. data DescribeFlowLogs = DescribeFlowLogs'-    { _dNextToken  :: !(Maybe Text)-    , _dFlowLogIds :: !(Maybe [Text])-    , _dFilter     :: !(Maybe [Filter])-    , _dMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dNextToken  :: !(Maybe Text)+  , _dFlowLogIds :: !(Maybe [Text])+  , _dFilter     :: !(Maybe [Filter])+  , _dMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeFlowLogs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,13 +75,14 @@ describeFlowLogs     :: DescribeFlowLogs describeFlowLogs =-    DescribeFlowLogs'-    { _dNextToken = Nothing-    , _dFlowLogIds = Nothing-    , _dFilter = Nothing-    , _dMaxResults = Nothing-    }+  DescribeFlowLogs'+  { _dNextToken = Nothing+  , _dFlowLogIds = Nothing+  , _dFilter = Nothing+  , _dMaxResults = Nothing+  } + -- | The token to retrieve the next page of results. dNextToken :: Lens' DescribeFlowLogs (Maybe Text) dNextToken = lens _dNextToken (\ s a -> s{_dNextToken = a});@@ -109,9 +111,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeFlowLogs+instance Hashable DescribeFlowLogs where -instance NFData DescribeFlowLogs+instance NFData DescribeFlowLogs where  instance ToHeaders DescribeFlowLogs where         toHeaders = const mempty@@ -135,11 +137,12 @@ -- -- /See:/ 'describeFlowLogsResponse' smart constructor. data DescribeFlowLogsResponse = DescribeFlowLogsResponse'-    { _dflsrsNextToken      :: !(Maybe Text)-    , _dflsrsFlowLogs       :: !(Maybe [FlowLog])-    , _dflsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dflsrsNextToken      :: !(Maybe Text)+  , _dflsrsFlowLogs       :: !(Maybe [FlowLog])+  , _dflsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeFlowLogsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,12 +156,13 @@     :: Int -- ^ 'dflsrsResponseStatus'     -> DescribeFlowLogsResponse describeFlowLogsResponse pResponseStatus_ =-    DescribeFlowLogsResponse'-    { _dflsrsNextToken = Nothing-    , _dflsrsFlowLogs = Nothing-    , _dflsrsResponseStatus = pResponseStatus_-    }+  DescribeFlowLogsResponse'+  { _dflsrsNextToken = Nothing+  , _dflsrsFlowLogs = Nothing+  , _dflsrsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. dflsrsNextToken :: Lens' DescribeFlowLogsResponse (Maybe Text) dflsrsNextToken = lens _dflsrsNextToken (\ s a -> s{_dflsrsNextToken = a});@@ -171,4 +175,4 @@ dflsrsResponseStatus :: Lens' DescribeFlowLogsResponse Int dflsrsResponseStatus = lens _dflsrsResponseStatus (\ s a -> s{_dflsrsResponseStatus = a}); -instance NFData DescribeFlowLogsResponse+instance NFData DescribeFlowLogsResponse where
+ gen/Network/AWS/EC2/DescribeFpgaImageAttribute.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeFpgaImageAttribute+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the specified attribute of the specified Amazon FPGA Image (AFI).+--+--+module Network.AWS.EC2.DescribeFpgaImageAttribute+    (+    -- * Creating a Request+      describeFpgaImageAttribute+    , DescribeFpgaImageAttribute+    -- * Request Lenses+    , dfiaDryRun+    , dfiaFpgaImageId+    , dfiaAttribute++    -- * Destructuring the Response+    , describeFpgaImageAttributeResponse+    , DescribeFpgaImageAttributeResponse+    -- * Response Lenses+    , dfiarsFpgaImageAttribute+    , dfiarsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeFpgaImageAttribute' smart constructor.+data DescribeFpgaImageAttribute = DescribeFpgaImageAttribute'+  { _dfiaDryRun      :: !(Maybe Bool)+  , _dfiaFpgaImageId :: !Text+  , _dfiaAttribute   :: !FpgaImageAttributeName+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeFpgaImageAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfiaDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'dfiaFpgaImageId' - The ID of the AFI.+--+-- * 'dfiaAttribute' - The AFI attribute.+describeFpgaImageAttribute+    :: Text -- ^ 'dfiaFpgaImageId'+    -> FpgaImageAttributeName -- ^ 'dfiaAttribute'+    -> DescribeFpgaImageAttribute+describeFpgaImageAttribute pFpgaImageId_ pAttribute_ =+  DescribeFpgaImageAttribute'+  { _dfiaDryRun = Nothing+  , _dfiaFpgaImageId = pFpgaImageId_+  , _dfiaAttribute = pAttribute_+  }+++-- | Checks whether you have the required permissions for the action, 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@ .+dfiaDryRun :: Lens' DescribeFpgaImageAttribute (Maybe Bool)+dfiaDryRun = lens _dfiaDryRun (\ s a -> s{_dfiaDryRun = a});++-- | The ID of the AFI.+dfiaFpgaImageId :: Lens' DescribeFpgaImageAttribute Text+dfiaFpgaImageId = lens _dfiaFpgaImageId (\ s a -> s{_dfiaFpgaImageId = a});++-- | The AFI attribute.+dfiaAttribute :: Lens' DescribeFpgaImageAttribute FpgaImageAttributeName+dfiaAttribute = lens _dfiaAttribute (\ s a -> s{_dfiaAttribute = a});++instance AWSRequest DescribeFpgaImageAttribute where+        type Rs DescribeFpgaImageAttribute =+             DescribeFpgaImageAttributeResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeFpgaImageAttributeResponse' <$>+                   (x .@? "fpgaImageAttribute") <*> (pure (fromEnum s)))++instance Hashable DescribeFpgaImageAttribute where++instance NFData DescribeFpgaImageAttribute where++instance ToHeaders DescribeFpgaImageAttribute where+        toHeaders = const mempty++instance ToPath DescribeFpgaImageAttribute where+        toPath = const "/"++instance ToQuery DescribeFpgaImageAttribute where+        toQuery DescribeFpgaImageAttribute'{..}+          = mconcat+              ["Action" =:+                 ("DescribeFpgaImageAttribute" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "DryRun" =: _dfiaDryRun,+               "FpgaImageId" =: _dfiaFpgaImageId,+               "Attribute" =: _dfiaAttribute]++-- | /See:/ 'describeFpgaImageAttributeResponse' smart constructor.+data DescribeFpgaImageAttributeResponse = DescribeFpgaImageAttributeResponse'+  { _dfiarsFpgaImageAttribute :: !(Maybe FpgaImageAttribute)+  , _dfiarsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeFpgaImageAttributeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfiarsFpgaImageAttribute' - Information about the attribute.+--+-- * 'dfiarsResponseStatus' - -- | The response status code.+describeFpgaImageAttributeResponse+    :: Int -- ^ 'dfiarsResponseStatus'+    -> DescribeFpgaImageAttributeResponse+describeFpgaImageAttributeResponse pResponseStatus_ =+  DescribeFpgaImageAttributeResponse'+  { _dfiarsFpgaImageAttribute = Nothing+  , _dfiarsResponseStatus = pResponseStatus_+  }+++-- | Information about the attribute.+dfiarsFpgaImageAttribute :: Lens' DescribeFpgaImageAttributeResponse (Maybe FpgaImageAttribute)+dfiarsFpgaImageAttribute = lens _dfiarsFpgaImageAttribute (\ s a -> s{_dfiarsFpgaImageAttribute = a});++-- | -- | The response status code.+dfiarsResponseStatus :: Lens' DescribeFpgaImageAttributeResponse Int+dfiarsResponseStatus = lens _dfiarsResponseStatus (\ s a -> s{_dfiarsResponseStatus = a});++instance NFData DescribeFpgaImageAttributeResponse+         where
+ gen/Network/AWS/EC2/DescribeFpgaImages.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeFpgaImages+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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+    (+    -- * Creating a Request+      describeFpgaImages+    , DescribeFpgaImages+    -- * Request Lenses+    , dfisOwners+    , dfisFilters+    , dfisNextToken+    , dfisDryRun+    , dfisMaxResults+    , dfisFpgaImageIds++    -- * Destructuring the Response+    , describeFpgaImagesResponse+    , DescribeFpgaImagesResponse+    -- * Response Lenses+    , dfirsFpgaImages+    , dfirsNextToken+    , dfirsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeFpgaImages' smart constructor.+data DescribeFpgaImages = DescribeFpgaImages'+  { _dfisOwners       :: !(Maybe [Text])+  , _dfisFilters      :: !(Maybe [Filter])+  , _dfisNextToken    :: !(Maybe Text)+  , _dfisDryRun       :: !(Maybe Bool)+  , _dfisMaxResults   :: !(Maybe Nat)+  , _dfisFpgaImageIds :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeFpgaImages' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfisOwners' - Filters the AFI by owner. Specify an AWS account ID, @self@ (owner is the sender of the request), or an AWS owner alias (valid values are @amazon@ | @aws-marketplace@ ).+--+-- * 'dfisFilters' - One or more filters.     * @create-time@ - The creation time of the AFI.     * @fpga-image-id@ - The FPGA image identifier (AFI ID).     * @fpga-image-global-id@ - The global FPGA image identifier (AGFI ID).     * @name@ - The name of the AFI.     * @owner-id@ - The AWS account ID of the AFI owner.     * @product-code@ - The product code.     * @shell-version@ - The version of the AWS Shell that was used to create the bitstream.     * @state@ - The state of the AFI (@pending@ | @failed@ | @available@ | @unavailable@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @update-time@ - The time of the most recent update.+--+-- * 'dfisNextToken' - The token to retrieve the next page of results.+--+-- * 'dfisDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'dfisMaxResults' - The maximum number of results to return in a single call.+--+-- * 'dfisFpgaImageIds' - One or more AFI IDs.+describeFpgaImages+    :: DescribeFpgaImages+describeFpgaImages =+  DescribeFpgaImages'+  { _dfisOwners = Nothing+  , _dfisFilters = Nothing+  , _dfisNextToken = Nothing+  , _dfisDryRun = Nothing+  , _dfisMaxResults = Nothing+  , _dfisFpgaImageIds = Nothing+  }+++-- | Filters the AFI by owner. Specify an AWS account ID, @self@ (owner is the sender of the request), or an AWS owner alias (valid values are @amazon@ | @aws-marketplace@ ).+dfisOwners :: Lens' DescribeFpgaImages [Text]+dfisOwners = lens _dfisOwners (\ s a -> s{_dfisOwners = a}) . _Default . _Coerce;++-- | One or more filters.     * @create-time@ - The creation time of the AFI.     * @fpga-image-id@ - The FPGA image identifier (AFI ID).     * @fpga-image-global-id@ - The global FPGA image identifier (AGFI ID).     * @name@ - The name of the AFI.     * @owner-id@ - The AWS account ID of the AFI owner.     * @product-code@ - The product code.     * @shell-version@ - The version of the AWS Shell that was used to create the bitstream.     * @state@ - The state of the AFI (@pending@ | @failed@ | @available@ | @unavailable@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @update-time@ - The time of the most recent update.+dfisFilters :: Lens' DescribeFpgaImages [Filter]+dfisFilters = lens _dfisFilters (\ s a -> s{_dfisFilters = a}) . _Default . _Coerce;++-- | The token to retrieve the next page of results.+dfisNextToken :: Lens' DescribeFpgaImages (Maybe Text)+dfisNextToken = lens _dfisNextToken (\ s a -> s{_dfisNextToken = a});++-- | Checks whether you have the required permissions for the action, 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@ .+dfisDryRun :: Lens' DescribeFpgaImages (Maybe Bool)+dfisDryRun = lens _dfisDryRun (\ s a -> s{_dfisDryRun = a});++-- | The maximum number of results to return in a single call.+dfisMaxResults :: Lens' DescribeFpgaImages (Maybe Natural)+dfisMaxResults = lens _dfisMaxResults (\ s a -> s{_dfisMaxResults = a}) . mapping _Nat;++-- | One or more AFI IDs.+dfisFpgaImageIds :: Lens' DescribeFpgaImages [Text]+dfisFpgaImageIds = lens _dfisFpgaImageIds (\ s a -> s{_dfisFpgaImageIds = a}) . _Default . _Coerce;++instance AWSRequest DescribeFpgaImages where+        type Rs DescribeFpgaImages =+             DescribeFpgaImagesResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeFpgaImagesResponse' <$>+                   (x .@? "fpgaImageSet" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeFpgaImages where++instance NFData DescribeFpgaImages where++instance ToHeaders DescribeFpgaImages where+        toHeaders = const mempty++instance ToPath DescribeFpgaImages where+        toPath = const "/"++instance ToQuery DescribeFpgaImages where+        toQuery DescribeFpgaImages'{..}+          = mconcat+              ["Action" =: ("DescribeFpgaImages" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               toQuery (toQueryList "Owner" <$> _dfisOwners),+               toQuery (toQueryList "Filter" <$> _dfisFilters),+               "NextToken" =: _dfisNextToken,+               "DryRun" =: _dfisDryRun,+               "MaxResults" =: _dfisMaxResults,+               toQuery+                 (toQueryList "FpgaImageId" <$> _dfisFpgaImageIds)]++-- | /See:/ 'describeFpgaImagesResponse' smart constructor.+data DescribeFpgaImagesResponse = DescribeFpgaImagesResponse'+  { _dfirsFpgaImages     :: !(Maybe [FpgaImage])+  , _dfirsNextToken      :: !(Maybe Text)+  , _dfirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeFpgaImagesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfirsFpgaImages' - Information about one or more FPGA images.+--+-- * 'dfirsNextToken' - The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+--+-- * 'dfirsResponseStatus' - -- | The response status code.+describeFpgaImagesResponse+    :: Int -- ^ 'dfirsResponseStatus'+    -> DescribeFpgaImagesResponse+describeFpgaImagesResponse pResponseStatus_ =+  DescribeFpgaImagesResponse'+  { _dfirsFpgaImages = Nothing+  , _dfirsNextToken = Nothing+  , _dfirsResponseStatus = pResponseStatus_+  }+++-- | Information about one or more FPGA images.+dfirsFpgaImages :: Lens' DescribeFpgaImagesResponse [FpgaImage]+dfirsFpgaImages = lens _dfirsFpgaImages (\ s a -> s{_dfirsFpgaImages = a}) . _Default . _Coerce;++-- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+dfirsNextToken :: Lens' DescribeFpgaImagesResponse (Maybe Text)+dfirsNextToken = lens _dfirsNextToken (\ s a -> s{_dfirsNextToken = a});++-- | -- | The response status code.+dfirsResponseStatus :: Lens' DescribeFpgaImagesResponse Int+dfirsResponseStatus = lens _dfirsResponseStatus (\ s a -> s{_dfirsResponseStatus = a});++instance NFData DescribeFpgaImagesResponse where
gen/Network/AWS/EC2/DescribeHostReservationOfferings.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeHostReservationOfferings--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,23 +45,24 @@     , dhrorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'describeHostReservationOfferings' smart constructor. data DescribeHostReservationOfferings = DescribeHostReservationOfferings'-    { _dhroMaxDuration :: !(Maybe Int)-    , _dhroNextToken   :: !(Maybe Text)-    , _dhroMinDuration :: !(Maybe Int)-    , _dhroOfferingId  :: !(Maybe Text)-    , _dhroFilter      :: !(Maybe [Filter])-    , _dhroMaxResults  :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhroMaxDuration :: !(Maybe Int)+  , _dhroNextToken   :: !(Maybe Text)+  , _dhroMinDuration :: !(Maybe Int)+  , _dhroOfferingId  :: !(Maybe Text)+  , _dhroFilter      :: !(Maybe [Filter])+  , _dhroMaxResults  :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHostReservationOfferings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,21 +75,22 @@ -- -- * 'dhroOfferingId' - The ID of the reservation offering. ----- * 'dhroFilter' - One or more filters.     * @instance-family@ - The instance family of the offering (e.g., @m4@ ).     * @payment-option@ - The payment option (@No Upfront@ | @Partial Upfront@ | @All Upfront@ ).+-- * 'dhroFilter' - One or more filters.     * @instance-family@ - The instance family of the offering (e.g., @m4@ ).     * @payment-option@ - The payment option (@NoUpfront@ | @PartialUpfront@ | @AllUpfront@ ). -- -- * 'dhroMaxResults' - 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 @nextToken@ value. This value can be between 5 and 500; if @maxResults@ is given a larger value than 500, you will receive an error. describeHostReservationOfferings     :: DescribeHostReservationOfferings describeHostReservationOfferings =-    DescribeHostReservationOfferings'-    { _dhroMaxDuration = Nothing-    , _dhroNextToken = Nothing-    , _dhroMinDuration = Nothing-    , _dhroOfferingId = Nothing-    , _dhroFilter = Nothing-    , _dhroMaxResults = Nothing-    }+  DescribeHostReservationOfferings'+  { _dhroMaxDuration = Nothing+  , _dhroNextToken = Nothing+  , _dhroMinDuration = Nothing+  , _dhroOfferingId = Nothing+  , _dhroFilter = Nothing+  , _dhroMaxResults = Nothing+  } + -- | 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) dhroMaxDuration = lens _dhroMaxDuration (\ s a -> s{_dhroMaxDuration = a});@@ -105,7 +107,7 @@ dhroOfferingId :: Lens' DescribeHostReservationOfferings (Maybe Text) dhroOfferingId = lens _dhroOfferingId (\ s a -> s{_dhroOfferingId = a}); --- | One or more filters.     * @instance-family@ - The instance family of the offering (e.g., @m4@ ).     * @payment-option@ - The payment option (@No Upfront@ | @Partial Upfront@ | @All Upfront@ ).+-- | One or more filters.     * @instance-family@ - The instance family of the offering (e.g., @m4@ ).     * @payment-option@ - The payment option (@NoUpfront@ | @PartialUpfront@ | @AllUpfront@ ). dhroFilter :: Lens' DescribeHostReservationOfferings [Filter] dhroFilter = lens _dhroFilter (\ s a -> s{_dhroFilter = a}) . _Default . _Coerce; @@ -123,13 +125,15 @@               (\ s h x ->                  DescribeHostReservationOfferingsResponse' <$>                    (x .@? "offeringSet" .!@ mempty >>=-                      may (parseXMLList "member"))+                      may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s)))  instance Hashable DescribeHostReservationOfferings+         where  instance NFData DescribeHostReservationOfferings+         where  instance ToHeaders DescribeHostReservationOfferings          where@@ -155,11 +159,12 @@  -- | /See:/ 'describeHostReservationOfferingsResponse' smart constructor. data DescribeHostReservationOfferingsResponse = DescribeHostReservationOfferingsResponse'-    { _dhrorsOfferingSet    :: !(Maybe [HostOffering])-    , _dhrorsNextToken      :: !(Maybe Text)-    , _dhrorsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhrorsOfferingSet    :: !(Maybe [HostOffering])+  , _dhrorsNextToken      :: !(Maybe Text)+  , _dhrorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHostReservationOfferingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -173,12 +178,13 @@     :: Int -- ^ 'dhrorsResponseStatus'     -> DescribeHostReservationOfferingsResponse describeHostReservationOfferingsResponse pResponseStatus_ =-    DescribeHostReservationOfferingsResponse'-    { _dhrorsOfferingSet = Nothing-    , _dhrorsNextToken = Nothing-    , _dhrorsResponseStatus = pResponseStatus_-    }+  DescribeHostReservationOfferingsResponse'+  { _dhrorsOfferingSet = Nothing+  , _dhrorsNextToken = Nothing+  , _dhrorsResponseStatus = pResponseStatus_+  } + -- | Information about the offerings. dhrorsOfferingSet :: Lens' DescribeHostReservationOfferingsResponse [HostOffering] dhrorsOfferingSet = lens _dhrorsOfferingSet (\ s a -> s{_dhrorsOfferingSet = a}) . _Default . _Coerce;@@ -192,4 +198,5 @@ dhrorsResponseStatus = lens _dhrorsResponseStatus (\ s a -> s{_dhrorsResponseStatus = a});  instance NFData-         DescribeHostReservationOfferingsResponse+           DescribeHostReservationOfferingsResponse+         where
gen/Network/AWS/EC2/DescribeHostReservations.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeHostReservations--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,21 +41,22 @@     , dhrrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'describeHostReservations' smart constructor. data DescribeHostReservations = DescribeHostReservations'-    { _dhrNextToken            :: !(Maybe Text)-    , _dhrHostReservationIdSet :: !(Maybe [Text])-    , _dhrFilter               :: !(Maybe [Filter])-    , _dhrMaxResults           :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhrNextToken            :: !(Maybe Text)+  , _dhrHostReservationIdSet :: !(Maybe [Text])+  , _dhrFilter               :: !(Maybe [Filter])+  , _dhrMaxResults           :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHostReservations' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,19 +65,20 @@ -- -- * 'dhrHostReservationIdSet' - One or more host reservation IDs. ----- * 'dhrFilter' - One or more filters.     * @instance-family@ - The instance family (e.g., @m4@ ).     * @payment-option@ - The payment option (@No Upfront@ | @Partial Upfront@ | @All Upfront@ ).     * @state@ - The state of the reservation (@payment-pending@ | @payment-failed@ | @active@ | @retired@ ).+-- * 'dhrFilter' - One or more filters.     * @instance-family@ - The instance family (e.g., @m4@ ).     * @payment-option@ - The payment option (@NoUpfront@ | @PartialUpfront@ | @AllUpfront@ ).     * @state@ - The state of the reservation (@payment-pending@ | @payment-failed@ | @active@ | @retired@ ). -- -- * 'dhrMaxResults' - 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 @nextToken@ value. This value can be between 5 and 500; if @maxResults@ is given a larger value than 500, you will receive an error. describeHostReservations     :: DescribeHostReservations describeHostReservations =-    DescribeHostReservations'-    { _dhrNextToken = Nothing-    , _dhrHostReservationIdSet = Nothing-    , _dhrFilter = Nothing-    , _dhrMaxResults = Nothing-    }+  DescribeHostReservations'+  { _dhrNextToken = Nothing+  , _dhrHostReservationIdSet = Nothing+  , _dhrFilter = Nothing+  , _dhrMaxResults = Nothing+  } + -- | The token to use to retrieve the next page of results. dhrNextToken :: Lens' DescribeHostReservations (Maybe Text) dhrNextToken = lens _dhrNextToken (\ s a -> s{_dhrNextToken = a});@@ -85,7 +87,7 @@ dhrHostReservationIdSet :: Lens' DescribeHostReservations [Text] dhrHostReservationIdSet = lens _dhrHostReservationIdSet (\ s a -> s{_dhrHostReservationIdSet = a}) . _Default . _Coerce; --- | One or more filters.     * @instance-family@ - The instance family (e.g., @m4@ ).     * @payment-option@ - The payment option (@No Upfront@ | @Partial Upfront@ | @All Upfront@ ).     * @state@ - The state of the reservation (@payment-pending@ | @payment-failed@ | @active@ | @retired@ ).+-- | One or more filters.     * @instance-family@ - The instance family (e.g., @m4@ ).     * @payment-option@ - The payment option (@NoUpfront@ | @PartialUpfront@ | @AllUpfront@ ).     * @state@ - The state of the reservation (@payment-pending@ | @payment-failed@ | @active@ | @retired@ ). dhrFilter :: Lens' DescribeHostReservations [Filter] dhrFilter = lens _dhrFilter (\ s a -> s{_dhrFilter = a}) . _Default . _Coerce; @@ -103,12 +105,12 @@                  DescribeHostReservationsResponse' <$>                    (x .@? "nextToken") <*>                      (x .@? "hostReservationSet" .!@ mempty >>=-                        may (parseXMLList "member"))+                        may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeHostReservations+instance Hashable DescribeHostReservations where -instance NFData DescribeHostReservations+instance NFData DescribeHostReservations where  instance ToHeaders DescribeHostReservations where         toHeaders = const mempty@@ -131,11 +133,12 @@  -- | /See:/ 'describeHostReservationsResponse' smart constructor. data DescribeHostReservationsResponse = DescribeHostReservationsResponse'-    { _dhrrsNextToken          :: !(Maybe Text)-    , _dhrrsHostReservationSet :: !(Maybe [HostReservation])-    , _dhrrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhrrsNextToken          :: !(Maybe Text)+  , _dhrrsHostReservationSet :: !(Maybe [HostReservation])+  , _dhrrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHostReservationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -149,12 +152,13 @@     :: Int -- ^ 'dhrrsResponseStatus'     -> DescribeHostReservationsResponse describeHostReservationsResponse pResponseStatus_ =-    DescribeHostReservationsResponse'-    { _dhrrsNextToken = Nothing-    , _dhrrsHostReservationSet = Nothing-    , _dhrrsResponseStatus = pResponseStatus_-    }+  DescribeHostReservationsResponse'+  { _dhrrsNextToken = Nothing+  , _dhrrsHostReservationSet = Nothing+  , _dhrrsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. dhrrsNextToken :: Lens' DescribeHostReservationsResponse (Maybe Text) dhrrsNextToken = lens _dhrrsNextToken (\ s a -> s{_dhrrsNextToken = a});@@ -168,3 +172,4 @@ dhrrsResponseStatus = lens _dhrrsResponseStatus (\ s a -> s{_dhrrsResponseStatus = a});  instance NFData DescribeHostReservationsResponse+         where
gen/Network/AWS/EC2/DescribeHosts.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeHosts--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , dhrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeHosts. --@@ -56,12 +56,13 @@ -- -- /See:/ 'describeHosts' smart constructor. data DescribeHosts = DescribeHosts'-    { _dhNextToken  :: !(Maybe Text)-    , _dhFilter     :: !(Maybe [Filter])-    , _dhHostIds    :: !(Maybe [Text])-    , _dhMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhNextToken  :: !(Maybe Text)+  , _dhFilter     :: !(Maybe [Filter])+  , _dhHostIds    :: !(Maybe [Text])+  , _dhMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHosts' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,13 +77,14 @@ describeHosts     :: DescribeHosts describeHosts =-    DescribeHosts'-    { _dhNextToken = Nothing-    , _dhFilter = Nothing-    , _dhHostIds = Nothing-    , _dhMaxResults = Nothing-    }+  DescribeHosts'+  { _dhNextToken = Nothing+  , _dhFilter = Nothing+  , _dhHostIds = Nothing+  , _dhMaxResults = Nothing+  } + -- | The token to retrieve the next page of results. dhNextToken :: Lens' DescribeHosts (Maybe Text) dhNextToken = lens _dhNextToken (\ s a -> s{_dhNextToken = a});@@ -111,9 +113,9 @@                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeHosts+instance Hashable DescribeHosts where -instance NFData DescribeHosts+instance NFData DescribeHosts where  instance ToHeaders DescribeHosts where         toHeaders = const mempty@@ -137,11 +139,12 @@ -- -- /See:/ 'describeHostsResponse' smart constructor. data DescribeHostsResponse = DescribeHostsResponse'-    { _dhrsHosts          :: !(Maybe [Host])-    , _dhrsNextToken      :: !(Maybe Text)-    , _dhrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dhrsHosts          :: !(Maybe [Host])+  , _dhrsNextToken      :: !(Maybe Text)+  , _dhrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeHostsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -155,12 +158,13 @@     :: Int -- ^ 'dhrsResponseStatus'     -> DescribeHostsResponse describeHostsResponse pResponseStatus_ =-    DescribeHostsResponse'-    { _dhrsHosts = Nothing-    , _dhrsNextToken = Nothing-    , _dhrsResponseStatus = pResponseStatus_-    }+  DescribeHostsResponse'+  { _dhrsHosts = Nothing+  , _dhrsNextToken = Nothing+  , _dhrsResponseStatus = pResponseStatus_+  } + -- | Information about the Dedicated Hosts. dhrsHosts :: Lens' DescribeHostsResponse [Host] dhrsHosts = lens _dhrsHosts (\ s a -> s{_dhrsHosts = a}) . _Default . _Coerce;@@ -173,4 +177,4 @@ dhrsResponseStatus :: Lens' DescribeHostsResponse Int dhrsResponseStatus = lens _dhrsResponseStatus (\ s a -> s{_dhrsResponseStatus = a}); -instance NFData DescribeHostsResponse+instance NFData DescribeHostsResponse where
+ gen/Network/AWS/EC2/DescribeIAMInstanceProfileAssociations.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeIAMInstanceProfileAssociations+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes your IAM instance profile associations.+--+--+module Network.AWS.EC2.DescribeIAMInstanceProfileAssociations+    (+    -- * Creating a Request+      describeIAMInstanceProfileAssociations+    , DescribeIAMInstanceProfileAssociations+    -- * Request Lenses+    , diapaFilters+    , diapaNextToken+    , diapaAssociationIds+    , diapaMaxResults++    -- * Destructuring the Response+    , describeIAMInstanceProfileAssociationsResponse+    , DescribeIAMInstanceProfileAssociationsResponse+    -- * Response Lenses+    , diaparsIAMInstanceProfileAssociations+    , diaparsNextToken+    , diaparsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeIAMInstanceProfileAssociations' smart constructor.+data DescribeIAMInstanceProfileAssociations = DescribeIAMInstanceProfileAssociations'+  { _diapaFilters        :: !(Maybe [Filter])+  , _diapaNextToken      :: !(Maybe Text)+  , _diapaAssociationIds :: !(Maybe [Text])+  , _diapaMaxResults     :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeIAMInstanceProfileAssociations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diapaFilters' - One or more filters.     * @instance-id@ - The ID of the instance.     * @state@ - The state of the association (@associating@ | @associated@ | @disassociating@ | @disassociated@ ).+--+-- * 'diapaNextToken' - The token to request the next page of results.+--+-- * 'diapaAssociationIds' - One or more IAM instance profile associations.+--+-- * 'diapaMaxResults' - The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned @NextToken@ value.+describeIAMInstanceProfileAssociations+    :: DescribeIAMInstanceProfileAssociations+describeIAMInstanceProfileAssociations =+  DescribeIAMInstanceProfileAssociations'+  { _diapaFilters = Nothing+  , _diapaNextToken = Nothing+  , _diapaAssociationIds = Nothing+  , _diapaMaxResults = Nothing+  }+++-- | One or more filters.     * @instance-id@ - The ID of the instance.     * @state@ - The state of the association (@associating@ | @associated@ | @disassociating@ | @disassociated@ ).+diapaFilters :: Lens' DescribeIAMInstanceProfileAssociations [Filter]+diapaFilters = lens _diapaFilters (\ s a -> s{_diapaFilters = a}) . _Default . _Coerce;++-- | The token to request the next page of results.+diapaNextToken :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Text)+diapaNextToken = lens _diapaNextToken (\ s a -> s{_diapaNextToken = a});++-- | One or more IAM instance profile associations.+diapaAssociationIds :: Lens' DescribeIAMInstanceProfileAssociations [Text]+diapaAssociationIds = lens _diapaAssociationIds (\ s a -> s{_diapaAssociationIds = a}) . _Default . _Coerce;++-- | The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned @NextToken@ value.+diapaMaxResults :: Lens' DescribeIAMInstanceProfileAssociations (Maybe Natural)+diapaMaxResults = lens _diapaMaxResults (\ s a -> s{_diapaMaxResults = a}) . mapping _Nat;++instance AWSRequest+           DescribeIAMInstanceProfileAssociations+         where+        type Rs DescribeIAMInstanceProfileAssociations =+             DescribeIAMInstanceProfileAssociationsResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeIAMInstanceProfileAssociationsResponse' <$>+                   (x .@? "iamInstanceProfileAssociationSet" .!@ mempty+                      >>= may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable+           DescribeIAMInstanceProfileAssociations+         where++instance NFData+           DescribeIAMInstanceProfileAssociations+         where++instance ToHeaders+           DescribeIAMInstanceProfileAssociations+         where+        toHeaders = const mempty++instance ToPath+           DescribeIAMInstanceProfileAssociations+         where+        toPath = const "/"++instance ToQuery+           DescribeIAMInstanceProfileAssociations+         where+        toQuery DescribeIAMInstanceProfileAssociations'{..}+          = mconcat+              ["Action" =:+                 ("DescribeIamInstanceProfileAssociations" ::+                    ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               toQuery (toQueryList "Filter" <$> _diapaFilters),+               "NextToken" =: _diapaNextToken,+               toQuery+                 (toQueryList "AssociationId" <$>+                    _diapaAssociationIds),+               "MaxResults" =: _diapaMaxResults]++-- | /See:/ 'describeIAMInstanceProfileAssociationsResponse' smart constructor.+data DescribeIAMInstanceProfileAssociationsResponse = DescribeIAMInstanceProfileAssociationsResponse'+  { _diaparsIAMInstanceProfileAssociations :: !(Maybe [IAMInstanceProfileAssociation])+  , _diaparsNextToken :: !(Maybe Text)+  , _diaparsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeIAMInstanceProfileAssociationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diaparsIAMInstanceProfileAssociations' - Information about one or more IAM instance profile associations.+--+-- * 'diaparsNextToken' - The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+--+-- * 'diaparsResponseStatus' - -- | The response status code.+describeIAMInstanceProfileAssociationsResponse+    :: Int -- ^ 'diaparsResponseStatus'+    -> DescribeIAMInstanceProfileAssociationsResponse+describeIAMInstanceProfileAssociationsResponse pResponseStatus_ =+  DescribeIAMInstanceProfileAssociationsResponse'+  { _diaparsIAMInstanceProfileAssociations = Nothing+  , _diaparsNextToken = Nothing+  , _diaparsResponseStatus = pResponseStatus_+  }+++-- | Information about one or more IAM instance profile associations.+diaparsIAMInstanceProfileAssociations :: Lens' DescribeIAMInstanceProfileAssociationsResponse [IAMInstanceProfileAssociation]+diaparsIAMInstanceProfileAssociations = lens _diaparsIAMInstanceProfileAssociations (\ s a -> s{_diaparsIAMInstanceProfileAssociations = a}) . _Default . _Coerce;++-- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+diaparsNextToken :: Lens' DescribeIAMInstanceProfileAssociationsResponse (Maybe Text)+diaparsNextToken = lens _diaparsNextToken (\ s a -> s{_diaparsNextToken = a});++-- | -- | The response status code.+diaparsResponseStatus :: Lens' DescribeIAMInstanceProfileAssociationsResponse Int+diaparsResponseStatus = lens _diaparsResponseStatus (\ s a -> s{_diaparsResponseStatus = a});++instance NFData+           DescribeIAMInstanceProfileAssociationsResponse+         where
gen/Network/AWS/EC2/DescribeIdFormat.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeIdFormat--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , difrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeIdFormat. --@@ -54,9 +54,10 @@ -- -- /See:/ 'describeIdFormat' smart constructor. newtype DescribeIdFormat = DescribeIdFormat'-    { _difResource :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _difResource :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeIdFormat' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,11 +65,9 @@ -- * 'difResource' - The type of resource: @instance@ | @reservation@ | @snapshot@ | @volume@ describeIdFormat     :: DescribeIdFormat-describeIdFormat =-    DescribeIdFormat'-    { _difResource = Nothing-    }+describeIdFormat = DescribeIdFormat' {_difResource = Nothing} + -- | The type of resource: @instance@ | @reservation@ | @snapshot@ | @volume@ difResource :: Lens' DescribeIdFormat (Maybe Text) difResource = lens _difResource (\ s a -> s{_difResource = a});@@ -84,9 +83,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeIdFormat+instance Hashable DescribeIdFormat where -instance NFData DescribeIdFormat+instance NFData DescribeIdFormat where  instance ToHeaders DescribeIdFormat where         toHeaders = const mempty@@ -107,10 +106,11 @@ -- -- /See:/ 'describeIdFormatResponse' smart constructor. data DescribeIdFormatResponse = DescribeIdFormatResponse'-    { _difrsStatuses       :: !(Maybe [IdFormat])-    , _difrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _difrsStatuses       :: !(Maybe [IdFormat])+  , _difrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeIdFormatResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -122,11 +122,10 @@     :: Int -- ^ 'difrsResponseStatus'     -> DescribeIdFormatResponse describeIdFormatResponse pResponseStatus_ =-    DescribeIdFormatResponse'-    { _difrsStatuses = Nothing-    , _difrsResponseStatus = pResponseStatus_-    }+  DescribeIdFormatResponse'+  {_difrsStatuses = Nothing, _difrsResponseStatus = pResponseStatus_} + -- | Information about the ID format for the resource. difrsStatuses :: Lens' DescribeIdFormatResponse [IdFormat] difrsStatuses = lens _difrsStatuses (\ s a -> s{_difrsStatuses = a}) . _Default . _Coerce;@@ -135,4 +134,4 @@ difrsResponseStatus :: Lens' DescribeIdFormatResponse Int difrsResponseStatus = lens _difrsResponseStatus (\ s a -> s{_difrsResponseStatus = a}); -instance NFData DescribeIdFormatResponse+instance NFData DescribeIdFormatResponse where
gen/Network/AWS/EC2/DescribeIdentityIdFormat.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeIdentityIdFormat--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , diifrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeIdentityIdFormat. --@@ -55,10 +55,11 @@ -- -- /See:/ 'describeIdentityIdFormat' smart constructor. data DescribeIdentityIdFormat = DescribeIdentityIdFormat'-    { _diifResource     :: !(Maybe Text)-    , _diifPrincipalARN :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diifResource     :: !(Maybe Text)+  , _diifPrincipalARN :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeIdentityIdFormat' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,11 +71,10 @@     :: Text -- ^ 'diifPrincipalARN'     -> DescribeIdentityIdFormat describeIdentityIdFormat pPrincipalARN_ =-    DescribeIdentityIdFormat'-    { _diifResource = Nothing-    , _diifPrincipalARN = pPrincipalARN_-    }+  DescribeIdentityIdFormat'+  {_diifResource = Nothing, _diifPrincipalARN = pPrincipalARN_} + -- | The type of resource: @instance@ | @reservation@ | @snapshot@ | @volume@ diifResource :: Lens' DescribeIdentityIdFormat (Maybe Text) diifResource = lens _diifResource (\ s a -> s{_diifResource = a});@@ -95,9 +95,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeIdentityIdFormat+instance Hashable DescribeIdentityIdFormat where -instance NFData DescribeIdentityIdFormat+instance NFData DescribeIdentityIdFormat where  instance ToHeaders DescribeIdentityIdFormat where         toHeaders = const mempty@@ -120,10 +120,11 @@ -- -- /See:/ 'describeIdentityIdFormatResponse' smart constructor. data DescribeIdentityIdFormatResponse = DescribeIdentityIdFormatResponse'-    { _diifrsStatuses       :: !(Maybe [IdFormat])-    , _diifrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diifrsStatuses       :: !(Maybe [IdFormat])+  , _diifrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeIdentityIdFormatResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -135,11 +136,10 @@     :: Int -- ^ 'diifrsResponseStatus'     -> DescribeIdentityIdFormatResponse describeIdentityIdFormatResponse pResponseStatus_ =-    DescribeIdentityIdFormatResponse'-    { _diifrsStatuses = Nothing-    , _diifrsResponseStatus = pResponseStatus_-    }+  DescribeIdentityIdFormatResponse'+  {_diifrsStatuses = Nothing, _diifrsResponseStatus = pResponseStatus_} + -- | Information about the ID format for the resources. diifrsStatuses :: Lens' DescribeIdentityIdFormatResponse [IdFormat] diifrsStatuses = lens _diifrsStatuses (\ s a -> s{_diifrsStatuses = a}) . _Default . _Coerce;@@ -149,3 +149,4 @@ diifrsResponseStatus = lens _diifrsResponseStatus (\ s a -> s{_diifrsResponseStatus = a});  instance NFData DescribeIdentityIdFormatResponse+         where
gen/Network/AWS/EC2/DescribeImageAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeImageAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,8 +28,8 @@     , DescribeImageAttribute     -- * Request Lenses     , diaiDryRun-    , diaiImageId     , diaiAttribute+    , diaiImageId      -- * Destructuring the Response     , describeImageAttributeResponse@@ -46,12 +46,12 @@     , diarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeImageAttribute. --@@ -59,43 +59,45 @@ -- -- /See:/ 'describeImageAttribute' smart constructor. data DescribeImageAttribute = DescribeImageAttribute'-    { _diaiDryRun    :: !(Maybe Bool)-    , _diaiImageId   :: !Text-    , _diaiAttribute :: !ImageAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diaiDryRun    :: !(Maybe Bool)+  , _diaiAttribute :: !ImageAttributeName+  , _diaiImageId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImageAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'diaiDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'diaiImageId' - The ID of the AMI.--- -- * 'diaiAttribute' - The AMI attribute. __Note__ : Depending on your account privileges, the @blockDeviceMapping@ attribute may return a @Client.AuthFailure@ error. If this happens, use 'DescribeImages' to get information about the block device mapping for the AMI.+--+-- * 'diaiImageId' - The ID of the AMI. describeImageAttribute-    :: Text -- ^ 'diaiImageId'-    -> ImageAttributeName -- ^ 'diaiAttribute'+    :: ImageAttributeName -- ^ 'diaiAttribute'+    -> Text -- ^ 'diaiImageId'     -> DescribeImageAttribute-describeImageAttribute pImageId_ pAttribute_ =-    DescribeImageAttribute'-    { _diaiDryRun = Nothing-    , _diaiImageId = pImageId_-    , _diaiAttribute = pAttribute_-    }+describeImageAttribute pAttribute_ pImageId_ =+  DescribeImageAttribute'+  { _diaiDryRun = Nothing+  , _diaiAttribute = pAttribute_+  , _diaiImageId = pImageId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . diaiDryRun :: Lens' DescribeImageAttribute (Maybe Bool) diaiDryRun = lens _diaiDryRun (\ s a -> s{_diaiDryRun = a}); --- | The ID of the AMI.-diaiImageId :: Lens' DescribeImageAttribute Text-diaiImageId = lens _diaiImageId (\ s a -> s{_diaiImageId = a});- -- | The AMI attribute. __Note__ : Depending on your account privileges, the @blockDeviceMapping@ attribute may return a @Client.AuthFailure@ error. If this happens, use 'DescribeImages' to get information about the block device mapping for the AMI. diaiAttribute :: Lens' DescribeImageAttribute ImageAttributeName diaiAttribute = lens _diaiAttribute (\ s a -> s{_diaiAttribute = a}); +-- | The ID of the AMI.+diaiImageId :: Lens' DescribeImageAttribute Text+diaiImageId = lens _diaiImageId (\ s a -> s{_diaiImageId = a});+ instance AWSRequest DescribeImageAttribute where         type Rs DescribeImageAttribute =              DescribeImageAttributeResponse@@ -119,9 +121,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeImageAttribute+instance Hashable DescribeImageAttribute where -instance NFData DescribeImageAttribute+instance NFData DescribeImageAttribute where  instance ToHeaders DescribeImageAttribute where         toHeaders = const mempty@@ -135,8 +137,9 @@               ["Action" =:                  ("DescribeImageAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _diaiDryRun, "ImageId" =: _diaiImageId,-               "Attribute" =: _diaiAttribute]+               "DryRun" =: _diaiDryRun,+               "Attribute" =: _diaiAttribute,+               "ImageId" =: _diaiImageId]  -- | Describes an image attribute. --@@ -144,17 +147,18 @@ -- -- /See:/ 'describeImageAttributeResponse' smart constructor. data DescribeImageAttributeResponse = DescribeImageAttributeResponse'-    { _diarsLaunchPermissions   :: !(Maybe [LaunchPermission])-    , _diarsRAMDiskId           :: !(Maybe AttributeValue)-    , _diarsKernelId            :: !(Maybe AttributeValue)-    , _diarsSRIOVNetSupport     :: !(Maybe AttributeValue)-    , _diarsImageId             :: !(Maybe Text)-    , _diarsProductCodes        :: !(Maybe [ProductCode])-    , _diarsDescription         :: !(Maybe AttributeValue)-    , _diarsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _diarsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diarsLaunchPermissions   :: !(Maybe [LaunchPermission])+  , _diarsRAMDiskId           :: !(Maybe AttributeValue)+  , _diarsKernelId            :: !(Maybe AttributeValue)+  , _diarsSRIOVNetSupport     :: !(Maybe AttributeValue)+  , _diarsImageId             :: !(Maybe Text)+  , _diarsProductCodes        :: !(Maybe [ProductCode])+  , _diarsDescription         :: !(Maybe AttributeValue)+  , _diarsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _diarsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImageAttributeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -180,18 +184,19 @@     :: Int -- ^ 'diarsResponseStatus'     -> DescribeImageAttributeResponse describeImageAttributeResponse pResponseStatus_ =-    DescribeImageAttributeResponse'-    { _diarsLaunchPermissions = Nothing-    , _diarsRAMDiskId = Nothing-    , _diarsKernelId = Nothing-    , _diarsSRIOVNetSupport = Nothing-    , _diarsImageId = Nothing-    , _diarsProductCodes = Nothing-    , _diarsDescription = Nothing-    , _diarsBlockDeviceMappings = Nothing-    , _diarsResponseStatus = pResponseStatus_-    }+  DescribeImageAttributeResponse'+  { _diarsLaunchPermissions = Nothing+  , _diarsRAMDiskId = Nothing+  , _diarsKernelId = Nothing+  , _diarsSRIOVNetSupport = Nothing+  , _diarsImageId = Nothing+  , _diarsProductCodes = Nothing+  , _diarsDescription = Nothing+  , _diarsBlockDeviceMappings = Nothing+  , _diarsResponseStatus = pResponseStatus_+  } + -- | One or more launch permissions. diarsLaunchPermissions :: Lens' DescribeImageAttributeResponse [LaunchPermission] diarsLaunchPermissions = lens _diarsLaunchPermissions (\ s a -> s{_diarsLaunchPermissions = a}) . _Default . _Coerce;@@ -228,4 +233,4 @@ diarsResponseStatus :: Lens' DescribeImageAttributeResponse Int diarsResponseStatus = lens _diarsResponseStatus (\ s a -> s{_diarsResponseStatus = a}); -instance NFData DescribeImageAttributeResponse+instance NFData DescribeImageAttributeResponse where
gen/Network/AWS/EC2/DescribeImages.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeImages--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,16 +37,16 @@     , describeImagesResponse     , DescribeImagesResponse     -- * Response Lenses-    , desrsImages-    , desrsResponseStatus+    , diirsImages+    , diirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeImages. --@@ -54,13 +54,14 @@ -- -- /See:/ 'describeImages' smart constructor. data DescribeImages = DescribeImages'-    { _deseOwners          :: !(Maybe [Text])-    , _deseExecutableUsers :: !(Maybe [Text])-    , _deseFilters         :: !(Maybe [Filter])-    , _deseImageIds        :: !(Maybe [Text])-    , _deseDryRun          :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _deseOwners          :: !(Maybe [Text])+  , _deseExecutableUsers :: !(Maybe [Text])+  , _deseFilters         :: !(Maybe [Filter])+  , _deseImageIds        :: !(Maybe [Text])+  , _deseDryRun          :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImages' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,7 +70,7 @@ -- -- * 'deseExecutableUsers' - Scopes the images by users with explicit launch permissions. Specify an AWS account ID, @self@ (the sender of the request), or @all@ (public AMIs). ----- * 'deseFilters' - One or more filters.     * @architecture@ - The image architecture (@i386@ | @x86_64@ ).     * @block-device-mapping.delete-on-termination@ - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name for the EBS volume (for example, @/dev/sdh@ ).     * @block-device-mapping.snapshot-id@ - The ID of the snapshot used for the EBS volume.     * @block-device-mapping.volume-size@ - The volume size of the EBS volume, in GiB.     * @block-device-mapping.volume-type@ - The volume type of the EBS volume (@gp2@ | @io1@ | @st1 @ | @sc1@ | @standard@ ).     * @description@ - The description of the image (provided during image creation).     * @ena-support@ - A Boolean that indicates whether enhanced networking with ENA is enabled.     * @hypervisor@ - The hypervisor type (@ovm@ | @xen@ ).     * @image-id@ - The ID of the image.     * @image-type@ - The image type (@machine@ | @kernel@ | @ramdisk@ ).     * @is-public@ - A Boolean that indicates whether the image is public.     * @kernel-id@ - The kernel ID.     * @manifest-location@ - The location of the image manifest.     * @name@ - The name of the AMI (provided during image creation).     * @owner-alias@ - String value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.     * @owner-id@ - The AWS account ID of the image owner.     * @platform@ - The platform. To only list Windows-based AMIs, use @windows@ .     * @product-code@ - The product code.     * @product-code.type@ - The type of the product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @root-device-name@ - The name of the root device volume (for example, @/dev/sda1@ ).     * @root-device-type@ - The type of the root device volume (@ebs@ | @instance-store@ ).     * @state@ - The state of the image (@available@ | @pending@ | @failed@ ).     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - The message for the state change.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @virtualization-type@ - The virtualization type (@paravirtual@ | @hvm@ ).+-- * 'deseFilters' - One or more filters.     * @architecture@ - The image architecture (@i386@ | @x86_64@ ).     * @block-device-mapping.delete-on-termination@ - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name specified in the block device mapping (for example, @/dev/sdh@ or @xvdh@ ).     * @block-device-mapping.snapshot-id@ - The ID of the snapshot used for the EBS volume.     * @block-device-mapping.volume-size@ - The volume size of the EBS volume, in GiB.     * @block-device-mapping.volume-type@ - The volume type of the EBS volume (@gp2@ | @io1@ | @st1 @ | @sc1@ | @standard@ ).     * @description@ - The description of the image (provided during image creation).     * @ena-support@ - A Boolean that indicates whether enhanced networking with ENA is enabled.     * @hypervisor@ - The hypervisor type (@ovm@ | @xen@ ).     * @image-id@ - The ID of the image.     * @image-type@ - The image type (@machine@ | @kernel@ | @ramdisk@ ).     * @is-public@ - A Boolean that indicates whether the image is public.     * @kernel-id@ - The kernel ID.     * @manifest-location@ - The location of the image manifest.     * @name@ - The name of the AMI (provided during image creation).     * @owner-alias@ - String value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.     * @owner-id@ - The AWS account ID of the image owner.     * @platform@ - The platform. To only list Windows-based AMIs, use @windows@ .     * @product-code@ - The product code.     * @product-code.type@ - The type of the product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @root-device-name@ - The device name of the root device volume (for example, @/dev/sda1@ ).     * @root-device-type@ - The type of the root device volume (@ebs@ | @instance-store@ ).     * @state@ - The state of the image (@available@ | @pending@ | @failed@ ).     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - The message for the state change.     * @sriov-net-support@ - A value of @simple@ indicates that enhanced networking with the Intel 82599 VF interface is enabled.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @virtualization-type@ - The virtualization type (@paravirtual@ | @hvm@ ). -- -- * 'deseImageIds' - One or more image IDs. Default: Describes all images available to you. --@@ -77,14 +78,15 @@ describeImages     :: DescribeImages describeImages =-    DescribeImages'-    { _deseOwners = Nothing-    , _deseExecutableUsers = Nothing-    , _deseFilters = Nothing-    , _deseImageIds = Nothing-    , _deseDryRun = Nothing-    }+  DescribeImages'+  { _deseOwners = Nothing+  , _deseExecutableUsers = Nothing+  , _deseFilters = Nothing+  , _deseImageIds = Nothing+  , _deseDryRun = Nothing+  } + -- | Filters the images by the owner. Specify an AWS account ID, @self@ (owner is the sender of the request), or an AWS owner alias (valid values are @amazon@ | @aws-marketplace@ | @microsoft@ ). Omitting this option returns all images for which you have launch permissions, regardless of ownership. deseOwners :: Lens' DescribeImages [Text] deseOwners = lens _deseOwners (\ s a -> s{_deseOwners = a}) . _Default . _Coerce;@@ -93,7 +95,7 @@ deseExecutableUsers :: Lens' DescribeImages [Text] deseExecutableUsers = lens _deseExecutableUsers (\ s a -> s{_deseExecutableUsers = a}) . _Default . _Coerce; --- | One or more filters.     * @architecture@ - The image architecture (@i386@ | @x86_64@ ).     * @block-device-mapping.delete-on-termination@ - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name for the EBS volume (for example, @/dev/sdh@ ).     * @block-device-mapping.snapshot-id@ - The ID of the snapshot used for the EBS volume.     * @block-device-mapping.volume-size@ - The volume size of the EBS volume, in GiB.     * @block-device-mapping.volume-type@ - The volume type of the EBS volume (@gp2@ | @io1@ | @st1 @ | @sc1@ | @standard@ ).     * @description@ - The description of the image (provided during image creation).     * @ena-support@ - A Boolean that indicates whether enhanced networking with ENA is enabled.     * @hypervisor@ - The hypervisor type (@ovm@ | @xen@ ).     * @image-id@ - The ID of the image.     * @image-type@ - The image type (@machine@ | @kernel@ | @ramdisk@ ).     * @is-public@ - A Boolean that indicates whether the image is public.     * @kernel-id@ - The kernel ID.     * @manifest-location@ - The location of the image manifest.     * @name@ - The name of the AMI (provided during image creation).     * @owner-alias@ - String value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.     * @owner-id@ - The AWS account ID of the image owner.     * @platform@ - The platform. To only list Windows-based AMIs, use @windows@ .     * @product-code@ - The product code.     * @product-code.type@ - The type of the product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @root-device-name@ - The name of the root device volume (for example, @/dev/sda1@ ).     * @root-device-type@ - The type of the root device volume (@ebs@ | @instance-store@ ).     * @state@ - The state of the image (@available@ | @pending@ | @failed@ ).     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - The message for the state change.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @virtualization-type@ - The virtualization type (@paravirtual@ | @hvm@ ).+-- | One or more filters.     * @architecture@ - The image architecture (@i386@ | @x86_64@ ).     * @block-device-mapping.delete-on-termination@ - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name specified in the block device mapping (for example, @/dev/sdh@ or @xvdh@ ).     * @block-device-mapping.snapshot-id@ - The ID of the snapshot used for the EBS volume.     * @block-device-mapping.volume-size@ - The volume size of the EBS volume, in GiB.     * @block-device-mapping.volume-type@ - The volume type of the EBS volume (@gp2@ | @io1@ | @st1 @ | @sc1@ | @standard@ ).     * @description@ - The description of the image (provided during image creation).     * @ena-support@ - A Boolean that indicates whether enhanced networking with ENA is enabled.     * @hypervisor@ - The hypervisor type (@ovm@ | @xen@ ).     * @image-id@ - The ID of the image.     * @image-type@ - The image type (@machine@ | @kernel@ | @ramdisk@ ).     * @is-public@ - A Boolean that indicates whether the image is public.     * @kernel-id@ - The kernel ID.     * @manifest-location@ - The location of the image manifest.     * @name@ - The name of the AMI (provided during image creation).     * @owner-alias@ - String value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.     * @owner-id@ - The AWS account ID of the image owner.     * @platform@ - The platform. To only list Windows-based AMIs, use @windows@ .     * @product-code@ - The product code.     * @product-code.type@ - The type of the product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @root-device-name@ - The device name of the root device volume (for example, @/dev/sda1@ ).     * @root-device-type@ - The type of the root device volume (@ebs@ | @instance-store@ ).     * @state@ - The state of the image (@available@ | @pending@ | @failed@ ).     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - The message for the state change.     * @sriov-net-support@ - A value of @simple@ indicates that enhanced networking with the Intel 82599 VF interface is enabled.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @virtualization-type@ - The virtualization type (@paravirtual@ | @hvm@ ). deseFilters :: Lens' DescribeImages [Filter] deseFilters = lens _deseFilters (\ s a -> s{_deseFilters = a}) . _Default . _Coerce; @@ -116,9 +118,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeImages+instance Hashable DescribeImages where -instance NFData DescribeImages+instance NFData DescribeImages where  instance ToHeaders DescribeImages where         toHeaders = const mempty@@ -145,32 +147,32 @@ -- -- /See:/ 'describeImagesResponse' smart constructor. data DescribeImagesResponse = DescribeImagesResponse'-    { _desrsImages         :: !(Maybe [Image])-    , _desrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diirsImages         :: !(Maybe [Image])+  , _diirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImagesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'desrsImages' - Information about one or more images.+-- * 'diirsImages' - Information about one or more images. ----- * 'desrsResponseStatus' - -- | The response status code.+-- * 'diirsResponseStatus' - -- | The response status code. describeImagesResponse-    :: Int -- ^ 'desrsResponseStatus'+    :: Int -- ^ 'diirsResponseStatus'     -> DescribeImagesResponse describeImagesResponse pResponseStatus_ =-    DescribeImagesResponse'-    { _desrsImages = Nothing-    , _desrsResponseStatus = pResponseStatus_-    }+  DescribeImagesResponse'+  {_diirsImages = Nothing, _diirsResponseStatus = pResponseStatus_} + -- | Information about one or more images.-desrsImages :: Lens' DescribeImagesResponse [Image]-desrsImages = lens _desrsImages (\ s a -> s{_desrsImages = a}) . _Default . _Coerce;+diirsImages :: Lens' DescribeImagesResponse [Image]+diirsImages = lens _diirsImages (\ s a -> s{_diirsImages = a}) . _Default . _Coerce;  -- | -- | The response status code.-desrsResponseStatus :: Lens' DescribeImagesResponse Int-desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a});+diirsResponseStatus :: Lens' DescribeImagesResponse Int+diirsResponseStatus = lens _diirsResponseStatus (\ s a -> s{_diirsResponseStatus = a}); -instance NFData DescribeImagesResponse+instance NFData DescribeImagesResponse where
gen/Network/AWS/EC2/DescribeImportImageTasks.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeImportImageTasks--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , diitrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeImportImageTasks. --@@ -55,13 +55,14 @@ -- -- /See:/ 'describeImportImageTasks' smart constructor. data DescribeImportImageTasks = DescribeImportImageTasks'-    { _diitFilters       :: !(Maybe [Filter])-    , _diitImportTaskIds :: !(Maybe [Text])-    , _diitNextToken     :: !(Maybe Text)-    , _diitDryRun        :: !(Maybe Bool)-    , _diitMaxResults    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diitFilters       :: !(Maybe [Filter])+  , _diitImportTaskIds :: !(Maybe [Text])+  , _diitNextToken     :: !(Maybe Text)+  , _diitDryRun        :: !(Maybe Bool)+  , _diitMaxResults    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImportImageTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,14 +79,15 @@ describeImportImageTasks     :: DescribeImportImageTasks describeImportImageTasks =-    DescribeImportImageTasks'-    { _diitFilters = Nothing-    , _diitImportTaskIds = Nothing-    , _diitNextToken = Nothing-    , _diitDryRun = Nothing-    , _diitMaxResults = Nothing-    }+  DescribeImportImageTasks'+  { _diitFilters = Nothing+  , _diitImportTaskIds = Nothing+  , _diitNextToken = Nothing+  , _diitDryRun = Nothing+  , _diitMaxResults = Nothing+  } + -- | Filter tasks using the @task-state@ filter and one of the following values: active, completed, deleting, deleted. diitFilters :: Lens' DescribeImportImageTasks [Filter] diitFilters = lens _diitFilters (\ s a -> s{_diitFilters = a}) . _Default . _Coerce;@@ -119,9 +121,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeImportImageTasks+instance Hashable DescribeImportImageTasks where -instance NFData DescribeImportImageTasks+instance NFData DescribeImportImageTasks where  instance ToHeaders DescribeImportImageTasks where         toHeaders = const mempty@@ -148,11 +150,12 @@ -- -- /See:/ 'describeImportImageTasksResponse' smart constructor. data DescribeImportImageTasksResponse = DescribeImportImageTasksResponse'-    { _diitrsNextToken        :: !(Maybe Text)-    , _diitrsImportImageTasks :: !(Maybe [ImportImageTask])-    , _diitrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diitrsNextToken        :: !(Maybe Text)+  , _diitrsImportImageTasks :: !(Maybe [ImportImageTask])+  , _diitrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImportImageTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -166,12 +169,13 @@     :: Int -- ^ 'diitrsResponseStatus'     -> DescribeImportImageTasksResponse describeImportImageTasksResponse pResponseStatus_ =-    DescribeImportImageTasksResponse'-    { _diitrsNextToken = Nothing-    , _diitrsImportImageTasks = Nothing-    , _diitrsResponseStatus = pResponseStatus_-    }+  DescribeImportImageTasksResponse'+  { _diitrsNextToken = Nothing+  , _diitrsImportImageTasks = Nothing+  , _diitrsResponseStatus = pResponseStatus_+  } + -- | The token to use to get the next page of results. This value is @null@ when there are no more results to return. diitrsNextToken :: Lens' DescribeImportImageTasksResponse (Maybe Text) diitrsNextToken = lens _diitrsNextToken (\ s a -> s{_diitrsNextToken = a});@@ -185,3 +189,4 @@ diitrsResponseStatus = lens _diitrsResponseStatus (\ s a -> s{_diitrsResponseStatus = a});  instance NFData DescribeImportImageTasksResponse+         where
gen/Network/AWS/EC2/DescribeImportSnapshotTasks.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeImportSnapshotTasks--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , distrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeImportSnapshotTasks. --@@ -55,13 +55,14 @@ -- -- /See:/ 'describeImportSnapshotTasks' smart constructor. data DescribeImportSnapshotTasks = DescribeImportSnapshotTasks'-    { _distFilters       :: !(Maybe [Filter])-    , _distImportTaskIds :: !(Maybe [Text])-    , _distNextToken     :: !(Maybe Text)-    , _distDryRun        :: !(Maybe Bool)-    , _distMaxResults    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _distFilters       :: !(Maybe [Filter])+  , _distImportTaskIds :: !(Maybe [Text])+  , _distNextToken     :: !(Maybe Text)+  , _distDryRun        :: !(Maybe Bool)+  , _distMaxResults    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImportSnapshotTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,14 +79,15 @@ describeImportSnapshotTasks     :: DescribeImportSnapshotTasks describeImportSnapshotTasks =-    DescribeImportSnapshotTasks'-    { _distFilters = Nothing-    , _distImportTaskIds = Nothing-    , _distNextToken = Nothing-    , _distDryRun = Nothing-    , _distMaxResults = Nothing-    }+  DescribeImportSnapshotTasks'+  { _distFilters = Nothing+  , _distImportTaskIds = Nothing+  , _distNextToken = Nothing+  , _distDryRun = Nothing+  , _distMaxResults = Nothing+  } + -- | One or more filters. distFilters :: Lens' DescribeImportSnapshotTasks [Filter] distFilters = lens _distFilters (\ s a -> s{_distFilters = a}) . _Default . _Coerce;@@ -119,9 +121,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeImportSnapshotTasks+instance Hashable DescribeImportSnapshotTasks where -instance NFData DescribeImportSnapshotTasks+instance NFData DescribeImportSnapshotTasks where  instance ToHeaders DescribeImportSnapshotTasks where         toHeaders = const mempty@@ -148,11 +150,12 @@ -- -- /See:/ 'describeImportSnapshotTasksResponse' smart constructor. data DescribeImportSnapshotTasksResponse = DescribeImportSnapshotTasksResponse'-    { _distrsNextToken           :: !(Maybe Text)-    , _distrsImportSnapshotTasks :: !(Maybe [ImportSnapshotTask])-    , _distrsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _distrsNextToken           :: !(Maybe Text)+  , _distrsImportSnapshotTasks :: !(Maybe [ImportSnapshotTask])+  , _distrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeImportSnapshotTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -166,12 +169,13 @@     :: Int -- ^ 'distrsResponseStatus'     -> DescribeImportSnapshotTasksResponse describeImportSnapshotTasksResponse pResponseStatus_ =-    DescribeImportSnapshotTasksResponse'-    { _distrsNextToken = Nothing-    , _distrsImportSnapshotTasks = Nothing-    , _distrsResponseStatus = pResponseStatus_-    }+  DescribeImportSnapshotTasksResponse'+  { _distrsNextToken = Nothing+  , _distrsImportSnapshotTasks = Nothing+  , _distrsResponseStatus = pResponseStatus_+  } + -- | The token to use to get the next page of results. This value is @null@ when there are no more results to return. distrsNextToken :: Lens' DescribeImportSnapshotTasksResponse (Maybe Text) distrsNextToken = lens _distrsNextToken (\ s a -> s{_distrsNextToken = a});@@ -185,3 +189,4 @@ distrsResponseStatus = lens _distrsResponseStatus (\ s a -> s{_distrsResponseStatus = a});  instance NFData DescribeImportSnapshotTasksResponse+         where
gen/Network/AWS/EC2/DescribeInstanceAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeInstanceAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,37 +28,37 @@     , DescribeInstanceAttribute     -- * Request Lenses     , diaDryRun-    , diaInstanceId     , diaAttribute+    , diaInstanceId      -- * Destructuring the Response     , describeInstanceAttributeResponse     , DescribeInstanceAttributeResponse     -- * Response Lenses-    , drsInstanceId-    , drsGroups-    , drsEnaSupport-    , drsSourceDestCheck-    , drsDisableAPITermination-    , drsRAMDiskId-    , drsKernelId-    , drsRootDeviceName-    , drsInstanceType-    , drsSRIOVNetSupport-    , drsEBSOptimized-    , drsUserData-    , drsInstanceInitiatedShutdownBehavior-    , drsProductCodes-    , drsBlockDeviceMappings-    , drsResponseStatus+    , desrsInstanceId+    , desrsGroups+    , desrsEnaSupport+    , desrsSourceDestCheck+    , desrsDisableAPITermination+    , desrsRAMDiskId+    , desrsKernelId+    , desrsRootDeviceName+    , desrsInstanceType+    , desrsSRIOVNetSupport+    , desrsEBSOptimized+    , desrsUserData+    , desrsInstanceInitiatedShutdownBehavior+    , desrsProductCodes+    , desrsBlockDeviceMappings+    , desrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeInstanceAttribute. --@@ -66,43 +66,45 @@ -- -- /See:/ 'describeInstanceAttribute' smart constructor. data DescribeInstanceAttribute = DescribeInstanceAttribute'-    { _diaDryRun     :: !(Maybe Bool)-    , _diaInstanceId :: !Text-    , _diaAttribute  :: !InstanceAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diaDryRun     :: !(Maybe Bool)+  , _diaAttribute  :: !InstanceAttributeName+  , _diaInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInstanceAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'diaDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'diaInstanceId' - The ID of the instance.--- -- * 'diaAttribute' - The instance attribute. Note: The @enaSupport@ attribute is not supported at this time.+--+-- * 'diaInstanceId' - The ID of the instance. describeInstanceAttribute-    :: Text -- ^ 'diaInstanceId'-    -> InstanceAttributeName -- ^ 'diaAttribute'+    :: InstanceAttributeName -- ^ 'diaAttribute'+    -> Text -- ^ 'diaInstanceId'     -> DescribeInstanceAttribute-describeInstanceAttribute pInstanceId_ pAttribute_ =-    DescribeInstanceAttribute'-    { _diaDryRun = Nothing-    , _diaInstanceId = pInstanceId_-    , _diaAttribute = pAttribute_-    }+describeInstanceAttribute pAttribute_ pInstanceId_ =+  DescribeInstanceAttribute'+  { _diaDryRun = Nothing+  , _diaAttribute = pAttribute_+  , _diaInstanceId = pInstanceId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . diaDryRun :: Lens' DescribeInstanceAttribute (Maybe Bool) diaDryRun = lens _diaDryRun (\ s a -> s{_diaDryRun = a}); --- | The ID of the instance.-diaInstanceId :: Lens' DescribeInstanceAttribute Text-diaInstanceId = lens _diaInstanceId (\ s a -> s{_diaInstanceId = a});- -- | The instance attribute. Note: The @enaSupport@ attribute is not supported at this time. diaAttribute :: Lens' DescribeInstanceAttribute InstanceAttributeName diaAttribute = lens _diaAttribute (\ s a -> s{_diaAttribute = a}); +-- | The ID of the instance.+diaInstanceId :: Lens' DescribeInstanceAttribute Text+diaInstanceId = lens _diaInstanceId (\ s a -> s{_diaInstanceId = a});+ instance AWSRequest DescribeInstanceAttribute where         type Rs DescribeInstanceAttribute =              DescribeInstanceAttributeResponse@@ -133,9 +135,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeInstanceAttribute+instance Hashable DescribeInstanceAttribute where -instance NFData DescribeInstanceAttribute+instance NFData DescribeInstanceAttribute where  instance ToHeaders DescribeInstanceAttribute where         toHeaders = const mempty@@ -149,9 +151,8 @@               ["Action" =:                  ("DescribeInstanceAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _diaDryRun,-               "InstanceId" =: _diaInstanceId,-               "Attribute" =: _diaAttribute]+               "DryRun" =: _diaDryRun, "Attribute" =: _diaAttribute,+               "InstanceId" =: _diaInstanceId]  -- | Describes an instance attribute. --@@ -159,144 +160,147 @@ -- -- /See:/ 'describeInstanceAttributeResponse' smart constructor. data DescribeInstanceAttributeResponse = DescribeInstanceAttributeResponse'-    { _drsInstanceId                        :: !(Maybe Text)-    , _drsGroups                            :: !(Maybe [GroupIdentifier])-    , _drsEnaSupport                        :: !(Maybe AttributeBooleanValue)-    , _drsSourceDestCheck                   :: !(Maybe AttributeBooleanValue)-    , _drsDisableAPITermination             :: !(Maybe AttributeBooleanValue)-    , _drsRAMDiskId                         :: !(Maybe AttributeValue)-    , _drsKernelId                          :: !(Maybe AttributeValue)-    , _drsRootDeviceName                    :: !(Maybe AttributeValue)-    , _drsInstanceType                      :: !(Maybe AttributeValue)-    , _drsSRIOVNetSupport                   :: !(Maybe AttributeValue)-    , _drsEBSOptimized                      :: !(Maybe AttributeBooleanValue)-    , _drsUserData                          :: !(Maybe AttributeValue)-    , _drsInstanceInitiatedShutdownBehavior :: !(Maybe AttributeValue)-    , _drsProductCodes                      :: !(Maybe [ProductCode])-    , _drsBlockDeviceMappings               :: !(Maybe [InstanceBlockDeviceMapping])-    , _drsResponseStatus                    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _desrsInstanceId :: !(Maybe Text)+  , _desrsGroups :: !(Maybe [GroupIdentifier])+  , _desrsEnaSupport :: !(Maybe AttributeBooleanValue)+  , _desrsSourceDestCheck :: !(Maybe AttributeBooleanValue)+  , _desrsDisableAPITermination :: !(Maybe AttributeBooleanValue)+  , _desrsRAMDiskId :: !(Maybe AttributeValue)+  , _desrsKernelId :: !(Maybe AttributeValue)+  , _desrsRootDeviceName :: !(Maybe AttributeValue)+  , _desrsInstanceType :: !(Maybe AttributeValue)+  , _desrsSRIOVNetSupport :: !(Maybe AttributeValue)+  , _desrsEBSOptimized :: !(Maybe AttributeBooleanValue)+  , _desrsUserData :: !(Maybe AttributeValue)+  , _desrsInstanceInitiatedShutdownBehavior :: !(Maybe AttributeValue)+  , _desrsProductCodes :: !(Maybe [ProductCode])+  , _desrsBlockDeviceMappings :: !(Maybe [InstanceBlockDeviceMapping])+  , _desrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInstanceAttributeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'drsInstanceId' - The ID of the instance.+-- * 'desrsInstanceId' - The ID of the instance. ----- * 'drsGroups' - The security groups associated with the instance.+-- * 'desrsGroups' - The security groups associated with the instance. ----- * 'drsEnaSupport' - Indicates whether enhanced networking with ENA is enabled.+-- * 'desrsEnaSupport' - Indicates whether enhanced networking with ENA is enabled. ----- * 'drsSourceDestCheck' - Indicates whether source/destination checking is enabled. A value of @true@ means checking is enabled, and @false@ means checking is disabled. This value must be @false@ for a NAT instance to perform NAT.+-- * 'desrsSourceDestCheck' - Indicates whether source/destination checking is enabled. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. This value must be @false@ for a NAT instance to perform NAT. ----- * 'drsDisableAPITermination' - If the value is @true@ , you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.+-- * 'desrsDisableAPITermination' - If the value is @true@ , you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can. ----- * 'drsRAMDiskId' - The RAM disk ID.+-- * 'desrsRAMDiskId' - The RAM disk ID. ----- * 'drsKernelId' - The kernel ID.+-- * 'desrsKernelId' - The kernel ID. ----- * 'drsRootDeviceName' - The name of the root device (for example, @/dev/sda1@ or @/dev/xvda@ ).+-- * 'desrsRootDeviceName' - The device name of the root device volume (for example, @/dev/sda1@ ). ----- * 'drsInstanceType' - The instance type.+-- * 'desrsInstanceType' - The instance type. ----- * 'drsSRIOVNetSupport' - Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.+-- * 'desrsSRIOVNetSupport' - Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled. ----- * 'drsEBSOptimized' - Indicates whether the instance is optimized for EBS I/O.+-- * 'desrsEBSOptimized' - Indicates whether the instance is optimized for Amazon EBS I/O. ----- * 'drsUserData' - The user data.+-- * 'desrsUserData' - The user data. ----- * 'drsInstanceInitiatedShutdownBehavior' - Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).+-- * 'desrsInstanceInitiatedShutdownBehavior' - Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). ----- * 'drsProductCodes' - A list of product codes.+-- * 'desrsProductCodes' - A list of product codes. ----- * 'drsBlockDeviceMappings' - The block device mapping of the instance.+-- * 'desrsBlockDeviceMappings' - The block device mapping of the instance. ----- * 'drsResponseStatus' - -- | The response status code.+-- * 'desrsResponseStatus' - -- | The response status code. describeInstanceAttributeResponse-    :: Int -- ^ 'drsResponseStatus'+    :: Int -- ^ 'desrsResponseStatus'     -> DescribeInstanceAttributeResponse describeInstanceAttributeResponse pResponseStatus_ =-    DescribeInstanceAttributeResponse'-    { _drsInstanceId = Nothing-    , _drsGroups = Nothing-    , _drsEnaSupport = Nothing-    , _drsSourceDestCheck = Nothing-    , _drsDisableAPITermination = Nothing-    , _drsRAMDiskId = Nothing-    , _drsKernelId = Nothing-    , _drsRootDeviceName = Nothing-    , _drsInstanceType = Nothing-    , _drsSRIOVNetSupport = Nothing-    , _drsEBSOptimized = Nothing-    , _drsUserData = Nothing-    , _drsInstanceInitiatedShutdownBehavior = Nothing-    , _drsProductCodes = Nothing-    , _drsBlockDeviceMappings = Nothing-    , _drsResponseStatus = pResponseStatus_-    }+  DescribeInstanceAttributeResponse'+  { _desrsInstanceId = Nothing+  , _desrsGroups = Nothing+  , _desrsEnaSupport = Nothing+  , _desrsSourceDestCheck = Nothing+  , _desrsDisableAPITermination = Nothing+  , _desrsRAMDiskId = Nothing+  , _desrsKernelId = Nothing+  , _desrsRootDeviceName = Nothing+  , _desrsInstanceType = Nothing+  , _desrsSRIOVNetSupport = Nothing+  , _desrsEBSOptimized = Nothing+  , _desrsUserData = Nothing+  , _desrsInstanceInitiatedShutdownBehavior = Nothing+  , _desrsProductCodes = Nothing+  , _desrsBlockDeviceMappings = Nothing+  , _desrsResponseStatus = pResponseStatus_+  } + -- | The ID of the instance.-drsInstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)-drsInstanceId = lens _drsInstanceId (\ s a -> s{_drsInstanceId = a});+desrsInstanceId :: Lens' DescribeInstanceAttributeResponse (Maybe Text)+desrsInstanceId = lens _desrsInstanceId (\ s a -> s{_desrsInstanceId = a});  -- | The security groups associated with the instance.-drsGroups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]-drsGroups = lens _drsGroups (\ s a -> s{_drsGroups = a}) . _Default . _Coerce;+desrsGroups :: Lens' DescribeInstanceAttributeResponse [GroupIdentifier]+desrsGroups = lens _desrsGroups (\ s a -> s{_desrsGroups = a}) . _Default . _Coerce;  -- | Indicates whether enhanced networking with ENA is enabled.-drsEnaSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)-drsEnaSupport = lens _drsEnaSupport (\ s a -> s{_drsEnaSupport = a});+desrsEnaSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)+desrsEnaSupport = lens _desrsEnaSupport (\ s a -> s{_desrsEnaSupport = a}); --- | Indicates whether source/destination checking is enabled. A value of @true@ means checking is enabled, and @false@ means checking is disabled. This value must be @false@ for a NAT instance to perform NAT.-drsSourceDestCheck :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)-drsSourceDestCheck = lens _drsSourceDestCheck (\ s a -> s{_drsSourceDestCheck = a});+-- | Indicates whether source/destination checking is enabled. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. This value must be @false@ for a NAT instance to perform NAT.+desrsSourceDestCheck :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)+desrsSourceDestCheck = lens _desrsSourceDestCheck (\ s a -> s{_desrsSourceDestCheck = a});  -- | If the value is @true@ , you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.-drsDisableAPITermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)-drsDisableAPITermination = lens _drsDisableAPITermination (\ s a -> s{_drsDisableAPITermination = a});+desrsDisableAPITermination :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)+desrsDisableAPITermination = lens _desrsDisableAPITermination (\ s a -> s{_desrsDisableAPITermination = a});  -- | The RAM disk ID.-drsRAMDiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsRAMDiskId = lens _drsRAMDiskId (\ s a -> s{_drsRAMDiskId = a});+desrsRAMDiskId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsRAMDiskId = lens _desrsRAMDiskId (\ s a -> s{_desrsRAMDiskId = a});  -- | The kernel ID.-drsKernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsKernelId = lens _drsKernelId (\ s a -> s{_drsKernelId = a});+desrsKernelId :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsKernelId = lens _desrsKernelId (\ s a -> s{_desrsKernelId = a}); --- | The name of the root device (for example, @/dev/sda1@ or @/dev/xvda@ ).-drsRootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsRootDeviceName = lens _drsRootDeviceName (\ s a -> s{_drsRootDeviceName = a});+-- | The device name of the root device volume (for example, @/dev/sda1@ ).+desrsRootDeviceName :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsRootDeviceName = lens _desrsRootDeviceName (\ s a -> s{_desrsRootDeviceName = a});  -- | The instance type.-drsInstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsInstanceType = lens _drsInstanceType (\ s a -> s{_drsInstanceType = a});+desrsInstanceType :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsInstanceType = lens _desrsInstanceType (\ s a -> s{_desrsInstanceType = a});  -- | Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.-drsSRIOVNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsSRIOVNetSupport = lens _drsSRIOVNetSupport (\ s a -> s{_drsSRIOVNetSupport = a});+desrsSRIOVNetSupport :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsSRIOVNetSupport = lens _desrsSRIOVNetSupport (\ s a -> s{_desrsSRIOVNetSupport = a}); --- | Indicates whether the instance is optimized for EBS I/O.-drsEBSOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)-drsEBSOptimized = lens _drsEBSOptimized (\ s a -> s{_drsEBSOptimized = a});+-- | Indicates whether the instance is optimized for Amazon EBS I/O.+desrsEBSOptimized :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeBooleanValue)+desrsEBSOptimized = lens _desrsEBSOptimized (\ s a -> s{_desrsEBSOptimized = a});  -- | The user data.-drsUserData :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsUserData = lens _drsUserData (\ s a -> s{_drsUserData = a});+desrsUserData :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsUserData = lens _desrsUserData (\ s a -> s{_desrsUserData = a});  -- | Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).-drsInstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)-drsInstanceInitiatedShutdownBehavior = lens _drsInstanceInitiatedShutdownBehavior (\ s a -> s{_drsInstanceInitiatedShutdownBehavior = a});+desrsInstanceInitiatedShutdownBehavior :: Lens' DescribeInstanceAttributeResponse (Maybe AttributeValue)+desrsInstanceInitiatedShutdownBehavior = lens _desrsInstanceInitiatedShutdownBehavior (\ s a -> s{_desrsInstanceInitiatedShutdownBehavior = a});  -- | A list of product codes.-drsProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]-drsProductCodes = lens _drsProductCodes (\ s a -> s{_drsProductCodes = a}) . _Default . _Coerce;+desrsProductCodes :: Lens' DescribeInstanceAttributeResponse [ProductCode]+desrsProductCodes = lens _desrsProductCodes (\ s a -> s{_desrsProductCodes = a}) . _Default . _Coerce;  -- | The block device mapping of the instance.-drsBlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]-drsBlockDeviceMappings = lens _drsBlockDeviceMappings (\ s a -> s{_drsBlockDeviceMappings = a}) . _Default . _Coerce;+desrsBlockDeviceMappings :: Lens' DescribeInstanceAttributeResponse [InstanceBlockDeviceMapping]+desrsBlockDeviceMappings = lens _desrsBlockDeviceMappings (\ s a -> s{_desrsBlockDeviceMappings = a}) . _Default . _Coerce;  -- | -- | The response status code.-drsResponseStatus :: Lens' DescribeInstanceAttributeResponse Int-drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});+desrsResponseStatus :: Lens' DescribeInstanceAttributeResponse Int+desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a});  instance NFData DescribeInstanceAttributeResponse+         where
gen/Network/AWS/EC2/DescribeInstanceStatus.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeInstanceStatus--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Describes the status of one or more instances. By default, only running instances are described, unless specified otherwise.+-- 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:@@ -55,13 +55,13 @@     , disrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeInstanceStatus. --@@ -69,14 +69,15 @@ -- -- /See:/ 'describeInstanceStatus' smart constructor. data DescribeInstanceStatus = DescribeInstanceStatus'-    { _disIncludeAllInstances :: !(Maybe Bool)-    , _disFilters             :: !(Maybe [Filter])-    , _disNextToken           :: !(Maybe Text)-    , _disInstanceIds         :: !(Maybe [Text])-    , _disDryRun              :: !(Maybe Bool)-    , _disMaxResults          :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _disIncludeAllInstances :: !(Maybe Bool)+  , _disFilters             :: !(Maybe [Filter])+  , _disNextToken           :: !(Maybe Text)+  , _disInstanceIds         :: !(Maybe [Text])+  , _disDryRun              :: !(Maybe Bool)+  , _disMaxResults          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInstanceStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,15 +96,16 @@ describeInstanceStatus     :: DescribeInstanceStatus describeInstanceStatus =-    DescribeInstanceStatus'-    { _disIncludeAllInstances = Nothing-    , _disFilters = Nothing-    , _disNextToken = Nothing-    , _disInstanceIds = Nothing-    , _disDryRun = Nothing-    , _disMaxResults = Nothing-    }+  DescribeInstanceStatus'+  { _disIncludeAllInstances = Nothing+  , _disFilters = Nothing+  , _disNextToken = Nothing+  , _disInstanceIds = Nothing+  , _disDryRun = Nothing+  , _disMaxResults = Nothing+  } + -- | When @true@ , includes the health status for all instances. When @false@ , includes the health status for running instances only. Default: @false@ disIncludeAllInstances :: Lens' DescribeInstanceStatus (Maybe Bool) disIncludeAllInstances = lens _disIncludeAllInstances (\ s a -> s{_disIncludeAllInstances = a});@@ -148,9 +150,9 @@                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeInstanceStatus+instance Hashable DescribeInstanceStatus where -instance NFData DescribeInstanceStatus+instance NFData DescribeInstanceStatus where  instance ToHeaders DescribeInstanceStatus where         toHeaders = const mempty@@ -178,11 +180,12 @@ -- -- /See:/ 'describeInstanceStatusResponse' smart constructor. data DescribeInstanceStatusResponse = DescribeInstanceStatusResponse'-    { _disrsInstanceStatuses :: !(Maybe [InstanceStatus])-    , _disrsNextToken        :: !(Maybe Text)-    , _disrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _disrsInstanceStatuses :: !(Maybe [InstanceStatus])+  , _disrsNextToken        :: !(Maybe Text)+  , _disrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInstanceStatusResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -196,12 +199,13 @@     :: Int -- ^ 'disrsResponseStatus'     -> DescribeInstanceStatusResponse describeInstanceStatusResponse pResponseStatus_ =-    DescribeInstanceStatusResponse'-    { _disrsInstanceStatuses = Nothing-    , _disrsNextToken = Nothing-    , _disrsResponseStatus = pResponseStatus_-    }+  DescribeInstanceStatusResponse'+  { _disrsInstanceStatuses = Nothing+  , _disrsNextToken = Nothing+  , _disrsResponseStatus = pResponseStatus_+  } + -- | One or more instance status descriptions. disrsInstanceStatuses :: Lens' DescribeInstanceStatusResponse [InstanceStatus] disrsInstanceStatuses = lens _disrsInstanceStatuses (\ s a -> s{_disrsInstanceStatuses = a}) . _Default . _Coerce;@@ -214,4 +218,4 @@ disrsResponseStatus :: Lens' DescribeInstanceStatusResponse Int disrsResponseStatus = lens _disrsResponseStatus (\ s a -> s{_disrsResponseStatus = a}); -instance NFData DescribeInstanceStatusResponse+instance NFData DescribeInstanceStatusResponse where
gen/Network/AWS/EC2/DescribeInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,13 +50,13 @@     , dirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeInstances. --@@ -64,18 +64,19 @@ -- -- /See:/ 'describeInstances' smart constructor. data DescribeInstances = DescribeInstances'-    { _diiFilters     :: !(Maybe [Filter])-    , _diiNextToken   :: !(Maybe Text)-    , _diiInstanceIds :: !(Maybe [Text])-    , _diiDryRun      :: !(Maybe Bool)-    , _diiMaxResults  :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _diiFilters     :: !(Maybe [Filter])+  , _diiNextToken   :: !(Maybe Text)+  , _diiInstanceIds :: !(Maybe [Text])+  , _diiDryRun      :: !(Maybe Bool)+  , _diiMaxResults  :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'diiFilters' - One or more filters.     * @affinity@ - The affinity setting for an instance running on a Dedicated Host (@default@ | @host@ ).     * @architecture@ - The instance architecture (@i386@ | @x86_64@ ).     * @association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @availability-zone@ - The Availability Zone of the instance.     * @block-device-mapping.attach-time@ - The attach time for an EBS volume mapped to the instance, for example, @2010-09-15T17:15:20.000Z@ .     * @block-device-mapping.delete-on-termination@ - A Boolean that indicates whether the EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name for the EBS volume (for example, @/dev/sdh@ or @xvdh@ ).     * @block-device-mapping.status@ - The status for the EBS volume (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @block-device-mapping.volume-id@ - The volume ID of the EBS volume.     * @client-token@ - The idempotency token you provided when you launched the instance.     * @dns-name@ - The public DNS name of the instance.     * @group-id@ - The ID of the security group for the instance. EC2-Classic only.     * @group-name@ - The name of the security group for the instance. EC2-Classic only.     * @host-id@ - The ID of the Dedicated Host on which the instance is running, if applicable.     * @hypervisor@ - The hypervisor type of the instance (@ovm@ | @xen@ ).     * @iam-instance-profile.arn@ - The instance profile associated with the instance. Specified as an ARN.     * @image-id@ - The ID of the image used to launch the instance.     * @instance-id@ - The ID of the instance.     * @instance-lifecycle@ - Indicates whether this is a Spot Instance or a Scheduled Instance (@spot@ | @scheduled@ ).     * @instance-state-code@ - 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).     * @instance-state-name@ - The state of the instance (@pending@ | @running@ | @shutting-down@ | @terminated@ | @stopping@ | @stopped@ ).     * @instance-type@ - The type of instance (for example, @t2.micro@ ).     * @instance.group-id@ - The ID of the security group for the instance.      * @instance.group-name@ - The name of the security group for the instance.      * @ip-address@ - The public IPv4 address of the instance.     * @kernel-id@ - The kernel ID.     * @key-name@ - The name of the key pair used when the instance was launched.     * @launch-index@ - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).      * @launch-time@ - The time when the instance was launched.     * @monitoring-state@ - Indicates whether detailed monitoring is enabled (@disabled@ | @enabled@ ).     * @network-interface.addresses.private-ip-address@ - The private IPv4 address associated with the network interface.     * @network-interface.addresses.primary@ - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.     * @network-interface.addresses.association.public-ip@ - The ID of the association of an Elastic IP address (IPv4) with a network interface.     * @network-interface.addresses.association.ip-owner-id@ - The owner ID of the private IPv4 address associated with the network interface.     * @network-interface.attachment.attachment-id@ - The ID of the interface attachment.     * @network-interface.attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @network-interface.attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @network-interface.attachment.device-index@ - The device index to which the network interface is attached.     * @network-interface.attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @network-interface.attachment.attach-time@ - The time that the network interface was attached to an instance.     * @network-interface.attachment.delete-on-termination@ - Specifies whether the attachment is deleted when an instance is terminated.     * @network-interface.availability-zone@ - The Availability Zone for the network interface.     * @network-interface.description@ - The description of the network interface.     * @network-interface.group-id@ - The ID of a security group associated with the network interface.     * @network-interface.group-name@ - The name of a security group associated with the network interface.     * @network-interface.ipv6-addresses.ipv6-address@ - The IPv6 address associated with the network interface.     * @network-interface.mac-address@ - The MAC address of the network interface.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.owner-id@ - The ID of the owner of the network interface.     * @network-interface.private-dns-name@ - The private DNS name of the network interface.     * @network-interface.requester-id@ - The requester ID for the network interface.     * @network-interface.requester-managed@ - Indicates whether the network interface is being managed by AWS.     * @network-interface.status@ - The status of the network interface (@available@ ) | @in-use@ ).     * @network-interface.source-dest-check@ - Whether the network interface performs source/destination checking. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.     * @network-interface.subnet-id@ - The ID of the subnet for the network interface.     * @network-interface.vpc-id@ - The ID of the VPC for the network interface.     * @owner-id@ - The AWS account ID of the instance owner.     * @placement-group-name@ - The name of the placement group for the instance.     * @platform@ - The platform. Use @windows@ if you have Windows instances; otherwise, leave blank.     * @private-dns-name@ - The private IPv4 DNS name of the instance.     * @private-ip-address@ - The private IPv4 address of the instance.     * @product-code@ - The product code associated with the AMI used to launch the instance.     * @product-code.type@ - The type of product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @reason@ - 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.     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @reservation-id@ - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID.     * @root-device-name@ - The name of the root device for the instance (for example, @/dev/sda1@ or @/dev/xvda@ ).     * @root-device-type@ - The type of root device that the instance uses (@ebs@ | @instance-store@ ).     * @source-dest-check@ - Indicates whether the instance performs source/destination checking. A value of @true@ means that checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the instance to perform network address translation (NAT) in your VPC.      * @spot-instance-request-id@ - The ID of the Spot instance request.     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - A message that describes the state change.     * @subnet-id@ - The ID of the subnet for the instance.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource, where @tag@ :/key/ is the tag's key.      * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @tenancy@ - The tenancy of an instance (@dedicated@ | @default@ | @host@ ).     * @virtualization-type@ - The virtualization type of the instance (@paravirtual@ | @hvm@ ).     * @vpc-id@ - The ID of the VPC that the instance is running in.+-- * 'diiFilters' - One or more filters.     * @affinity@ - The affinity setting for an instance running on a Dedicated Host (@default@ | @host@ ).     * @architecture@ - The instance architecture (@i386@ | @x86_64@ ).     * @availability-zone@ - The Availability Zone of the instance.     * @block-device-mapping.attach-time@ - The attach time for an EBS volume mapped to the instance, for example, @2010-09-15T17:15:20.000Z@ .     * @block-device-mapping.delete-on-termination@ - A Boolean that indicates whether the EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name specified in the block device mapping (for example, @/dev/sdh@ or @xvdh@ ).     * @block-device-mapping.status@ - The status for the EBS volume (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @block-device-mapping.volume-id@ - The volume ID of the EBS volume.     * @client-token@ - The idempotency token you provided when you launched the instance.     * @dns-name@ - The public DNS name of the instance.     * @group-id@ - The ID of the security group for the instance. EC2-Classic only.     * @group-name@ - The name of the security group for the instance. EC2-Classic only.     * @host-id@ - The ID of the Dedicated Host on which the instance is running, if applicable.     * @hypervisor@ - The hypervisor type of the instance (@ovm@ | @xen@ ).     * @iam-instance-profile.arn@ - The instance profile associated with the instance. Specified as an ARN.     * @image-id@ - The ID of the image used to launch the instance.     * @instance-id@ - The ID of the instance.     * @instance-lifecycle@ - Indicates whether this is a Spot Instance or a Scheduled Instance (@spot@ | @scheduled@ ).     * @instance-state-code@ - 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).     * @instance-state-name@ - The state of the instance (@pending@ | @running@ | @shutting-down@ | @terminated@ | @stopping@ | @stopped@ ).     * @instance-type@ - The type of instance (for example, @t2.micro@ ).     * @instance.group-id@ - The ID of the security group for the instance.      * @instance.group-name@ - The name of the security group for the instance.      * @ip-address@ - The public IPv4 address of the instance.     * @kernel-id@ - The kernel ID.     * @key-name@ - The name of the key pair used when the instance was launched.     * @launch-index@ - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).      * @launch-time@ - The time when the instance was launched.     * @monitoring-state@ - Indicates whether detailed monitoring is enabled (@disabled@ | @enabled@ ).     * @network-interface.addresses.private-ip-address@ - The private IPv4 address associated with the network interface.     * @network-interface.addresses.primary@ - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.     * @network-interface.addresses.association.public-ip@ - The ID of the association of an Elastic IP address (IPv4) with a network interface.     * @network-interface.addresses.association.ip-owner-id@ - The owner ID of the private IPv4 address associated with the network interface.     * @network-interface.association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @network-interface.association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @network-interface.association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @network-interface.association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @network-interface.attachment.attachment-id@ - The ID of the interface attachment.     * @network-interface.attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @network-interface.attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @network-interface.attachment.device-index@ - The device index to which the network interface is attached.     * @network-interface.attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @network-interface.attachment.attach-time@ - The time that the network interface was attached to an instance.     * @network-interface.attachment.delete-on-termination@ - Specifies whether the attachment is deleted when an instance is terminated.     * @network-interface.availability-zone@ - The Availability Zone for the network interface.     * @network-interface.description@ - The description of the network interface.     * @network-interface.group-id@ - The ID of a security group associated with the network interface.     * @network-interface.group-name@ - The name of a security group associated with the network interface.     * @network-interface.ipv6-addresses.ipv6-address@ - The IPv6 address associated with the network interface.     * @network-interface.mac-address@ - The MAC address of the network interface.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.owner-id@ - The ID of the owner of the network interface.     * @network-interface.private-dns-name@ - The private DNS name of the network interface.     * @network-interface.requester-id@ - The requester ID for the network interface.     * @network-interface.requester-managed@ - Indicates whether the network interface is being managed by AWS.     * @network-interface.status@ - The status of the network interface (@available@ ) | @in-use@ ).     * @network-interface.source-dest-check@ - Whether the network interface performs source/destination checking. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.     * @network-interface.subnet-id@ - The ID of the subnet for the network interface.     * @network-interface.vpc-id@ - The ID of the VPC for the network interface.     * @owner-id@ - The AWS account ID of the instance owner.     * @placement-group-name@ - The name of the placement group for the instance.     * @platform@ - The platform. Use @windows@ if you have Windows instances; otherwise, leave blank.     * @private-dns-name@ - The private IPv4 DNS name of the instance.     * @private-ip-address@ - The private IPv4 address of the instance.     * @product-code@ - The product code associated with the AMI used to launch the instance.     * @product-code.type@ - The type of product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @reason@ - 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.     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @reservation-id@ - 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.     * @root-device-name@ - The device name of the root device volume (for example, @/dev/sda1@ ).     * @root-device-type@ - The type of the root device volume (@ebs@ | @instance-store@ ).     * @source-dest-check@ - Indicates whether the instance performs source/destination checking. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. The value must be @false@ for the instance to perform network address translation (NAT) in your VPC.      * @spot-instance-request-id@ - The ID of the Spot Instance request.     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - A message that describes the state change.     * @subnet-id@ - The ID of the subnet for the instance.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 the tag's key). If you want to list only resources where Purpose is X, see the @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @tenancy@ - The tenancy of an instance (@dedicated@ | @default@ | @host@ ).     * @virtualization-type@ - The virtualization type of the instance (@paravirtual@ | @hvm@ ).     * @vpc-id@ - The ID of the VPC that the instance is running in. -- -- * 'diiNextToken' - The token to request the next page of results. --@@ -87,15 +88,16 @@ describeInstances     :: DescribeInstances describeInstances =-    DescribeInstances'-    { _diiFilters = Nothing-    , _diiNextToken = Nothing-    , _diiInstanceIds = Nothing-    , _diiDryRun = Nothing-    , _diiMaxResults = Nothing-    }+  DescribeInstances'+  { _diiFilters = Nothing+  , _diiNextToken = Nothing+  , _diiInstanceIds = Nothing+  , _diiDryRun = Nothing+  , _diiMaxResults = Nothing+  } --- | One or more filters.     * @affinity@ - The affinity setting for an instance running on a Dedicated Host (@default@ | @host@ ).     * @architecture@ - The instance architecture (@i386@ | @x86_64@ ).     * @association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @availability-zone@ - The Availability Zone of the instance.     * @block-device-mapping.attach-time@ - The attach time for an EBS volume mapped to the instance, for example, @2010-09-15T17:15:20.000Z@ .     * @block-device-mapping.delete-on-termination@ - A Boolean that indicates whether the EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name for the EBS volume (for example, @/dev/sdh@ or @xvdh@ ).     * @block-device-mapping.status@ - The status for the EBS volume (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @block-device-mapping.volume-id@ - The volume ID of the EBS volume.     * @client-token@ - The idempotency token you provided when you launched the instance.     * @dns-name@ - The public DNS name of the instance.     * @group-id@ - The ID of the security group for the instance. EC2-Classic only.     * @group-name@ - The name of the security group for the instance. EC2-Classic only.     * @host-id@ - The ID of the Dedicated Host on which the instance is running, if applicable.     * @hypervisor@ - The hypervisor type of the instance (@ovm@ | @xen@ ).     * @iam-instance-profile.arn@ - The instance profile associated with the instance. Specified as an ARN.     * @image-id@ - The ID of the image used to launch the instance.     * @instance-id@ - The ID of the instance.     * @instance-lifecycle@ - Indicates whether this is a Spot Instance or a Scheduled Instance (@spot@ | @scheduled@ ).     * @instance-state-code@ - 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).     * @instance-state-name@ - The state of the instance (@pending@ | @running@ | @shutting-down@ | @terminated@ | @stopping@ | @stopped@ ).     * @instance-type@ - The type of instance (for example, @t2.micro@ ).     * @instance.group-id@ - The ID of the security group for the instance.      * @instance.group-name@ - The name of the security group for the instance.      * @ip-address@ - The public IPv4 address of the instance.     * @kernel-id@ - The kernel ID.     * @key-name@ - The name of the key pair used when the instance was launched.     * @launch-index@ - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).      * @launch-time@ - The time when the instance was launched.     * @monitoring-state@ - Indicates whether detailed monitoring is enabled (@disabled@ | @enabled@ ).     * @network-interface.addresses.private-ip-address@ - The private IPv4 address associated with the network interface.     * @network-interface.addresses.primary@ - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.     * @network-interface.addresses.association.public-ip@ - The ID of the association of an Elastic IP address (IPv4) with a network interface.     * @network-interface.addresses.association.ip-owner-id@ - The owner ID of the private IPv4 address associated with the network interface.     * @network-interface.attachment.attachment-id@ - The ID of the interface attachment.     * @network-interface.attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @network-interface.attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @network-interface.attachment.device-index@ - The device index to which the network interface is attached.     * @network-interface.attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @network-interface.attachment.attach-time@ - The time that the network interface was attached to an instance.     * @network-interface.attachment.delete-on-termination@ - Specifies whether the attachment is deleted when an instance is terminated.     * @network-interface.availability-zone@ - The Availability Zone for the network interface.     * @network-interface.description@ - The description of the network interface.     * @network-interface.group-id@ - The ID of a security group associated with the network interface.     * @network-interface.group-name@ - The name of a security group associated with the network interface.     * @network-interface.ipv6-addresses.ipv6-address@ - The IPv6 address associated with the network interface.     * @network-interface.mac-address@ - The MAC address of the network interface.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.owner-id@ - The ID of the owner of the network interface.     * @network-interface.private-dns-name@ - The private DNS name of the network interface.     * @network-interface.requester-id@ - The requester ID for the network interface.     * @network-interface.requester-managed@ - Indicates whether the network interface is being managed by AWS.     * @network-interface.status@ - The status of the network interface (@available@ ) | @in-use@ ).     * @network-interface.source-dest-check@ - Whether the network interface performs source/destination checking. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.     * @network-interface.subnet-id@ - The ID of the subnet for the network interface.     * @network-interface.vpc-id@ - The ID of the VPC for the network interface.     * @owner-id@ - The AWS account ID of the instance owner.     * @placement-group-name@ - The name of the placement group for the instance.     * @platform@ - The platform. Use @windows@ if you have Windows instances; otherwise, leave blank.     * @private-dns-name@ - The private IPv4 DNS name of the instance.     * @private-ip-address@ - The private IPv4 address of the instance.     * @product-code@ - The product code associated with the AMI used to launch the instance.     * @product-code.type@ - The type of product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @reason@ - 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.     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @reservation-id@ - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID.     * @root-device-name@ - The name of the root device for the instance (for example, @/dev/sda1@ or @/dev/xvda@ ).     * @root-device-type@ - The type of root device that the instance uses (@ebs@ | @instance-store@ ).     * @source-dest-check@ - Indicates whether the instance performs source/destination checking. A value of @true@ means that checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the instance to perform network address translation (NAT) in your VPC.      * @spot-instance-request-id@ - The ID of the Spot instance request.     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - A message that describes the state change.     * @subnet-id@ - The ID of the subnet for the instance.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource, where @tag@ :/key/ is the tag's key.      * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @tenancy@ - The tenancy of an instance (@dedicated@ | @default@ | @host@ ).     * @virtualization-type@ - The virtualization type of the instance (@paravirtual@ | @hvm@ ).     * @vpc-id@ - The ID of the VPC that the instance is running in.++-- | One or more filters.     * @affinity@ - The affinity setting for an instance running on a Dedicated Host (@default@ | @host@ ).     * @architecture@ - The instance architecture (@i386@ | @x86_64@ ).     * @availability-zone@ - The Availability Zone of the instance.     * @block-device-mapping.attach-time@ - The attach time for an EBS volume mapped to the instance, for example, @2010-09-15T17:15:20.000Z@ .     * @block-device-mapping.delete-on-termination@ - A Boolean that indicates whether the EBS volume is deleted on instance termination.     * @block-device-mapping.device-name@ - The device name specified in the block device mapping (for example, @/dev/sdh@ or @xvdh@ ).     * @block-device-mapping.status@ - The status for the EBS volume (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @block-device-mapping.volume-id@ - The volume ID of the EBS volume.     * @client-token@ - The idempotency token you provided when you launched the instance.     * @dns-name@ - The public DNS name of the instance.     * @group-id@ - The ID of the security group for the instance. EC2-Classic only.     * @group-name@ - The name of the security group for the instance. EC2-Classic only.     * @host-id@ - The ID of the Dedicated Host on which the instance is running, if applicable.     * @hypervisor@ - The hypervisor type of the instance (@ovm@ | @xen@ ).     * @iam-instance-profile.arn@ - The instance profile associated with the instance. Specified as an ARN.     * @image-id@ - The ID of the image used to launch the instance.     * @instance-id@ - The ID of the instance.     * @instance-lifecycle@ - Indicates whether this is a Spot Instance or a Scheduled Instance (@spot@ | @scheduled@ ).     * @instance-state-code@ - 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).     * @instance-state-name@ - The state of the instance (@pending@ | @running@ | @shutting-down@ | @terminated@ | @stopping@ | @stopped@ ).     * @instance-type@ - The type of instance (for example, @t2.micro@ ).     * @instance.group-id@ - The ID of the security group for the instance.      * @instance.group-name@ - The name of the security group for the instance.      * @ip-address@ - The public IPv4 address of the instance.     * @kernel-id@ - The kernel ID.     * @key-name@ - The name of the key pair used when the instance was launched.     * @launch-index@ - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).      * @launch-time@ - The time when the instance was launched.     * @monitoring-state@ - Indicates whether detailed monitoring is enabled (@disabled@ | @enabled@ ).     * @network-interface.addresses.private-ip-address@ - The private IPv4 address associated with the network interface.     * @network-interface.addresses.primary@ - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.     * @network-interface.addresses.association.public-ip@ - The ID of the association of an Elastic IP address (IPv4) with a network interface.     * @network-interface.addresses.association.ip-owner-id@ - The owner ID of the private IPv4 address associated with the network interface.     * @network-interface.association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @network-interface.association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @network-interface.association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @network-interface.association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @network-interface.attachment.attachment-id@ - The ID of the interface attachment.     * @network-interface.attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @network-interface.attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @network-interface.attachment.device-index@ - The device index to which the network interface is attached.     * @network-interface.attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @network-interface.attachment.attach-time@ - The time that the network interface was attached to an instance.     * @network-interface.attachment.delete-on-termination@ - Specifies whether the attachment is deleted when an instance is terminated.     * @network-interface.availability-zone@ - The Availability Zone for the network interface.     * @network-interface.description@ - The description of the network interface.     * @network-interface.group-id@ - The ID of a security group associated with the network interface.     * @network-interface.group-name@ - The name of a security group associated with the network interface.     * @network-interface.ipv6-addresses.ipv6-address@ - The IPv6 address associated with the network interface.     * @network-interface.mac-address@ - The MAC address of the network interface.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.owner-id@ - The ID of the owner of the network interface.     * @network-interface.private-dns-name@ - The private DNS name of the network interface.     * @network-interface.requester-id@ - The requester ID for the network interface.     * @network-interface.requester-managed@ - Indicates whether the network interface is being managed by AWS.     * @network-interface.status@ - The status of the network interface (@available@ ) | @in-use@ ).     * @network-interface.source-dest-check@ - Whether the network interface performs source/destination checking. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.     * @network-interface.subnet-id@ - The ID of the subnet for the network interface.     * @network-interface.vpc-id@ - The ID of the VPC for the network interface.     * @owner-id@ - The AWS account ID of the instance owner.     * @placement-group-name@ - The name of the placement group for the instance.     * @platform@ - The platform. Use @windows@ if you have Windows instances; otherwise, leave blank.     * @private-dns-name@ - The private IPv4 DNS name of the instance.     * @private-ip-address@ - The private IPv4 address of the instance.     * @product-code@ - The product code associated with the AMI used to launch the instance.     * @product-code.type@ - The type of product code (@devpay@ | @marketplace@ ).     * @ramdisk-id@ - The RAM disk ID.     * @reason@ - 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.     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @reservation-id@ - 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.     * @root-device-name@ - The device name of the root device volume (for example, @/dev/sda1@ ).     * @root-device-type@ - The type of the root device volume (@ebs@ | @instance-store@ ).     * @source-dest-check@ - Indicates whether the instance performs source/destination checking. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. The value must be @false@ for the instance to perform network address translation (NAT) in your VPC.      * @spot-instance-request-id@ - The ID of the Spot Instance request.     * @state-reason-code@ - The reason code for the state change.     * @state-reason-message@ - A message that describes the state change.     * @subnet-id@ - The ID of the subnet for the instance.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 the tag's key). If you want to list only resources where Purpose is X, see the @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @tenancy@ - The tenancy of an instance (@dedicated@ | @default@ | @host@ ).     * @virtualization-type@ - The virtualization type of the instance (@paravirtual@ | @hvm@ ).     * @vpc-id@ - The ID of the VPC that the instance is running in. diiFilters :: Lens' DescribeInstances [Filter] diiFilters = lens _diiFilters (\ s a -> s{_diiFilters = a}) . _Default . _Coerce; @@ -134,9 +136,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeInstances+instance Hashable DescribeInstances where -instance NFData DescribeInstances+instance NFData DescribeInstances where  instance ToHeaders DescribeInstances where         toHeaders = const mempty@@ -162,11 +164,12 @@ -- -- /See:/ 'describeInstancesResponse' smart constructor. data DescribeInstancesResponse = DescribeInstancesResponse'-    { _dirsNextToken      :: !(Maybe Text)-    , _dirsReservations   :: !(Maybe [Reservation])-    , _dirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dirsNextToken      :: !(Maybe Text)+  , _dirsReservations   :: !(Maybe [Reservation])+  , _dirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -180,12 +183,13 @@     :: Int -- ^ 'dirsResponseStatus'     -> DescribeInstancesResponse describeInstancesResponse pResponseStatus_ =-    DescribeInstancesResponse'-    { _dirsNextToken = Nothing-    , _dirsReservations = Nothing-    , _dirsResponseStatus = pResponseStatus_-    }+  DescribeInstancesResponse'+  { _dirsNextToken = Nothing+  , _dirsReservations = Nothing+  , _dirsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. dirsNextToken :: Lens' DescribeInstancesResponse (Maybe Text) dirsNextToken = lens _dirsNextToken (\ s a -> s{_dirsNextToken = a});@@ -198,4 +202,4 @@ dirsResponseStatus :: Lens' DescribeInstancesResponse Int dirsResponseStatus = lens _dirsResponseStatus (\ s a -> s{_dirsResponseStatus = a}); -instance NFData DescribeInstancesResponse+instance NFData DescribeInstancesResponse where
gen/Network/AWS/EC2/DescribeInternetGateways.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeInternetGateways--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , digrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeInternetGateways. --@@ -52,16 +52,17 @@ -- -- /See:/ 'describeInternetGateways' smart constructor. data DescribeInternetGateways = DescribeInternetGateways'-    { _dFilters            :: !(Maybe [Filter])-    , _dInternetGatewayIds :: !(Maybe [Text])-    , _dDryRun             :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dFilters            :: !(Maybe [Filter])+  , _dInternetGatewayIds :: !(Maybe [Text])+  , _dDryRun             :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInternetGateways' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dFilters' - One or more filters.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@available@ ). Present only if a VPC is attached.     * @attachment.vpc-id@ - The ID of an attached VPC.     * @internet-gateway-id@ - The ID of the Internet gateway.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.+-- * 'dFilters' - One or more filters.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@available@ ). Present only if a VPC is attached.     * @attachment.vpc-id@ - The ID of an attached VPC.     * @internet-gateway-id@ - The ID of the Internet gateway.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. -- -- * 'dInternetGatewayIds' - One or more Internet gateway IDs. Default: Describes all your Internet gateways. --@@ -69,13 +70,11 @@ describeInternetGateways     :: DescribeInternetGateways describeInternetGateways =-    DescribeInternetGateways'-    { _dFilters = Nothing-    , _dInternetGatewayIds = Nothing-    , _dDryRun = Nothing-    }+  DescribeInternetGateways'+  {_dFilters = Nothing, _dInternetGatewayIds = Nothing, _dDryRun = Nothing} --- | One or more filters.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@available@ ). Present only if a VPC is attached.     * @attachment.vpc-id@ - The ID of an attached VPC.     * @internet-gateway-id@ - The ID of the Internet gateway.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.++-- | One or more filters.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@available@ ). Present only if a VPC is attached.     * @attachment.vpc-id@ - The ID of an attached VPC.     * @internet-gateway-id@ - The ID of the Internet gateway.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. dFilters :: Lens' DescribeInternetGateways [Filter] dFilters = lens _dFilters (\ s a -> s{_dFilters = a}) . _Default . _Coerce; @@ -99,9 +98,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeInternetGateways+instance Hashable DescribeInternetGateways where -instance NFData DescribeInternetGateways+instance NFData DescribeInternetGateways where  instance ToHeaders DescribeInternetGateways where         toHeaders = const mempty@@ -127,10 +126,11 @@ -- -- /See:/ 'describeInternetGatewaysResponse' smart constructor. data DescribeInternetGatewaysResponse = DescribeInternetGatewaysResponse'-    { _digrsInternetGateways :: !(Maybe [InternetGateway])-    , _digrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _digrsInternetGateways :: !(Maybe [InternetGateway])+  , _digrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeInternetGatewaysResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +142,10 @@     :: Int -- ^ 'digrsResponseStatus'     -> DescribeInternetGatewaysResponse describeInternetGatewaysResponse pResponseStatus_ =-    DescribeInternetGatewaysResponse'-    { _digrsInternetGateways = Nothing-    , _digrsResponseStatus = pResponseStatus_-    }+  DescribeInternetGatewaysResponse'+  {_digrsInternetGateways = Nothing, _digrsResponseStatus = pResponseStatus_} + -- | Information about one or more Internet gateways. digrsInternetGateways :: Lens' DescribeInternetGatewaysResponse [InternetGateway] digrsInternetGateways = lens _digrsInternetGateways (\ s a -> s{_digrsInternetGateways = a}) . _Default . _Coerce;@@ -156,3 +155,4 @@ digrsResponseStatus = lens _digrsResponseStatus (\ s a -> s{_digrsResponseStatus = a});  instance NFData DescribeInternetGatewaysResponse+         where
gen/Network/AWS/EC2/DescribeKeyPairs.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeKeyPairs--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , dkprsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeKeyPairs. --@@ -54,11 +54,12 @@ -- -- /See:/ 'describeKeyPairs' smart constructor. data DescribeKeyPairs = DescribeKeyPairs'-    { _dkpsFilters  :: !(Maybe [Filter])-    , _dkpsKeyNames :: !(Maybe [Text])-    , _dkpsDryRun   :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dkpsFilters  :: !(Maybe [Filter])+  , _dkpsKeyNames :: !(Maybe [Text])+  , _dkpsDryRun   :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeKeyPairs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,10 @@ describeKeyPairs     :: DescribeKeyPairs describeKeyPairs =-    DescribeKeyPairs'-    { _dkpsFilters = Nothing-    , _dkpsKeyNames = Nothing-    , _dkpsDryRun = Nothing-    }+  DescribeKeyPairs'+  {_dkpsFilters = Nothing, _dkpsKeyNames = Nothing, _dkpsDryRun = Nothing} + -- | One or more filters.     * @fingerprint@ - The fingerprint of the key pair.     * @key-name@ - The name of the key pair. dkpsFilters :: Lens' DescribeKeyPairs [Filter] dkpsFilters = lens _dkpsFilters (\ s a -> s{_dkpsFilters = a}) . _Default . _Coerce;@@ -100,9 +99,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeKeyPairs+instance Hashable DescribeKeyPairs where -instance NFData DescribeKeyPairs+instance NFData DescribeKeyPairs where  instance ToHeaders DescribeKeyPairs where         toHeaders = const mempty@@ -125,10 +124,11 @@ -- -- /See:/ 'describeKeyPairsResponse' smart constructor. data DescribeKeyPairsResponse = DescribeKeyPairsResponse'-    { _dkprsKeyPairs       :: !(Maybe [KeyPairInfo])-    , _dkprsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dkprsKeyPairs       :: !(Maybe [KeyPairInfo])+  , _dkprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeKeyPairsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +140,10 @@     :: Int -- ^ 'dkprsResponseStatus'     -> DescribeKeyPairsResponse describeKeyPairsResponse pResponseStatus_ =-    DescribeKeyPairsResponse'-    { _dkprsKeyPairs = Nothing-    , _dkprsResponseStatus = pResponseStatus_-    }+  DescribeKeyPairsResponse'+  {_dkprsKeyPairs = Nothing, _dkprsResponseStatus = pResponseStatus_} + -- | Information about one or more key pairs. dkprsKeyPairs :: Lens' DescribeKeyPairsResponse [KeyPairInfo] dkprsKeyPairs = lens _dkprsKeyPairs (\ s a -> s{_dkprsKeyPairs = a}) . _Default . _Coerce;@@ -153,4 +152,4 @@ dkprsResponseStatus :: Lens' DescribeKeyPairsResponse Int dkprsResponseStatus = lens _dkprsResponseStatus (\ s a -> s{_dkprsResponseStatus = a}); -instance NFData DescribeKeyPairsResponse+instance NFData DescribeKeyPairsResponse where
gen/Network/AWS/EC2/DescribeMovingAddresses.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeMovingAddresses--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , dmarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeMovingAddresses. --@@ -55,13 +55,14 @@ -- -- /See:/ 'describeMovingAddresses' smart constructor. data DescribeMovingAddresses = DescribeMovingAddresses'-    { _dmaFilters    :: !(Maybe [Filter])-    , _dmaPublicIPs  :: !(Maybe [Text])-    , _dmaNextToken  :: !(Maybe Text)-    , _dmaDryRun     :: !(Maybe Bool)-    , _dmaMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dmaFilters    :: !(Maybe [Filter])+  , _dmaPublicIPs  :: !(Maybe [Text])+  , _dmaNextToken  :: !(Maybe Text)+  , _dmaDryRun     :: !(Maybe Bool)+  , _dmaMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeMovingAddresses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,14 +79,15 @@ describeMovingAddresses     :: DescribeMovingAddresses describeMovingAddresses =-    DescribeMovingAddresses'-    { _dmaFilters = Nothing-    , _dmaPublicIPs = Nothing-    , _dmaNextToken = Nothing-    , _dmaDryRun = Nothing-    , _dmaMaxResults = Nothing-    }+  DescribeMovingAddresses'+  { _dmaFilters = Nothing+  , _dmaPublicIPs = Nothing+  , _dmaNextToken = Nothing+  , _dmaDryRun = Nothing+  , _dmaMaxResults = Nothing+  } + -- | One or more filters.     * @moving-status@ - The status of the Elastic IP address (@MovingToVpc@ | @RestoringToClassic@ ). dmaFilters :: Lens' DescribeMovingAddresses [Filter] dmaFilters = lens _dmaFilters (\ s a -> s{_dmaFilters = a}) . _Default . _Coerce;@@ -119,9 +121,9 @@                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeMovingAddresses+instance Hashable DescribeMovingAddresses where -instance NFData DescribeMovingAddresses+instance NFData DescribeMovingAddresses where  instance ToHeaders DescribeMovingAddresses where         toHeaders = const mempty@@ -146,11 +148,12 @@ -- -- /See:/ 'describeMovingAddressesResponse' smart constructor. data DescribeMovingAddressesResponse = DescribeMovingAddressesResponse'-    { _dmarsMovingAddressStatuses :: !(Maybe [MovingAddressStatus])-    , _dmarsNextToken             :: !(Maybe Text)-    , _dmarsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dmarsMovingAddressStatuses :: !(Maybe [MovingAddressStatus])+  , _dmarsNextToken             :: !(Maybe Text)+  , _dmarsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeMovingAddressesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,12 +167,13 @@     :: Int -- ^ 'dmarsResponseStatus'     -> DescribeMovingAddressesResponse describeMovingAddressesResponse pResponseStatus_ =-    DescribeMovingAddressesResponse'-    { _dmarsMovingAddressStatuses = Nothing-    , _dmarsNextToken = Nothing-    , _dmarsResponseStatus = pResponseStatus_-    }+  DescribeMovingAddressesResponse'+  { _dmarsMovingAddressStatuses = Nothing+  , _dmarsNextToken = Nothing+  , _dmarsResponseStatus = pResponseStatus_+  } + -- | The status for each Elastic IP address. dmarsMovingAddressStatuses :: Lens' DescribeMovingAddressesResponse [MovingAddressStatus] dmarsMovingAddressStatuses = lens _dmarsMovingAddressStatuses (\ s a -> s{_dmarsMovingAddressStatuses = a}) . _Default . _Coerce;@@ -182,4 +186,4 @@ dmarsResponseStatus :: Lens' DescribeMovingAddressesResponse Int dmarsResponseStatus = lens _dmarsResponseStatus (\ s a -> s{_dmarsResponseStatus = a}); -instance NFData DescribeMovingAddressesResponse+instance NFData DescribeMovingAddressesResponse where
gen/Network/AWS/EC2/DescribeNatGateways.hs view
@@ -12,15 +12,17 @@  -- | -- Module      : Network.AWS.EC2.DescribeNatGateways--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of the your NAT gateways. -- --+--+-- This operation returns paginated results. module Network.AWS.EC2.DescribeNatGateways     (     -- * Creating a Request@@ -41,12 +43,13 @@     , dngrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeNatGateways. --@@ -54,12 +57,13 @@ -- -- /See:/ 'describeNatGateways' smart constructor. data DescribeNatGateways = DescribeNatGateways'-    { _dngNatGatewayIds :: !(Maybe [Text])-    , _dngNextToken     :: !(Maybe Text)-    , _dngFilter        :: !(Maybe [Filter])-    , _dngMaxResults    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dngNatGatewayIds :: !(Maybe [Text])+  , _dngNextToken     :: !(Maybe Text)+  , _dngFilter        :: !(Maybe [Filter])+  , _dngMaxResults    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNatGateways' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,19 +72,20 @@ -- -- * 'dngNextToken' - The token to retrieve the next page of results. ----- * 'dngFilter' - One or more filters.     * @nat-gateway-id@ - The ID of the NAT gateway.     * @state@ - The state of the NAT gateway (@pending@ | @failed@ | @available@ | @deleting@ | @deleted@ ).     * @subnet-id@ - The ID of the subnet in which the NAT gateway resides.     * @vpc-id@ - The ID of the VPC in which the NAT gateway resides.+-- * 'dngFilter' - One or more filters.     * @nat-gateway-id@ - The ID of the NAT gateway.     * @state@ - The state of the NAT gateway (@pending@ | @failed@ | @available@ | @deleting@ | @deleted@ ).     * @subnet-id@ - The ID of the subnet in which the NAT gateway resides.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC in which the NAT gateway resides. -- -- * 'dngMaxResults' - 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. describeNatGateways     :: DescribeNatGateways describeNatGateways =-    DescribeNatGateways'-    { _dngNatGatewayIds = Nothing-    , _dngNextToken = Nothing-    , _dngFilter = Nothing-    , _dngMaxResults = Nothing-    }+  DescribeNatGateways'+  { _dngNatGatewayIds = Nothing+  , _dngNextToken = Nothing+  , _dngFilter = Nothing+  , _dngMaxResults = Nothing+  } + -- | One or more NAT gateway IDs. dngNatGatewayIds :: Lens' DescribeNatGateways [Text] dngNatGatewayIds = lens _dngNatGatewayIds (\ s a -> s{_dngNatGatewayIds = a}) . _Default . _Coerce;@@ -89,7 +94,7 @@ dngNextToken :: Lens' DescribeNatGateways (Maybe Text) dngNextToken = lens _dngNextToken (\ s a -> s{_dngNextToken = a}); --- | One or more filters.     * @nat-gateway-id@ - The ID of the NAT gateway.     * @state@ - The state of the NAT gateway (@pending@ | @failed@ | @available@ | @deleting@ | @deleted@ ).     * @subnet-id@ - The ID of the subnet in which the NAT gateway resides.     * @vpc-id@ - The ID of the VPC in which the NAT gateway resides.+-- | One or more filters.     * @nat-gateway-id@ - The ID of the NAT gateway.     * @state@ - The state of the NAT gateway (@pending@ | @failed@ | @available@ | @deleting@ | @deleted@ ).     * @subnet-id@ - The ID of the subnet in which the NAT gateway resides.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC in which the NAT gateway resides. dngFilter :: Lens' DescribeNatGateways [Filter] dngFilter = lens _dngFilter (\ s a -> s{_dngFilter = a}) . _Default . _Coerce; @@ -97,6 +102,13 @@ dngMaxResults :: Lens' DescribeNatGateways (Maybe Int) dngMaxResults = lens _dngMaxResults (\ s a -> s{_dngMaxResults = a}); +instance AWSPager DescribeNatGateways where+        page rq rs+          | stop (rs ^. dngrsNextToken) = Nothing+          | stop (rs ^. dngrsNatGateways) = Nothing+          | otherwise =+            Just $ rq & dngNextToken .~ rs ^. dngrsNextToken+ instance AWSRequest DescribeNatGateways where         type Rs DescribeNatGateways =              DescribeNatGatewaysResponse@@ -110,9 +122,9 @@                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeNatGateways+instance Hashable DescribeNatGateways where -instance NFData DescribeNatGateways+instance NFData DescribeNatGateways where  instance ToHeaders DescribeNatGateways where         toHeaders = const mempty@@ -137,11 +149,12 @@ -- -- /See:/ 'describeNatGatewaysResponse' smart constructor. data DescribeNatGatewaysResponse = DescribeNatGatewaysResponse'-    { _dngrsNatGateways    :: !(Maybe [NatGateway])-    , _dngrsNextToken      :: !(Maybe Text)-    , _dngrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dngrsNatGateways    :: !(Maybe [NatGateway])+  , _dngrsNextToken      :: !(Maybe Text)+  , _dngrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNatGatewaysResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -155,12 +168,13 @@     :: Int -- ^ 'dngrsResponseStatus'     -> DescribeNatGatewaysResponse describeNatGatewaysResponse pResponseStatus_ =-    DescribeNatGatewaysResponse'-    { _dngrsNatGateways = Nothing-    , _dngrsNextToken = Nothing-    , _dngrsResponseStatus = pResponseStatus_-    }+  DescribeNatGatewaysResponse'+  { _dngrsNatGateways = Nothing+  , _dngrsNextToken = Nothing+  , _dngrsResponseStatus = pResponseStatus_+  } + -- | Information about the NAT gateways. dngrsNatGateways :: Lens' DescribeNatGatewaysResponse [NatGateway] dngrsNatGateways = lens _dngrsNatGateways (\ s a -> s{_dngrsNatGateways = a}) . _Default . _Coerce;@@ -173,4 +187,4 @@ dngrsResponseStatus :: Lens' DescribeNatGatewaysResponse Int dngrsResponseStatus = lens _dngrsResponseStatus (\ s a -> s{_dngrsResponseStatus = a}); -instance NFData DescribeNatGatewaysResponse+instance NFData DescribeNatGatewaysResponse where
gen/Network/AWS/EC2/DescribeNetworkACLs.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeNetworkACLs--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , dnarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeNetworkAcls. --@@ -54,16 +54,17 @@ -- -- /See:/ 'describeNetworkACLs' smart constructor. data DescribeNetworkACLs = DescribeNetworkACLs'-    { _dnaclFilters       :: !(Maybe [Filter])-    , _dnaclNetworkACLIds :: !(Maybe [Text])-    , _dnaclDryRun        :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dnaclFilters       :: !(Maybe [Filter])+  , _dnaclNetworkACLIds :: !(Maybe [Text])+  , _dnaclDryRun        :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNetworkACLs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dnaclFilters' - One or more filters.     * @association.association-id@ - The ID of an association ID for the ACL.     * @association.network-acl-id@ - The ID of the network ACL involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @default@ - Indicates whether the ACL is the default network ACL for the VPC.     * @entry.cidr@ - The IPv4 CIDR range specified in the entry.     * @entry.egress@ - Indicates whether the entry applies to egress traffic.     * @entry.icmp.code@ - The ICMP code specified in the entry, if any.     * @entry.icmp.type@ - The ICMP type specified in the entry, if any.     * @entry.ipv6-cidr@ - The IPv6 CIDR range specified in the entry.     * @entry.port-range.from@ - The start of the port range specified in the entry.      * @entry.port-range.to@ - The end of the port range specified in the entry.      * @entry.protocol@ - The protocol specified in the entry (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @entry.rule-action@ - Allows or denies the matching traffic (@allow@ | @deny@ ).     * @entry.rule-number@ - The number of an entry (in other words, rule) in the ACL's set of entries.     * @network-acl-id@ - The ID of the network ACL.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network ACL.+-- * 'dnaclFilters' - One or more filters.     * @association.association-id@ - The ID of an association ID for the ACL.     * @association.network-acl-id@ - The ID of the network ACL involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @default@ - Indicates whether the ACL is the default network ACL for the VPC.     * @entry.cidr@ - The IPv4 CIDR range specified in the entry.     * @entry.egress@ - Indicates whether the entry applies to egress traffic.     * @entry.icmp.code@ - The ICMP code specified in the entry, if any.     * @entry.icmp.type@ - The ICMP type specified in the entry, if any.     * @entry.ipv6-cidr@ - The IPv6 CIDR range specified in the entry.     * @entry.port-range.from@ - The start of the port range specified in the entry.      * @entry.port-range.to@ - The end of the port range specified in the entry.      * @entry.protocol@ - The protocol specified in the entry (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @entry.rule-action@ - Allows or denies the matching traffic (@allow@ | @deny@ ).     * @entry.rule-number@ - The number of an entry (in other words, rule) in the ACL's set of entries.     * @network-acl-id@ - The ID of the network ACL.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network ACL. -- -- * 'dnaclNetworkACLIds' - One or more network ACL IDs. Default: Describes all your network ACLs. --@@ -71,13 +72,14 @@ describeNetworkACLs     :: DescribeNetworkACLs describeNetworkACLs =-    DescribeNetworkACLs'-    { _dnaclFilters = Nothing-    , _dnaclNetworkACLIds = Nothing-    , _dnaclDryRun = Nothing-    }+  DescribeNetworkACLs'+  { _dnaclFilters = Nothing+  , _dnaclNetworkACLIds = Nothing+  , _dnaclDryRun = Nothing+  } --- | One or more filters.     * @association.association-id@ - The ID of an association ID for the ACL.     * @association.network-acl-id@ - The ID of the network ACL involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @default@ - Indicates whether the ACL is the default network ACL for the VPC.     * @entry.cidr@ - The IPv4 CIDR range specified in the entry.     * @entry.egress@ - Indicates whether the entry applies to egress traffic.     * @entry.icmp.code@ - The ICMP code specified in the entry, if any.     * @entry.icmp.type@ - The ICMP type specified in the entry, if any.     * @entry.ipv6-cidr@ - The IPv6 CIDR range specified in the entry.     * @entry.port-range.from@ - The start of the port range specified in the entry.      * @entry.port-range.to@ - The end of the port range specified in the entry.      * @entry.protocol@ - The protocol specified in the entry (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @entry.rule-action@ - Allows or denies the matching traffic (@allow@ | @deny@ ).     * @entry.rule-number@ - The number of an entry (in other words, rule) in the ACL's set of entries.     * @network-acl-id@ - The ID of the network ACL.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network ACL.++-- | One or more filters.     * @association.association-id@ - The ID of an association ID for the ACL.     * @association.network-acl-id@ - The ID of the network ACL involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @default@ - Indicates whether the ACL is the default network ACL for the VPC.     * @entry.cidr@ - The IPv4 CIDR range specified in the entry.     * @entry.egress@ - Indicates whether the entry applies to egress traffic.     * @entry.icmp.code@ - The ICMP code specified in the entry, if any.     * @entry.icmp.type@ - The ICMP type specified in the entry, if any.     * @entry.ipv6-cidr@ - The IPv6 CIDR range specified in the entry.     * @entry.port-range.from@ - The start of the port range specified in the entry.      * @entry.port-range.to@ - The end of the port range specified in the entry.      * @entry.protocol@ - The protocol specified in the entry (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @entry.rule-action@ - Allows or denies the matching traffic (@allow@ | @deny@ ).     * @entry.rule-number@ - The number of an entry (in other words, rule) in the ACL's set of entries.     * @network-acl-id@ - The ID of the network ACL.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network ACL. dnaclFilters :: Lens' DescribeNetworkACLs [Filter] dnaclFilters = lens _dnaclFilters (\ s a -> s{_dnaclFilters = a}) . _Default . _Coerce; @@ -101,9 +103,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeNetworkACLs+instance Hashable DescribeNetworkACLs where -instance NFData DescribeNetworkACLs+instance NFData DescribeNetworkACLs where  instance ToHeaders DescribeNetworkACLs where         toHeaders = const mempty@@ -127,10 +129,11 @@ -- -- /See:/ 'describeNetworkACLsResponse' smart constructor. data DescribeNetworkACLsResponse = DescribeNetworkACLsResponse'-    { _dnarsNetworkACLs    :: !(Maybe [NetworkACL])-    , _dnarsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dnarsNetworkACLs    :: !(Maybe [NetworkACL])+  , _dnarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNetworkACLsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +145,10 @@     :: Int -- ^ 'dnarsResponseStatus'     -> DescribeNetworkACLsResponse describeNetworkACLsResponse pResponseStatus_ =-    DescribeNetworkACLsResponse'-    { _dnarsNetworkACLs = Nothing-    , _dnarsResponseStatus = pResponseStatus_-    }+  DescribeNetworkACLsResponse'+  {_dnarsNetworkACLs = Nothing, _dnarsResponseStatus = pResponseStatus_} + -- | Information about one or more network ACLs. dnarsNetworkACLs :: Lens' DescribeNetworkACLsResponse [NetworkACL] dnarsNetworkACLs = lens _dnarsNetworkACLs (\ s a -> s{_dnarsNetworkACLs = a}) . _Default . _Coerce;@@ -155,4 +157,4 @@ dnarsResponseStatus :: Lens' DescribeNetworkACLsResponse Int dnarsResponseStatus = lens _dnarsResponseStatus (\ s a -> s{_dnarsResponseStatus = a}); -instance NFData DescribeNetworkACLsResponse+instance NFData DescribeNetworkACLsResponse where
gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeNetworkInterfaceAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , dniarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeNetworkInterfaceAttribute. --@@ -56,16 +56,17 @@ -- -- /See:/ 'describeNetworkInterfaceAttribute' smart constructor. data DescribeNetworkInterfaceAttribute = DescribeNetworkInterfaceAttribute'-    { _dniaAttribute          :: !(Maybe NetworkInterfaceAttribute)-    , _dniaDryRun             :: !(Maybe Bool)-    , _dniaNetworkInterfaceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dniaAttribute          :: !(Maybe NetworkInterfaceAttribute)+  , _dniaDryRun             :: !(Maybe Bool)+  , _dniaNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNetworkInterfaceAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dniaAttribute' - The attribute of the network interface.+-- * 'dniaAttribute' - The attribute of the network interface. This parameter is required. -- -- * 'dniaDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -74,13 +75,14 @@     :: Text -- ^ 'dniaNetworkInterfaceId'     -> DescribeNetworkInterfaceAttribute describeNetworkInterfaceAttribute pNetworkInterfaceId_ =-    DescribeNetworkInterfaceAttribute'-    { _dniaAttribute = Nothing-    , _dniaDryRun = Nothing-    , _dniaNetworkInterfaceId = pNetworkInterfaceId_-    }+  DescribeNetworkInterfaceAttribute'+  { _dniaAttribute = Nothing+  , _dniaDryRun = Nothing+  , _dniaNetworkInterfaceId = pNetworkInterfaceId_+  } --- | The attribute of the network interface.++-- | The attribute of the network interface. This parameter is required. dniaAttribute :: Lens' DescribeNetworkInterfaceAttribute (Maybe NetworkInterfaceAttribute) dniaAttribute = lens _dniaAttribute (\ s a -> s{_dniaAttribute = a}); @@ -110,8 +112,10 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeNetworkInterfaceAttribute+         where  instance NFData DescribeNetworkInterfaceAttribute+         where  instance ToHeaders DescribeNetworkInterfaceAttribute          where@@ -138,14 +142,15 @@ -- -- /See:/ 'describeNetworkInterfaceAttributeResponse' smart constructor. data DescribeNetworkInterfaceAttributeResponse = DescribeNetworkInterfaceAttributeResponse'-    { _dniarsGroups             :: !(Maybe [GroupIdentifier])-    , _dniarsSourceDestCheck    :: !(Maybe AttributeBooleanValue)-    , _dniarsNetworkInterfaceId :: !(Maybe Text)-    , _dniarsAttachment         :: !(Maybe NetworkInterfaceAttachment)-    , _dniarsDescription        :: !(Maybe AttributeValue)-    , _dniarsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dniarsGroups             :: !(Maybe [GroupIdentifier])+  , _dniarsSourceDestCheck    :: !(Maybe AttributeBooleanValue)+  , _dniarsNetworkInterfaceId :: !(Maybe Text)+  , _dniarsAttachment         :: !(Maybe NetworkInterfaceAttachment)+  , _dniarsDescription        :: !(Maybe AttributeValue)+  , _dniarsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNetworkInterfaceAttributeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -165,15 +170,16 @@     :: Int -- ^ 'dniarsResponseStatus'     -> DescribeNetworkInterfaceAttributeResponse describeNetworkInterfaceAttributeResponse pResponseStatus_ =-    DescribeNetworkInterfaceAttributeResponse'-    { _dniarsGroups = Nothing-    , _dniarsSourceDestCheck = Nothing-    , _dniarsNetworkInterfaceId = Nothing-    , _dniarsAttachment = Nothing-    , _dniarsDescription = Nothing-    , _dniarsResponseStatus = pResponseStatus_-    }+  DescribeNetworkInterfaceAttributeResponse'+  { _dniarsGroups = Nothing+  , _dniarsSourceDestCheck = Nothing+  , _dniarsNetworkInterfaceId = Nothing+  , _dniarsAttachment = Nothing+  , _dniarsDescription = Nothing+  , _dniarsResponseStatus = pResponseStatus_+  } + -- | The security groups associated with the network interface. dniarsGroups :: Lens' DescribeNetworkInterfaceAttributeResponse [GroupIdentifier] dniarsGroups = lens _dniarsGroups (\ s a -> s{_dniarsGroups = a}) . _Default . _Coerce;@@ -199,4 +205,5 @@ dniarsResponseStatus = lens _dniarsResponseStatus (\ s a -> s{_dniarsResponseStatus = a});  instance NFData-         DescribeNetworkInterfaceAttributeResponse+           DescribeNetworkInterfaceAttributeResponse+         where
+ gen/Network/AWS/EC2/DescribeNetworkInterfacePermissions.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeNetworkInterfacePermissions+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the permissions for your network interfaces.+--+--+module Network.AWS.EC2.DescribeNetworkInterfacePermissions+    (+    -- * Creating a Request+      describeNetworkInterfacePermissions+    , DescribeNetworkInterfacePermissions+    -- * Request Lenses+    , dnipFilters+    , dnipNextToken+    , dnipNetworkInterfacePermissionIds+    , dnipMaxResults++    -- * Destructuring the Response+    , describeNetworkInterfacePermissionsResponse+    , DescribeNetworkInterfacePermissionsResponse+    -- * Response Lenses+    , drsNetworkInterfacePermissions+    , drsNextToken+    , drsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for DescribeNetworkInterfacePermissions.+--+--+--+-- /See:/ 'describeNetworkInterfacePermissions' smart constructor.+data DescribeNetworkInterfacePermissions = DescribeNetworkInterfacePermissions'+  { _dnipFilters                       :: !(Maybe [Filter])+  , _dnipNextToken                     :: !(Maybe Text)+  , _dnipNetworkInterfacePermissionIds :: !(Maybe [Text])+  , _dnipMaxResults                    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeNetworkInterfacePermissions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnipFilters' - One or more filters.     * @network-interface-permission.network-interface-permission-id@ - The ID of the permission.     * @network-interface-permission.network-interface-id@ - The ID of the network interface.     * @network-interface-permission.aws-account-id@ - The AWS account ID.     * @network-interface-permission.aws-service@ - The AWS service.     * @network-interface-permission.permission@ - The type of permission (@INSTANCE-ATTACH@ | @EIP-ASSOCIATE@ ).+--+-- * 'dnipNextToken' - The token to request the next page of results.+--+-- * 'dnipNetworkInterfacePermissionIds' - One or more network interface permission IDs.+--+-- * 'dnipMaxResults' - The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned @NextToken@ value. If this parameter is not specified, up to 50 results are returned by default.+describeNetworkInterfacePermissions+    :: DescribeNetworkInterfacePermissions+describeNetworkInterfacePermissions =+  DescribeNetworkInterfacePermissions'+  { _dnipFilters = Nothing+  , _dnipNextToken = Nothing+  , _dnipNetworkInterfacePermissionIds = Nothing+  , _dnipMaxResults = Nothing+  }+++-- | One or more filters.     * @network-interface-permission.network-interface-permission-id@ - The ID of the permission.     * @network-interface-permission.network-interface-id@ - The ID of the network interface.     * @network-interface-permission.aws-account-id@ - The AWS account ID.     * @network-interface-permission.aws-service@ - The AWS service.     * @network-interface-permission.permission@ - The type of permission (@INSTANCE-ATTACH@ | @EIP-ASSOCIATE@ ).+dnipFilters :: Lens' DescribeNetworkInterfacePermissions [Filter]+dnipFilters = lens _dnipFilters (\ s a -> s{_dnipFilters = a}) . _Default . _Coerce;++-- | The token to request the next page of results.+dnipNextToken :: Lens' DescribeNetworkInterfacePermissions (Maybe Text)+dnipNextToken = lens _dnipNextToken (\ s a -> s{_dnipNextToken = a});++-- | One or more network interface permission IDs.+dnipNetworkInterfacePermissionIds :: Lens' DescribeNetworkInterfacePermissions [Text]+dnipNetworkInterfacePermissionIds = lens _dnipNetworkInterfacePermissionIds (\ s a -> s{_dnipNetworkInterfacePermissionIds = a}) . _Default . _Coerce;++-- | The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned @NextToken@ value. If this parameter is not specified, up to 50 results are returned by default.+dnipMaxResults :: Lens' DescribeNetworkInterfacePermissions (Maybe Int)+dnipMaxResults = lens _dnipMaxResults (\ s a -> s{_dnipMaxResults = a});++instance AWSRequest+           DescribeNetworkInterfacePermissions+         where+        type Rs DescribeNetworkInterfacePermissions =+             DescribeNetworkInterfacePermissionsResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeNetworkInterfacePermissionsResponse' <$>+                   (x .@? "networkInterfacePermissions" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeNetworkInterfacePermissions+         where++instance NFData DescribeNetworkInterfacePermissions+         where++instance ToHeaders+           DescribeNetworkInterfacePermissions+         where+        toHeaders = const mempty++instance ToPath DescribeNetworkInterfacePermissions+         where+        toPath = const "/"++instance ToQuery DescribeNetworkInterfacePermissions+         where+        toQuery DescribeNetworkInterfacePermissions'{..}+          = mconcat+              ["Action" =:+                 ("DescribeNetworkInterfacePermissions" ::+                    ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               toQuery (toQueryList "Filter" <$> _dnipFilters),+               "NextToken" =: _dnipNextToken,+               toQuery+                 (toQueryList "NetworkInterfacePermissionId" <$>+                    _dnipNetworkInterfacePermissionIds),+               "MaxResults" =: _dnipMaxResults]++-- | Contains the output for DescribeNetworkInterfacePermissions.+--+--+--+-- /See:/ 'describeNetworkInterfacePermissionsResponse' smart constructor.+data DescribeNetworkInterfacePermissionsResponse = DescribeNetworkInterfacePermissionsResponse'+  { _drsNetworkInterfacePermissions :: !(Maybe [NetworkInterfacePermission])+  , _drsNextToken                   :: !(Maybe Text)+  , _drsResponseStatus              :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeNetworkInterfacePermissionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsNetworkInterfacePermissions' - The network interface permissions.+--+-- * 'drsNextToken' - The token to use to retrieve the next page of results.+--+-- * 'drsResponseStatus' - -- | The response status code.+describeNetworkInterfacePermissionsResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DescribeNetworkInterfacePermissionsResponse+describeNetworkInterfacePermissionsResponse pResponseStatus_ =+  DescribeNetworkInterfacePermissionsResponse'+  { _drsNetworkInterfacePermissions = Nothing+  , _drsNextToken = Nothing+  , _drsResponseStatus = pResponseStatus_+  }+++-- | The network interface permissions.+drsNetworkInterfacePermissions :: Lens' DescribeNetworkInterfacePermissionsResponse [NetworkInterfacePermission]+drsNetworkInterfacePermissions = lens _drsNetworkInterfacePermissions (\ s a -> s{_drsNetworkInterfacePermissions = a}) . _Default . _Coerce;++-- | The token to use to retrieve the next page of results.+drsNextToken :: Lens' DescribeNetworkInterfacePermissionsResponse (Maybe Text)+drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a});++-- | -- | The response status code.+drsResponseStatus :: Lens' DescribeNetworkInterfacePermissionsResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});++instance NFData+           DescribeNetworkInterfacePermissionsResponse+         where
gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeNetworkInterfaces--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dnirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeNetworkInterfaces. --@@ -52,34 +52,36 @@ -- -- /See:/ 'describeNetworkInterfaces' smart constructor. data DescribeNetworkInterfaces = DescribeNetworkInterfaces'-    { _dnisNetworkInterfaceIds :: !(Maybe [Text])-    , _dnisFilters             :: !(Maybe [Filter])-    , _dnisDryRun              :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dnisNetworkInterfaceIds :: !(Maybe [Text])+  , _dnisFilters             :: !(Maybe [Filter])+  , _dnisDryRun              :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNetworkInterfaces' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dnisNetworkInterfaceIds' - One or more network interface IDs. Default: Describes all your network interfaces. ----- * 'dnisFilters' - One or more filters.     * @addresses.private-ip-address@ - The private IPv4 addresses associated with the network interface.     * @addresses.primary@ - Whether the private IPv4 address is the primary IP address associated with the network interface.      * @addresses.association.public-ip@ - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).     * @addresses.association.owner-id@ - The owner ID of the addresses associated with the network interface.     * @association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @association.public-dns-name@ - The public DNS name for the network interface (IPv4).     * @attachment.attachment-id@ - The ID of the interface attachment.     * @attachment.attach.time@ - The time that the network interface was attached to an instance.     * @attachment.delete-on-termination@ - Indicates whether the attachment is deleted when an instance is terminated.     * @attachment.device-index@ - The device index to which the network interface is attached.     * @attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @attachment.nat-gateway-id@ - The ID of the NAT gateway to which the network interface is attached.     * @attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone of the network interface.     * @description@ - The description of the network interface.     * @group-id@ - The ID of a security group associated with the network interface.     * @group-name@ - The name of a security group associated with the network interface.     * @ipv6-addresses.ipv6-address@ - An IPv6 address associated with the network interface.     * @mac-address@ - The MAC address of the network interface.     * @network-interface-id@ - The ID of the network interface.     * @owner-id@ - The AWS account ID of the network interface owner.     * @private-ip-address@ - The private IPv4 address or addresses of the network interface.     * @private-dns-name@ - The private DNS name of the network interface (IPv4).     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @requester-managed@ - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).     * @source-desk-check@ - Indicates whether the network interface performs source/destination checking. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.      * @status@ - The status of the network interface. If the network interface is not attached to an instance, the status is @available@ ; if a network interface is attached to an instance the status is @in-use@ .     * @subnet-id@ - The ID of the subnet for the network interface.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network interface.+-- * 'dnisFilters' - One or more filters.     * @addresses.private-ip-address@ - The private IPv4 addresses associated with the network interface.     * @addresses.primary@ - Whether the private IPv4 address is the primary IP address associated with the network interface.      * @addresses.association.public-ip@ - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).     * @addresses.association.owner-id@ - The owner ID of the addresses associated with the network interface.     * @association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @association.public-dns-name@ - The public DNS name for the network interface (IPv4).     * @attachment.attachment-id@ - The ID of the interface attachment.     * @attachment.attach.time@ - The time that the network interface was attached to an instance.     * @attachment.delete-on-termination@ - Indicates whether the attachment is deleted when an instance is terminated.     * @attachment.device-index@ - The device index to which the network interface is attached.     * @attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @attachment.nat-gateway-id@ - The ID of the NAT gateway to which the network interface is attached.     * @attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone of the network interface.     * @description@ - The description of the network interface.     * @group-id@ - The ID of a security group associated with the network interface.     * @group-name@ - The name of a security group associated with the network interface.     * @ipv6-addresses.ipv6-address@ - An IPv6 address associated with the network interface.     * @mac-address@ - The MAC address of the network interface.     * @network-interface-id@ - The ID of the network interface.     * @owner-id@ - The AWS account ID of the network interface owner.     * @private-ip-address@ - The private IPv4 address or addresses of the network interface.     * @private-dns-name@ - The private DNS name of the network interface (IPv4).     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @requester-managed@ - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).     * @source-desk-check@ - Indicates whether the network interface performs source/destination checking. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.      * @status@ - The status of the network interface. If the network interface is not attached to an instance, the status is @available@ ; if a network interface is attached to an instance the status is @in-use@ .     * @subnet-id@ - The ID of the subnet for the network interface.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network interface. -- -- * 'dnisDryRun' - Checks whether you have the required permissions for the action, 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@ . describeNetworkInterfaces     :: DescribeNetworkInterfaces describeNetworkInterfaces =-    DescribeNetworkInterfaces'-    { _dnisNetworkInterfaceIds = Nothing-    , _dnisFilters = Nothing-    , _dnisDryRun = Nothing-    }+  DescribeNetworkInterfaces'+  { _dnisNetworkInterfaceIds = Nothing+  , _dnisFilters = Nothing+  , _dnisDryRun = Nothing+  } + -- | One or more network interface IDs. Default: Describes all your network interfaces. dnisNetworkInterfaceIds :: Lens' DescribeNetworkInterfaces [Text] dnisNetworkInterfaceIds = lens _dnisNetworkInterfaceIds (\ s a -> s{_dnisNetworkInterfaceIds = a}) . _Default . _Coerce; --- | One or more filters.     * @addresses.private-ip-address@ - The private IPv4 addresses associated with the network interface.     * @addresses.primary@ - Whether the private IPv4 address is the primary IP address associated with the network interface.      * @addresses.association.public-ip@ - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).     * @addresses.association.owner-id@ - The owner ID of the addresses associated with the network interface.     * @association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @association.public-dns-name@ - The public DNS name for the network interface (IPv4).     * @attachment.attachment-id@ - The ID of the interface attachment.     * @attachment.attach.time@ - The time that the network interface was attached to an instance.     * @attachment.delete-on-termination@ - Indicates whether the attachment is deleted when an instance is terminated.     * @attachment.device-index@ - The device index to which the network interface is attached.     * @attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @attachment.nat-gateway-id@ - The ID of the NAT gateway to which the network interface is attached.     * @attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone of the network interface.     * @description@ - The description of the network interface.     * @group-id@ - The ID of a security group associated with the network interface.     * @group-name@ - The name of a security group associated with the network interface.     * @ipv6-addresses.ipv6-address@ - An IPv6 address associated with the network interface.     * @mac-address@ - The MAC address of the network interface.     * @network-interface-id@ - The ID of the network interface.     * @owner-id@ - The AWS account ID of the network interface owner.     * @private-ip-address@ - The private IPv4 address or addresses of the network interface.     * @private-dns-name@ - The private DNS name of the network interface (IPv4).     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @requester-managed@ - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).     * @source-desk-check@ - Indicates whether the network interface performs source/destination checking. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.      * @status@ - The status of the network interface. If the network interface is not attached to an instance, the status is @available@ ; if a network interface is attached to an instance the status is @in-use@ .     * @subnet-id@ - The ID of the subnet for the network interface.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network interface.+-- | One or more filters.     * @addresses.private-ip-address@ - The private IPv4 addresses associated with the network interface.     * @addresses.primary@ - Whether the private IPv4 address is the primary IP address associated with the network interface.      * @addresses.association.public-ip@ - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).     * @addresses.association.owner-id@ - The owner ID of the addresses associated with the network interface.     * @association.association-id@ - The association ID returned when the network interface was associated with an IPv4 address.     * @association.allocation-id@ - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.     * @association.ip-owner-id@ - The owner of the Elastic IP address (IPv4) associated with the network interface.     * @association.public-ip@ - The address of the Elastic IP address (IPv4) bound to the network interface.     * @association.public-dns-name@ - The public DNS name for the network interface (IPv4).     * @attachment.attachment-id@ - The ID of the interface attachment.     * @attachment.attach.time@ - The time that the network interface was attached to an instance.     * @attachment.delete-on-termination@ - Indicates whether the attachment is deleted when an instance is terminated.     * @attachment.device-index@ - The device index to which the network interface is attached.     * @attachment.instance-id@ - The ID of the instance to which the network interface is attached.     * @attachment.instance-owner-id@ - The owner ID of the instance to which the network interface is attached.     * @attachment.nat-gateway-id@ - The ID of the NAT gateway to which the network interface is attached.     * @attachment.status@ - The status of the attachment (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone of the network interface.     * @description@ - The description of the network interface.     * @group-id@ - The ID of a security group associated with the network interface.     * @group-name@ - The name of a security group associated with the network interface.     * @ipv6-addresses.ipv6-address@ - An IPv6 address associated with the network interface.     * @mac-address@ - The MAC address of the network interface.     * @network-interface-id@ - The ID of the network interface.     * @owner-id@ - The AWS account ID of the network interface owner.     * @private-ip-address@ - The private IPv4 address or addresses of the network interface.     * @private-dns-name@ - The private DNS name of the network interface (IPv4).     * @requester-id@ - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).     * @requester-managed@ - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).     * @source-desk-check@ - Indicates whether the network interface performs source/destination checking. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the network interface to perform network address translation (NAT) in your VPC.      * @status@ - The status of the network interface. If the network interface is not attached to an instance, the status is @available@ ; if a network interface is attached to an instance the status is @in-use@ .     * @subnet-id@ - The ID of the subnet for the network interface.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the network interface. dnisFilters :: Lens' DescribeNetworkInterfaces [Filter] dnisFilters = lens _dnisFilters (\ s a -> s{_dnisFilters = a}) . _Default . _Coerce; @@ -99,9 +101,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeNetworkInterfaces+instance Hashable DescribeNetworkInterfaces where -instance NFData DescribeNetworkInterfaces+instance NFData DescribeNetworkInterfaces where  instance ToHeaders DescribeNetworkInterfaces where         toHeaders = const mempty@@ -127,10 +129,11 @@ -- -- /See:/ 'describeNetworkInterfacesResponse' smart constructor. data DescribeNetworkInterfacesResponse = DescribeNetworkInterfacesResponse'-    { _dnirsNetworkInterfaces :: !(Maybe [NetworkInterface])-    , _dnirsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dnirsNetworkInterfaces :: !(Maybe [NetworkInterface])+  , _dnirsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeNetworkInterfacesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +145,10 @@     :: Int -- ^ 'dnirsResponseStatus'     -> DescribeNetworkInterfacesResponse describeNetworkInterfacesResponse pResponseStatus_ =-    DescribeNetworkInterfacesResponse'-    { _dnirsNetworkInterfaces = Nothing-    , _dnirsResponseStatus = pResponseStatus_-    }+  DescribeNetworkInterfacesResponse'+  {_dnirsNetworkInterfaces = Nothing, _dnirsResponseStatus = pResponseStatus_} + -- | Information about one or more network interfaces. dnirsNetworkInterfaces :: Lens' DescribeNetworkInterfacesResponse [NetworkInterface] dnirsNetworkInterfaces = lens _dnirsNetworkInterfaces (\ s a -> s{_dnirsNetworkInterfaces = a}) . _Default . _Coerce;@@ -156,3 +158,4 @@ dnirsResponseStatus = lens _dnirsResponseStatus (\ s a -> s{_dnirsResponseStatus = a});  instance NFData DescribeNetworkInterfacesResponse+         where
gen/Network/AWS/EC2/DescribePlacementGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribePlacementGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dpgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribePlacementGroups. --@@ -52,11 +52,12 @@ -- -- /See:/ 'describePlacementGroups' smart constructor. data DescribePlacementGroups = DescribePlacementGroups'-    { _dpgsFilters    :: !(Maybe [Filter])-    , _dpgsGroupNames :: !(Maybe [Text])-    , _dpgsDryRun     :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dpgsFilters    :: !(Maybe [Filter])+  , _dpgsGroupNames :: !(Maybe [Text])+  , _dpgsDryRun     :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribePlacementGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,12 +70,10 @@ describePlacementGroups     :: DescribePlacementGroups describePlacementGroups =-    DescribePlacementGroups'-    { _dpgsFilters = Nothing-    , _dpgsGroupNames = Nothing-    , _dpgsDryRun = Nothing-    }+  DescribePlacementGroups'+  {_dpgsFilters = Nothing, _dpgsGroupNames = Nothing, _dpgsDryRun = Nothing} + -- | One or more filters.     * @group-name@ - The name of the placement group.     * @state@ - The state of the placement group (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @strategy@ - The strategy of the placement group (@cluster@ ). dpgsFilters :: Lens' DescribePlacementGroups [Filter] dpgsFilters = lens _dpgsFilters (\ s a -> s{_dpgsFilters = a}) . _Default . _Coerce;@@ -99,9 +98,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribePlacementGroups+instance Hashable DescribePlacementGroups where -instance NFData DescribePlacementGroups+instance NFData DescribePlacementGroups where  instance ToHeaders DescribePlacementGroups where         toHeaders = const mempty@@ -126,10 +125,11 @@ -- -- /See:/ 'describePlacementGroupsResponse' smart constructor. data DescribePlacementGroupsResponse = DescribePlacementGroupsResponse'-    { _dpgrsPlacementGroups :: !(Maybe [PlacementGroup])-    , _dpgrsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dpgrsPlacementGroups :: !(Maybe [PlacementGroup])+  , _dpgrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribePlacementGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +141,10 @@     :: Int -- ^ 'dpgrsResponseStatus'     -> DescribePlacementGroupsResponse describePlacementGroupsResponse pResponseStatus_ =-    DescribePlacementGroupsResponse'-    { _dpgrsPlacementGroups = Nothing-    , _dpgrsResponseStatus = pResponseStatus_-    }+  DescribePlacementGroupsResponse'+  {_dpgrsPlacementGroups = Nothing, _dpgrsResponseStatus = pResponseStatus_} + -- | One or more placement groups. dpgrsPlacementGroups :: Lens' DescribePlacementGroupsResponse [PlacementGroup] dpgrsPlacementGroups = lens _dpgrsPlacementGroups (\ s a -> s{_dpgrsPlacementGroups = a}) . _Default . _Coerce;@@ -154,4 +153,4 @@ dpgrsResponseStatus :: Lens' DescribePlacementGroupsResponse Int dpgrsResponseStatus = lens _dpgrsResponseStatus (\ s a -> s{_dpgrsResponseStatus = a}); -instance NFData DescribePlacementGroupsResponse+instance NFData DescribePlacementGroupsResponse where
gen/Network/AWS/EC2/DescribePrefixLists.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribePrefixLists--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , dplrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribePrefixLists. --@@ -55,13 +55,14 @@ -- -- /See:/ 'describePrefixLists' smart constructor. data DescribePrefixLists = DescribePrefixLists'-    { _dplFilters       :: !(Maybe [Filter])-    , _dplPrefixListIds :: !(Maybe [Text])-    , _dplNextToken     :: !(Maybe Text)-    , _dplDryRun        :: !(Maybe Bool)-    , _dplMaxResults    :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dplFilters       :: !(Maybe [Filter])+  , _dplPrefixListIds :: !(Maybe [Text])+  , _dplNextToken     :: !(Maybe Text)+  , _dplDryRun        :: !(Maybe Bool)+  , _dplMaxResults    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribePrefixLists' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,14 +79,15 @@ describePrefixLists     :: DescribePrefixLists describePrefixLists =-    DescribePrefixLists'-    { _dplFilters = Nothing-    , _dplPrefixListIds = Nothing-    , _dplNextToken = Nothing-    , _dplDryRun = Nothing-    , _dplMaxResults = Nothing-    }+  DescribePrefixLists'+  { _dplFilters = Nothing+  , _dplPrefixListIds = Nothing+  , _dplNextToken = Nothing+  , _dplDryRun = Nothing+  , _dplMaxResults = Nothing+  } + -- | One or more filters.     * @prefix-list-id@ : The ID of a prefix list.     * @prefix-list-name@ : The name of a prefix list. dplFilters :: Lens' DescribePrefixLists [Filter] dplFilters = lens _dplFilters (\ s a -> s{_dplFilters = a}) . _Default . _Coerce;@@ -119,9 +121,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribePrefixLists+instance Hashable DescribePrefixLists where -instance NFData DescribePrefixLists+instance NFData DescribePrefixLists where  instance ToHeaders DescribePrefixLists where         toHeaders = const mempty@@ -146,11 +148,12 @@ -- -- /See:/ 'describePrefixListsResponse' smart constructor. data DescribePrefixListsResponse = DescribePrefixListsResponse'-    { _dplrsNextToken      :: !(Maybe Text)-    , _dplrsPrefixLists    :: !(Maybe [PrefixList])-    , _dplrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dplrsNextToken      :: !(Maybe Text)+  , _dplrsPrefixLists    :: !(Maybe [PrefixList])+  , _dplrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribePrefixListsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,12 +167,13 @@     :: Int -- ^ 'dplrsResponseStatus'     -> DescribePrefixListsResponse describePrefixListsResponse pResponseStatus_ =-    DescribePrefixListsResponse'-    { _dplrsNextToken = Nothing-    , _dplrsPrefixLists = Nothing-    , _dplrsResponseStatus = pResponseStatus_-    }+  DescribePrefixListsResponse'+  { _dplrsNextToken = Nothing+  , _dplrsPrefixLists = Nothing+  , _dplrsResponseStatus = pResponseStatus_+  } + -- | 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) dplrsNextToken = lens _dplrsNextToken (\ s a -> s{_dplrsNextToken = a});@@ -182,4 +186,4 @@ dplrsResponseStatus :: Lens' DescribePrefixListsResponse Int dplrsResponseStatus = lens _dplrsResponseStatus (\ s a -> s{_dplrsResponseStatus = a}); -instance NFData DescribePrefixListsResponse+instance NFData DescribePrefixListsResponse where
gen/Network/AWS/EC2/DescribeRegions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeRegions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , drrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeRegions. --@@ -54,11 +54,12 @@ -- -- /See:/ 'describeRegions' smart constructor. data DescribeRegions = DescribeRegions'-    { _drsRegionNames :: !(Maybe [Text])-    , _drsFilters     :: !(Maybe [Filter])-    , _drsDryRun      :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drsRegionNames :: !(Maybe [Text])+  , _drsFilters     :: !(Maybe [Filter])+  , _drsDryRun      :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeRegions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,10 @@ describeRegions     :: DescribeRegions describeRegions =-    DescribeRegions'-    { _drsRegionNames = Nothing-    , _drsFilters = Nothing-    , _drsDryRun = Nothing-    }+  DescribeRegions'+  {_drsRegionNames = Nothing, _drsFilters = Nothing, _drsDryRun = Nothing} + -- | The names of one or more regions. drsRegionNames :: Lens' DescribeRegions [Text] drsRegionNames = lens _drsRegionNames (\ s a -> s{_drsRegionNames = a}) . _Default . _Coerce;@@ -100,9 +99,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeRegions+instance Hashable DescribeRegions where -instance NFData DescribeRegions+instance NFData DescribeRegions where  instance ToHeaders DescribeRegions where         toHeaders = const mempty@@ -126,10 +125,11 @@ -- -- /See:/ 'describeRegionsResponse' smart constructor. data DescribeRegionsResponse = DescribeRegionsResponse'-    { _drrsRegions        :: !(Maybe [RegionInfo])-    , _drrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drrsRegions        :: !(Maybe [RegionInfo])+  , _drrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeRegionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +141,10 @@     :: Int -- ^ 'drrsResponseStatus'     -> DescribeRegionsResponse describeRegionsResponse pResponseStatus_ =-    DescribeRegionsResponse'-    { _drrsRegions = Nothing-    , _drrsResponseStatus = pResponseStatus_-    }+  DescribeRegionsResponse'+  {_drrsRegions = Nothing, _drrsResponseStatus = pResponseStatus_} + -- | Information about one or more regions. drrsRegions :: Lens' DescribeRegionsResponse [RegionInfo] drrsRegions = lens _drrsRegions (\ s a -> s{_drrsRegions = a}) . _Default . _Coerce;@@ -154,4 +153,4 @@ drrsResponseStatus :: Lens' DescribeRegionsResponse Int drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a}); -instance NFData DescribeRegionsResponse+instance NFData DescribeRegionsResponse where
gen/Network/AWS/EC2/DescribeReservedInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , drirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeReservedInstances. --@@ -56,18 +56,19 @@ -- -- /See:/ 'describeReservedInstances' smart constructor. data DescribeReservedInstances = DescribeReservedInstances'-    { _driFilters              :: !(Maybe [Filter])-    , _driReservedInstancesIds :: !(Maybe [Text])-    , _driOfferingType         :: !(Maybe OfferingTypeValues)-    , _driOfferingClass        :: !(Maybe OfferingClassType)-    , _driDryRun               :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _driFilters              :: !(Maybe [Filter])+  , _driReservedInstancesIds :: !(Maybe [Text])+  , _driOfferingType         :: !(Maybe OfferingTypeValues)+  , _driOfferingClass        :: !(Maybe OfferingClassType)+  , _driDryRun               :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'driFilters' - One or more filters.     * @availability-zone@ - The Availability Zone where the Reserved Instance can be used.     * @duration@ - The duration of the Reserved Instance (one year or three years), in seconds (@31536000@ | @94608000@ ).     * @end@ - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z).     * @fixed-price@ - The purchase price of the Reserved Instance (for example, 9800.0).     * @instance-type@ - The instance type that is covered by the reservation.     * @scope@ - The scope of the Reserved Instance (@Region@ or @Availability Zone@ ).     * @product-description@ - The Reserved Instance product platform description. Instances that include @(Amazon VPC)@ in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC (@Linux/UNIX@ | @Linux/UNIX (Amazon VPC)@ | @SUSE Linux@ | @SUSE Linux (Amazon VPC)@ | @Red Hat Enterprise Linux@ | @Red Hat Enterprise Linux (Amazon VPC)@ | @Windows@ | @Windows (Amazon VPC)@ | @Windows with SQL Server Standard@ | @Windows with SQL Server Standard (Amazon VPC)@ | @Windows with SQL Server Web@ | @Windows with SQL Server Web (Amazon VPC)@ | @Windows with SQL Server Enterprise@ | @Windows with SQL Server Enterprise (Amazon VPC)@ ).     * @reserved-instances-id@ - The ID of the Reserved Instance.     * @start@ - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).     * @state@ - The state of the Reserved Instance (@payment-pending@ | @active@ | @payment-failed@ | @retired@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @usage-price@ - The usage price of the Reserved Instance, per hour (for example, 0.84).+-- * 'driFilters' - One or more filters.     * @availability-zone@ - The Availability Zone where the Reserved Instance can be used.     * @duration@ - The duration of the Reserved Instance (one year or three years), in seconds (@31536000@ | @94608000@ ).     * @end@ - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z).     * @fixed-price@ - The purchase price of the Reserved Instance (for example, 9800.0).     * @instance-type@ - The instance type that is covered by the reservation.     * @scope@ - The scope of the Reserved Instance (@Region@ or @Availability Zone@ ).     * @product-description@ - The Reserved Instance product platform description. Instances that include @(Amazon VPC)@ in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC (@Linux/UNIX@ | @Linux/UNIX (Amazon VPC)@ | @SUSE Linux@ | @SUSE Linux (Amazon VPC)@ | @Red Hat Enterprise Linux@ | @Red Hat Enterprise Linux (Amazon VPC)@ | @Windows@ | @Windows (Amazon VPC)@ | @Windows with SQL Server Standard@ | @Windows with SQL Server Standard (Amazon VPC)@ | @Windows with SQL Server Web@ | @Windows with SQL Server Web (Amazon VPC)@ | @Windows with SQL Server Enterprise@ | @Windows with SQL Server Enterprise (Amazon VPC)@ ).     * @reserved-instances-id@ - The ID of the Reserved Instance.     * @start@ - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).     * @state@ - The state of the Reserved Instance (@payment-pending@ | @active@ | @payment-failed@ | @retired@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @usage-price@ - The usage price of the Reserved Instance, per hour (for example, 0.84). -- -- * 'driReservedInstancesIds' - One or more Reserved Instance IDs. Default: Describes all your Reserved Instances, or only those otherwise specified. --@@ -79,15 +80,16 @@ describeReservedInstances     :: DescribeReservedInstances describeReservedInstances =-    DescribeReservedInstances'-    { _driFilters = Nothing-    , _driReservedInstancesIds = Nothing-    , _driOfferingType = Nothing-    , _driOfferingClass = Nothing-    , _driDryRun = Nothing-    }+  DescribeReservedInstances'+  { _driFilters = Nothing+  , _driReservedInstancesIds = Nothing+  , _driOfferingType = Nothing+  , _driOfferingClass = Nothing+  , _driDryRun = Nothing+  } --- | One or more filters.     * @availability-zone@ - The Availability Zone where the Reserved Instance can be used.     * @duration@ - The duration of the Reserved Instance (one year or three years), in seconds (@31536000@ | @94608000@ ).     * @end@ - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z).     * @fixed-price@ - The purchase price of the Reserved Instance (for example, 9800.0).     * @instance-type@ - The instance type that is covered by the reservation.     * @scope@ - The scope of the Reserved Instance (@Region@ or @Availability Zone@ ).     * @product-description@ - The Reserved Instance product platform description. Instances that include @(Amazon VPC)@ in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC (@Linux/UNIX@ | @Linux/UNIX (Amazon VPC)@ | @SUSE Linux@ | @SUSE Linux (Amazon VPC)@ | @Red Hat Enterprise Linux@ | @Red Hat Enterprise Linux (Amazon VPC)@ | @Windows@ | @Windows (Amazon VPC)@ | @Windows with SQL Server Standard@ | @Windows with SQL Server Standard (Amazon VPC)@ | @Windows with SQL Server Web@ | @Windows with SQL Server Web (Amazon VPC)@ | @Windows with SQL Server Enterprise@ | @Windows with SQL Server Enterprise (Amazon VPC)@ ).     * @reserved-instances-id@ - The ID of the Reserved Instance.     * @start@ - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).     * @state@ - The state of the Reserved Instance (@payment-pending@ | @active@ | @payment-failed@ | @retired@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @usage-price@ - The usage price of the Reserved Instance, per hour (for example, 0.84).++-- | One or more filters.     * @availability-zone@ - The Availability Zone where the Reserved Instance can be used.     * @duration@ - The duration of the Reserved Instance (one year or three years), in seconds (@31536000@ | @94608000@ ).     * @end@ - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z).     * @fixed-price@ - The purchase price of the Reserved Instance (for example, 9800.0).     * @instance-type@ - The instance type that is covered by the reservation.     * @scope@ - The scope of the Reserved Instance (@Region@ or @Availability Zone@ ).     * @product-description@ - The Reserved Instance product platform description. Instances that include @(Amazon VPC)@ in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC (@Linux/UNIX@ | @Linux/UNIX (Amazon VPC)@ | @SUSE Linux@ | @SUSE Linux (Amazon VPC)@ | @Red Hat Enterprise Linux@ | @Red Hat Enterprise Linux (Amazon VPC)@ | @Windows@ | @Windows (Amazon VPC)@ | @Windows with SQL Server Standard@ | @Windows with SQL Server Standard (Amazon VPC)@ | @Windows with SQL Server Web@ | @Windows with SQL Server Web (Amazon VPC)@ | @Windows with SQL Server Enterprise@ | @Windows with SQL Server Enterprise (Amazon VPC)@ ).     * @reserved-instances-id@ - The ID of the Reserved Instance.     * @start@ - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).     * @state@ - The state of the Reserved Instance (@payment-pending@ | @active@ | @payment-failed@ | @retired@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @usage-price@ - The usage price of the Reserved Instance, per hour (for example, 0.84). driFilters :: Lens' DescribeReservedInstances [Filter] driFilters = lens _driFilters (\ s a -> s{_driFilters = a}) . _Default . _Coerce; @@ -119,9 +121,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeReservedInstances+instance Hashable DescribeReservedInstances where -instance NFData DescribeReservedInstances+instance NFData DescribeReservedInstances where  instance ToHeaders DescribeReservedInstances where         toHeaders = const mempty@@ -149,10 +151,11 @@ -- -- /See:/ 'describeReservedInstancesResponse' smart constructor. data DescribeReservedInstancesResponse = DescribeReservedInstancesResponse'-    { _drirsReservedInstances :: !(Maybe [ReservedInstances])-    , _drirsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drirsReservedInstances :: !(Maybe [ReservedInstances])+  , _drirsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,11 +167,10 @@     :: Int -- ^ 'drirsResponseStatus'     -> DescribeReservedInstancesResponse describeReservedInstancesResponse pResponseStatus_ =-    DescribeReservedInstancesResponse'-    { _drirsReservedInstances = Nothing-    , _drirsResponseStatus = pResponseStatus_-    }+  DescribeReservedInstancesResponse'+  {_drirsReservedInstances = Nothing, _drirsResponseStatus = pResponseStatus_} + -- | A list of Reserved Instances. drirsReservedInstances :: Lens' DescribeReservedInstancesResponse [ReservedInstances] drirsReservedInstances = lens _drirsReservedInstances (\ s a -> s{_drirsReservedInstances = a}) . _Default . _Coerce;@@ -178,3 +180,4 @@ drirsResponseStatus = lens _drirsResponseStatus (\ s a -> s{_drirsResponseStatus = a});  instance NFData DescribeReservedInstancesResponse+         where
gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstancesListings--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -47,12 +47,12 @@     , drilrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeReservedInstancesListings. --@@ -60,11 +60,12 @@ -- -- /See:/ 'describeReservedInstancesListings' smart constructor. data DescribeReservedInstancesListings = DescribeReservedInstancesListings'-    { _drilFilters                    :: !(Maybe [Filter])-    , _drilReservedInstancesId        :: !(Maybe Text)-    , _drilReservedInstancesListingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drilFilters                    :: !(Maybe [Filter])+  , _drilReservedInstancesId        :: !(Maybe Text)+  , _drilReservedInstancesListingId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesListings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,12 +78,13 @@ describeReservedInstancesListings     :: DescribeReservedInstancesListings describeReservedInstancesListings =-    DescribeReservedInstancesListings'-    { _drilFilters = Nothing-    , _drilReservedInstancesId = Nothing-    , _drilReservedInstancesListingId = Nothing-    }+  DescribeReservedInstancesListings'+  { _drilFilters = Nothing+  , _drilReservedInstancesId = Nothing+  , _drilReservedInstancesListingId = Nothing+  } + -- | One or more filters.     * @reserved-instances-id@ - The ID of the Reserved Instances.     * @reserved-instances-listing-id@ - The ID of the Reserved Instances listing.     * @status@ - The status of the Reserved Instance listing (@pending@ | @active@ | @cancelled@ | @closed@ ).     * @status-message@ - The reason for the status. drilFilters :: Lens' DescribeReservedInstancesListings [Filter] drilFilters = lens _drilFilters (\ s a -> s{_drilFilters = a}) . _Default . _Coerce;@@ -109,8 +111,10 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeReservedInstancesListings+         where  instance NFData DescribeReservedInstancesListings+         where  instance ToHeaders DescribeReservedInstancesListings          where@@ -138,10 +142,11 @@ -- -- /See:/ 'describeReservedInstancesListingsResponse' smart constructor. data DescribeReservedInstancesListingsResponse = DescribeReservedInstancesListingsResponse'-    { _drilrsReservedInstancesListings :: !(Maybe [ReservedInstancesListing])-    , _drilrsResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drilrsReservedInstancesListings :: !(Maybe [ReservedInstancesListing])+  , _drilrsResponseStatus            :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesListingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,11 +158,12 @@     :: Int -- ^ 'drilrsResponseStatus'     -> DescribeReservedInstancesListingsResponse describeReservedInstancesListingsResponse pResponseStatus_ =-    DescribeReservedInstancesListingsResponse'-    { _drilrsReservedInstancesListings = Nothing-    , _drilrsResponseStatus = pResponseStatus_-    }+  DescribeReservedInstancesListingsResponse'+  { _drilrsReservedInstancesListings = Nothing+  , _drilrsResponseStatus = pResponseStatus_+  } + -- | Information about the Reserved Instance listing. drilrsReservedInstancesListings :: Lens' DescribeReservedInstancesListingsResponse [ReservedInstancesListing] drilrsReservedInstancesListings = lens _drilrsReservedInstancesListings (\ s a -> s{_drilrsReservedInstancesListings = a}) . _Default . _Coerce;@@ -167,4 +173,5 @@ drilrsResponseStatus = lens _drilrsResponseStatus (\ s a -> s{_drilrsResponseStatus = a});  instance NFData-         DescribeReservedInstancesListingsResponse+           DescribeReservedInstancesListingsResponse+         where
gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstancesModifications--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,13 +44,13 @@     , drimrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeReservedInstancesModifications. --@@ -58,11 +58,12 @@ -- -- /See:/ 'describeReservedInstancesModifications' smart constructor. data DescribeReservedInstancesModifications = DescribeReservedInstancesModifications'-    { _drimFilters                          :: !(Maybe [Filter])-    , _drimReservedInstancesModificationIds :: !(Maybe [Text])-    , _drimNextToken                        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drimFilters                          :: !(Maybe [Filter])+  , _drimReservedInstancesModificationIds :: !(Maybe [Text])+  , _drimNextToken                        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesModifications' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,12 +76,13 @@ describeReservedInstancesModifications     :: DescribeReservedInstancesModifications describeReservedInstancesModifications =-    DescribeReservedInstancesModifications'-    { _drimFilters = Nothing-    , _drimReservedInstancesModificationIds = Nothing-    , _drimNextToken = Nothing-    }+  DescribeReservedInstancesModifications'+  { _drimFilters = Nothing+  , _drimReservedInstancesModificationIds = Nothing+  , _drimNextToken = Nothing+  } + -- | One or more filters.     * @client-token@ - The idempotency token for the modification request.     * @create-date@ - The time when the modification request was created.     * @effective-date@ - The time when the modification becomes effective.     * @modification-result.reserved-instances-id@ - 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 @fulfilled@ .     * @modification-result.target-configuration.availability-zone@ - The Availability Zone for the new Reserved Instances.     * @modification-result.target-configuration.instance-count @ - The number of new Reserved Instances.     * @modification-result.target-configuration.instance-type@ - The instance type of the new Reserved Instances.     * @modification-result.target-configuration.platform@ - The network platform of the new Reserved Instances (@EC2-Classic@ | @EC2-VPC@ ).     * @reserved-instances-id@ - The ID of the Reserved Instances modified.     * @reserved-instances-modification-id@ - The ID of the modification request.     * @status@ - The status of the Reserved Instances modification request (@processing@ | @fulfilled@ | @failed@ ).     * @status-message@ - The reason for the status.     * @update-date@ - The time when the modification request was last updated. drimFilters :: Lens' DescribeReservedInstancesModifications [Filter] drimFilters = lens _drimFilters (\ s a -> s{_drimFilters = a}) . _Default . _Coerce;@@ -94,7 +96,8 @@ drimNextToken = lens _drimNextToken (\ s a -> s{_drimNextToken = a});  instance AWSPager-         DescribeReservedInstancesModifications where+           DescribeReservedInstancesModifications+         where         page rq rs           | stop (rs ^. drimrsNextToken) = Nothing           | stop (rs ^. drimrsReservedInstancesModifications) =@@ -103,7 +106,8 @@             Just $ rq & drimNextToken .~ rs ^. drimrsNextToken  instance AWSRequest-         DescribeReservedInstancesModifications where+           DescribeReservedInstancesModifications+         where         type Rs DescribeReservedInstancesModifications =              DescribeReservedInstancesModificationsResponse         request = postQuery ec2@@ -117,21 +121,26 @@                      <*> (pure (fromEnum s)))  instance Hashable-         DescribeReservedInstancesModifications+           DescribeReservedInstancesModifications+         where  instance NFData-         DescribeReservedInstancesModifications+           DescribeReservedInstancesModifications+         where  instance ToHeaders-         DescribeReservedInstancesModifications where+           DescribeReservedInstancesModifications+         where         toHeaders = const mempty  instance ToPath-         DescribeReservedInstancesModifications where+           DescribeReservedInstancesModifications+         where         toPath = const "/"  instance ToQuery-         DescribeReservedInstancesModifications where+           DescribeReservedInstancesModifications+         where         toQuery DescribeReservedInstancesModifications'{..}           = mconcat               ["Action" =:@@ -150,11 +159,12 @@ -- -- /See:/ 'describeReservedInstancesModificationsResponse' smart constructor. data DescribeReservedInstancesModificationsResponse = DescribeReservedInstancesModificationsResponse'-    { _drimrsNextToken                      :: !(Maybe Text)-    , _drimrsReservedInstancesModifications :: !(Maybe [ReservedInstancesModification])-    , _drimrsResponseStatus                 :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drimrsNextToken :: !(Maybe Text)+  , _drimrsReservedInstancesModifications :: !(Maybe [ReservedInstancesModification])+  , _drimrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesModificationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -168,12 +178,13 @@     :: Int -- ^ 'drimrsResponseStatus'     -> DescribeReservedInstancesModificationsResponse describeReservedInstancesModificationsResponse pResponseStatus_ =-    DescribeReservedInstancesModificationsResponse'-    { _drimrsNextToken = Nothing-    , _drimrsReservedInstancesModifications = Nothing-    , _drimrsResponseStatus = pResponseStatus_-    }+  DescribeReservedInstancesModificationsResponse'+  { _drimrsNextToken = Nothing+  , _drimrsReservedInstancesModifications = Nothing+  , _drimrsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. drimrsNextToken :: Lens' DescribeReservedInstancesModificationsResponse (Maybe Text) drimrsNextToken = lens _drimrsNextToken (\ s a -> s{_drimrsNextToken = a});@@ -187,4 +198,5 @@ drimrsResponseStatus = lens _drimrsResponseStatus (\ s a -> s{_drimrsResponseStatus = a});  instance NFData-         DescribeReservedInstancesModificationsResponse+           DescribeReservedInstancesModificationsResponse+         where
gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeReservedInstancesOfferings--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -58,13 +58,13 @@     , driorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeReservedInstancesOfferings. --@@ -72,23 +72,24 @@ -- -- /See:/ 'describeReservedInstancesOfferings' smart constructor. data DescribeReservedInstancesOfferings = DescribeReservedInstancesOfferings'-    { _drioMaxDuration                  :: !(Maybe Integer)-    , _drioProductDescription           :: !(Maybe RIProductDescription)-    , _drioFilters                      :: !(Maybe [Filter])-    , _drioIncludeMarketplace           :: !(Maybe Bool)-    , _drioInstanceType                 :: !(Maybe InstanceType)-    , _drioNextToken                    :: !(Maybe Text)-    , _drioMinDuration                  :: !(Maybe Integer)-    , _drioAvailabilityZone             :: !(Maybe Text)-    , _drioOfferingType                 :: !(Maybe OfferingTypeValues)-    , _drioReservedInstancesOfferingIds :: !(Maybe [Text])-    , _drioInstanceTenancy              :: !(Maybe Tenancy)-    , _drioOfferingClass                :: !(Maybe OfferingClassType)-    , _drioMaxInstanceCount             :: !(Maybe Int)-    , _drioDryRun                       :: !(Maybe Bool)-    , _drioMaxResults                   :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drioMaxDuration                  :: !(Maybe Integer)+  , _drioProductDescription           :: !(Maybe RIProductDescription)+  , _drioFilters                      :: !(Maybe [Filter])+  , _drioIncludeMarketplace           :: !(Maybe Bool)+  , _drioInstanceType                 :: !(Maybe InstanceType)+  , _drioNextToken                    :: !(Maybe Text)+  , _drioMinDuration                  :: !(Maybe Integer)+  , _drioAvailabilityZone             :: !(Maybe Text)+  , _drioOfferingType                 :: !(Maybe OfferingTypeValues)+  , _drioReservedInstancesOfferingIds :: !(Maybe [Text])+  , _drioInstanceTenancy              :: !(Maybe Tenancy)+  , _drioOfferingClass                :: !(Maybe OfferingClassType)+  , _drioMaxInstanceCount             :: !(Maybe Int)+  , _drioDryRun                       :: !(Maybe Bool)+  , _drioMaxResults                   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesOfferings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -113,7 +114,7 @@ -- -- * 'drioReservedInstancesOfferingIds' - One or more Reserved Instances offering IDs. ----- * 'drioInstanceTenancy' - The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of @dedicated@ is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances). Default: @default@+-- * 'drioInstanceTenancy' - The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of @dedicated@ is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances). __Important:__ The @host@ value cannot be used with this parameter. Use the @default@ or @dedicated@ values only. Default: @default@ -- -- * 'drioOfferingClass' - The offering class of the Reserved Instance. Can be @standard@ or @convertible@ . --@@ -125,24 +126,25 @@ describeReservedInstancesOfferings     :: DescribeReservedInstancesOfferings describeReservedInstancesOfferings =-    DescribeReservedInstancesOfferings'-    { _drioMaxDuration = Nothing-    , _drioProductDescription = Nothing-    , _drioFilters = Nothing-    , _drioIncludeMarketplace = Nothing-    , _drioInstanceType = Nothing-    , _drioNextToken = Nothing-    , _drioMinDuration = Nothing-    , _drioAvailabilityZone = Nothing-    , _drioOfferingType = Nothing-    , _drioReservedInstancesOfferingIds = Nothing-    , _drioInstanceTenancy = Nothing-    , _drioOfferingClass = Nothing-    , _drioMaxInstanceCount = Nothing-    , _drioDryRun = Nothing-    , _drioMaxResults = Nothing-    }+  DescribeReservedInstancesOfferings'+  { _drioMaxDuration = Nothing+  , _drioProductDescription = Nothing+  , _drioFilters = Nothing+  , _drioIncludeMarketplace = Nothing+  , _drioInstanceType = Nothing+  , _drioNextToken = Nothing+  , _drioMinDuration = Nothing+  , _drioAvailabilityZone = Nothing+  , _drioOfferingType = Nothing+  , _drioReservedInstancesOfferingIds = Nothing+  , _drioInstanceTenancy = Nothing+  , _drioOfferingClass = Nothing+  , _drioMaxInstanceCount = Nothing+  , _drioDryRun = Nothing+  , _drioMaxResults = Nothing+  } + -- | The maximum duration (in seconds) to filter when searching for offerings. Default: 94608000 (3 years) drioMaxDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer) drioMaxDuration = lens _drioMaxDuration (\ s a -> s{_drioMaxDuration = a});@@ -183,7 +185,7 @@ drioReservedInstancesOfferingIds :: Lens' DescribeReservedInstancesOfferings [Text] drioReservedInstancesOfferingIds = lens _drioReservedInstancesOfferingIds (\ s a -> s{_drioReservedInstancesOfferingIds = a}) . _Default . _Coerce; --- | The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of @dedicated@ is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances). Default: @default@+-- | The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of @dedicated@ is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances). __Important:__ The @host@ value cannot be used with this parameter. Use the @default@ or @dedicated@ values only. Default: @default@ drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Tenancy) drioInstanceTenancy = lens _drioInstanceTenancy (\ s a -> s{_drioInstanceTenancy = a}); @@ -213,7 +215,8 @@             Just $ rq & drioNextToken .~ rs ^. driorsNextToken  instance AWSRequest-         DescribeReservedInstancesOfferings where+           DescribeReservedInstancesOfferings+         where         type Rs DescribeReservedInstancesOfferings =              DescribeReservedInstancesOfferingsResponse         request = postQuery ec2@@ -227,8 +230,10 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeReservedInstancesOfferings+         where  instance NFData DescribeReservedInstancesOfferings+         where  instance ToHeaders DescribeReservedInstancesOfferings          where@@ -269,11 +274,12 @@ -- -- /See:/ 'describeReservedInstancesOfferingsResponse' smart constructor. data DescribeReservedInstancesOfferingsResponse = DescribeReservedInstancesOfferingsResponse'-    { _driorsNextToken                  :: !(Maybe Text)-    , _driorsReservedInstancesOfferings :: !(Maybe [ReservedInstancesOffering])-    , _driorsResponseStatus             :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _driorsNextToken                  :: !(Maybe Text)+  , _driorsReservedInstancesOfferings :: !(Maybe [ReservedInstancesOffering])+  , _driorsResponseStatus             :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeReservedInstancesOfferingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -287,12 +293,13 @@     :: Int -- ^ 'driorsResponseStatus'     -> DescribeReservedInstancesOfferingsResponse describeReservedInstancesOfferingsResponse pResponseStatus_ =-    DescribeReservedInstancesOfferingsResponse'-    { _driorsNextToken = Nothing-    , _driorsReservedInstancesOfferings = Nothing-    , _driorsResponseStatus = pResponseStatus_-    }+  DescribeReservedInstancesOfferingsResponse'+  { _driorsNextToken = Nothing+  , _driorsReservedInstancesOfferings = Nothing+  , _driorsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. driorsNextToken :: Lens' DescribeReservedInstancesOfferingsResponse (Maybe Text) driorsNextToken = lens _driorsNextToken (\ s a -> s{_driorsNextToken = a});@@ -306,4 +313,5 @@ driorsResponseStatus = lens _driorsResponseStatus (\ s a -> s{_driorsResponseStatus = a});  instance NFData-         DescribeReservedInstancesOfferingsResponse+           DescribeReservedInstancesOfferingsResponse+         where
gen/Network/AWS/EC2/DescribeRouteTables.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeRouteTables--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , drtrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeRouteTables. --@@ -56,16 +56,17 @@ -- -- /See:/ 'describeRouteTables' smart constructor. data DescribeRouteTables = DescribeRouteTables'-    { _drtsFilters       :: !(Maybe [Filter])-    , _drtsDryRun        :: !(Maybe Bool)-    , _drtsRouteTableIds :: !(Maybe [Text])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drtsFilters       :: !(Maybe [Filter])+  , _drtsDryRun        :: !(Maybe Bool)+  , _drtsRouteTableIds :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeRouteTables' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'drtsFilters' - One or more filters.     * @association.route-table-association-id@ - The ID of an association ID for the route table.     * @association.route-table-id@ - The ID of the route table involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @association.main@ - Indicates whether the route table is the main route table for the VPC (@true@ | @false@ ).     * @route-table-id@ - The ID of the route table.     * @route.destination-cidr-block@ - The IPv4 CIDR range specified in a route in the table.     * @route.destination-ipv6-cidr-block@ - The IPv6 CIDR range specified in a route in the route table.     * @route.destination-prefix-list-id@ - The ID (prefix) of the AWS service specified in a route in the table.     * @route.egress-only-internet-gateway-id@ - The ID of an egress-only Internet gateway specified in a route in the route table.     * @route.gateway-id@ - The ID of a gateway specified in a route in the table.     * @route.instance-id@ - The ID of an instance specified in a route in the table.     * @route.nat-gateway-id@ - The ID of a NAT gateway.     * @route.origin@ - Describes how the route was created. @CreateRouteTable@ indicates that the route was automatically created when the route table was created; @CreateRoute@ indicates that the route was manually added to the route table; @EnableVgwRoutePropagation@ indicates that the route was propagated by route propagation.     * @route.state@ - The state of a route in the route table (@active@ | @blackhole@ ). 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).     * @route.vpc-peering-connection-id@ - The ID of a VPC peering connection specified in a route in the table.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the route table.+-- * 'drtsFilters' - One or more filters.     * @association.route-table-association-id@ - The ID of an association ID for the route table.     * @association.route-table-id@ - The ID of the route table involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @association.main@ - Indicates whether the route table is the main route table for the VPC (@true@ | @false@ ). Route tables that do not have an association ID are not returned in the response.     * @route-table-id@ - The ID of the route table.     * @route.destination-cidr-block@ - The IPv4 CIDR range specified in a route in the table.     * @route.destination-ipv6-cidr-block@ - The IPv6 CIDR range specified in a route in the route table.     * @route.destination-prefix-list-id@ - The ID (prefix) of the AWS service specified in a route in the table.     * @route.egress-only-internet-gateway-id@ - The ID of an egress-only Internet gateway specified in a route in the route table.     * @route.gateway-id@ - The ID of a gateway specified in a route in the table.     * @route.instance-id@ - The ID of an instance specified in a route in the table.     * @route.nat-gateway-id@ - The ID of a NAT gateway.     * @route.origin@ - Describes how the route was created. @CreateRouteTable@ indicates that the route was automatically created when the route table was created; @CreateRoute@ indicates that the route was manually added to the route table; @EnableVgwRoutePropagation@ indicates that the route was propagated by route propagation.     * @route.state@ - The state of a route in the route table (@active@ | @blackhole@ ). 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).     * @route.vpc-peering-connection-id@ - The ID of a VPC peering connection specified in a route in the table.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the route table. -- -- * 'drtsDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -73,13 +74,11 @@ describeRouteTables     :: DescribeRouteTables describeRouteTables =-    DescribeRouteTables'-    { _drtsFilters = Nothing-    , _drtsDryRun = Nothing-    , _drtsRouteTableIds = Nothing-    }+  DescribeRouteTables'+  {_drtsFilters = Nothing, _drtsDryRun = Nothing, _drtsRouteTableIds = Nothing} --- | One or more filters.     * @association.route-table-association-id@ - The ID of an association ID for the route table.     * @association.route-table-id@ - The ID of the route table involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @association.main@ - Indicates whether the route table is the main route table for the VPC (@true@ | @false@ ).     * @route-table-id@ - The ID of the route table.     * @route.destination-cidr-block@ - The IPv4 CIDR range specified in a route in the table.     * @route.destination-ipv6-cidr-block@ - The IPv6 CIDR range specified in a route in the route table.     * @route.destination-prefix-list-id@ - The ID (prefix) of the AWS service specified in a route in the table.     * @route.egress-only-internet-gateway-id@ - The ID of an egress-only Internet gateway specified in a route in the route table.     * @route.gateway-id@ - The ID of a gateway specified in a route in the table.     * @route.instance-id@ - The ID of an instance specified in a route in the table.     * @route.nat-gateway-id@ - The ID of a NAT gateway.     * @route.origin@ - Describes how the route was created. @CreateRouteTable@ indicates that the route was automatically created when the route table was created; @CreateRoute@ indicates that the route was manually added to the route table; @EnableVgwRoutePropagation@ indicates that the route was propagated by route propagation.     * @route.state@ - The state of a route in the route table (@active@ | @blackhole@ ). 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).     * @route.vpc-peering-connection-id@ - The ID of a VPC peering connection specified in a route in the table.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the route table.++-- | One or more filters.     * @association.route-table-association-id@ - The ID of an association ID for the route table.     * @association.route-table-id@ - The ID of the route table involved in the association.     * @association.subnet-id@ - The ID of the subnet involved in the association.     * @association.main@ - Indicates whether the route table is the main route table for the VPC (@true@ | @false@ ). Route tables that do not have an association ID are not returned in the response.     * @route-table-id@ - The ID of the route table.     * @route.destination-cidr-block@ - The IPv4 CIDR range specified in a route in the table.     * @route.destination-ipv6-cidr-block@ - The IPv6 CIDR range specified in a route in the route table.     * @route.destination-prefix-list-id@ - The ID (prefix) of the AWS service specified in a route in the table.     * @route.egress-only-internet-gateway-id@ - The ID of an egress-only Internet gateway specified in a route in the route table.     * @route.gateway-id@ - The ID of a gateway specified in a route in the table.     * @route.instance-id@ - The ID of an instance specified in a route in the table.     * @route.nat-gateway-id@ - The ID of a NAT gateway.     * @route.origin@ - Describes how the route was created. @CreateRouteTable@ indicates that the route was automatically created when the route table was created; @CreateRoute@ indicates that the route was manually added to the route table; @EnableVgwRoutePropagation@ indicates that the route was propagated by route propagation.     * @route.state@ - The state of a route in the route table (@active@ | @blackhole@ ). 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).     * @route.vpc-peering-connection-id@ - The ID of a VPC peering connection specified in a route in the table.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the route table. drtsFilters :: Lens' DescribeRouteTables [Filter] drtsFilters = lens _drtsFilters (\ s a -> s{_drtsFilters = a}) . _Default . _Coerce; @@ -103,9 +102,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeRouteTables+instance Hashable DescribeRouteTables where -instance NFData DescribeRouteTables+instance NFData DescribeRouteTables where  instance ToHeaders DescribeRouteTables where         toHeaders = const mempty@@ -129,10 +128,11 @@ -- -- /See:/ 'describeRouteTablesResponse' smart constructor. data DescribeRouteTablesResponse = DescribeRouteTablesResponse'-    { _drtrsRouteTables    :: !(Maybe [RouteTable])-    , _drtrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drtrsRouteTables    :: !(Maybe [RouteTable])+  , _drtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeRouteTablesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,11 +144,10 @@     :: Int -- ^ 'drtrsResponseStatus'     -> DescribeRouteTablesResponse describeRouteTablesResponse pResponseStatus_ =-    DescribeRouteTablesResponse'-    { _drtrsRouteTables = Nothing-    , _drtrsResponseStatus = pResponseStatus_-    }+  DescribeRouteTablesResponse'+  {_drtrsRouteTables = Nothing, _drtrsResponseStatus = pResponseStatus_} + -- | Information about one or more route tables. drtrsRouteTables :: Lens' DescribeRouteTablesResponse [RouteTable] drtrsRouteTables = lens _drtrsRouteTables (\ s a -> s{_drtrsRouteTables = a}) . _Default . _Coerce;@@ -157,4 +156,4 @@ drtrsResponseStatus :: Lens' DescribeRouteTablesResponse Int drtrsResponseStatus = lens _drtrsResponseStatus (\ s a -> s{_drtrsResponseStatus = a}); -instance NFData DescribeRouteTablesResponse+instance NFData DescribeRouteTablesResponse where
gen/Network/AWS/EC2/DescribeScheduledInstanceAvailability.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeScheduledInstanceAvailability--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,8 +37,8 @@     , dsiaMaxSlotDurationInHours     , dsiaDryRun     , dsiaMaxResults-    , dsiaRecurrence     , dsiaFirstSlotStartTimeRange+    , dsiaRecurrence      -- * Destructuring the Response     , describeScheduledInstanceAvailabilityResponse@@ -49,12 +49,12 @@     , dsiarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeScheduledInstanceAvailability. --@@ -62,16 +62,17 @@ -- -- /See:/ 'describeScheduledInstanceAvailability' smart constructor. data DescribeScheduledInstanceAvailability = DescribeScheduledInstanceAvailability'-    { _dsiaMinSlotDurationInHours  :: !(Maybe Int)-    , _dsiaFilters                 :: !(Maybe [Filter])-    , _dsiaNextToken               :: !(Maybe Text)-    , _dsiaMaxSlotDurationInHours  :: !(Maybe Int)-    , _dsiaDryRun                  :: !(Maybe Bool)-    , _dsiaMaxResults              :: !(Maybe Int)-    , _dsiaRecurrence              :: !ScheduledInstanceRecurrenceRequest-    , _dsiaFirstSlotStartTimeRange :: !SlotDateTimeRangeRequest-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsiaMinSlotDurationInHours  :: !(Maybe Int)+  , _dsiaFilters                 :: !(Maybe [Filter])+  , _dsiaNextToken               :: !(Maybe Text)+  , _dsiaMaxSlotDurationInHours  :: !(Maybe Int)+  , _dsiaDryRun                  :: !(Maybe Bool)+  , _dsiaMaxResults              :: !(Maybe Int)+  , _dsiaFirstSlotStartTimeRange :: !SlotDateTimeRangeRequest+  , _dsiaRecurrence              :: !ScheduledInstanceRecurrenceRequest+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeScheduledInstanceAvailability' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -88,25 +89,26 @@ -- -- * 'dsiaMaxResults' - 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 @NextToken@ value. ----- * 'dsiaRecurrence' - The schedule recurrence.--- -- * 'dsiaFirstSlotStartTimeRange' - The time period for the first schedule to start.+--+-- * 'dsiaRecurrence' - The schedule recurrence. describeScheduledInstanceAvailability-    :: ScheduledInstanceRecurrenceRequest -- ^ 'dsiaRecurrence'-    -> SlotDateTimeRangeRequest -- ^ 'dsiaFirstSlotStartTimeRange'+    :: SlotDateTimeRangeRequest -- ^ 'dsiaFirstSlotStartTimeRange'+    -> ScheduledInstanceRecurrenceRequest -- ^ 'dsiaRecurrence'     -> DescribeScheduledInstanceAvailability-describeScheduledInstanceAvailability pRecurrence_ pFirstSlotStartTimeRange_ =-    DescribeScheduledInstanceAvailability'-    { _dsiaMinSlotDurationInHours = Nothing-    , _dsiaFilters = Nothing-    , _dsiaNextToken = Nothing-    , _dsiaMaxSlotDurationInHours = Nothing-    , _dsiaDryRun = Nothing-    , _dsiaMaxResults = Nothing-    , _dsiaRecurrence = pRecurrence_-    , _dsiaFirstSlotStartTimeRange = pFirstSlotStartTimeRange_-    }+describeScheduledInstanceAvailability pFirstSlotStartTimeRange_ pRecurrence_ =+  DescribeScheduledInstanceAvailability'+  { _dsiaMinSlotDurationInHours = Nothing+  , _dsiaFilters = Nothing+  , _dsiaNextToken = Nothing+  , _dsiaMaxSlotDurationInHours = Nothing+  , _dsiaDryRun = Nothing+  , _dsiaMaxResults = Nothing+  , _dsiaFirstSlotStartTimeRange = pFirstSlotStartTimeRange_+  , _dsiaRecurrence = pRecurrence_+  } + -- | 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) dsiaMinSlotDurationInHours = lens _dsiaMinSlotDurationInHours (\ s a -> s{_dsiaMinSlotDurationInHours = a});@@ -131,16 +133,17 @@ dsiaMaxResults :: Lens' DescribeScheduledInstanceAvailability (Maybe Int) dsiaMaxResults = lens _dsiaMaxResults (\ s a -> s{_dsiaMaxResults = a}); --- | The schedule recurrence.-dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest-dsiaRecurrence = lens _dsiaRecurrence (\ s a -> s{_dsiaRecurrence = a});- -- | The time period for the first schedule to start. dsiaFirstSlotStartTimeRange :: Lens' DescribeScheduledInstanceAvailability SlotDateTimeRangeRequest dsiaFirstSlotStartTimeRange = lens _dsiaFirstSlotStartTimeRange (\ s a -> s{_dsiaFirstSlotStartTimeRange = a}); +-- | The schedule recurrence.+dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest+dsiaRecurrence = lens _dsiaRecurrence (\ s a -> s{_dsiaRecurrence = a});+ instance AWSRequest-         DescribeScheduledInstanceAvailability where+           DescribeScheduledInstanceAvailability+         where         type Rs DescribeScheduledInstanceAvailability =              DescribeScheduledInstanceAvailabilityResponse         request = postQuery ec2@@ -154,12 +157,15 @@                      <*> (pure (fromEnum s)))  instance Hashable-         DescribeScheduledInstanceAvailability+           DescribeScheduledInstanceAvailability+         where  instance NFData DescribeScheduledInstanceAvailability+         where  instance ToHeaders-         DescribeScheduledInstanceAvailability where+           DescribeScheduledInstanceAvailability+         where         toHeaders = const mempty  instance ToPath DescribeScheduledInstanceAvailability@@ -167,7 +173,8 @@         toPath = const "/"  instance ToQuery-         DescribeScheduledInstanceAvailability where+           DescribeScheduledInstanceAvailability+         where         toQuery DescribeScheduledInstanceAvailability'{..}           = mconcat               ["Action" =:@@ -182,9 +189,9 @@                  _dsiaMaxSlotDurationInHours,                "DryRun" =: _dsiaDryRun,                "MaxResults" =: _dsiaMaxResults,-               "Recurrence" =: _dsiaRecurrence,                "FirstSlotStartTimeRange" =:-                 _dsiaFirstSlotStartTimeRange]+                 _dsiaFirstSlotStartTimeRange,+               "Recurrence" =: _dsiaRecurrence]  -- | Contains the output of DescribeScheduledInstanceAvailability. --@@ -192,11 +199,12 @@ -- -- /See:/ 'describeScheduledInstanceAvailabilityResponse' smart constructor. data DescribeScheduledInstanceAvailabilityResponse = DescribeScheduledInstanceAvailabilityResponse'-    { _dsiarsScheduledInstanceAvailabilitySet :: !(Maybe [ScheduledInstanceAvailability])-    , _dsiarsNextToken                        :: !(Maybe Text)-    , _dsiarsResponseStatus                   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsiarsScheduledInstanceAvailabilitySet :: !(Maybe [ScheduledInstanceAvailability])+  , _dsiarsNextToken :: !(Maybe Text)+  , _dsiarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeScheduledInstanceAvailabilityResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -210,12 +218,13 @@     :: Int -- ^ 'dsiarsResponseStatus'     -> DescribeScheduledInstanceAvailabilityResponse describeScheduledInstanceAvailabilityResponse pResponseStatus_ =-    DescribeScheduledInstanceAvailabilityResponse'-    { _dsiarsScheduledInstanceAvailabilitySet = Nothing-    , _dsiarsNextToken = Nothing-    , _dsiarsResponseStatus = pResponseStatus_-    }+  DescribeScheduledInstanceAvailabilityResponse'+  { _dsiarsScheduledInstanceAvailabilitySet = Nothing+  , _dsiarsNextToken = Nothing+  , _dsiarsResponseStatus = pResponseStatus_+  } + -- | Information about the available Scheduled Instances. dsiarsScheduledInstanceAvailabilitySet :: Lens' DescribeScheduledInstanceAvailabilityResponse [ScheduledInstanceAvailability] dsiarsScheduledInstanceAvailabilitySet = lens _dsiarsScheduledInstanceAvailabilitySet (\ s a -> s{_dsiarsScheduledInstanceAvailabilitySet = a}) . _Default . _Coerce;@@ -229,4 +238,5 @@ dsiarsResponseStatus = lens _dsiarsResponseStatus (\ s a -> s{_dsiarsResponseStatus = a});  instance NFData-         DescribeScheduledInstanceAvailabilityResponse+           DescribeScheduledInstanceAvailabilityResponse+         where
gen/Network/AWS/EC2/DescribeScheduledInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeScheduledInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , dsirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeScheduledInstances. --@@ -56,14 +56,15 @@ -- -- /See:/ 'describeScheduledInstances' smart constructor. data DescribeScheduledInstances = DescribeScheduledInstances'-    { _dsiFilters              :: !(Maybe [Filter])-    , _dsiSlotStartTimeRange   :: !(Maybe SlotStartTimeRangeRequest)-    , _dsiNextToken            :: !(Maybe Text)-    , _dsiScheduledInstanceIds :: !(Maybe [Text])-    , _dsiDryRun               :: !(Maybe Bool)-    , _dsiMaxResults           :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsiFilters              :: !(Maybe [Filter])+  , _dsiSlotStartTimeRange   :: !(Maybe SlotStartTimeRangeRequest)+  , _dsiNextToken            :: !(Maybe Text)+  , _dsiScheduledInstanceIds :: !(Maybe [Text])+  , _dsiDryRun               :: !(Maybe Bool)+  , _dsiMaxResults           :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeScheduledInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,15 +83,16 @@ describeScheduledInstances     :: DescribeScheduledInstances describeScheduledInstances =-    DescribeScheduledInstances'-    { _dsiFilters = Nothing-    , _dsiSlotStartTimeRange = Nothing-    , _dsiNextToken = Nothing-    , _dsiScheduledInstanceIds = Nothing-    , _dsiDryRun = Nothing-    , _dsiMaxResults = Nothing-    }+  DescribeScheduledInstances'+  { _dsiFilters = Nothing+  , _dsiSlotStartTimeRange = Nothing+  , _dsiNextToken = Nothing+  , _dsiScheduledInstanceIds = Nothing+  , _dsiDryRun = Nothing+  , _dsiMaxResults = Nothing+  } + -- | One or more filters.     * @availability-zone@ - The Availability Zone (for example, @us-west-2a@ ).     * @instance-type@ - The instance type (for example, @c4.large@ ).     * @network-platform@ - The network platform (@EC2-Classic@ or @EC2-VPC@ ).     * @platform@ - The platform (@Linux/UNIX@ or @Windows@ ). dsiFilters :: Lens' DescribeScheduledInstances [Filter] dsiFilters = lens _dsiFilters (\ s a -> s{_dsiFilters = a}) . _Default . _Coerce;@@ -128,9 +130,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeScheduledInstances+instance Hashable DescribeScheduledInstances where -instance NFData DescribeScheduledInstances+instance NFData DescribeScheduledInstances where  instance ToHeaders DescribeScheduledInstances where         toHeaders = const mempty@@ -159,11 +161,12 @@ -- -- /See:/ 'describeScheduledInstancesResponse' smart constructor. data DescribeScheduledInstancesResponse = DescribeScheduledInstancesResponse'-    { _dsirsNextToken            :: !(Maybe Text)-    , _dsirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])-    , _dsirsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsirsNextToken            :: !(Maybe Text)+  , _dsirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])+  , _dsirsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeScheduledInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -177,12 +180,13 @@     :: Int -- ^ 'dsirsResponseStatus'     -> DescribeScheduledInstancesResponse describeScheduledInstancesResponse pResponseStatus_ =-    DescribeScheduledInstancesResponse'-    { _dsirsNextToken = Nothing-    , _dsirsScheduledInstanceSet = Nothing-    , _dsirsResponseStatus = pResponseStatus_-    }+  DescribeScheduledInstancesResponse'+  { _dsirsNextToken = Nothing+  , _dsirsScheduledInstanceSet = Nothing+  , _dsirsResponseStatus = pResponseStatus_+  } + -- | The token required to retrieve the next set of results. This value is @null@ when there are no more results to return. dsirsNextToken :: Lens' DescribeScheduledInstancesResponse (Maybe Text) dsirsNextToken = lens _dsirsNextToken (\ s a -> s{_dsirsNextToken = a});@@ -196,3 +200,4 @@ dsirsResponseStatus = lens _dsirsResponseStatus (\ s a -> s{_dsirsResponseStatus = a});  instance NFData DescribeScheduledInstancesResponse+         where
gen/Network/AWS/EC2/DescribeSecurityGroupReferences.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSecurityGroupReferences--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,19 +38,20 @@     , dsgrrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'describeSecurityGroupReferences' smart constructor. data DescribeSecurityGroupReferences = DescribeSecurityGroupReferences'-    { _dsgrDryRun  :: !(Maybe Bool)-    , _dsgrGroupId :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsgrDryRun  :: !(Maybe Bool)+  , _dsgrGroupId :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSecurityGroupReferences' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -61,11 +62,10 @@ describeSecurityGroupReferences     :: DescribeSecurityGroupReferences describeSecurityGroupReferences =-    DescribeSecurityGroupReferences'-    { _dsgrDryRun = Nothing-    , _dsgrGroupId = mempty-    }+  DescribeSecurityGroupReferences'+  {_dsgrDryRun = Nothing, _dsgrGroupId = mempty} + -- | 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) dsgrDryRun = lens _dsgrDryRun (\ s a -> s{_dsgrDryRun = a});@@ -88,8 +88,9 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeSecurityGroupReferences+         where -instance NFData DescribeSecurityGroupReferences+instance NFData DescribeSecurityGroupReferences where  instance ToHeaders DescribeSecurityGroupReferences          where@@ -110,10 +111,11 @@  -- | /See:/ 'describeSecurityGroupReferencesResponse' smart constructor. data DescribeSecurityGroupReferencesResponse = DescribeSecurityGroupReferencesResponse'-    { _dsgrrsSecurityGroupReferenceSet :: !(Maybe [SecurityGroupReference])-    , _dsgrrsResponseStatus            :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsgrrsSecurityGroupReferenceSet :: !(Maybe [SecurityGroupReference])+  , _dsgrrsResponseStatus            :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSecurityGroupReferencesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -125,11 +127,12 @@     :: Int -- ^ 'dsgrrsResponseStatus'     -> DescribeSecurityGroupReferencesResponse describeSecurityGroupReferencesResponse pResponseStatus_ =-    DescribeSecurityGroupReferencesResponse'-    { _dsgrrsSecurityGroupReferenceSet = Nothing-    , _dsgrrsResponseStatus = pResponseStatus_-    }+  DescribeSecurityGroupReferencesResponse'+  { _dsgrrsSecurityGroupReferenceSet = Nothing+  , _dsgrrsResponseStatus = pResponseStatus_+  } + -- | Information about the VPCs with the referencing security groups. dsgrrsSecurityGroupReferenceSet :: Lens' DescribeSecurityGroupReferencesResponse [SecurityGroupReference] dsgrrsSecurityGroupReferenceSet = lens _dsgrrsSecurityGroupReferenceSet (\ s a -> s{_dsgrrsSecurityGroupReferenceSet = a}) . _Default . _Coerce;@@ -139,4 +142,5 @@ dsgrrsResponseStatus = lens _dsgrrsResponseStatus (\ s a -> s{_dsgrrsResponseStatus = a});  instance NFData-         DescribeSecurityGroupReferencesResponse+           DescribeSecurityGroupReferencesResponse+         where
gen/Network/AWS/EC2/DescribeSecurityGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSecurityGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,6 +23,8 @@ -- -- A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Amazon EC2 Security Groups> in the /Amazon Elastic Compute Cloud User Guide/ and <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html Security Groups for Your VPC> in the /Amazon Virtual Private Cloud User Guide/ . --+--+-- This operation returns paginated results. module Network.AWS.EC2.DescribeSecurityGroups     (     -- * Creating a Request@@ -32,22 +34,26 @@     , dsgsFilters     , dsgsGroupNames     , dsgsGroupIds+    , dsgsNextToken     , dsgsDryRun+    , dsgsMaxResults      -- * Destructuring the Response     , describeSecurityGroupsResponse     , DescribeSecurityGroupsResponse     -- * Response Lenses     , dsgrsSecurityGroups+    , dsgrsNextToken     , dsgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSecurityGroups. --@@ -55,34 +61,44 @@ -- -- /See:/ 'describeSecurityGroups' smart constructor. data DescribeSecurityGroups = DescribeSecurityGroups'-    { _dsgsFilters    :: !(Maybe [Filter])-    , _dsgsGroupNames :: !(Maybe [Text])-    , _dsgsGroupIds   :: !(Maybe [Text])-    , _dsgsDryRun     :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsgsFilters    :: !(Maybe [Filter])+  , _dsgsGroupNames :: !(Maybe [Text])+  , _dsgsGroupIds   :: !(Maybe [Text])+  , _dsgsNextToken  :: !(Maybe Text)+  , _dsgsDryRun     :: !(Maybe Bool)+  , _dsgsMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSecurityGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dsgsFilters' - 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.     * @description@ - The description of the security group.     * @egress.ip-permission.prefix-list-id@ - The ID (prefix) of the AWS service to which the security group allows access.     * @group-id@ - The ID of the security group.      * @group-name@ - The name of the security group.     * @ip-permission.cidr@ - An IPv4 CIDR range that has been granted permission in a security group rule.     * @ip-permission.from-port@ - The start of port range for the TCP and UDP protocols, or an ICMP type number.     * @ip-permission.group-id@ - The ID of a security group that has been granted permission.     * @ip-permission.group-name@ - The name of a security group that has been granted permission.     * @ip-permission.ipv6-cidr@ - An IPv6 CIDR range that has been granted permission in a security group rule.     * @ip-permission.protocol@ - The IP protocol for the permission (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @ip-permission.to-port@ - The end of port range for the TCP and UDP protocols, or an ICMP code.     * @ip-permission.user-id@ - The ID of an AWS account that has been granted permission.     * @owner-id@ - The AWS account ID of the owner of the security group.     * @tag-key@ - The key of a tag assigned to the security group.     * @tag-value@ - The value of a tag assigned to the security group.     * @vpc-id@ - The ID of the VPC specified when the security group was created.+-- * 'dsgsFilters' - 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.     * @description@ - The description of the security group.     * @egress.ip-permission.cidr@ - An IPv4 CIDR block for an outbound security group rule.     * @egress.ip-permission.from-port@ - For an outbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number.     * @egress.ip-permission.group-id@ - The ID of a security group that has been referenced in an outbound security group rule.     * @egress.ip-permission.group-name@ - The name of a security group that has been referenced in an outbound security group rule.     * @egress.ip-permission.ipv6-cidr@ - An IPv6 CIDR block for an outbound security group rule.     * @egress.ip-permission.prefix-list-id@ - The ID (prefix) of the AWS service to which a security group rule allows outbound access.     * @egress.ip-permission.protocol@ - The IP protocol for an outbound security group rule (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @egress.ip-permission.to-port@ - For an outbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code.     * @egress.ip-permission.user-id@ - The ID of an AWS account that has been referenced in an outbound security group rule.     * @group-id@ - The ID of the security group.      * @group-name@ - The name of the security group.     * @ip-permission.cidr@ - An IPv4 CIDR block for an inbound security group rule.     * @ip-permission.from-port@ - For an inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number.     * @ip-permission.group-id@ - The ID of a security group that has been referenced in an inbound security group rule.     * @ip-permission.group-name@ - The name of a security group that has been referenced in an inbound security group rule.     * @ip-permission.ipv6-cidr@ - An IPv6 CIDR block for an inbound security group rule.     * @ip-permission.prefix-list-id@ - The ID (prefix) of the AWS service from which a security group rule allows inbound access.     * @ip-permission.protocol@ - The IP protocol for an inbound security group rule (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @ip-permission.to-port@ - For an inbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code.     * @ip-permission.user-id@ - The ID of an AWS account that has been referenced in an inbound security group rule.     * @owner-id@ - The AWS account ID of the owner of the security group.     * @tag-key@ - The key of a tag assigned to the security group.     * @tag-value@ - The value of a tag assigned to the security group.     * @vpc-id@ - The ID of the VPC specified when the security group was created. -- -- * 'dsgsGroupNames' - [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 @group-name@ filter to describe security groups by name. Default: Describes all your security groups. -- -- * 'dsgsGroupIds' - One or more security group IDs. Required for security groups in a nondefault VPC. Default: Describes all your security groups. --+-- * 'dsgsNextToken' - The token to request the next page of results.+-- -- * 'dsgsDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'dsgsMaxResults' - The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned @NextToken@ value. This value can be between 5 and 1000. describeSecurityGroups     :: DescribeSecurityGroups describeSecurityGroups =-    DescribeSecurityGroups'-    { _dsgsFilters = Nothing-    , _dsgsGroupNames = Nothing-    , _dsgsGroupIds = Nothing-    , _dsgsDryRun = Nothing-    }+  DescribeSecurityGroups'+  { _dsgsFilters = Nothing+  , _dsgsGroupNames = Nothing+  , _dsgsGroupIds = Nothing+  , _dsgsNextToken = Nothing+  , _dsgsDryRun = Nothing+  , _dsgsMaxResults = Nothing+  } --- | 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.     * @description@ - The description of the security group.     * @egress.ip-permission.prefix-list-id@ - The ID (prefix) of the AWS service to which the security group allows access.     * @group-id@ - The ID of the security group.      * @group-name@ - The name of the security group.     * @ip-permission.cidr@ - An IPv4 CIDR range that has been granted permission in a security group rule.     * @ip-permission.from-port@ - The start of port range for the TCP and UDP protocols, or an ICMP type number.     * @ip-permission.group-id@ - The ID of a security group that has been granted permission.     * @ip-permission.group-name@ - The name of a security group that has been granted permission.     * @ip-permission.ipv6-cidr@ - An IPv6 CIDR range that has been granted permission in a security group rule.     * @ip-permission.protocol@ - The IP protocol for the permission (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @ip-permission.to-port@ - The end of port range for the TCP and UDP protocols, or an ICMP code.     * @ip-permission.user-id@ - The ID of an AWS account that has been granted permission.     * @owner-id@ - The AWS account ID of the owner of the security group.     * @tag-key@ - The key of a tag assigned to the security group.     * @tag-value@ - The value of a tag assigned to the security group.     * @vpc-id@ - The ID of the VPC specified when the security group was created.++-- | 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.     * @description@ - The description of the security group.     * @egress.ip-permission.cidr@ - An IPv4 CIDR block for an outbound security group rule.     * @egress.ip-permission.from-port@ - For an outbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number.     * @egress.ip-permission.group-id@ - The ID of a security group that has been referenced in an outbound security group rule.     * @egress.ip-permission.group-name@ - The name of a security group that has been referenced in an outbound security group rule.     * @egress.ip-permission.ipv6-cidr@ - An IPv6 CIDR block for an outbound security group rule.     * @egress.ip-permission.prefix-list-id@ - The ID (prefix) of the AWS service to which a security group rule allows outbound access.     * @egress.ip-permission.protocol@ - The IP protocol for an outbound security group rule (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @egress.ip-permission.to-port@ - For an outbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code.     * @egress.ip-permission.user-id@ - The ID of an AWS account that has been referenced in an outbound security group rule.     * @group-id@ - The ID of the security group.      * @group-name@ - The name of the security group.     * @ip-permission.cidr@ - An IPv4 CIDR block for an inbound security group rule.     * @ip-permission.from-port@ - For an inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number.     * @ip-permission.group-id@ - The ID of a security group that has been referenced in an inbound security group rule.     * @ip-permission.group-name@ - The name of a security group that has been referenced in an inbound security group rule.     * @ip-permission.ipv6-cidr@ - An IPv6 CIDR block for an inbound security group rule.     * @ip-permission.prefix-list-id@ - The ID (prefix) of the AWS service from which a security group rule allows inbound access.     * @ip-permission.protocol@ - The IP protocol for an inbound security group rule (@tcp@ | @udp@ | @icmp@ or a protocol number).     * @ip-permission.to-port@ - For an inbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code.     * @ip-permission.user-id@ - The ID of an AWS account that has been referenced in an inbound security group rule.     * @owner-id@ - The AWS account ID of the owner of the security group.     * @tag-key@ - The key of a tag assigned to the security group.     * @tag-value@ - The value of a tag assigned to the security group.     * @vpc-id@ - The ID of the VPC specified when the security group was created. dsgsFilters :: Lens' DescribeSecurityGroups [Filter] dsgsFilters = lens _dsgsFilters (\ s a -> s{_dsgsFilters = a}) . _Default . _Coerce; @@ -94,10 +110,25 @@ dsgsGroupIds :: Lens' DescribeSecurityGroups [Text] dsgsGroupIds = lens _dsgsGroupIds (\ s a -> s{_dsgsGroupIds = a}) . _Default . _Coerce; +-- | The token to request the next page of results.+dsgsNextToken :: Lens' DescribeSecurityGroups (Maybe Text)+dsgsNextToken = lens _dsgsNextToken (\ s a -> s{_dsgsNextToken = a});+ -- | Checks whether you have the required permissions for the action, 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@ . dsgsDryRun :: Lens' DescribeSecurityGroups (Maybe Bool) dsgsDryRun = lens _dsgsDryRun (\ s a -> s{_dsgsDryRun = a}); +-- | The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned @NextToken@ value. This value can be between 5 and 1000.+dsgsMaxResults :: Lens' DescribeSecurityGroups (Maybe Int)+dsgsMaxResults = lens _dsgsMaxResults (\ s a -> s{_dsgsMaxResults = a});++instance AWSPager DescribeSecurityGroups where+        page rq rs+          | stop (rs ^. dsgrsNextToken) = Nothing+          | stop (rs ^. dsgrsSecurityGroups) = Nothing+          | otherwise =+            Just $ rq & dsgsNextToken .~ rs ^. dsgrsNextToken+ instance AWSRequest DescribeSecurityGroups where         type Rs DescribeSecurityGroups =              DescribeSecurityGroupsResponse@@ -108,11 +139,12 @@                  DescribeSecurityGroupsResponse' <$>                    (x .@? "securityGroupInfo" .!@ mempty >>=                       may (parseXMLList "item"))+                     <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeSecurityGroups+instance Hashable DescribeSecurityGroups where -instance NFData DescribeSecurityGroups+instance NFData DescribeSecurityGroups where  instance ToHeaders DescribeSecurityGroups where         toHeaders = const mempty@@ -130,7 +162,9 @@                toQuery                  (toQueryList "GroupName" <$> _dsgsGroupNames),                toQuery (toQueryList "GroupId" <$> _dsgsGroupIds),-               "DryRun" =: _dsgsDryRun]+               "NextToken" =: _dsgsNextToken,+               "DryRun" =: _dsgsDryRun,+               "MaxResults" =: _dsgsMaxResults]  -- | Contains the output of DescribeSecurityGroups. --@@ -138,32 +172,42 @@ -- -- /See:/ 'describeSecurityGroupsResponse' smart constructor. data DescribeSecurityGroupsResponse = DescribeSecurityGroupsResponse'-    { _dsgrsSecurityGroups :: !(Maybe [SecurityGroup])-    , _dsgrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsgrsSecurityGroups :: !(Maybe [SecurityGroup])+  , _dsgrsNextToken      :: !(Maybe Text)+  , _dsgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSecurityGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dsgrsSecurityGroups' - Information about one or more security groups. --+-- * 'dsgrsNextToken' - The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+-- -- * 'dsgrsResponseStatus' - -- | The response status code. describeSecurityGroupsResponse     :: Int -- ^ 'dsgrsResponseStatus'     -> DescribeSecurityGroupsResponse describeSecurityGroupsResponse pResponseStatus_ =-    DescribeSecurityGroupsResponse'-    { _dsgrsSecurityGroups = Nothing-    , _dsgrsResponseStatus = pResponseStatus_-    }+  DescribeSecurityGroupsResponse'+  { _dsgrsSecurityGroups = Nothing+  , _dsgrsNextToken = Nothing+  , _dsgrsResponseStatus = pResponseStatus_+  } + -- | Information about one or more security groups. dsgrsSecurityGroups :: Lens' DescribeSecurityGroupsResponse [SecurityGroup] dsgrsSecurityGroups = lens _dsgrsSecurityGroups (\ s a -> s{_dsgrsSecurityGroups = a}) . _Default . _Coerce; +-- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.+dsgrsNextToken :: Lens' DescribeSecurityGroupsResponse (Maybe Text)+dsgrsNextToken = lens _dsgrsNextToken (\ s a -> s{_dsgrsNextToken = a});+ -- | -- | The response status code. dsgrsResponseStatus :: Lens' DescribeSecurityGroupsResponse Int dsgrsResponseStatus = lens _dsgrsResponseStatus (\ s a -> s{_dsgrsResponseStatus = a}); -instance NFData DescribeSecurityGroupsResponse+instance NFData DescribeSecurityGroupsResponse where
gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSnapshotAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,8 +30,8 @@     , DescribeSnapshotAttribute     -- * Request Lenses     , dsaDryRun-    , dsaSnapshotId     , dsaAttribute+    , dsaSnapshotId      -- * Destructuring the Response     , describeSnapshotAttributeResponse@@ -43,12 +43,12 @@     , dsarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSnapshotAttribute. --@@ -56,43 +56,45 @@ -- -- /See:/ 'describeSnapshotAttribute' smart constructor. data DescribeSnapshotAttribute = DescribeSnapshotAttribute'-    { _dsaDryRun     :: !(Maybe Bool)-    , _dsaSnapshotId :: !Text-    , _dsaAttribute  :: !SnapshotAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsaDryRun     :: !(Maybe Bool)+  , _dsaAttribute  :: !SnapshotAttributeName+  , _dsaSnapshotId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshotAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dsaDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'dsaSnapshotId' - The ID of the EBS snapshot.--- -- * 'dsaAttribute' - The snapshot attribute you would like to view.+--+-- * 'dsaSnapshotId' - The ID of the EBS snapshot. describeSnapshotAttribute-    :: Text -- ^ 'dsaSnapshotId'-    -> SnapshotAttributeName -- ^ 'dsaAttribute'+    :: SnapshotAttributeName -- ^ 'dsaAttribute'+    -> Text -- ^ 'dsaSnapshotId'     -> DescribeSnapshotAttribute-describeSnapshotAttribute pSnapshotId_ pAttribute_ =-    DescribeSnapshotAttribute'-    { _dsaDryRun = Nothing-    , _dsaSnapshotId = pSnapshotId_-    , _dsaAttribute = pAttribute_-    }+describeSnapshotAttribute pAttribute_ pSnapshotId_ =+  DescribeSnapshotAttribute'+  { _dsaDryRun = Nothing+  , _dsaAttribute = pAttribute_+  , _dsaSnapshotId = pSnapshotId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . dsaDryRun :: Lens' DescribeSnapshotAttribute (Maybe Bool) dsaDryRun = lens _dsaDryRun (\ s a -> s{_dsaDryRun = a}); --- | The ID of the EBS snapshot.-dsaSnapshotId :: Lens' DescribeSnapshotAttribute Text-dsaSnapshotId = lens _dsaSnapshotId (\ s a -> s{_dsaSnapshotId = a});- -- | The snapshot attribute you would like to view. dsaAttribute :: Lens' DescribeSnapshotAttribute SnapshotAttributeName dsaAttribute = lens _dsaAttribute (\ s a -> s{_dsaAttribute = a}); +-- | The ID of the EBS snapshot.+dsaSnapshotId :: Lens' DescribeSnapshotAttribute Text+dsaSnapshotId = lens _dsaSnapshotId (\ s a -> s{_dsaSnapshotId = a});+ instance AWSRequest DescribeSnapshotAttribute where         type Rs DescribeSnapshotAttribute =              DescribeSnapshotAttributeResponse@@ -109,9 +111,9 @@                      <*> (x .@? "snapshotId")                      <*> (pure (fromEnum s))) -instance Hashable DescribeSnapshotAttribute+instance Hashable DescribeSnapshotAttribute where -instance NFData DescribeSnapshotAttribute+instance NFData DescribeSnapshotAttribute where  instance ToHeaders DescribeSnapshotAttribute where         toHeaders = const mempty@@ -125,9 +127,8 @@               ["Action" =:                  ("DescribeSnapshotAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _dsaDryRun,-               "SnapshotId" =: _dsaSnapshotId,-               "Attribute" =: _dsaAttribute]+               "DryRun" =: _dsaDryRun, "Attribute" =: _dsaAttribute,+               "SnapshotId" =: _dsaSnapshotId]  -- | Contains the output of DescribeSnapshotAttribute. --@@ -135,12 +136,13 @@ -- -- /See:/ 'describeSnapshotAttributeResponse' smart constructor. data DescribeSnapshotAttributeResponse = DescribeSnapshotAttributeResponse'-    { _dsarsCreateVolumePermissions :: !(Maybe [CreateVolumePermission])-    , _dsarsProductCodes            :: !(Maybe [ProductCode])-    , _dsarsSnapshotId              :: !(Maybe Text)-    , _dsarsResponseStatus          :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsarsCreateVolumePermissions :: !(Maybe [CreateVolumePermission])+  , _dsarsProductCodes            :: !(Maybe [ProductCode])+  , _dsarsSnapshotId              :: !(Maybe Text)+  , _dsarsResponseStatus          :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshotAttributeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -156,13 +158,14 @@     :: Int -- ^ 'dsarsResponseStatus'     -> DescribeSnapshotAttributeResponse describeSnapshotAttributeResponse pResponseStatus_ =-    DescribeSnapshotAttributeResponse'-    { _dsarsCreateVolumePermissions = Nothing-    , _dsarsProductCodes = Nothing-    , _dsarsSnapshotId = Nothing-    , _dsarsResponseStatus = pResponseStatus_-    }+  DescribeSnapshotAttributeResponse'+  { _dsarsCreateVolumePermissions = Nothing+  , _dsarsProductCodes = Nothing+  , _dsarsSnapshotId = Nothing+  , _dsarsResponseStatus = pResponseStatus_+  } + -- | A list of permissions for creating volumes from the snapshot. dsarsCreateVolumePermissions :: Lens' DescribeSnapshotAttributeResponse [CreateVolumePermission] dsarsCreateVolumePermissions = lens _dsarsCreateVolumePermissions (\ s a -> s{_dsarsCreateVolumePermissions = a}) . _Default . _Coerce;@@ -180,3 +183,4 @@ dsarsResponseStatus = lens _dsarsResponseStatus (\ s a -> s{_dsarsResponseStatus = a});  instance NFData DescribeSnapshotAttributeResponse+         where
gen/Network/AWS/EC2/DescribeSnapshots.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSnapshots--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -68,13 +68,13 @@     , dssrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSnapshots. --@@ -82,22 +82,23 @@ -- -- /See:/ 'describeSnapshots' smart constructor. data DescribeSnapshots = DescribeSnapshots'-    { _dssOwnerIds            :: !(Maybe [Text])-    , _dssFilters             :: !(Maybe [Filter])-    , _dssNextToken           :: !(Maybe Text)-    , _dssSnapshotIds         :: !(Maybe [Text])-    , _dssRestorableByUserIds :: !(Maybe [Text])-    , _dssDryRun              :: !(Maybe Bool)-    , _dssMaxResults          :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dssOwnerIds            :: !(Maybe [Text])+  , _dssFilters             :: !(Maybe [Filter])+  , _dssNextToken           :: !(Maybe Text)+  , _dssSnapshotIds         :: !(Maybe [Text])+  , _dssRestorableByUserIds :: !(Maybe [Text])+  , _dssDryRun              :: !(Maybe Bool)+  , _dssMaxResults          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshots' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dssOwnerIds' - Returns the snapshots owned by the specified owner. Multiple owners can be specified. ----- * 'dssFilters' - One or more filters.     * @description@ - A description of the snapshot.     * @owner-alias@ - Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM consolew.     * @owner-id@ - The ID of the AWS account that owns the snapshot.     * @progress@ - The progress of the snapshot, as a percentage (for example, 80%).     * @snapshot-id@ - The snapshot ID.     * @start-time@ - The time stamp when the snapshot was initiated.     * @status@ - The status of the snapshot (@pending@ | @completed@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The ID of the volume the snapshot is for.     * @volume-size@ - The size of the volume, in GiB.+-- * 'dssFilters' - One or more filters.     * @description@ - A description of the snapshot.     * @owner-alias@ - Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.     * @owner-id@ - The ID of the AWS account that owns the snapshot.     * @progress@ - The progress of the snapshot, as a percentage (for example, 80%).     * @snapshot-id@ - The snapshot ID.     * @start-time@ - The time stamp when the snapshot was initiated.     * @status@ - The status of the snapshot (@pending@ | @completed@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The ID of the volume the snapshot is for.     * @volume-size@ - The size of the volume, in GiB. -- -- * 'dssNextToken' - The @NextToken@ value returned from a previous paginated @DescribeSnapshots@ request where @MaxResults@ was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the @NextToken@ value. This value is @null@ when there are no more results to return. --@@ -111,21 +112,22 @@ describeSnapshots     :: DescribeSnapshots describeSnapshots =-    DescribeSnapshots'-    { _dssOwnerIds = Nothing-    , _dssFilters = Nothing-    , _dssNextToken = Nothing-    , _dssSnapshotIds = Nothing-    , _dssRestorableByUserIds = Nothing-    , _dssDryRun = Nothing-    , _dssMaxResults = Nothing-    }+  DescribeSnapshots'+  { _dssOwnerIds = Nothing+  , _dssFilters = Nothing+  , _dssNextToken = Nothing+  , _dssSnapshotIds = Nothing+  , _dssRestorableByUserIds = Nothing+  , _dssDryRun = Nothing+  , _dssMaxResults = Nothing+  } + -- | Returns the snapshots owned by the specified owner. Multiple owners can be specified. dssOwnerIds :: Lens' DescribeSnapshots [Text] dssOwnerIds = lens _dssOwnerIds (\ s a -> s{_dssOwnerIds = a}) . _Default . _Coerce; --- | One or more filters.     * @description@ - A description of the snapshot.     * @owner-alias@ - Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM consolew.     * @owner-id@ - The ID of the AWS account that owns the snapshot.     * @progress@ - The progress of the snapshot, as a percentage (for example, 80%).     * @snapshot-id@ - The snapshot ID.     * @start-time@ - The time stamp when the snapshot was initiated.     * @status@ - The status of the snapshot (@pending@ | @completed@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The ID of the volume the snapshot is for.     * @volume-size@ - The size of the volume, in GiB.+-- | One or more filters.     * @description@ - A description of the snapshot.     * @owner-alias@ - Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.     * @owner-id@ - The ID of the AWS account that owns the snapshot.     * @progress@ - The progress of the snapshot, as a percentage (for example, 80%).     * @snapshot-id@ - The snapshot ID.     * @start-time@ - The time stamp when the snapshot was initiated.     * @status@ - The status of the snapshot (@pending@ | @completed@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The ID of the volume the snapshot is for.     * @volume-size@ - The size of the volume, in GiB. dssFilters :: Lens' DescribeSnapshots [Filter] dssFilters = lens _dssFilters (\ s a -> s{_dssFilters = a}) . _Default . _Coerce; @@ -168,9 +170,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeSnapshots+instance Hashable DescribeSnapshots where -instance NFData DescribeSnapshots+instance NFData DescribeSnapshots where  instance ToHeaders DescribeSnapshots where         toHeaders = const mempty@@ -200,11 +202,12 @@ -- -- /See:/ 'describeSnapshotsResponse' smart constructor. data DescribeSnapshotsResponse = DescribeSnapshotsResponse'-    { _dssrsNextToken      :: !(Maybe Text)-    , _dssrsSnapshots      :: !(Maybe [Snapshot])-    , _dssrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dssrsNextToken      :: !(Maybe Text)+  , _dssrsSnapshots      :: !(Maybe [Snapshot])+  , _dssrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSnapshotsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -218,12 +221,13 @@     :: Int -- ^ 'dssrsResponseStatus'     -> DescribeSnapshotsResponse describeSnapshotsResponse pResponseStatus_ =-    DescribeSnapshotsResponse'-    { _dssrsNextToken = Nothing-    , _dssrsSnapshots = Nothing-    , _dssrsResponseStatus = pResponseStatus_-    }+  DescribeSnapshotsResponse'+  { _dssrsNextToken = Nothing+  , _dssrsSnapshots = Nothing+  , _dssrsResponseStatus = pResponseStatus_+  } + -- | The @NextToken@ value to include in a future @DescribeSnapshots@ request. When the results of a @DescribeSnapshots@ request exceed @MaxResults@ , this value can be used to retrieve the next page of results. This value is @null@ when there are no more results to return. dssrsNextToken :: Lens' DescribeSnapshotsResponse (Maybe Text) dssrsNextToken = lens _dssrsNextToken (\ s a -> s{_dssrsNextToken = a});@@ -236,4 +240,4 @@ dssrsResponseStatus :: Lens' DescribeSnapshotsResponse Int dssrsResponseStatus = lens _dssrsResponseStatus (\ s a -> s{_dssrsResponseStatus = a}); -instance NFData DescribeSnapshotsResponse+instance NFData DescribeSnapshotsResponse where
gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotDatafeedSubscription--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , dsdsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSpotDatafeedSubscription. --@@ -50,9 +50,10 @@ -- -- /See:/ 'describeSpotDatafeedSubscription' smart constructor. newtype DescribeSpotDatafeedSubscription = DescribeSpotDatafeedSubscription'-    { _dsdsDryRun :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsdsDryRun :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotDatafeedSubscription' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -61,10 +62,9 @@ describeSpotDatafeedSubscription     :: DescribeSpotDatafeedSubscription describeSpotDatafeedSubscription =-    DescribeSpotDatafeedSubscription'-    { _dsdsDryRun = Nothing-    }+  DescribeSpotDatafeedSubscription' {_dsdsDryRun = Nothing} + -- | Checks whether you have the required permissions for the action, 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@ . dsdsDryRun :: Lens' DescribeSpotDatafeedSubscription (Maybe Bool) dsdsDryRun = lens _dsdsDryRun (\ s a -> s{_dsdsDryRun = a});@@ -82,8 +82,10 @@                      (pure (fromEnum s)))  instance Hashable DescribeSpotDatafeedSubscription+         where  instance NFData DescribeSpotDatafeedSubscription+         where  instance ToHeaders DescribeSpotDatafeedSubscription          where@@ -108,10 +110,11 @@ -- -- /See:/ 'describeSpotDatafeedSubscriptionResponse' smart constructor. data DescribeSpotDatafeedSubscriptionResponse = DescribeSpotDatafeedSubscriptionResponse'-    { _dsdsrsSpotDatafeedSubscription :: !(Maybe SpotDatafeedSubscription)-    , _dsdsrsResponseStatus           :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsdsrsSpotDatafeedSubscription :: !(Maybe SpotDatafeedSubscription)+  , _dsdsrsResponseStatus           :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotDatafeedSubscriptionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -123,11 +126,12 @@     :: Int -- ^ 'dsdsrsResponseStatus'     -> DescribeSpotDatafeedSubscriptionResponse describeSpotDatafeedSubscriptionResponse pResponseStatus_ =-    DescribeSpotDatafeedSubscriptionResponse'-    { _dsdsrsSpotDatafeedSubscription = Nothing-    , _dsdsrsResponseStatus = pResponseStatus_-    }+  DescribeSpotDatafeedSubscriptionResponse'+  { _dsdsrsSpotDatafeedSubscription = Nothing+  , _dsdsrsResponseStatus = pResponseStatus_+  } + -- | The Spot instance data feed subscription. dsdsrsSpotDatafeedSubscription :: Lens' DescribeSpotDatafeedSubscriptionResponse (Maybe SpotDatafeedSubscription) dsdsrsSpotDatafeedSubscription = lens _dsdsrsSpotDatafeedSubscription (\ s a -> s{_dsdsrsSpotDatafeedSubscription = a});@@ -137,4 +141,5 @@ dsdsrsResponseStatus = lens _dsdsrsResponseStatus (\ s a -> s{_dsdsrsResponseStatus = a});  instance NFData-         DescribeSpotDatafeedSubscriptionResponse+           DescribeSpotDatafeedSubscriptionResponse+         where
gen/Network/AWS/EC2/DescribeSpotFleetInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotFleetInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,16 +38,16 @@     -- * Response Lenses     , dsfirsNextToken     , dsfirsResponseStatus-    , dsfirsSpotFleetRequestId     , dsfirsActiveInstances+    , dsfirsSpotFleetRequestId     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSpotFleetInstances. --@@ -55,12 +55,13 @@ -- -- /See:/ 'describeSpotFleetInstances' smart constructor. data DescribeSpotFleetInstances = DescribeSpotFleetInstances'-    { _dsfiNextToken          :: !(Maybe Text)-    , _dsfiDryRun             :: !(Maybe Bool)-    , _dsfiMaxResults         :: !(Maybe Int)-    , _dsfiSpotFleetRequestId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsfiNextToken          :: !(Maybe Text)+  , _dsfiDryRun             :: !(Maybe Bool)+  , _dsfiMaxResults         :: !(Maybe Int)+  , _dsfiSpotFleetRequestId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotFleetInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,13 +77,14 @@     :: Text -- ^ 'dsfiSpotFleetRequestId'     -> DescribeSpotFleetInstances describeSpotFleetInstances pSpotFleetRequestId_ =-    DescribeSpotFleetInstances'-    { _dsfiNextToken = Nothing-    , _dsfiDryRun = Nothing-    , _dsfiMaxResults = Nothing-    , _dsfiSpotFleetRequestId = pSpotFleetRequestId_-    }+  DescribeSpotFleetInstances'+  { _dsfiNextToken = Nothing+  , _dsfiDryRun = Nothing+  , _dsfiMaxResults = Nothing+  , _dsfiSpotFleetRequestId = pSpotFleetRequestId_+  } + -- | The token for the next set of results. dsfiNextToken :: Lens' DescribeSpotFleetInstances (Maybe Text) dsfiNextToken = lens _dsfiNextToken (\ s a -> s{_dsfiNextToken = a});@@ -108,14 +110,13 @@               (\ s h x ->                  DescribeSpotFleetInstancesResponse' <$>                    (x .@? "nextToken") <*> (pure (fromEnum s)) <*>-                     (x .@ "spotFleetRequestId")-                     <*>                      (x .@? "activeInstanceSet" .!@ mempty >>=-                        parseXMLList "item"))+                        parseXMLList "item")+                     <*> (x .@ "spotFleetRequestId")) -instance Hashable DescribeSpotFleetInstances+instance Hashable DescribeSpotFleetInstances where -instance NFData DescribeSpotFleetInstances+instance NFData DescribeSpotFleetInstances where  instance ToHeaders DescribeSpotFleetInstances where         toHeaders = const mempty@@ -140,12 +141,13 @@ -- -- /See:/ 'describeSpotFleetInstancesResponse' smart constructor. data DescribeSpotFleetInstancesResponse = DescribeSpotFleetInstancesResponse'-    { _dsfirsNextToken          :: !(Maybe Text)-    , _dsfirsResponseStatus     :: !Int-    , _dsfirsSpotFleetRequestId :: !Text-    , _dsfirsActiveInstances    :: ![ActiveInstance]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsfirsNextToken          :: !(Maybe Text)+  , _dsfirsResponseStatus     :: !Int+  , _dsfirsActiveInstances    :: ![ActiveInstance]+  , _dsfirsSpotFleetRequestId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotFleetInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -154,21 +156,22 @@ -- -- * 'dsfirsResponseStatus' - -- | The response status code. ----- * 'dsfirsSpotFleetRequestId' - The ID of the Spot fleet request.--- -- * 'dsfirsActiveInstances' - The running instances. Note that this list is refreshed periodically and might be out of date.+--+-- * 'dsfirsSpotFleetRequestId' - The ID of the Spot fleet request. describeSpotFleetInstancesResponse     :: Int -- ^ 'dsfirsResponseStatus'     -> Text -- ^ 'dsfirsSpotFleetRequestId'     -> DescribeSpotFleetInstancesResponse describeSpotFleetInstancesResponse pResponseStatus_ pSpotFleetRequestId_ =-    DescribeSpotFleetInstancesResponse'-    { _dsfirsNextToken = Nothing-    , _dsfirsResponseStatus = pResponseStatus_-    , _dsfirsSpotFleetRequestId = pSpotFleetRequestId_-    , _dsfirsActiveInstances = mempty-    }+  DescribeSpotFleetInstancesResponse'+  { _dsfirsNextToken = Nothing+  , _dsfirsResponseStatus = pResponseStatus_+  , _dsfirsActiveInstances = mempty+  , _dsfirsSpotFleetRequestId = pSpotFleetRequestId_+  } + -- | The token required to retrieve the next set of results. This value is @null@ when there are no more results to return. dsfirsNextToken :: Lens' DescribeSpotFleetInstancesResponse (Maybe Text) dsfirsNextToken = lens _dsfirsNextToken (\ s a -> s{_dsfirsNextToken = a});@@ -177,12 +180,13 @@ dsfirsResponseStatus :: Lens' DescribeSpotFleetInstancesResponse Int dsfirsResponseStatus = lens _dsfirsResponseStatus (\ s a -> s{_dsfirsResponseStatus = a}); --- | The ID of the Spot fleet request.-dsfirsSpotFleetRequestId :: Lens' DescribeSpotFleetInstancesResponse Text-dsfirsSpotFleetRequestId = lens _dsfirsSpotFleetRequestId (\ s a -> s{_dsfirsSpotFleetRequestId = a});- -- | The running instances. Note that this list is refreshed periodically and might be out of date. dsfirsActiveInstances :: Lens' DescribeSpotFleetInstancesResponse [ActiveInstance] dsfirsActiveInstances = lens _dsfirsActiveInstances (\ s a -> s{_dsfirsActiveInstances = a}) . _Coerce; +-- | The ID of the Spot fleet request.+dsfirsSpotFleetRequestId :: Lens' DescribeSpotFleetInstancesResponse Text+dsfirsSpotFleetRequestId = lens _dsfirsSpotFleetRequestId (\ s a -> s{_dsfirsSpotFleetRequestId = a});+ instance NFData DescribeSpotFleetInstancesResponse+         where
gen/Network/AWS/EC2/DescribeSpotFleetRequestHistory.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotFleetRequestHistory--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,18 +42,18 @@     -- * Response Lenses     , dsfrhrsNextToken     , dsfrhrsResponseStatus+    , dsfrhrsHistoryRecords+    , dsfrhrsLastEvaluatedTime     , dsfrhrsSpotFleetRequestId     , dsfrhrsStartTime-    , dsfrhrsLastEvaluatedTime-    , dsfrhrsHistoryRecords     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSpotFleetRequestHistory. --@@ -61,14 +61,15 @@ -- -- /See:/ 'describeSpotFleetRequestHistory' smart constructor. data DescribeSpotFleetRequestHistory = DescribeSpotFleetRequestHistory'-    { _dsfrhNextToken          :: !(Maybe Text)-    , _dsfrhEventType          :: !(Maybe EventType)-    , _dsfrhDryRun             :: !(Maybe Bool)-    , _dsfrhMaxResults         :: !(Maybe Int)-    , _dsfrhSpotFleetRequestId :: !Text-    , _dsfrhStartTime          :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsfrhNextToken          :: !(Maybe Text)+  , _dsfrhEventType          :: !(Maybe EventType)+  , _dsfrhDryRun             :: !(Maybe Bool)+  , _dsfrhMaxResults         :: !(Maybe Int)+  , _dsfrhSpotFleetRequestId :: !Text+  , _dsfrhStartTime          :: !ISO8601+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotFleetRequestHistory' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,15 +90,16 @@     -> UTCTime -- ^ 'dsfrhStartTime'     -> DescribeSpotFleetRequestHistory describeSpotFleetRequestHistory pSpotFleetRequestId_ pStartTime_ =-    DescribeSpotFleetRequestHistory'-    { _dsfrhNextToken = Nothing-    , _dsfrhEventType = Nothing-    , _dsfrhDryRun = Nothing-    , _dsfrhMaxResults = Nothing-    , _dsfrhSpotFleetRequestId = pSpotFleetRequestId_-    , _dsfrhStartTime = _Time # pStartTime_-    }+  DescribeSpotFleetRequestHistory'+  { _dsfrhNextToken = Nothing+  , _dsfrhEventType = Nothing+  , _dsfrhDryRun = Nothing+  , _dsfrhMaxResults = Nothing+  , _dsfrhSpotFleetRequestId = pSpotFleetRequestId_+  , _dsfrhStartTime = _Time # pStartTime_+  } + -- | The token for the next set of results. dsfrhNextToken :: Lens' DescribeSpotFleetRequestHistory (Maybe Text) dsfrhNextToken = lens _dsfrhNextToken (\ s a -> s{_dsfrhNextToken = a});@@ -132,16 +134,16 @@               (\ s h x ->                  DescribeSpotFleetRequestHistoryResponse' <$>                    (x .@? "nextToken") <*> (pure (fromEnum s)) <*>-                     (x .@ "spotFleetRequestId")-                     <*> (x .@ "startTime")-                     <*> (x .@ "lastEvaluatedTime")-                     <*>                      (x .@? "historyRecordSet" .!@ mempty >>=-                        parseXMLList "item"))+                        parseXMLList "item")+                     <*> (x .@ "lastEvaluatedTime")+                     <*> (x .@ "spotFleetRequestId")+                     <*> (x .@ "startTime"))  instance Hashable DescribeSpotFleetRequestHistory+         where -instance NFData DescribeSpotFleetRequestHistory+instance NFData DescribeSpotFleetRequestHistory where  instance ToHeaders DescribeSpotFleetRequestHistory          where@@ -170,14 +172,15 @@ -- -- /See:/ 'describeSpotFleetRequestHistoryResponse' smart constructor. data DescribeSpotFleetRequestHistoryResponse = DescribeSpotFleetRequestHistoryResponse'-    { _dsfrhrsNextToken          :: !(Maybe Text)-    , _dsfrhrsResponseStatus     :: !Int-    , _dsfrhrsSpotFleetRequestId :: !Text-    , _dsfrhrsStartTime          :: !ISO8601-    , _dsfrhrsLastEvaluatedTime  :: !ISO8601-    , _dsfrhrsHistoryRecords     :: ![HistoryRecord]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsfrhrsNextToken          :: !(Maybe Text)+  , _dsfrhrsResponseStatus     :: !Int+  , _dsfrhrsHistoryRecords     :: ![HistoryRecord]+  , _dsfrhrsLastEvaluatedTime  :: !ISO8601+  , _dsfrhrsSpotFleetRequestId :: !Text+  , _dsfrhrsStartTime          :: !ISO8601+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotFleetRequestHistoryResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -186,29 +189,30 @@ -- -- * 'dsfrhrsResponseStatus' - -- | The response status code. ----- * 'dsfrhrsSpotFleetRequestId' - The ID of the Spot fleet request.------ * 'dsfrhrsStartTime' - The starting date and time for the events, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+-- * 'dsfrhrsHistoryRecords' - Information about the events in the history of the Spot fleet request. -- -- * 'dsfrhrsLastEvaluatedTime' - The last date and time for the events, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). All records up to this time were retrieved. If @nextToken@ indicates that there are more results, this value is not present. ----- * 'dsfrhrsHistoryRecords' - Information about the events in the history of the Spot fleet request.+-- * 'dsfrhrsSpotFleetRequestId' - The ID of the Spot fleet request.+--+-- * 'dsfrhrsStartTime' - The starting date and time for the events, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). describeSpotFleetRequestHistoryResponse     :: Int -- ^ 'dsfrhrsResponseStatus'+    -> UTCTime -- ^ 'dsfrhrsLastEvaluatedTime'     -> Text -- ^ 'dsfrhrsSpotFleetRequestId'     -> UTCTime -- ^ 'dsfrhrsStartTime'-    -> UTCTime -- ^ 'dsfrhrsLastEvaluatedTime'     -> DescribeSpotFleetRequestHistoryResponse-describeSpotFleetRequestHistoryResponse pResponseStatus_ pSpotFleetRequestId_ pStartTime_ pLastEvaluatedTime_ =-    DescribeSpotFleetRequestHistoryResponse'-    { _dsfrhrsNextToken = Nothing-    , _dsfrhrsResponseStatus = pResponseStatus_-    , _dsfrhrsSpotFleetRequestId = pSpotFleetRequestId_-    , _dsfrhrsStartTime = _Time # pStartTime_-    , _dsfrhrsLastEvaluatedTime = _Time # pLastEvaluatedTime_-    , _dsfrhrsHistoryRecords = mempty-    }+describeSpotFleetRequestHistoryResponse pResponseStatus_ pLastEvaluatedTime_ pSpotFleetRequestId_ pStartTime_ =+  DescribeSpotFleetRequestHistoryResponse'+  { _dsfrhrsNextToken = Nothing+  , _dsfrhrsResponseStatus = pResponseStatus_+  , _dsfrhrsHistoryRecords = mempty+  , _dsfrhrsLastEvaluatedTime = _Time # pLastEvaluatedTime_+  , _dsfrhrsSpotFleetRequestId = pSpotFleetRequestId_+  , _dsfrhrsStartTime = _Time # pStartTime_+  } + -- | The token required to retrieve the next set of results. This value is @null@ when there are no more results to return. dsfrhrsNextToken :: Lens' DescribeSpotFleetRequestHistoryResponse (Maybe Text) dsfrhrsNextToken = lens _dsfrhrsNextToken (\ s a -> s{_dsfrhrsNextToken = a});@@ -217,6 +221,14 @@ dsfrhrsResponseStatus :: Lens' DescribeSpotFleetRequestHistoryResponse Int dsfrhrsResponseStatus = lens _dsfrhrsResponseStatus (\ s a -> s{_dsfrhrsResponseStatus = a}); +-- | Information about the events in the history of the Spot fleet request.+dsfrhrsHistoryRecords :: Lens' DescribeSpotFleetRequestHistoryResponse [HistoryRecord]+dsfrhrsHistoryRecords = lens _dsfrhrsHistoryRecords (\ s a -> s{_dsfrhrsHistoryRecords = a}) . _Coerce;++-- | The last date and time for the events, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). All records up to this time were retrieved. If @nextToken@ indicates that there are more results, this value is not present.+dsfrhrsLastEvaluatedTime :: Lens' DescribeSpotFleetRequestHistoryResponse UTCTime+dsfrhrsLastEvaluatedTime = lens _dsfrhrsLastEvaluatedTime (\ s a -> s{_dsfrhrsLastEvaluatedTime = a}) . _Time;+ -- | The ID of the Spot fleet request. dsfrhrsSpotFleetRequestId :: Lens' DescribeSpotFleetRequestHistoryResponse Text dsfrhrsSpotFleetRequestId = lens _dsfrhrsSpotFleetRequestId (\ s a -> s{_dsfrhrsSpotFleetRequestId = a});@@ -225,13 +237,6 @@ dsfrhrsStartTime :: Lens' DescribeSpotFleetRequestHistoryResponse UTCTime dsfrhrsStartTime = lens _dsfrhrsStartTime (\ s a -> s{_dsfrhrsStartTime = a}) . _Time; --- | The last date and time for the events, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). All records up to this time were retrieved. If @nextToken@ indicates that there are more results, this value is not present.-dsfrhrsLastEvaluatedTime :: Lens' DescribeSpotFleetRequestHistoryResponse UTCTime-dsfrhrsLastEvaluatedTime = lens _dsfrhrsLastEvaluatedTime (\ s a -> s{_dsfrhrsLastEvaluatedTime = a}) . _Time;---- | Information about the events in the history of the Spot fleet request.-dsfrhrsHistoryRecords :: Lens' DescribeSpotFleetRequestHistoryResponse [HistoryRecord]-dsfrhrsHistoryRecords = lens _dsfrhrsHistoryRecords (\ s a -> s{_dsfrhrsHistoryRecords = a}) . _Coerce;- instance NFData-         DescribeSpotFleetRequestHistoryResponse+           DescribeSpotFleetRequestHistoryResponse+         where
gen/Network/AWS/EC2/DescribeSpotFleetRequests.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotFleetRequests--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,13 +45,13 @@     , dsfrrsSpotFleetRequestConfigs     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSpotFleetRequests. --@@ -59,12 +59,13 @@ -- -- /See:/ 'describeSpotFleetRequests' smart constructor. data DescribeSpotFleetRequests = DescribeSpotFleetRequests'-    { _dsfrSpotFleetRequestIds :: !(Maybe [Text])-    , _dsfrNextToken           :: !(Maybe Text)-    , _dsfrDryRun              :: !(Maybe Bool)-    , _dsfrMaxResults          :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsfrSpotFleetRequestIds :: !(Maybe [Text])+  , _dsfrNextToken           :: !(Maybe Text)+  , _dsfrDryRun              :: !(Maybe Bool)+  , _dsfrMaxResults          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotFleetRequests' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,13 +80,14 @@ describeSpotFleetRequests     :: DescribeSpotFleetRequests describeSpotFleetRequests =-    DescribeSpotFleetRequests'-    { _dsfrSpotFleetRequestIds = Nothing-    , _dsfrNextToken = Nothing-    , _dsfrDryRun = Nothing-    , _dsfrMaxResults = Nothing-    }+  DescribeSpotFleetRequests'+  { _dsfrSpotFleetRequestIds = Nothing+  , _dsfrNextToken = Nothing+  , _dsfrDryRun = Nothing+  , _dsfrMaxResults = Nothing+  } + -- | The IDs of the Spot fleet requests. dsfrSpotFleetRequestIds :: Lens' DescribeSpotFleetRequests [Text] dsfrSpotFleetRequestIds = lens _dsfrSpotFleetRequestIds (\ s a -> s{_dsfrSpotFleetRequestIds = a}) . _Default . _Coerce;@@ -122,9 +124,9 @@                      (x .@? "spotFleetRequestConfigSet" .!@ mempty >>=                         parseXMLList "item")) -instance Hashable DescribeSpotFleetRequests+instance Hashable DescribeSpotFleetRequests where -instance NFData DescribeSpotFleetRequests+instance NFData DescribeSpotFleetRequests where  instance ToHeaders DescribeSpotFleetRequests where         toHeaders = const mempty@@ -151,11 +153,12 @@ -- -- /See:/ 'describeSpotFleetRequestsResponse' smart constructor. data DescribeSpotFleetRequestsResponse = DescribeSpotFleetRequestsResponse'-    { _dsfrrsNextToken               :: !(Maybe Text)-    , _dsfrrsResponseStatus          :: !Int-    , _dsfrrsSpotFleetRequestConfigs :: ![SpotFleetRequestConfig]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsfrrsNextToken               :: !(Maybe Text)+  , _dsfrrsResponseStatus          :: !Int+  , _dsfrrsSpotFleetRequestConfigs :: ![SpotFleetRequestConfig]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotFleetRequestsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -169,12 +172,13 @@     :: Int -- ^ 'dsfrrsResponseStatus'     -> DescribeSpotFleetRequestsResponse describeSpotFleetRequestsResponse pResponseStatus_ =-    DescribeSpotFleetRequestsResponse'-    { _dsfrrsNextToken = Nothing-    , _dsfrrsResponseStatus = pResponseStatus_-    , _dsfrrsSpotFleetRequestConfigs = mempty-    }+  DescribeSpotFleetRequestsResponse'+  { _dsfrrsNextToken = Nothing+  , _dsfrrsResponseStatus = pResponseStatus_+  , _dsfrrsSpotFleetRequestConfigs = mempty+  } + -- | The token required to retrieve the next set of results. This value is @null@ when there are no more results to return. dsfrrsNextToken :: Lens' DescribeSpotFleetRequestsResponse (Maybe Text) dsfrrsNextToken = lens _dsfrrsNextToken (\ s a -> s{_dsfrrsNextToken = a});@@ -188,3 +192,4 @@ dsfrrsSpotFleetRequestConfigs = lens _dsfrrsSpotFleetRequestConfigs (\ s a -> s{_dsfrrsSpotFleetRequestConfigs = a}) . _Coerce;  instance NFData DescribeSpotFleetRequestsResponse+         where
gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotInstanceRequests--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , dsirrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSpotInstanceRequests. --@@ -56,16 +56,17 @@ -- -- /See:/ 'describeSpotInstanceRequests' smart constructor. data DescribeSpotInstanceRequests = DescribeSpotInstanceRequests'-    { _dsirFilters                :: !(Maybe [Filter])-    , _dsirSpotInstanceRequestIds :: !(Maybe [Text])-    , _dsirDryRun                 :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsirFilters                :: !(Maybe [Filter])+  , _dsirSpotInstanceRequestIds :: !(Maybe [Text])+  , _dsirDryRun                 :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotInstanceRequests' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dsirFilters' - One or more filters.     * @availability-zone-group@ - The Availability Zone group.     * @create-time@ - The time stamp when the Spot instance request was created.     * @fault-code@ - The fault code related to the request.     * @fault-message@ - The fault message related to the request.     * @instance-id@ - The ID of the instance that fulfilled the request.     * @launch-group@ - The Spot instance launch group.     * @launch.block-device-mapping.delete-on-termination@ - Indicates whether the Amazon EBS volume is deleted on instance termination.     * @launch.block-device-mapping.device-name@ - The device name for the Amazon EBS volume (for example, @/dev/sdh@ ).     * @launch.block-device-mapping.snapshot-id@ - The ID of the snapshot used for the Amazon EBS volume.     * @launch.block-device-mapping.volume-size@ - The size of the Amazon EBS volume, in GiB.     * @launch.block-device-mapping.volume-type@ - The type of the Amazon EBS volume: @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic.     * @launch.group-id@ - The security group for the instance.     * @launch.image-id@ - The ID of the AMI.     * @launch.instance-type@ - The type of instance (for example, @m3.medium@ ).     * @launch.kernel-id@ - The kernel ID.     * @launch.key-name@ - The name of the key pair the instance launched with.     * @launch.monitoring-enabled@ - Whether monitoring is enabled for the Spot instance.     * @launch.ramdisk-id@ - The RAM disk ID.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.device-index@ - The index of the device for the network interface attachment on the instance.     * @network-interface.subnet-id@ - The ID of the subnet for the instance.     * @network-interface.description@ - A description of the network interface.     * @network-interface.private-ip-address@ - The primary private IP address of the network interface.     * @network-interface.delete-on-termination@ - Indicates whether the network interface is deleted when the instance is terminated.     * @network-interface.group-id@ - The ID of the security group associated with the network interface.     * @network-interface.group-name@ - The name of the security group associated with the network interface.     * @network-interface.addresses.primary@ - Indicates whether the IP address is the primary private IP address.     * @product-description@ - The product description associated with the instance (@Linux/UNIX@ | @Windows@ ).     * @spot-instance-request-id@ - The Spot instance request ID.     * @spot-price@ - The maximum hourly price for any Spot instance launched to fulfill the request.     * @state@ - The state of the Spot instance request (@open@ | @active@ | @closed@ | @cancelled@ | @failed@ ). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the Amazon Elastic Compute Cloud User Guide.     * @status-code@ - The short code describing the most recent evaluation of your Spot instance request.     * @status-message@ - The message explaining the status of the Spot instance request.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of Spot instance request (@one-time@ | @persistent@ ).     * @launched-availability-zone@ - The Availability Zone in which the bid is launched.     * @valid-from@ - The start date of the request.     * @valid-until@ - The end date of the request.+-- * 'dsirFilters' - One or more filters.     * @availability-zone-group@ - The Availability Zone group.     * @create-time@ - The time stamp when the Spot instance request was created.     * @fault-code@ - The fault code related to the request.     * @fault-message@ - The fault message related to the request.     * @instance-id@ - The ID of the instance that fulfilled the request.     * @launch-group@ - The Spot instance launch group.     * @launch.block-device-mapping.delete-on-termination@ - Indicates whether the EBS volume is deleted on instance termination.     * @launch.block-device-mapping.device-name@ - The device name for the volume in the block device mapping (for example, @/dev/sdh@ or @xvdh@ ).     * @launch.block-device-mapping.snapshot-id@ - The ID of the snapshot for the EBS volume.     * @launch.block-device-mapping.volume-size@ - The size of the EBS volume, in GiB.     * @launch.block-device-mapping.volume-type@ - The type of EBS volume: @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic.     * @launch.group-id@ - The security group for the instance.     * @launch.image-id@ - The ID of the AMI.     * @launch.instance-type@ - The type of instance (for example, @m3.medium@ ).     * @launch.kernel-id@ - The kernel ID.     * @launch.key-name@ - The name of the key pair the instance launched with.     * @launch.monitoring-enabled@ - Whether detailed monitoring is enabled for the Spot instance.     * @launch.ramdisk-id@ - The RAM disk ID.     * @launched-availability-zone@ - The Availability Zone in which the bid is launched.     * @network-interface.addresses.primary@ - Indicates whether the IP address is the primary private IP address.     * @network-interface.delete-on-termination@ - Indicates whether the network interface is deleted when the instance is terminated.     * @network-interface.description@ - A description of the network interface.     * @network-interface.device-index@ - The index of the device for the network interface attachment on the instance.     * @network-interface.group-id@ - The ID of the security group associated with the network interface.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.private-ip-address@ - The primary private IP address of the network interface.     * @network-interface.subnet-id@ - The ID of the subnet for the instance.     * @product-description@ - The product description associated with the instance (@Linux/UNIX@ | @Windows@ ).     * @spot-instance-request-id@ - The Spot instance request ID.     * @spot-price@ - The maximum hourly price for any Spot instance launched to fulfill the request.     * @state@ - The state of the Spot instance request (@open@ | @active@ | @closed@ | @cancelled@ | @failed@ ). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the Amazon Elastic Compute Cloud User Guide.     * @status-code@ - The short code describing the most recent evaluation of your Spot instance request.     * @status-message@ - The message explaining the status of the Spot instance request.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of Spot instance request (@one-time@ | @persistent@ ).     * @valid-from@ - The start date of the request.     * @valid-until@ - The end date of the request. -- -- * 'dsirSpotInstanceRequestIds' - One or more Spot instance request IDs. --@@ -73,13 +74,14 @@ describeSpotInstanceRequests     :: DescribeSpotInstanceRequests describeSpotInstanceRequests =-    DescribeSpotInstanceRequests'-    { _dsirFilters = Nothing-    , _dsirSpotInstanceRequestIds = Nothing-    , _dsirDryRun = Nothing-    }+  DescribeSpotInstanceRequests'+  { _dsirFilters = Nothing+  , _dsirSpotInstanceRequestIds = Nothing+  , _dsirDryRun = Nothing+  } --- | One or more filters.     * @availability-zone-group@ - The Availability Zone group.     * @create-time@ - The time stamp when the Spot instance request was created.     * @fault-code@ - The fault code related to the request.     * @fault-message@ - The fault message related to the request.     * @instance-id@ - The ID of the instance that fulfilled the request.     * @launch-group@ - The Spot instance launch group.     * @launch.block-device-mapping.delete-on-termination@ - Indicates whether the Amazon EBS volume is deleted on instance termination.     * @launch.block-device-mapping.device-name@ - The device name for the Amazon EBS volume (for example, @/dev/sdh@ ).     * @launch.block-device-mapping.snapshot-id@ - The ID of the snapshot used for the Amazon EBS volume.     * @launch.block-device-mapping.volume-size@ - The size of the Amazon EBS volume, in GiB.     * @launch.block-device-mapping.volume-type@ - The type of the Amazon EBS volume: @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic.     * @launch.group-id@ - The security group for the instance.     * @launch.image-id@ - The ID of the AMI.     * @launch.instance-type@ - The type of instance (for example, @m3.medium@ ).     * @launch.kernel-id@ - The kernel ID.     * @launch.key-name@ - The name of the key pair the instance launched with.     * @launch.monitoring-enabled@ - Whether monitoring is enabled for the Spot instance.     * @launch.ramdisk-id@ - The RAM disk ID.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.device-index@ - The index of the device for the network interface attachment on the instance.     * @network-interface.subnet-id@ - The ID of the subnet for the instance.     * @network-interface.description@ - A description of the network interface.     * @network-interface.private-ip-address@ - The primary private IP address of the network interface.     * @network-interface.delete-on-termination@ - Indicates whether the network interface is deleted when the instance is terminated.     * @network-interface.group-id@ - The ID of the security group associated with the network interface.     * @network-interface.group-name@ - The name of the security group associated with the network interface.     * @network-interface.addresses.primary@ - Indicates whether the IP address is the primary private IP address.     * @product-description@ - The product description associated with the instance (@Linux/UNIX@ | @Windows@ ).     * @spot-instance-request-id@ - The Spot instance request ID.     * @spot-price@ - The maximum hourly price for any Spot instance launched to fulfill the request.     * @state@ - The state of the Spot instance request (@open@ | @active@ | @closed@ | @cancelled@ | @failed@ ). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the Amazon Elastic Compute Cloud User Guide.     * @status-code@ - The short code describing the most recent evaluation of your Spot instance request.     * @status-message@ - The message explaining the status of the Spot instance request.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of Spot instance request (@one-time@ | @persistent@ ).     * @launched-availability-zone@ - The Availability Zone in which the bid is launched.     * @valid-from@ - The start date of the request.     * @valid-until@ - The end date of the request.++-- | One or more filters.     * @availability-zone-group@ - The Availability Zone group.     * @create-time@ - The time stamp when the Spot instance request was created.     * @fault-code@ - The fault code related to the request.     * @fault-message@ - The fault message related to the request.     * @instance-id@ - The ID of the instance that fulfilled the request.     * @launch-group@ - The Spot instance launch group.     * @launch.block-device-mapping.delete-on-termination@ - Indicates whether the EBS volume is deleted on instance termination.     * @launch.block-device-mapping.device-name@ - The device name for the volume in the block device mapping (for example, @/dev/sdh@ or @xvdh@ ).     * @launch.block-device-mapping.snapshot-id@ - The ID of the snapshot for the EBS volume.     * @launch.block-device-mapping.volume-size@ - The size of the EBS volume, in GiB.     * @launch.block-device-mapping.volume-type@ - The type of EBS volume: @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic.     * @launch.group-id@ - The security group for the instance.     * @launch.image-id@ - The ID of the AMI.     * @launch.instance-type@ - The type of instance (for example, @m3.medium@ ).     * @launch.kernel-id@ - The kernel ID.     * @launch.key-name@ - The name of the key pair the instance launched with.     * @launch.monitoring-enabled@ - Whether detailed monitoring is enabled for the Spot instance.     * @launch.ramdisk-id@ - The RAM disk ID.     * @launched-availability-zone@ - The Availability Zone in which the bid is launched.     * @network-interface.addresses.primary@ - Indicates whether the IP address is the primary private IP address.     * @network-interface.delete-on-termination@ - Indicates whether the network interface is deleted when the instance is terminated.     * @network-interface.description@ - A description of the network interface.     * @network-interface.device-index@ - The index of the device for the network interface attachment on the instance.     * @network-interface.group-id@ - The ID of the security group associated with the network interface.     * @network-interface.network-interface-id@ - The ID of the network interface.     * @network-interface.private-ip-address@ - The primary private IP address of the network interface.     * @network-interface.subnet-id@ - The ID of the subnet for the instance.     * @product-description@ - The product description associated with the instance (@Linux/UNIX@ | @Windows@ ).     * @spot-instance-request-id@ - The Spot instance request ID.     * @spot-price@ - The maximum hourly price for any Spot instance launched to fulfill the request.     * @state@ - The state of the Spot instance request (@open@ | @active@ | @closed@ | @cancelled@ | @failed@ ). Spot bid status information can help you track your Amazon EC2 Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the Amazon Elastic Compute Cloud User Guide.     * @status-code@ - The short code describing the most recent evaluation of your Spot instance request.     * @status-message@ - The message explaining the status of the Spot instance request.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of Spot instance request (@one-time@ | @persistent@ ).     * @valid-from@ - The start date of the request.     * @valid-until@ - The end date of the request. dsirFilters :: Lens' DescribeSpotInstanceRequests [Filter] dsirFilters = lens _dsirFilters (\ s a -> s{_dsirFilters = a}) . _Default . _Coerce; @@ -104,9 +106,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeSpotInstanceRequests+instance Hashable DescribeSpotInstanceRequests where -instance NFData DescribeSpotInstanceRequests+instance NFData DescribeSpotInstanceRequests where  instance ToHeaders DescribeSpotInstanceRequests where         toHeaders = const mempty@@ -132,10 +134,11 @@ -- -- /See:/ 'describeSpotInstanceRequestsResponse' smart constructor. data DescribeSpotInstanceRequestsResponse = DescribeSpotInstanceRequestsResponse'-    { _dsirrsSpotInstanceRequests :: !(Maybe [SpotInstanceRequest])-    , _dsirrsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsirrsSpotInstanceRequests :: !(Maybe [SpotInstanceRequest])+  , _dsirrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotInstanceRequestsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -147,11 +150,12 @@     :: Int -- ^ 'dsirrsResponseStatus'     -> DescribeSpotInstanceRequestsResponse describeSpotInstanceRequestsResponse pResponseStatus_ =-    DescribeSpotInstanceRequestsResponse'-    { _dsirrsSpotInstanceRequests = Nothing-    , _dsirrsResponseStatus = pResponseStatus_-    }+  DescribeSpotInstanceRequestsResponse'+  { _dsirrsSpotInstanceRequests = Nothing+  , _dsirrsResponseStatus = pResponseStatus_+  } + -- | One or more Spot instance requests. dsirrsSpotInstanceRequests :: Lens' DescribeSpotInstanceRequestsResponse [SpotInstanceRequest] dsirrsSpotInstanceRequests = lens _dsirrsSpotInstanceRequests (\ s a -> s{_dsirrsSpotInstanceRequests = a}) . _Default . _Coerce;@@ -161,3 +165,4 @@ dsirrsResponseStatus = lens _dsirrsResponseStatus (\ s a -> s{_dsirrsResponseStatus = a});  instance NFData DescribeSpotInstanceRequestsResponse+         where
gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSpotPriceHistory--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,13 +50,13 @@     , dsphrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSpotPriceHistory. --@@ -64,17 +64,18 @@ -- -- /See:/ 'describeSpotPriceHistory' smart constructor. data DescribeSpotPriceHistory = DescribeSpotPriceHistory'-    { _dsphInstanceTypes       :: !(Maybe [InstanceType])-    , _dsphStartTime           :: !(Maybe ISO8601)-    , _dsphFilters             :: !(Maybe [Filter])-    , _dsphNextToken           :: !(Maybe Text)-    , _dsphAvailabilityZone    :: !(Maybe Text)-    , _dsphEndTime             :: !(Maybe ISO8601)-    , _dsphProductDescriptions :: !(Maybe [Text])-    , _dsphDryRun              :: !(Maybe Bool)-    , _dsphMaxResults          :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsphInstanceTypes       :: !(Maybe [InstanceType])+  , _dsphStartTime           :: !(Maybe ISO8601)+  , _dsphFilters             :: !(Maybe [Filter])+  , _dsphNextToken           :: !(Maybe Text)+  , _dsphAvailabilityZone    :: !(Maybe Text)+  , _dsphEndTime             :: !(Maybe ISO8601)+  , _dsphProductDescriptions :: !(Maybe [Text])+  , _dsphDryRun              :: !(Maybe Bool)+  , _dsphMaxResults          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotPriceHistory' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -99,18 +100,19 @@ describeSpotPriceHistory     :: DescribeSpotPriceHistory describeSpotPriceHistory =-    DescribeSpotPriceHistory'-    { _dsphInstanceTypes = Nothing-    , _dsphStartTime = Nothing-    , _dsphFilters = Nothing-    , _dsphNextToken = Nothing-    , _dsphAvailabilityZone = Nothing-    , _dsphEndTime = Nothing-    , _dsphProductDescriptions = Nothing-    , _dsphDryRun = Nothing-    , _dsphMaxResults = Nothing-    }+  DescribeSpotPriceHistory'+  { _dsphInstanceTypes = Nothing+  , _dsphStartTime = Nothing+  , _dsphFilters = Nothing+  , _dsphNextToken = Nothing+  , _dsphAvailabilityZone = Nothing+  , _dsphEndTime = Nothing+  , _dsphProductDescriptions = Nothing+  , _dsphDryRun = Nothing+  , _dsphMaxResults = Nothing+  } + -- | Filters the results by the specified instance types. Note that T2 and HS1 instance types are not supported. dsphInstanceTypes :: Lens' DescribeSpotPriceHistory [InstanceType] dsphInstanceTypes = lens _dsphInstanceTypes (\ s a -> s{_dsphInstanceTypes = a}) . _Default . _Coerce;@@ -167,9 +169,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeSpotPriceHistory+instance Hashable DescribeSpotPriceHistory where -instance NFData DescribeSpotPriceHistory+instance NFData DescribeSpotPriceHistory where  instance ToHeaders DescribeSpotPriceHistory where         toHeaders = const mempty@@ -202,11 +204,12 @@ -- -- /See:/ 'describeSpotPriceHistoryResponse' smart constructor. data DescribeSpotPriceHistoryResponse = DescribeSpotPriceHistoryResponse'-    { _dsphrsNextToken        :: !(Maybe Text)-    , _dsphrsSpotPriceHistory :: !(Maybe [SpotPrice])-    , _dsphrsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsphrsNextToken        :: !(Maybe Text)+  , _dsphrsSpotPriceHistory :: !(Maybe [SpotPrice])+  , _dsphrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSpotPriceHistoryResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -220,12 +223,13 @@     :: Int -- ^ 'dsphrsResponseStatus'     -> DescribeSpotPriceHistoryResponse describeSpotPriceHistoryResponse pResponseStatus_ =-    DescribeSpotPriceHistoryResponse'-    { _dsphrsNextToken = Nothing-    , _dsphrsSpotPriceHistory = Nothing-    , _dsphrsResponseStatus = pResponseStatus_-    }+  DescribeSpotPriceHistoryResponse'+  { _dsphrsNextToken = Nothing+  , _dsphrsSpotPriceHistory = Nothing+  , _dsphrsResponseStatus = pResponseStatus_+  } + -- | The token required to retrieve the next set of results. This value is @null@ when there are no more results to return. dsphrsNextToken :: Lens' DescribeSpotPriceHistoryResponse (Maybe Text) dsphrsNextToken = lens _dsphrsNextToken (\ s a -> s{_dsphrsNextToken = a});@@ -239,3 +243,4 @@ dsphrsResponseStatus = lens _dsphrsResponseStatus (\ s a -> s{_dsphrsResponseStatus = a});  instance NFData DescribeSpotPriceHistoryResponse+         where
gen/Network/AWS/EC2/DescribeStaleSecurityGroups.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeStaleSecurityGroups--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,21 +41,22 @@     , dssgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'describeStaleSecurityGroups' smart constructor. data DescribeStaleSecurityGroups = DescribeStaleSecurityGroups'-    { _dssgNextToken  :: !(Maybe Text)-    , _dssgDryRun     :: !(Maybe Bool)-    , _dssgMaxResults :: !(Maybe Nat)-    , _dssgVPCId      :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dssgNextToken  :: !(Maybe Text)+  , _dssgDryRun     :: !(Maybe Bool)+  , _dssgMaxResults :: !(Maybe Nat)+  , _dssgVPCId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeStaleSecurityGroups' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,13 +72,14 @@     :: Text -- ^ 'dssgVPCId'     -> DescribeStaleSecurityGroups describeStaleSecurityGroups pVPCId_ =-    DescribeStaleSecurityGroups'-    { _dssgNextToken = Nothing-    , _dssgDryRun = Nothing-    , _dssgMaxResults = Nothing-    , _dssgVPCId = pVPCId_-    }+  DescribeStaleSecurityGroups'+  { _dssgNextToken = Nothing+  , _dssgDryRun = Nothing+  , _dssgMaxResults = Nothing+  , _dssgVPCId = pVPCId_+  } + -- | The token for the next set of items to return. (You received this token from a prior call.) dssgNextToken :: Lens' DescribeStaleSecurityGroups (Maybe Text) dssgNextToken = lens _dssgNextToken (\ s a -> s{_dssgNextToken = a});@@ -107,9 +109,9 @@                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeStaleSecurityGroups+instance Hashable DescribeStaleSecurityGroups where -instance NFData DescribeStaleSecurityGroups+instance NFData DescribeStaleSecurityGroups where  instance ToHeaders DescribeStaleSecurityGroups where         toHeaders = const mempty@@ -130,11 +132,12 @@  -- | /See:/ 'describeStaleSecurityGroupsResponse' smart constructor. data DescribeStaleSecurityGroupsResponse = DescribeStaleSecurityGroupsResponse'-    { _dssgrsStaleSecurityGroupSet :: !(Maybe [StaleSecurityGroup])-    , _dssgrsNextToken             :: !(Maybe Text)-    , _dssgrsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dssgrsStaleSecurityGroupSet :: !(Maybe [StaleSecurityGroup])+  , _dssgrsNextToken             :: !(Maybe Text)+  , _dssgrsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeStaleSecurityGroupsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -148,12 +151,13 @@     :: Int -- ^ 'dssgrsResponseStatus'     -> DescribeStaleSecurityGroupsResponse describeStaleSecurityGroupsResponse pResponseStatus_ =-    DescribeStaleSecurityGroupsResponse'-    { _dssgrsStaleSecurityGroupSet = Nothing-    , _dssgrsNextToken = Nothing-    , _dssgrsResponseStatus = pResponseStatus_-    }+  DescribeStaleSecurityGroupsResponse'+  { _dssgrsStaleSecurityGroupSet = Nothing+  , _dssgrsNextToken = Nothing+  , _dssgrsResponseStatus = pResponseStatus_+  } + -- | Information about the stale security groups. dssgrsStaleSecurityGroupSet :: Lens' DescribeStaleSecurityGroupsResponse [StaleSecurityGroup] dssgrsStaleSecurityGroupSet = lens _dssgrsStaleSecurityGroupSet (\ s a -> s{_dssgrsStaleSecurityGroupSet = a}) . _Default . _Coerce;@@ -167,3 +171,4 @@ dssgrsResponseStatus = lens _dssgrsResponseStatus (\ s a -> s{_dssgrsResponseStatus = a});  instance NFData DescribeStaleSecurityGroupsResponse+         where
gen/Network/AWS/EC2/DescribeSubnets.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeSubnets--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , dsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeSubnets. --@@ -54,34 +54,33 @@ -- -- /See:/ 'describeSubnets' smart constructor. data DescribeSubnets = DescribeSubnets'-    { _dsSubnetIds :: !(Maybe [Text])-    , _dsFilters   :: !(Maybe [Filter])-    , _dsDryRun    :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsSubnetIds :: !(Maybe [Text])+  , _dsFilters   :: !(Maybe [Filter])+  , _dsDryRun    :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSubnets' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dsSubnetIds' - One or more subnet IDs. Default: Describes all your subnets. ----- * 'dsFilters' - One or more filters.     * @availabilityZone@ - The Availability Zone for the subnet. You can also use @availability-zone@ as the filter name.     * @available-ip-address-count@ - The number of IPv4 addresses in the subnet that are available.     * @cidrBlock@ - 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 @cidr@ or @cidr-block@ as the filter names.     * @defaultForAz@ - Indicates whether this is the default subnet for the Availability Zone. You can also use @default-for-az@ as the filter name.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.association-id@ - An association ID for an IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the subnet.     * @state@ - The state of the subnet (@pending@ | @available@ ).     * @subnet-id@ - The ID of the subnet.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the subnet.+-- * 'dsFilters' - One or more filters.     * @availabilityZone@ - The Availability Zone for the subnet. You can also use @availability-zone@ as the filter name.     * @available-ip-address-count@ - The number of IPv4 addresses in the subnet that are available.     * @cidrBlock@ - 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 @cidr@ or @cidr-block@ as the filter names.     * @defaultForAz@ - Indicates whether this is the default subnet for the Availability Zone. You can also use @default-for-az@ as the filter name.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.association-id@ - An association ID for an IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the subnet.     * @state@ - The state of the subnet (@pending@ | @available@ ).     * @subnet-id@ - The ID of the subnet.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the subnet. -- -- * 'dsDryRun' - Checks whether you have the required permissions for the action, 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@ . describeSubnets     :: DescribeSubnets describeSubnets =-    DescribeSubnets'-    { _dsSubnetIds = Nothing-    , _dsFilters = Nothing-    , _dsDryRun = Nothing-    }+  DescribeSubnets'+  {_dsSubnetIds = Nothing, _dsFilters = Nothing, _dsDryRun = Nothing} + -- | One or more subnet IDs. Default: Describes all your subnets. dsSubnetIds :: Lens' DescribeSubnets [Text] dsSubnetIds = lens _dsSubnetIds (\ s a -> s{_dsSubnetIds = a}) . _Default . _Coerce; --- | One or more filters.     * @availabilityZone@ - The Availability Zone for the subnet. You can also use @availability-zone@ as the filter name.     * @available-ip-address-count@ - The number of IPv4 addresses in the subnet that are available.     * @cidrBlock@ - 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 @cidr@ or @cidr-block@ as the filter names.     * @defaultForAz@ - Indicates whether this is the default subnet for the Availability Zone. You can also use @default-for-az@ as the filter name.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.association-id@ - An association ID for an IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the subnet.     * @state@ - The state of the subnet (@pending@ | @available@ ).     * @subnet-id@ - The ID of the subnet.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the subnet.+-- | One or more filters.     * @availabilityZone@ - The Availability Zone for the subnet. You can also use @availability-zone@ as the filter name.     * @available-ip-address-count@ - The number of IPv4 addresses in the subnet that are available.     * @cidrBlock@ - 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 @cidr@ or @cidr-block@ as the filter names.     * @defaultForAz@ - Indicates whether this is the default subnet for the Availability Zone. You can also use @default-for-az@ as the filter name.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.association-id@ - An association ID for an IPv6 CIDR block associated with the subnet.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the subnet.     * @state@ - The state of the subnet (@pending@ | @available@ ).     * @subnet-id@ - The ID of the subnet.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC for the subnet. dsFilters :: Lens' DescribeSubnets [Filter] dsFilters = lens _dsFilters (\ s a -> s{_dsFilters = a}) . _Default . _Coerce; @@ -100,9 +99,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeSubnets+instance Hashable DescribeSubnets where -instance NFData DescribeSubnets+instance NFData DescribeSubnets where  instance ToHeaders DescribeSubnets where         toHeaders = const mempty@@ -125,10 +124,11 @@ -- -- /See:/ 'describeSubnetsResponse' smart constructor. data DescribeSubnetsResponse = DescribeSubnetsResponse'-    { _dsrsSubnets        :: !(Maybe [Subnet])-    , _dsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dsrsSubnets        :: !(Maybe [Subnet])+  , _dsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeSubnetsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +140,10 @@     :: Int -- ^ 'dsrsResponseStatus'     -> DescribeSubnetsResponse describeSubnetsResponse pResponseStatus_ =-    DescribeSubnetsResponse'-    { _dsrsSubnets = Nothing-    , _dsrsResponseStatus = pResponseStatus_-    }+  DescribeSubnetsResponse'+  {_dsrsSubnets = Nothing, _dsrsResponseStatus = pResponseStatus_} + -- | Information about one or more subnets. dsrsSubnets :: Lens' DescribeSubnetsResponse [Subnet] dsrsSubnets = lens _dsrsSubnets (\ s a -> s{_dsrsSubnets = a}) . _Default . _Coerce;@@ -153,4 +152,4 @@ dsrsResponseStatus :: Lens' DescribeSubnetsResponse Int dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a}); -instance NFData DescribeSubnetsResponse+instance NFData DescribeSubnetsResponse where
gen/Network/AWS/EC2/DescribeTags.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeTags--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,13 +45,13 @@     , dtrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeTags. --@@ -59,12 +59,13 @@ -- -- /See:/ 'describeTags' smart constructor. data DescribeTags = DescribeTags'-    { _dtFilters    :: !(Maybe [Filter])-    , _dtNextToken  :: !(Maybe Text)-    , _dtDryRun     :: !(Maybe Bool)-    , _dtMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtFilters    :: !(Maybe [Filter])+  , _dtNextToken  :: !(Maybe Text)+  , _dtDryRun     :: !(Maybe Bool)+  , _dtMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,13 +80,14 @@ describeTags     :: DescribeTags describeTags =-    DescribeTags'-    { _dtFilters = Nothing-    , _dtNextToken = Nothing-    , _dtDryRun = Nothing-    , _dtMaxResults = Nothing-    }+  DescribeTags'+  { _dtFilters = Nothing+  , _dtNextToken = Nothing+  , _dtDryRun = Nothing+  , _dtMaxResults = Nothing+  } + -- | One or more filters.     * @key@ - The tag key.     * @resource-id@ - The resource ID.     * @resource-type@ - The resource type (@customer-gateway@ | @dhcp-options@ | @image@ | @instance@ | @internet-gateway@ | @network-acl@ | @network-interface@ | @reserved-instances@ | @route-table@ | @security-group@ | @snapshot@ | @spot-instances-request@ | @subnet@ | @volume@ | @vpc@ | @vpn-connection@ | @vpn-gateway@ ).     * @value@ - The tag value. dtFilters :: Lens' DescribeTags [Filter] dtFilters = lens _dtFilters (\ s a -> s{_dtFilters = a}) . _Default . _Coerce;@@ -121,9 +123,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeTags+instance Hashable DescribeTags where -instance NFData DescribeTags+instance NFData DescribeTags where  instance ToHeaders DescribeTags where         toHeaders = const mempty@@ -146,11 +148,12 @@ -- -- /See:/ 'describeTagsResponse' smart constructor. data DescribeTagsResponse = DescribeTagsResponse'-    { _dtrsNextToken      :: !(Maybe Text)-    , _dtrsTags           :: !(Maybe [TagDescription])-    , _dtrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dtrsNextToken      :: !(Maybe Text)+  , _dtrsTags           :: !(Maybe [TagDescription])+  , _dtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTagsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,12 +167,13 @@     :: Int -- ^ 'dtrsResponseStatus'     -> DescribeTagsResponse describeTagsResponse pResponseStatus_ =-    DescribeTagsResponse'-    { _dtrsNextToken = Nothing-    , _dtrsTags = Nothing-    , _dtrsResponseStatus = pResponseStatus_-    }+  DescribeTagsResponse'+  { _dtrsNextToken = Nothing+  , _dtrsTags = Nothing+  , _dtrsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return.. dtrsNextToken :: Lens' DescribeTagsResponse (Maybe Text) dtrsNextToken = lens _dtrsNextToken (\ s a -> s{_dtrsNextToken = a});@@ -182,4 +186,4 @@ dtrsResponseStatus :: Lens' DescribeTagsResponse Int dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a}); -instance NFData DescribeTagsResponse+instance NFData DescribeTagsResponse where
gen/Network/AWS/EC2/DescribeVPCAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,8 +28,8 @@     , DescribeVPCAttribute     -- * Request Lenses     , dvpcaDryRun-    , dvpcaVPCId     , dvpcaAttribute+    , dvpcaVPCId      -- * Destructuring the Response     , describeVPCAttributeResponse@@ -41,12 +41,12 @@     , dvpcarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcAttribute. --@@ -54,43 +54,42 @@ -- -- /See:/ 'describeVPCAttribute' smart constructor. data DescribeVPCAttribute = DescribeVPCAttribute'-    { _dvpcaDryRun    :: !(Maybe Bool)-    , _dvpcaVPCId     :: !Text-    , _dvpcaAttribute :: !VPCAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcaDryRun    :: !(Maybe Bool)+  , _dvpcaAttribute :: !VPCAttributeName+  , _dvpcaVPCId     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dvpcaDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'dvpcaVPCId' - The ID of the VPC.--- -- * 'dvpcaAttribute' - The VPC attribute.+--+-- * 'dvpcaVPCId' - The ID of the VPC. describeVPCAttribute-    :: Text -- ^ 'dvpcaVPCId'-    -> VPCAttributeName -- ^ 'dvpcaAttribute'+    :: VPCAttributeName -- ^ 'dvpcaAttribute'+    -> Text -- ^ 'dvpcaVPCId'     -> DescribeVPCAttribute-describeVPCAttribute pVPCId_ pAttribute_ =-    DescribeVPCAttribute'-    { _dvpcaDryRun = Nothing-    , _dvpcaVPCId = pVPCId_-    , _dvpcaAttribute = pAttribute_-    }+describeVPCAttribute pAttribute_ pVPCId_ =+  DescribeVPCAttribute'+  {_dvpcaDryRun = Nothing, _dvpcaAttribute = pAttribute_, _dvpcaVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . dvpcaDryRun :: Lens' DescribeVPCAttribute (Maybe Bool) dvpcaDryRun = lens _dvpcaDryRun (\ s a -> s{_dvpcaDryRun = a}); --- | The ID of the VPC.-dvpcaVPCId :: Lens' DescribeVPCAttribute Text-dvpcaVPCId = lens _dvpcaVPCId (\ s a -> s{_dvpcaVPCId = a});- -- | The VPC attribute. dvpcaAttribute :: Lens' DescribeVPCAttribute VPCAttributeName dvpcaAttribute = lens _dvpcaAttribute (\ s a -> s{_dvpcaAttribute = a}); +-- | The ID of the VPC.+dvpcaVPCId :: Lens' DescribeVPCAttribute Text+dvpcaVPCId = lens _dvpcaVPCId (\ s a -> s{_dvpcaVPCId = a});+ instance AWSRequest DescribeVPCAttribute where         type Rs DescribeVPCAttribute =              DescribeVPCAttributeResponse@@ -104,9 +103,9 @@                      <*> (x .@? "vpcId")                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPCAttribute+instance Hashable DescribeVPCAttribute where -instance NFData DescribeVPCAttribute+instance NFData DescribeVPCAttribute where  instance ToHeaders DescribeVPCAttribute where         toHeaders = const mempty@@ -119,8 +118,9 @@           = mconcat               ["Action" =: ("DescribeVpcAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _dvpcaDryRun, "VpcId" =: _dvpcaVPCId,-               "Attribute" =: _dvpcaAttribute]+               "DryRun" =: _dvpcaDryRun,+               "Attribute" =: _dvpcaAttribute,+               "VpcId" =: _dvpcaVPCId]  -- | Contains the output of DescribeVpcAttribute. --@@ -128,12 +128,13 @@ -- -- /See:/ 'describeVPCAttributeResponse' smart constructor. data DescribeVPCAttributeResponse = DescribeVPCAttributeResponse'-    { _dvpcarsEnableDNSHostnames :: !(Maybe AttributeBooleanValue)-    , _dvpcarsEnableDNSSupport   :: !(Maybe AttributeBooleanValue)-    , _dvpcarsVPCId              :: !(Maybe Text)-    , _dvpcarsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcarsEnableDNSHostnames :: !(Maybe AttributeBooleanValue)+  , _dvpcarsEnableDNSSupport   :: !(Maybe AttributeBooleanValue)+  , _dvpcarsVPCId              :: !(Maybe Text)+  , _dvpcarsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCAttributeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -149,13 +150,14 @@     :: Int -- ^ 'dvpcarsResponseStatus'     -> DescribeVPCAttributeResponse describeVPCAttributeResponse pResponseStatus_ =-    DescribeVPCAttributeResponse'-    { _dvpcarsEnableDNSHostnames = Nothing-    , _dvpcarsEnableDNSSupport = Nothing-    , _dvpcarsVPCId = Nothing-    , _dvpcarsResponseStatus = pResponseStatus_-    }+  DescribeVPCAttributeResponse'+  { _dvpcarsEnableDNSHostnames = Nothing+  , _dvpcarsEnableDNSSupport = Nothing+  , _dvpcarsVPCId = Nothing+  , _dvpcarsResponseStatus = pResponseStatus_+  } + -- | Indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is @true@ , instances in the VPC get DNS hostnames; otherwise, they do not. dvpcarsEnableDNSHostnames :: Lens' DescribeVPCAttributeResponse (Maybe AttributeBooleanValue) dvpcarsEnableDNSHostnames = lens _dvpcarsEnableDNSHostnames (\ s a -> s{_dvpcarsEnableDNSHostnames = a});@@ -172,4 +174,4 @@ dvpcarsResponseStatus :: Lens' DescribeVPCAttributeResponse Int dvpcarsResponseStatus = lens _dvpcarsResponseStatus (\ s a -> s{_dvpcarsResponseStatus = a}); -instance NFData DescribeVPCAttributeResponse+instance NFData DescribeVPCAttributeResponse where
gen/Network/AWS/EC2/DescribeVPCClassicLink.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCClassicLink--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dvclrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcClassicLink. --@@ -52,16 +52,17 @@ -- -- /See:/ 'describeVPCClassicLink' smart constructor. data DescribeVPCClassicLink = DescribeVPCClassicLink'-    { _dvclFilters :: !(Maybe [Filter])-    , _dvclVPCIds  :: !(Maybe [Text])-    , _dvclDryRun  :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvclFilters :: !(Maybe [Filter])+  , _dvclVPCIds  :: !(Maybe [Text])+  , _dvclDryRun  :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCClassicLink' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvclFilters' - One or more filters.     * @is-classic-link-enabled@ - Whether the VPC is enabled for ClassicLink (@true@ | @false@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.+-- * 'dvclFilters' - One or more filters.     * @is-classic-link-enabled@ - Whether the VPC is enabled for ClassicLink (@true@ | @false@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. -- -- * 'dvclVPCIds' - One or more VPCs for which you want to describe the ClassicLink status. --@@ -69,13 +70,11 @@ describeVPCClassicLink     :: DescribeVPCClassicLink describeVPCClassicLink =-    DescribeVPCClassicLink'-    { _dvclFilters = Nothing-    , _dvclVPCIds = Nothing-    , _dvclDryRun = Nothing-    }+  DescribeVPCClassicLink'+  {_dvclFilters = Nothing, _dvclVPCIds = Nothing, _dvclDryRun = Nothing} --- | One or more filters.     * @is-classic-link-enabled@ - Whether the VPC is enabled for ClassicLink (@true@ | @false@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.++-- | One or more filters.     * @is-classic-link-enabled@ - Whether the VPC is enabled for ClassicLink (@true@ | @false@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter. dvclFilters :: Lens' DescribeVPCClassicLink [Filter] dvclFilters = lens _dvclFilters (\ s a -> s{_dvclFilters = a}) . _Default . _Coerce; @@ -99,9 +98,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPCClassicLink+instance Hashable DescribeVPCClassicLink where -instance NFData DescribeVPCClassicLink+instance NFData DescribeVPCClassicLink where  instance ToHeaders DescribeVPCClassicLink where         toHeaders = const mempty@@ -125,10 +124,11 @@ -- -- /See:/ 'describeVPCClassicLinkResponse' smart constructor. data DescribeVPCClassicLinkResponse = DescribeVPCClassicLinkResponse'-    { _dvclrsVPCs           :: !(Maybe [VPCClassicLink])-    , _dvclrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvclrsVPCs           :: !(Maybe [VPCClassicLink])+  , _dvclrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCClassicLinkResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +140,10 @@     :: Int -- ^ 'dvclrsResponseStatus'     -> DescribeVPCClassicLinkResponse describeVPCClassicLinkResponse pResponseStatus_ =-    DescribeVPCClassicLinkResponse'-    { _dvclrsVPCs = Nothing-    , _dvclrsResponseStatus = pResponseStatus_-    }+  DescribeVPCClassicLinkResponse'+  {_dvclrsVPCs = Nothing, _dvclrsResponseStatus = pResponseStatus_} + -- | The ClassicLink status of one or more VPCs. dvclrsVPCs :: Lens' DescribeVPCClassicLinkResponse [VPCClassicLink] dvclrsVPCs = lens _dvclrsVPCs (\ s a -> s{_dvclrsVPCs = a}) . _Default . _Coerce;@@ -153,4 +152,4 @@ dvclrsResponseStatus :: Lens' DescribeVPCClassicLinkResponse Int dvclrsResponseStatus = lens _dvclrsResponseStatus (\ s a -> s{_dvclrsResponseStatus = a}); -instance NFData DescribeVPCClassicLinkResponse+instance NFData DescribeVPCClassicLinkResponse where
gen/Network/AWS/EC2/DescribeVPCClassicLinkDNSSupport.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information about ClassicLink, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the Amazon Elastic Compute Cloud User Guide.+-- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the /Amazon Elastic Compute Cloud User Guide/ . -- -- module Network.AWS.EC2.DescribeVPCClassicLinkDNSSupport@@ -40,12 +40,12 @@     , dvpccldnssrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcClassicLinkDnsSupport. --@@ -53,11 +53,12 @@ -- -- /See:/ 'describeVPCClassicLinkDNSSupport' smart constructor. data DescribeVPCClassicLinkDNSSupport = DescribeVPCClassicLinkDNSSupport'-    { _dvcldsNextToken  :: !(Maybe Text)-    , _dvcldsVPCIds     :: !(Maybe [Text])-    , _dvcldsMaxResults :: !(Maybe Nat)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcldsNextToken  :: !(Maybe Text)+  , _dvcldsVPCIds     :: !(Maybe [Text])+  , _dvcldsMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCClassicLinkDNSSupport' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,13 @@ describeVPCClassicLinkDNSSupport     :: DescribeVPCClassicLinkDNSSupport describeVPCClassicLinkDNSSupport =-    DescribeVPCClassicLinkDNSSupport'-    { _dvcldsNextToken = Nothing-    , _dvcldsVPCIds = Nothing-    , _dvcldsMaxResults = Nothing-    }+  DescribeVPCClassicLinkDNSSupport'+  { _dvcldsNextToken = Nothing+  , _dvcldsVPCIds = Nothing+  , _dvcldsMaxResults = Nothing+  } + -- | The token for the next set of items to return. (You received this token from a prior call.) dvcldsNextToken :: Lens' DescribeVPCClassicLinkDNSSupport (Maybe Text) dvcldsNextToken = lens _dvcldsNextToken (\ s a -> s{_dvcldsNextToken = a});@@ -103,8 +105,10 @@                      <*> (pure (fromEnum s)))  instance Hashable DescribeVPCClassicLinkDNSSupport+         where  instance NFData DescribeVPCClassicLinkDNSSupport+         where  instance ToHeaders DescribeVPCClassicLinkDNSSupport          where@@ -131,11 +135,12 @@ -- -- /See:/ 'describeVPCClassicLinkDNSSupportResponse' smart constructor. data DescribeVPCClassicLinkDNSSupportResponse = DescribeVPCClassicLinkDNSSupportResponse'-    { _dvpccldnssrsVPCs           :: !(Maybe [ClassicLinkDNSSupport])-    , _dvpccldnssrsNextToken      :: !(Maybe Text)-    , _dvpccldnssrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpccldnssrsVPCs           :: !(Maybe [ClassicLinkDNSSupport])+  , _dvpccldnssrsNextToken      :: !(Maybe Text)+  , _dvpccldnssrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCClassicLinkDNSSupportResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -149,12 +154,13 @@     :: Int -- ^ 'dvpccldnssrsResponseStatus'     -> DescribeVPCClassicLinkDNSSupportResponse describeVPCClassicLinkDNSSupportResponse pResponseStatus_ =-    DescribeVPCClassicLinkDNSSupportResponse'-    { _dvpccldnssrsVPCs = Nothing-    , _dvpccldnssrsNextToken = Nothing-    , _dvpccldnssrsResponseStatus = pResponseStatus_-    }+  DescribeVPCClassicLinkDNSSupportResponse'+  { _dvpccldnssrsVPCs = Nothing+  , _dvpccldnssrsNextToken = Nothing+  , _dvpccldnssrsResponseStatus = pResponseStatus_+  } + -- | Information about the ClassicLink DNS support status of the VPCs. dvpccldnssrsVPCs :: Lens' DescribeVPCClassicLinkDNSSupportResponse [ClassicLinkDNSSupport] dvpccldnssrsVPCs = lens _dvpccldnssrsVPCs (\ s a -> s{_dvpccldnssrsVPCs = a}) . _Default . _Coerce;@@ -168,4 +174,5 @@ dvpccldnssrsResponseStatus = lens _dvpccldnssrsResponseStatus (\ s a -> s{_dvpccldnssrsResponseStatus = a});  instance NFData-         DescribeVPCClassicLinkDNSSupportResponse+           DescribeVPCClassicLinkDNSSupportResponse+         where
gen/Network/AWS/EC2/DescribeVPCEndpointServices.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCEndpointServices--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,6 +27,8 @@       describeVPCEndpointServices     , DescribeVPCEndpointServices     -- * Request Lenses+    , dvesFilters+    , dvesServiceNames     , dvesNextToken     , dvesDryRun     , dvesMaxResults@@ -35,17 +37,18 @@     , describeVPCEndpointServicesResponse     , DescribeVPCEndpointServicesResponse     -- * Response Lenses+    , dvesrsServiceDetails     , dvesrsServiceNames     , dvesrsNextToken     , dvesrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcEndpointServices. --@@ -53,15 +56,22 @@ -- -- /See:/ 'describeVPCEndpointServices' smart constructor. data DescribeVPCEndpointServices = DescribeVPCEndpointServices'-    { _dvesNextToken  :: !(Maybe Text)-    , _dvesDryRun     :: !(Maybe Bool)-    , _dvesMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvesFilters      :: !(Maybe [Filter])+  , _dvesServiceNames :: !(Maybe [Text])+  , _dvesNextToken    :: !(Maybe Text)+  , _dvesDryRun       :: !(Maybe Bool)+  , _dvesMaxResults   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCEndpointServices' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'dvesFilters' - One or more filters.     * @service-name@ : The name of the service.+--+-- * 'dvesServiceNames' - One or more service names.+-- -- * 'dvesNextToken' - The token for the next set of items to return. (You received this token from a prior call.) -- -- * 'dvesDryRun' - Checks whether you have the required permissions for the action, 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@ .@@ -70,12 +80,23 @@ describeVPCEndpointServices     :: DescribeVPCEndpointServices describeVPCEndpointServices =-    DescribeVPCEndpointServices'-    { _dvesNextToken = Nothing-    , _dvesDryRun = Nothing-    , _dvesMaxResults = Nothing-    }+  DescribeVPCEndpointServices'+  { _dvesFilters = Nothing+  , _dvesServiceNames = Nothing+  , _dvesNextToken = Nothing+  , _dvesDryRun = Nothing+  , _dvesMaxResults = Nothing+  } ++-- | One or more filters.     * @service-name@ : The name of the service.+dvesFilters :: Lens' DescribeVPCEndpointServices [Filter]+dvesFilters = lens _dvesFilters (\ s a -> s{_dvesFilters = a}) . _Default . _Coerce;++-- | One or more service names.+dvesServiceNames :: Lens' DescribeVPCEndpointServices [Text]+dvesServiceNames = lens _dvesServiceNames (\ s a -> s{_dvesServiceNames = a}) . _Default . _Coerce;+ -- | The token for the next set of items to return. (You received this token from a prior call.) dvesNextToken :: Lens' DescribeVPCEndpointServices (Maybe Text) dvesNextToken = lens _dvesNextToken (\ s a -> s{_dvesNextToken = a});@@ -96,14 +117,17 @@           = receiveXML               (\ s h x ->                  DescribeVPCEndpointServicesResponse' <$>-                   (x .@? "serviceNameSet" .!@ mempty >>=+                   (x .@? "serviceDetailSet" .!@ mempty >>=                       may (parseXMLList "item"))+                     <*>+                     (x .@? "serviceNameSet" .!@ mempty >>=+                        may (parseXMLList "item"))                      <*> (x .@? "nextToken")                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPCEndpointServices+instance Hashable DescribeVPCEndpointServices where -instance NFData DescribeVPCEndpointServices+instance NFData DescribeVPCEndpointServices where  instance ToHeaders DescribeVPCEndpointServices where         toHeaders = const mempty@@ -117,6 +141,9 @@               ["Action" =:                  ("DescribeVpcEndpointServices" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),+               toQuery (toQueryList "Filter" <$> _dvesFilters),+               toQuery+                 (toQueryList "ServiceName" <$> _dvesServiceNames),                "NextToken" =: _dvesNextToken,                "DryRun" =: _dvesDryRun,                "MaxResults" =: _dvesMaxResults]@@ -127,15 +154,19 @@ -- -- /See:/ 'describeVPCEndpointServicesResponse' smart constructor. data DescribeVPCEndpointServicesResponse = DescribeVPCEndpointServicesResponse'-    { _dvesrsServiceNames   :: !(Maybe [Text])-    , _dvesrsNextToken      :: !(Maybe Text)-    , _dvesrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvesrsServiceDetails :: !(Maybe [ServiceDetail])+  , _dvesrsServiceNames   :: !(Maybe [Text])+  , _dvesrsNextToken      :: !(Maybe Text)+  , _dvesrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCEndpointServicesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'dvesrsServiceDetails' - Information about the service.+-- -- * 'dvesrsServiceNames' - A list of supported AWS services. -- -- * 'dvesrsNextToken' - The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.@@ -145,12 +176,18 @@     :: Int -- ^ 'dvesrsResponseStatus'     -> DescribeVPCEndpointServicesResponse describeVPCEndpointServicesResponse pResponseStatus_ =-    DescribeVPCEndpointServicesResponse'-    { _dvesrsServiceNames = Nothing-    , _dvesrsNextToken = Nothing-    , _dvesrsResponseStatus = pResponseStatus_-    }+  DescribeVPCEndpointServicesResponse'+  { _dvesrsServiceDetails = Nothing+  , _dvesrsServiceNames = Nothing+  , _dvesrsNextToken = Nothing+  , _dvesrsResponseStatus = pResponseStatus_+  } ++-- | Information about the service.+dvesrsServiceDetails :: Lens' DescribeVPCEndpointServicesResponse [ServiceDetail]+dvesrsServiceDetails = lens _dvesrsServiceDetails (\ s a -> s{_dvesrsServiceDetails = a}) . _Default . _Coerce;+ -- | A list of supported AWS services. dvesrsServiceNames :: Lens' DescribeVPCEndpointServicesResponse [Text] dvesrsServiceNames = lens _dvesrsServiceNames (\ s a -> s{_dvesrsServiceNames = a}) . _Default . _Coerce;@@ -164,3 +201,4 @@ dvesrsResponseStatus = lens _dvesrsResponseStatus (\ s a -> s{_dvesrsResponseStatus = a});  instance NFData DescribeVPCEndpointServicesResponse+         where
gen/Network/AWS/EC2/DescribeVPCEndpoints.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCEndpoints--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , dvpcersResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcEndpoints. --@@ -55,13 +55,14 @@ -- -- /See:/ 'describeVPCEndpoints' smart constructor. data DescribeVPCEndpoints = DescribeVPCEndpoints'-    { _dvpceFilters        :: !(Maybe [Filter])-    , _dvpceNextToken      :: !(Maybe Text)-    , _dvpceVPCEndpointIds :: !(Maybe [Text])-    , _dvpceDryRun         :: !(Maybe Bool)-    , _dvpceMaxResults     :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpceFilters        :: !(Maybe [Filter])+  , _dvpceNextToken      :: !(Maybe Text)+  , _dvpceVPCEndpointIds :: !(Maybe [Text])+  , _dvpceDryRun         :: !(Maybe Bool)+  , _dvpceMaxResults     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCEndpoints' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,14 +79,15 @@ describeVPCEndpoints     :: DescribeVPCEndpoints describeVPCEndpoints =-    DescribeVPCEndpoints'-    { _dvpceFilters = Nothing-    , _dvpceNextToken = Nothing-    , _dvpceVPCEndpointIds = Nothing-    , _dvpceDryRun = Nothing-    , _dvpceMaxResults = Nothing-    }+  DescribeVPCEndpoints'+  { _dvpceFilters = Nothing+  , _dvpceNextToken = Nothing+  , _dvpceVPCEndpointIds = Nothing+  , _dvpceDryRun = Nothing+  , _dvpceMaxResults = Nothing+  } + -- | One or more filters.     * @service-name@ : The name of the AWS service.     * @vpc-id@ : The ID of the VPC in which the endpoint resides.     * @vpc-endpoint-id@ : The ID of the endpoint.     * @vpc-endpoint-state@ : The state of the endpoint. (@pending@ | @available@ | @deleting@ | @deleted@ ) dvpceFilters :: Lens' DescribeVPCEndpoints [Filter] dvpceFilters = lens _dvpceFilters (\ s a -> s{_dvpceFilters = a}) . _Default . _Coerce;@@ -119,9 +121,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPCEndpoints+instance Hashable DescribeVPCEndpoints where -instance NFData DescribeVPCEndpoints+instance NFData DescribeVPCEndpoints where  instance ToHeaders DescribeVPCEndpoints where         toHeaders = const mempty@@ -148,11 +150,12 @@ -- -- /See:/ 'describeVPCEndpointsResponse' smart constructor. data DescribeVPCEndpointsResponse = DescribeVPCEndpointsResponse'-    { _dvpcersNextToken      :: !(Maybe Text)-    , _dvpcersVPCEndpoints   :: !(Maybe [VPCEndpoint])-    , _dvpcersResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcersNextToken      :: !(Maybe Text)+  , _dvpcersVPCEndpoints   :: !(Maybe [VPCEndpoint])+  , _dvpcersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCEndpointsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -166,12 +169,13 @@     :: Int -- ^ 'dvpcersResponseStatus'     -> DescribeVPCEndpointsResponse describeVPCEndpointsResponse pResponseStatus_ =-    DescribeVPCEndpointsResponse'-    { _dvpcersNextToken = Nothing-    , _dvpcersVPCEndpoints = Nothing-    , _dvpcersResponseStatus = pResponseStatus_-    }+  DescribeVPCEndpointsResponse'+  { _dvpcersNextToken = Nothing+  , _dvpcersVPCEndpoints = Nothing+  , _dvpcersResponseStatus = pResponseStatus_+  } + -- | 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) dvpcersNextToken = lens _dvpcersNextToken (\ s a -> s{_dvpcersNextToken = a});@@ -184,4 +188,4 @@ dvpcersResponseStatus :: Lens' DescribeVPCEndpointsResponse Int dvpcersResponseStatus = lens _dvpcersResponseStatus (\ s a -> s{_dvpcersResponseStatus = a}); -instance NFData DescribeVPCEndpointsResponse+instance NFData DescribeVPCEndpointsResponse where
gen/Network/AWS/EC2/DescribeVPCPeeringConnections.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCPeeringConnections--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dvpcpcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcPeeringConnections. --@@ -52,16 +52,17 @@ -- -- /See:/ 'describeVPCPeeringConnections' smart constructor. data DescribeVPCPeeringConnections = DescribeVPCPeeringConnections'-    { _dvpcpcFilters                 :: !(Maybe [Filter])-    , _dvpcpcVPCPeeringConnectionIds :: !(Maybe [Text])-    , _dvpcpcDryRun                  :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcpcFilters                 :: !(Maybe [Filter])+  , _dvpcpcVPCPeeringConnectionIds :: !(Maybe [Text])+  , _dvpcpcDryRun                  :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCPeeringConnections' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvpcpcFilters' - One or more filters.     * @accepter-vpc-info.cidr-block@ - The IPv4 CIDR block of the peer VPC.     * @accepter-vpc-info.owner-id@ - The AWS account ID of the owner of the peer VPC.     * @accepter-vpc-info.vpc-id@ - The ID of the peer VPC.     * @expiration-time@ - The expiration date and time for the VPC peering connection.     * @requester-vpc-info.cidr-block@ - The IPv4 CIDR block of the requester's VPC.     * @requester-vpc-info.owner-id@ - The AWS account ID of the owner of the requester VPC.     * @requester-vpc-info.vpc-id@ - The ID of the requester VPC.     * @status-code@ - The status of the VPC peering connection (@pending-acceptance@ | @failed@ | @expired@ | @provisioning@ | @active@ | @deleted@ | @rejected@ ).     * @status-message@ - A message that provides more information about the status of the VPC peering connection, if applicable.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-peering-connection-id@ - The ID of the VPC peering connection.+-- * 'dvpcpcFilters' - One or more filters.     * @accepter-vpc-info.cidr-block@ - The IPv4 CIDR block of the peer VPC.     * @accepter-vpc-info.owner-id@ - The AWS account ID of the owner of the peer VPC.     * @accepter-vpc-info.vpc-id@ - The ID of the peer VPC.     * @expiration-time@ - The expiration date and time for the VPC peering connection.     * @requester-vpc-info.cidr-block@ - The IPv4 CIDR block of the requester's VPC.     * @requester-vpc-info.owner-id@ - The AWS account ID of the owner of the requester VPC.     * @requester-vpc-info.vpc-id@ - The ID of the requester VPC.     * @status-code@ - The status of the VPC peering connection (@pending-acceptance@ | @failed@ | @expired@ | @provisioning@ | @active@ | @deleted@ | @rejected@ ).     * @status-message@ - A message that provides more information about the status of the VPC peering connection, if applicable.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-peering-connection-id@ - The ID of the VPC peering connection. -- -- * 'dvpcpcVPCPeeringConnectionIds' - One or more VPC peering connection IDs. Default: Describes all your VPC peering connections. --@@ -69,13 +70,14 @@ describeVPCPeeringConnections     :: DescribeVPCPeeringConnections describeVPCPeeringConnections =-    DescribeVPCPeeringConnections'-    { _dvpcpcFilters = Nothing-    , _dvpcpcVPCPeeringConnectionIds = Nothing-    , _dvpcpcDryRun = Nothing-    }+  DescribeVPCPeeringConnections'+  { _dvpcpcFilters = Nothing+  , _dvpcpcVPCPeeringConnectionIds = Nothing+  , _dvpcpcDryRun = Nothing+  } --- | One or more filters.     * @accepter-vpc-info.cidr-block@ - The IPv4 CIDR block of the peer VPC.     * @accepter-vpc-info.owner-id@ - The AWS account ID of the owner of the peer VPC.     * @accepter-vpc-info.vpc-id@ - The ID of the peer VPC.     * @expiration-time@ - The expiration date and time for the VPC peering connection.     * @requester-vpc-info.cidr-block@ - The IPv4 CIDR block of the requester's VPC.     * @requester-vpc-info.owner-id@ - The AWS account ID of the owner of the requester VPC.     * @requester-vpc-info.vpc-id@ - The ID of the requester VPC.     * @status-code@ - The status of the VPC peering connection (@pending-acceptance@ | @failed@ | @expired@ | @provisioning@ | @active@ | @deleted@ | @rejected@ ).     * @status-message@ - A message that provides more information about the status of the VPC peering connection, if applicable.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-peering-connection-id@ - The ID of the VPC peering connection.++-- | One or more filters.     * @accepter-vpc-info.cidr-block@ - The IPv4 CIDR block of the peer VPC.     * @accepter-vpc-info.owner-id@ - The AWS account ID of the owner of the peer VPC.     * @accepter-vpc-info.vpc-id@ - The ID of the peer VPC.     * @expiration-time@ - The expiration date and time for the VPC peering connection.     * @requester-vpc-info.cidr-block@ - The IPv4 CIDR block of the requester's VPC.     * @requester-vpc-info.owner-id@ - The AWS account ID of the owner of the requester VPC.     * @requester-vpc-info.vpc-id@ - The ID of the requester VPC.     * @status-code@ - The status of the VPC peering connection (@pending-acceptance@ | @failed@ | @expired@ | @provisioning@ | @active@ | @deleted@ | @rejected@ ).     * @status-message@ - A message that provides more information about the status of the VPC peering connection, if applicable.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-peering-connection-id@ - The ID of the VPC peering connection. dvpcpcFilters :: Lens' DescribeVPCPeeringConnections [Filter] dvpcpcFilters = lens _dvpcpcFilters (\ s a -> s{_dvpcpcFilters = a}) . _Default . _Coerce; @@ -100,9 +102,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPCPeeringConnections+instance Hashable DescribeVPCPeeringConnections where -instance NFData DescribeVPCPeeringConnections+instance NFData DescribeVPCPeeringConnections where  instance ToHeaders DescribeVPCPeeringConnections          where@@ -129,10 +131,11 @@ -- -- /See:/ 'describeVPCPeeringConnectionsResponse' smart constructor. data DescribeVPCPeeringConnectionsResponse = DescribeVPCPeeringConnectionsResponse'-    { _dvpcpcrsVPCPeeringConnections :: !(Maybe [VPCPeeringConnection])-    , _dvpcpcrsResponseStatus        :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcpcrsVPCPeeringConnections :: !(Maybe [VPCPeeringConnection])+  , _dvpcpcrsResponseStatus        :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCPeeringConnectionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,11 +147,12 @@     :: Int -- ^ 'dvpcpcrsResponseStatus'     -> DescribeVPCPeeringConnectionsResponse describeVPCPeeringConnectionsResponse pResponseStatus_ =-    DescribeVPCPeeringConnectionsResponse'-    { _dvpcpcrsVPCPeeringConnections = Nothing-    , _dvpcpcrsResponseStatus = pResponseStatus_-    }+  DescribeVPCPeeringConnectionsResponse'+  { _dvpcpcrsVPCPeeringConnections = Nothing+  , _dvpcpcrsResponseStatus = pResponseStatus_+  } + -- | Information about the VPC peering connections. dvpcpcrsVPCPeeringConnections :: Lens' DescribeVPCPeeringConnectionsResponse [VPCPeeringConnection] dvpcpcrsVPCPeeringConnections = lens _dvpcpcrsVPCPeeringConnections (\ s a -> s{_dvpcpcrsVPCPeeringConnections = a}) . _Default . _Coerce;@@ -158,3 +162,4 @@ dvpcpcrsResponseStatus = lens _dvpcpcrsResponseStatus (\ s a -> s{_dvpcpcrsResponseStatus = a});  instance NFData DescribeVPCPeeringConnectionsResponse+         where
gen/Network/AWS/EC2/DescribeVPCs.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPCs--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dvrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpcs. --@@ -52,16 +52,17 @@ -- -- /See:/ 'describeVPCs' smart constructor. data DescribeVPCs = DescribeVPCs'-    { _dvsFilters :: !(Maybe [Filter])-    , _dvsVPCIds  :: !(Maybe [Text])-    , _dvsDryRun  :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvsFilters :: !(Maybe [Filter])+  , _dvsVPCIds  :: !(Maybe [Text])+  , _dvsDryRun  :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvsFilters' - One or more filters.     * @cidr@ - The IPv4 CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, @/28@ ).     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.association-id@ - The association ID for an IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the VPC.     * @isDefault@ - Indicates whether the VPC is the default VPC.     * @state@ - The state of the VPC (@pending@ | @available@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC.+-- * 'dvsFilters' - One or more filters.     * @cidr@ - 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, @/28@ ).     * @cidr-block-association.cidr-block@ - An IPv4 CIDR block associated with the VPC.     * @cidr-block-association.association-id@ - The association ID for an IPv4 CIDR block associated with the VPC.     * @cidr-block-association.state@ - The state of an IPv4 CIDR block associated with the VPC.     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.association-id@ - The association ID for an IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the VPC.     * @isDefault@ - Indicates whether the VPC is the default VPC.     * @state@ - The state of the VPC (@pending@ | @available@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC. -- -- * 'dvsVPCIds' - One or more VPC IDs. Default: Describes all your VPCs. --@@ -69,13 +70,11 @@ describeVPCs     :: DescribeVPCs describeVPCs =-    DescribeVPCs'-    { _dvsFilters = Nothing-    , _dvsVPCIds = Nothing-    , _dvsDryRun = Nothing-    }+  DescribeVPCs'+  {_dvsFilters = Nothing, _dvsVPCIds = Nothing, _dvsDryRun = Nothing} --- | One or more filters.     * @cidr@ - The IPv4 CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, @/28@ ).     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.association-id@ - The association ID for an IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the VPC.     * @isDefault@ - Indicates whether the VPC is the default VPC.     * @state@ - The state of the VPC (@pending@ | @available@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC.++-- | One or more filters.     * @cidr@ - 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, @/28@ ).     * @cidr-block-association.cidr-block@ - An IPv4 CIDR block associated with the VPC.     * @cidr-block-association.association-id@ - The association ID for an IPv4 CIDR block associated with the VPC.     * @cidr-block-association.state@ - The state of an IPv4 CIDR block associated with the VPC.     * @dhcp-options-id@ - The ID of a set of DHCP options.     * @ipv6-cidr-block-association.ipv6-cidr-block@ - An IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.association-id@ - The association ID for an IPv6 CIDR block associated with the VPC.     * @ipv6-cidr-block-association.state@ - The state of an IPv6 CIDR block associated with the VPC.     * @isDefault@ - Indicates whether the VPC is the default VPC.     * @state@ - The state of the VPC (@pending@ | @available@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @vpc-id@ - The ID of the VPC. dvsFilters :: Lens' DescribeVPCs [Filter] dvsFilters = lens _dvsFilters (\ s a -> s{_dvsFilters = a}) . _Default . _Coerce; @@ -98,9 +97,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPCs+instance Hashable DescribeVPCs where -instance NFData DescribeVPCs+instance NFData DescribeVPCs where  instance ToHeaders DescribeVPCs where         toHeaders = const mempty@@ -123,10 +122,11 @@ -- -- /See:/ 'describeVPCsResponse' smart constructor. data DescribeVPCsResponse = DescribeVPCsResponse'-    { _dvrsVPCs           :: !(Maybe [VPC])-    , _dvrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvrsVPCs           :: !(Maybe [VPC])+  , _dvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPCsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +138,10 @@     :: Int -- ^ 'dvrsResponseStatus'     -> DescribeVPCsResponse describeVPCsResponse pResponseStatus_ =-    DescribeVPCsResponse'-    { _dvrsVPCs = Nothing-    , _dvrsResponseStatus = pResponseStatus_-    }+  DescribeVPCsResponse'+  {_dvrsVPCs = Nothing, _dvrsResponseStatus = pResponseStatus_} + -- | Information about one or more VPCs. dvrsVPCs :: Lens' DescribeVPCsResponse [VPC] dvrsVPCs = lens _dvrsVPCs (\ s a -> s{_dvrsVPCs = a}) . _Default . _Coerce;@@ -151,4 +150,4 @@ dvrsResponseStatus :: Lens' DescribeVPCsResponse Int dvrsResponseStatus = lens _dvrsResponseStatus (\ s a -> s{_dvrsResponseStatus = a}); -instance NFData DescribeVPCsResponse+instance NFData DescribeVPCsResponse where
gen/Network/AWS/EC2/DescribeVPNConnections.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPNConnections--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your VPN connections. -- ----- For more information about VPN connections, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding a Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information about VPN connections, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- module Network.AWS.EC2.DescribeVPNConnections     (@@ -41,12 +41,12 @@     , dvcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpnConnections. --@@ -54,16 +54,17 @@ -- -- /See:/ 'describeVPNConnections' smart constructor. data DescribeVPNConnections = DescribeVPNConnections'-    { _dvpncFilters          :: !(Maybe [Filter])-    , _dvpncVPNConnectionIds :: !(Maybe [Text])-    , _dvpncDryRun           :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpncFilters          :: !(Maybe [Filter])+  , _dvpncVPNConnectionIds :: !(Maybe [Text])+  , _dvpncDryRun           :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPNConnections' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvpncFilters' - One or more filters.     * @customer-gateway-configuration@ - The configuration information for the customer gateway.     * @customer-gateway-id@ - The ID of a customer gateway associated with the VPN connection.     * @state@ - The state of the VPN connection (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @option.static-routes-only@ - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).     * @route.destination-cidr-block@ - The destination CIDR block. This corresponds to the subnet used in a customer data center.     * @bgp-asn@ - The BGP Autonomous System Number (ASN) associated with a BGP device.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of VPN connection. Currently the only supported type is @ipsec.1@ .     * @vpn-connection-id@ - The ID of the VPN connection.     * @vpn-gateway-id@ - The ID of a virtual private gateway associated with the VPN connection.+-- * 'dvpncFilters' - One or more filters.     * @customer-gateway-configuration@ - The configuration information for the customer gateway.     * @customer-gateway-id@ - The ID of a customer gateway associated with the VPN connection.     * @state@ - The state of the VPN connection (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @option.static-routes-only@ - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).     * @route.destination-cidr-block@ - The destination CIDR block. This corresponds to the subnet used in a customer data center.     * @bgp-asn@ - The BGP Autonomous System Number (ASN) associated with a BGP device.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of VPN connection. Currently the only supported type is @ipsec.1@ .     * @vpn-connection-id@ - The ID of the VPN connection.     * @vpn-gateway-id@ - The ID of a virtual private gateway associated with the VPN connection. -- -- * 'dvpncVPNConnectionIds' - One or more VPN connection IDs. Default: Describes your VPN connections. --@@ -71,13 +72,14 @@ describeVPNConnections     :: DescribeVPNConnections describeVPNConnections =-    DescribeVPNConnections'-    { _dvpncFilters = Nothing-    , _dvpncVPNConnectionIds = Nothing-    , _dvpncDryRun = Nothing-    }+  DescribeVPNConnections'+  { _dvpncFilters = Nothing+  , _dvpncVPNConnectionIds = Nothing+  , _dvpncDryRun = Nothing+  } --- | One or more filters.     * @customer-gateway-configuration@ - The configuration information for the customer gateway.     * @customer-gateway-id@ - The ID of a customer gateway associated with the VPN connection.     * @state@ - The state of the VPN connection (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @option.static-routes-only@ - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).     * @route.destination-cidr-block@ - The destination CIDR block. This corresponds to the subnet used in a customer data center.     * @bgp-asn@ - The BGP Autonomous System Number (ASN) associated with a BGP device.     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of VPN connection. Currently the only supported type is @ipsec.1@ .     * @vpn-connection-id@ - The ID of the VPN connection.     * @vpn-gateway-id@ - The ID of a virtual private gateway associated with the VPN connection.++-- | One or more filters.     * @customer-gateway-configuration@ - The configuration information for the customer gateway.     * @customer-gateway-id@ - The ID of a customer gateway associated with the VPN connection.     * @state@ - The state of the VPN connection (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @option.static-routes-only@ - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).     * @route.destination-cidr-block@ - The destination CIDR block. This corresponds to the subnet used in a customer data center.     * @bgp-asn@ - The BGP Autonomous System Number (ASN) associated with a BGP device.     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of VPN connection. Currently the only supported type is @ipsec.1@ .     * @vpn-connection-id@ - The ID of the VPN connection.     * @vpn-gateway-id@ - The ID of a virtual private gateway associated with the VPN connection. dvpncFilters :: Lens' DescribeVPNConnections [Filter] dvpncFilters = lens _dvpncFilters (\ s a -> s{_dvpncFilters = a}) . _Default . _Coerce; @@ -101,9 +103,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPNConnections+instance Hashable DescribeVPNConnections where -instance NFData DescribeVPNConnections+instance NFData DescribeVPNConnections where  instance ToHeaders DescribeVPNConnections where         toHeaders = const mempty@@ -129,10 +131,11 @@ -- -- /See:/ 'describeVPNConnectionsResponse' smart constructor. data DescribeVPNConnectionsResponse = DescribeVPNConnectionsResponse'-    { _dvcrsVPNConnections :: !(Maybe [VPNConnection])-    , _dvcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcrsVPNConnections :: !(Maybe [VPNConnection])+  , _dvcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPNConnectionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,11 +147,10 @@     :: Int -- ^ 'dvcrsResponseStatus'     -> DescribeVPNConnectionsResponse describeVPNConnectionsResponse pResponseStatus_ =-    DescribeVPNConnectionsResponse'-    { _dvcrsVPNConnections = Nothing-    , _dvcrsResponseStatus = pResponseStatus_-    }+  DescribeVPNConnectionsResponse'+  {_dvcrsVPNConnections = Nothing, _dvcrsResponseStatus = pResponseStatus_} + -- | Information about one or more VPN connections. dvcrsVPNConnections :: Lens' DescribeVPNConnectionsResponse [VPNConnection] dvcrsVPNConnections = lens _dvcrsVPNConnections (\ s a -> s{_dvcrsVPNConnections = a}) . _Default . _Coerce;@@ -157,4 +159,4 @@ dvcrsResponseStatus :: Lens' DescribeVPNConnectionsResponse Int dvcrsResponseStatus = lens _dvcrsResponseStatus (\ s a -> s{_dvcrsResponseStatus = a}); -instance NFData DescribeVPNConnectionsResponse+instance NFData DescribeVPNConnectionsResponse where
gen/Network/AWS/EC2/DescribeVPNGateways.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.DescribeVPNGateways--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes one or more of your virtual private gateways. -- ----- For more information about virtual private gateways, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Adding an IPsec Hardware VPN to Your VPC> in the /Amazon Virtual Private Cloud User Guide/ .+-- For more information about virtual private gateways, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html AWS Managed VPN Connections> in the /Amazon Virtual Private Cloud User Guide/ . -- module Network.AWS.EC2.DescribeVPNGateways     (@@ -41,12 +41,12 @@     , dvgrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVpnGateways. --@@ -54,16 +54,17 @@ -- -- /See:/ 'describeVPNGateways' smart constructor. data DescribeVPNGateways = DescribeVPNGateways'-    { _dvgsFilters       :: !(Maybe [Filter])-    , _dvgsVPNGatewayIds :: !(Maybe [Text])-    , _dvgsDryRun        :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvgsFilters       :: !(Maybe [Filter])+  , _dvgsVPNGatewayIds :: !(Maybe [Text])+  , _dvgsDryRun        :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPNGateways' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvgsFilters' - One or more filters.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @attachment.vpc-id@ - The ID of an attached VPC.     * @availability-zone@ - The Availability Zone for the virtual private gateway (if applicable).     * @state@ - The state of the virtual private gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of virtual private gateway. Currently the only supported type is @ipsec.1@ .     * @vpn-gateway-id@ - The ID of the virtual private gateway.+-- * 'dvgsFilters' - One or more filters.     * @amazon-side-asn@ - The Autonomous System Number (ASN) for the Amazon side of the gateway.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @attachment.vpc-id@ - The ID of an attached VPC.     * @availability-zone@ - The Availability Zone for the virtual private gateway (if applicable).     * @state@ - The state of the virtual private gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of virtual private gateway. Currently the only supported type is @ipsec.1@ .     * @vpn-gateway-id@ - The ID of the virtual private gateway. -- -- * 'dvgsVPNGatewayIds' - One or more virtual private gateway IDs. Default: Describes all your virtual private gateways. --@@ -71,13 +72,11 @@ describeVPNGateways     :: DescribeVPNGateways describeVPNGateways =-    DescribeVPNGateways'-    { _dvgsFilters = Nothing-    , _dvgsVPNGatewayIds = Nothing-    , _dvgsDryRun = Nothing-    }+  DescribeVPNGateways'+  {_dvgsFilters = Nothing, _dvgsVPNGatewayIds = Nothing, _dvgsDryRun = Nothing} --- | One or more filters.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @attachment.vpc-id@ - The ID of an attached VPC.     * @availability-zone@ - The Availability Zone for the virtual private gateway (if applicable).     * @state@ - The state of the virtual private gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of virtual private gateway. Currently the only supported type is @ipsec.1@ .     * @vpn-gateway-id@ - The ID of the virtual private gateway.++-- | One or more filters.     * @amazon-side-asn@ - The Autonomous System Number (ASN) for the Amazon side of the gateway.     * @attachment.state@ - The current state of the attachment between the gateway and the VPC (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @attachment.vpc-id@ - The ID of an attached VPC.     * @availability-zone@ - The Availability Zone for the virtual private gateway (if applicable).     * @state@ - The state of the virtual private gateway (@pending@ | @available@ | @deleting@ | @deleted@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @type@ - The type of virtual private gateway. Currently the only supported type is @ipsec.1@ .     * @vpn-gateway-id@ - The ID of the virtual private gateway. dvgsFilters :: Lens' DescribeVPNGateways [Filter] dvgsFilters = lens _dvgsFilters (\ s a -> s{_dvgsFilters = a}) . _Default . _Coerce; @@ -101,9 +100,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVPNGateways+instance Hashable DescribeVPNGateways where -instance NFData DescribeVPNGateways+instance NFData DescribeVPNGateways where  instance ToHeaders DescribeVPNGateways where         toHeaders = const mempty@@ -127,10 +126,11 @@ -- -- /See:/ 'describeVPNGatewaysResponse' smart constructor. data DescribeVPNGatewaysResponse = DescribeVPNGatewaysResponse'-    { _dvgrsVPNGateways    :: !(Maybe [VPNGateway])-    , _dvgrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvgrsVPNGateways    :: !(Maybe [VPNGateway])+  , _dvgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVPNGatewaysResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,11 +142,10 @@     :: Int -- ^ 'dvgrsResponseStatus'     -> DescribeVPNGatewaysResponse describeVPNGatewaysResponse pResponseStatus_ =-    DescribeVPNGatewaysResponse'-    { _dvgrsVPNGateways = Nothing-    , _dvgrsResponseStatus = pResponseStatus_-    }+  DescribeVPNGatewaysResponse'+  {_dvgrsVPNGateways = Nothing, _dvgrsResponseStatus = pResponseStatus_} + -- | Information about one or more virtual private gateways. dvgrsVPNGateways :: Lens' DescribeVPNGatewaysResponse [VPNGateway] dvgrsVPNGateways = lens _dvgrsVPNGateways (\ s a -> s{_dvgrsVPNGateways = a}) . _Default . _Coerce;@@ -155,4 +154,4 @@ dvgrsResponseStatus :: Lens' DescribeVPNGatewaysResponse Int dvgrsResponseStatus = lens _dvgrsResponseStatus (\ s a -> s{_dvgrsResponseStatus = a}); -instance NFData DescribeVPNGatewaysResponse+instance NFData DescribeVPNGatewaysResponse where
gen/Network/AWS/EC2/DescribeVolumeAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVolumeAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , dvarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVolumeAttribute. --@@ -56,16 +56,17 @@ -- -- /See:/ 'describeVolumeAttribute' smart constructor. data DescribeVolumeAttribute = DescribeVolumeAttribute'-    { _dvaAttribute :: !(Maybe VolumeAttributeName)-    , _dvaDryRun    :: !(Maybe Bool)-    , _dvaVolumeId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvaAttribute :: !(Maybe VolumeAttributeName)+  , _dvaDryRun    :: !(Maybe Bool)+  , _dvaVolumeId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVolumeAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvaAttribute' - The instance attribute.+-- * 'dvaAttribute' - The attribute of the volume. This parameter is required. -- -- * 'dvaDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -74,13 +75,11 @@     :: Text -- ^ 'dvaVolumeId'     -> DescribeVolumeAttribute describeVolumeAttribute pVolumeId_ =-    DescribeVolumeAttribute'-    { _dvaAttribute = Nothing-    , _dvaDryRun = Nothing-    , _dvaVolumeId = pVolumeId_-    }+  DescribeVolumeAttribute'+  {_dvaAttribute = Nothing, _dvaDryRun = Nothing, _dvaVolumeId = pVolumeId_} --- | The instance attribute.++-- | The attribute of the volume. This parameter is required. dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe VolumeAttributeName) dvaAttribute = lens _dvaAttribute (\ s a -> s{_dvaAttribute = a}); @@ -106,9 +105,9 @@                      <*> (x .@? "autoEnableIO")                      <*> (pure (fromEnum s))) -instance Hashable DescribeVolumeAttribute+instance Hashable DescribeVolumeAttribute where -instance NFData DescribeVolumeAttribute+instance NFData DescribeVolumeAttribute where  instance ToHeaders DescribeVolumeAttribute where         toHeaders = const mempty@@ -131,12 +130,13 @@ -- -- /See:/ 'describeVolumeAttributeResponse' smart constructor. data DescribeVolumeAttributeResponse = DescribeVolumeAttributeResponse'-    { _dvarsVolumeId       :: !(Maybe Text)-    , _dvarsProductCodes   :: !(Maybe [ProductCode])-    , _dvarsAutoEnableIO   :: !(Maybe AttributeBooleanValue)-    , _dvarsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvarsVolumeId       :: !(Maybe Text)+  , _dvarsProductCodes   :: !(Maybe [ProductCode])+  , _dvarsAutoEnableIO   :: !(Maybe AttributeBooleanValue)+  , _dvarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVolumeAttributeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -152,13 +152,14 @@     :: Int -- ^ 'dvarsResponseStatus'     -> DescribeVolumeAttributeResponse describeVolumeAttributeResponse pResponseStatus_ =-    DescribeVolumeAttributeResponse'-    { _dvarsVolumeId = Nothing-    , _dvarsProductCodes = Nothing-    , _dvarsAutoEnableIO = Nothing-    , _dvarsResponseStatus = pResponseStatus_-    }+  DescribeVolumeAttributeResponse'+  { _dvarsVolumeId = Nothing+  , _dvarsProductCodes = Nothing+  , _dvarsAutoEnableIO = Nothing+  , _dvarsResponseStatus = pResponseStatus_+  } + -- | The ID of the volume. dvarsVolumeId :: Lens' DescribeVolumeAttributeResponse (Maybe Text) dvarsVolumeId = lens _dvarsVolumeId (\ s a -> s{_dvarsVolumeId = a});@@ -175,4 +176,4 @@ dvarsResponseStatus :: Lens' DescribeVolumeAttributeResponse Int dvarsResponseStatus = lens _dvarsResponseStatus (\ s a -> s{_dvarsResponseStatus = a}); -instance NFData DescribeVolumeAttributeResponse+instance NFData DescribeVolumeAttributeResponse where
gen/Network/AWS/EC2/DescribeVolumeStatus.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVolumeStatus--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -52,13 +52,13 @@     , dvsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVolumeStatus. --@@ -66,13 +66,14 @@ -- -- /See:/ 'describeVolumeStatus' smart constructor. data DescribeVolumeStatus = DescribeVolumeStatus'-    { _dvssFilters    :: !(Maybe [Filter])-    , _dvssVolumeIds  :: !(Maybe [Text])-    , _dvssNextToken  :: !(Maybe Text)-    , _dvssDryRun     :: !(Maybe Bool)-    , _dvssMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvssFilters    :: !(Maybe [Filter])+  , _dvssVolumeIds  :: !(Maybe [Text])+  , _dvssNextToken  :: !(Maybe Text)+  , _dvssDryRun     :: !(Maybe Bool)+  , _dvssMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVolumeStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,14 +90,15 @@ describeVolumeStatus     :: DescribeVolumeStatus describeVolumeStatus =-    DescribeVolumeStatus'-    { _dvssFilters = Nothing-    , _dvssVolumeIds = Nothing-    , _dvssNextToken = Nothing-    , _dvssDryRun = Nothing-    , _dvssMaxResults = Nothing-    }+  DescribeVolumeStatus'+  { _dvssFilters = Nothing+  , _dvssVolumeIds = Nothing+  , _dvssNextToken = Nothing+  , _dvssDryRun = Nothing+  , _dvssMaxResults = Nothing+  } + -- | One or more filters.     * @action.code@ - The action code for the event (for example, @enable-volume-io@ ).     * @action.description@ - A description of the action.     * @action.event-id@ - The event ID associated with the action.     * @availability-zone@ - The Availability Zone of the instance.     * @event.description@ - A description of the event.     * @event.event-id@ - The event ID.     * @event.event-type@ - The event type (for @io-enabled@ : @passed@ | @failed@ ; for @io-performance@ : @io-performance:degraded@ | @io-performance:severely-degraded@ | @io-performance:stalled@ ).     * @event.not-after@ - The latest end time for the event.     * @event.not-before@ - The earliest start time for the event.     * @volume-status.details-name@ - The cause for @volume-status.status@ (@io-enabled@ | @io-performance@ ).     * @volume-status.details-status@ - The status of @volume-status.details-name@ (for @io-enabled@ : @passed@ | @failed@ ; for @io-performance@ : @normal@ | @degraded@ | @severely-degraded@ | @stalled@ ).     * @volume-status.status@ - The status of the volume (@ok@ | @impaired@ | @warning@ | @insufficient-data@ ). dvssFilters :: Lens' DescribeVolumeStatus [Filter] dvssFilters = lens _dvssFilters (\ s a -> s{_dvssFilters = a}) . _Default . _Coerce;@@ -137,9 +139,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVolumeStatus+instance Hashable DescribeVolumeStatus where -instance NFData DescribeVolumeStatus+instance NFData DescribeVolumeStatus where  instance ToHeaders DescribeVolumeStatus where         toHeaders = const mempty@@ -164,11 +166,12 @@ -- -- /See:/ 'describeVolumeStatusResponse' smart constructor. data DescribeVolumeStatusResponse = DescribeVolumeStatusResponse'-    { _dvsrsNextToken      :: !(Maybe Text)-    , _dvsrsVolumeStatuses :: !(Maybe [VolumeStatusItem])-    , _dvsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvsrsNextToken      :: !(Maybe Text)+  , _dvsrsVolumeStatuses :: !(Maybe [VolumeStatusItem])+  , _dvsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVolumeStatusResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -182,12 +185,13 @@     :: Int -- ^ 'dvsrsResponseStatus'     -> DescribeVolumeStatusResponse describeVolumeStatusResponse pResponseStatus_ =-    DescribeVolumeStatusResponse'-    { _dvsrsNextToken = Nothing-    , _dvsrsVolumeStatuses = Nothing-    , _dvsrsResponseStatus = pResponseStatus_-    }+  DescribeVolumeStatusResponse'+  { _dvsrsNextToken = Nothing+  , _dvsrsVolumeStatuses = Nothing+  , _dvsrsResponseStatus = pResponseStatus_+  } + -- | The token to use to retrieve the next page of results. This value is @null@ when there are no more results to return. dvsrsNextToken :: Lens' DescribeVolumeStatusResponse (Maybe Text) dvsrsNextToken = lens _dvsrsNextToken (\ s a -> s{_dvsrsNextToken = a});@@ -200,4 +204,4 @@ dvsrsResponseStatus :: Lens' DescribeVolumeStatusResponse Int dvsrsResponseStatus = lens _dvsrsResponseStatus (\ s a -> s{_dvsrsResponseStatus = a}); -instance NFData DescribeVolumeStatusResponse+instance NFData DescribeVolumeStatusResponse where
gen/Network/AWS/EC2/DescribeVolumes.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DescribeVolumes--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,13 +48,13 @@     , dvvrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Pager-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DescribeVolumes. --@@ -62,18 +62,19 @@ -- -- /See:/ 'describeVolumes' smart constructor. data DescribeVolumes = DescribeVolumes'-    { _desFilters    :: !(Maybe [Filter])-    , _desVolumeIds  :: !(Maybe [Text])-    , _desNextToken  :: !(Maybe Text)-    , _desDryRun     :: !(Maybe Bool)-    , _desMaxResults :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _desFilters    :: !(Maybe [Filter])+  , _desVolumeIds  :: !(Maybe [Text])+  , _desNextToken  :: !(Maybe Text)+  , _desDryRun     :: !(Maybe Bool)+  , _desMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVolumes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'desFilters' - One or more filters.     * @attachment.attach-time@ - The time stamp when the attachment initiated.     * @attachment.delete-on-termination@ - Whether the volume is deleted on instance termination.     * @attachment.device@ - The device name that is exposed to the instance (for example, @/dev/sda1@ ).     * @attachment.instance-id@ - The ID of the instance the volume is attached to.     * @attachment.status@ - The attachment state (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone in which the volume was created.     * @create-time@ - The time stamp when the volume was created.     * @encrypted@ - The encryption status of the volume.     * @size@ - The size of the volume, in GiB.     * @snapshot-id@ - The snapshot from which the volume was created.     * @status@ - The status of the volume (@creating@ | @available@ | @in-use@ | @deleting@ | @deleted@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The volume ID.     * @volume-type@ - The Amazon EBS volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes.+-- * 'desFilters' - One or more filters.     * @attachment.attach-time@ - The time stamp when the attachment initiated.     * @attachment.delete-on-termination@ - Whether the volume is deleted on instance termination.     * @attachment.device@ - The device name specified in the block device mapping (for example, @/dev/sda1@ ).     * @attachment.instance-id@ - The ID of the instance the volume is attached to.     * @attachment.status@ - The attachment state (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone in which the volume was created.     * @create-time@ - The time stamp when the volume was created.     * @encrypted@ - The encryption status of the volume.     * @size@ - The size of the volume, in GiB.     * @snapshot-id@ - The snapshot from which the volume was created.     * @status@ - The status of the volume (@creating@ | @available@ | @in-use@ | @deleting@ | @deleted@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The volume ID.     * @volume-type@ - The Amazon EBS volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes. -- -- * 'desVolumeIds' - One or more volume IDs. --@@ -81,19 +82,20 @@ -- -- * 'desDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'desMaxResults' - The maximum number of volume results returned by @DescribeVolumes@ in paginated output. When this parameter is used, @DescribeVolumes@ only returns @MaxResults@ results in a single page along with a @NextToken@ response element. The remaining results of the initial request can be seen by sending another @DescribeVolumes@ request with the returned @NextToken@ value. This value can be between 5 and 1000; if @MaxResults@ is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then @DescribeVolumes@ returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.+-- * 'desMaxResults' - The maximum number of volume results returned by @DescribeVolumes@ in paginated output. When this parameter is used, @DescribeVolumes@ only returns @MaxResults@ results in a single page along with a @NextToken@ response element. The remaining results of the initial request can be seen by sending another @DescribeVolumes@ request with the returned @NextToken@ value. This value can be between 5 and 500; if @MaxResults@ is given a value larger than 500, only 500 results are returned. If this parameter is not used, then @DescribeVolumes@ returns all results. You cannot specify this parameter and the volume IDs parameter in the same request. describeVolumes     :: DescribeVolumes describeVolumes =-    DescribeVolumes'-    { _desFilters = Nothing-    , _desVolumeIds = Nothing-    , _desNextToken = Nothing-    , _desDryRun = Nothing-    , _desMaxResults = Nothing-    }+  DescribeVolumes'+  { _desFilters = Nothing+  , _desVolumeIds = Nothing+  , _desNextToken = Nothing+  , _desDryRun = Nothing+  , _desMaxResults = Nothing+  } --- | One or more filters.     * @attachment.attach-time@ - The time stamp when the attachment initiated.     * @attachment.delete-on-termination@ - Whether the volume is deleted on instance termination.     * @attachment.device@ - The device name that is exposed to the instance (for example, @/dev/sda1@ ).     * @attachment.instance-id@ - The ID of the instance the volume is attached to.     * @attachment.status@ - The attachment state (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone in which the volume was created.     * @create-time@ - The time stamp when the volume was created.     * @encrypted@ - The encryption status of the volume.     * @size@ - The size of the volume, in GiB.     * @snapshot-id@ - The snapshot from which the volume was created.     * @status@ - The status of the volume (@creating@ | @available@ | @in-use@ | @deleting@ | @deleted@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/value combination of a tag assigned to the resource.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The volume ID.     * @volume-type@ - The Amazon EBS volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes.++-- | One or more filters.     * @attachment.attach-time@ - The time stamp when the attachment initiated.     * @attachment.delete-on-termination@ - Whether the volume is deleted on instance termination.     * @attachment.device@ - The device name specified in the block device mapping (for example, @/dev/sda1@ ).     * @attachment.instance-id@ - The ID of the instance the volume is attached to.     * @attachment.status@ - The attachment state (@attaching@ | @attached@ | @detaching@ | @detached@ ).     * @availability-zone@ - The Availability Zone in which the volume was created.     * @create-time@ - The time stamp when the volume was created.     * @encrypted@ - The encryption status of the volume.     * @size@ - The size of the volume, in GiB.     * @snapshot-id@ - The snapshot from which the volume was created.     * @status@ - The status of the volume (@creating@ | @available@ | @in-use@ | @deleting@ | @deleted@ | @error@ ).     * @tag@ :/key/ =/value/ - The key/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 @tag:Purpose@ for the filter name and @X@ for the filter value.     * @tag-key@ - 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 @tag@ :/key/ =/value/ filter.     * @tag-value@ - The value of a tag assigned to the resource. This filter is independent of the @tag-key@ filter.     * @volume-id@ - The volume ID.     * @volume-type@ - The Amazon EBS volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes. desFilters :: Lens' DescribeVolumes [Filter] desFilters = lens _desFilters (\ s a -> s{_desFilters = a}) . _Default . _Coerce; @@ -109,7 +111,7 @@ desDryRun :: Lens' DescribeVolumes (Maybe Bool) desDryRun = lens _desDryRun (\ s a -> s{_desDryRun = a}); --- | The maximum number of volume results returned by @DescribeVolumes@ in paginated output. When this parameter is used, @DescribeVolumes@ only returns @MaxResults@ results in a single page along with a @NextToken@ response element. The remaining results of the initial request can be seen by sending another @DescribeVolumes@ request with the returned @NextToken@ value. This value can be between 5 and 1000; if @MaxResults@ is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then @DescribeVolumes@ returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.+-- | The maximum number of volume results returned by @DescribeVolumes@ in paginated output. When this parameter is used, @DescribeVolumes@ only returns @MaxResults@ results in a single page along with a @NextToken@ response element. The remaining results of the initial request can be seen by sending another @DescribeVolumes@ request with the returned @NextToken@ value. This value can be between 5 and 500; if @MaxResults@ is given a value larger than 500, only 500 results are returned. If this parameter is not used, then @DescribeVolumes@ returns all results. You cannot specify this parameter and the volume IDs parameter in the same request. desMaxResults :: Lens' DescribeVolumes (Maybe Int) desMaxResults = lens _desMaxResults (\ s a -> s{_desMaxResults = a}); @@ -132,9 +134,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable DescribeVolumes+instance Hashable DescribeVolumes where -instance NFData DescribeVolumes+instance NFData DescribeVolumes where  instance ToHeaders DescribeVolumes where         toHeaders = const mempty@@ -158,11 +160,12 @@ -- -- /See:/ 'describeVolumesResponse' smart constructor. data DescribeVolumesResponse = DescribeVolumesResponse'-    { _dvvrsNextToken      :: !(Maybe Text)-    , _dvvrsVolumes        :: !(Maybe [Volume])-    , _dvvrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvvrsNextToken      :: !(Maybe Text)+  , _dvvrsVolumes        :: !(Maybe [Volume])+  , _dvvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeVolumesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -176,12 +179,13 @@     :: Int -- ^ 'dvvrsResponseStatus'     -> DescribeVolumesResponse describeVolumesResponse pResponseStatus_ =-    DescribeVolumesResponse'-    { _dvvrsNextToken = Nothing-    , _dvvrsVolumes = Nothing-    , _dvvrsResponseStatus = pResponseStatus_-    }+  DescribeVolumesResponse'+  { _dvvrsNextToken = Nothing+  , _dvvrsVolumes = Nothing+  , _dvvrsResponseStatus = pResponseStatus_+  } + -- | The @NextToken@ value to include in a future @DescribeVolumes@ request. When the results of a @DescribeVolumes@ request exceed @MaxResults@ , this value can be used to retrieve the next page of results. This value is @null@ when there are no more results to return. dvvrsNextToken :: Lens' DescribeVolumesResponse (Maybe Text) dvvrsNextToken = lens _dvvrsNextToken (\ s a -> s{_dvvrsNextToken = a});@@ -194,4 +198,4 @@ dvvrsResponseStatus :: Lens' DescribeVolumesResponse Int dvvrsResponseStatus = lens _dvvrsResponseStatus (\ s a -> s{_dvvrsResponseStatus = a}); -instance NFData DescribeVolumesResponse+instance NFData DescribeVolumesResponse where
+ gen/Network/AWS/EC2/DescribeVolumesModifications.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DescribeVolumesModifications+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Reports the current modification status of EBS volumes.+--+--+-- Current-generation EBS volumes support modification of attributes including type, size, and (for @io1@ 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 @modifying@ , @optimizing@ , @completed@ , or @failed@ . If a volume has never been modified, then certain elements of the returned @VolumeModification@ 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 <http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ Amazon CloudWatch Events User Guide> . For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods Monitoring Volume Modifications"> .+--+module Network.AWS.EC2.DescribeVolumesModifications+    (+    -- * Creating a Request+      describeVolumesModifications+    , DescribeVolumesModifications+    -- * Request Lenses+    , dvmFilters+    , dvmVolumeIds+    , dvmNextToken+    , dvmDryRun+    , dvmMaxResults++    -- * Destructuring the Response+    , describeVolumesModificationsResponse+    , DescribeVolumesModificationsResponse+    -- * Response Lenses+    , dvmrsVolumesModifications+    , dvmrsNextToken+    , dvmrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeVolumesModifications' smart constructor.+data DescribeVolumesModifications = DescribeVolumesModifications'+  { _dvmFilters    :: !(Maybe [Filter])+  , _dvmVolumeIds  :: !(Maybe [Text])+  , _dvmNextToken  :: !(Maybe Text)+  , _dvmDryRun     :: !(Maybe Bool)+  , _dvmMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeVolumesModifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvmFilters' - One or more filters. Supported filters: @volume-id@ , @modification-state@ , @target-size@ , @target-iops@ , @target-volume-type@ , @original-size@ , @original-iops@ , @original-volume-type@ , @start-time@ .+--+-- * 'dvmVolumeIds' - One or more volume IDs for which in-progress modifications will be described.+--+-- * 'dvmNextToken' - The @nextToken@ value returned by a previous paginated request.+--+-- * 'dvmDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'dvmMaxResults' - The maximum number of results (up to a limit of 500) to be returned in a paginated request.+describeVolumesModifications+    :: DescribeVolumesModifications+describeVolumesModifications =+  DescribeVolumesModifications'+  { _dvmFilters = Nothing+  , _dvmVolumeIds = Nothing+  , _dvmNextToken = Nothing+  , _dvmDryRun = Nothing+  , _dvmMaxResults = Nothing+  }+++-- | One or more filters. Supported filters: @volume-id@ , @modification-state@ , @target-size@ , @target-iops@ , @target-volume-type@ , @original-size@ , @original-iops@ , @original-volume-type@ , @start-time@ .+dvmFilters :: Lens' DescribeVolumesModifications [Filter]+dvmFilters = lens _dvmFilters (\ s a -> s{_dvmFilters = a}) . _Default . _Coerce;++-- | One or more volume IDs for which in-progress modifications will be described.+dvmVolumeIds :: Lens' DescribeVolumesModifications [Text]+dvmVolumeIds = lens _dvmVolumeIds (\ s a -> s{_dvmVolumeIds = a}) . _Default . _Coerce;++-- | The @nextToken@ value returned by a previous paginated request.+dvmNextToken :: Lens' DescribeVolumesModifications (Maybe Text)+dvmNextToken = lens _dvmNextToken (\ s a -> s{_dvmNextToken = a});++-- | Checks whether you have the required permissions for the action, 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@ .+dvmDryRun :: Lens' DescribeVolumesModifications (Maybe Bool)+dvmDryRun = lens _dvmDryRun (\ s a -> s{_dvmDryRun = a});++-- | The maximum number of results (up to a limit of 500) to be returned in a paginated request.+dvmMaxResults :: Lens' DescribeVolumesModifications (Maybe Int)+dvmMaxResults = lens _dvmMaxResults (\ s a -> s{_dvmMaxResults = a});++instance AWSRequest DescribeVolumesModifications+         where+        type Rs DescribeVolumesModifications =+             DescribeVolumesModificationsResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DescribeVolumesModificationsResponse' <$>+                   (x .@? "volumeModificationSet" .!@ mempty >>=+                      may (parseXMLList "item"))+                     <*> (x .@? "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeVolumesModifications where++instance NFData DescribeVolumesModifications where++instance ToHeaders DescribeVolumesModifications where+        toHeaders = const mempty++instance ToPath DescribeVolumesModifications where+        toPath = const "/"++instance ToQuery DescribeVolumesModifications where+        toQuery DescribeVolumesModifications'{..}+          = mconcat+              ["Action" =:+                 ("DescribeVolumesModifications" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               toQuery (toQueryList "Filter" <$> _dvmFilters),+               toQuery (toQueryList "VolumeId" <$> _dvmVolumeIds),+               "NextToken" =: _dvmNextToken, "DryRun" =: _dvmDryRun,+               "MaxResults" =: _dvmMaxResults]++-- | /See:/ 'describeVolumesModificationsResponse' smart constructor.+data DescribeVolumesModificationsResponse = DescribeVolumesModificationsResponse'+  { _dvmrsVolumesModifications :: !(Maybe [VolumeModification])+  , _dvmrsNextToken            :: !(Maybe Text)+  , _dvmrsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeVolumesModificationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvmrsVolumesModifications' - A list of returned 'VolumeModification' objects.+--+-- * 'dvmrsNextToken' - Token for pagination, null if there are no more results+--+-- * 'dvmrsResponseStatus' - -- | The response status code.+describeVolumesModificationsResponse+    :: Int -- ^ 'dvmrsResponseStatus'+    -> DescribeVolumesModificationsResponse+describeVolumesModificationsResponse pResponseStatus_ =+  DescribeVolumesModificationsResponse'+  { _dvmrsVolumesModifications = Nothing+  , _dvmrsNextToken = Nothing+  , _dvmrsResponseStatus = pResponseStatus_+  }+++-- | A list of returned 'VolumeModification' objects.+dvmrsVolumesModifications :: Lens' DescribeVolumesModificationsResponse [VolumeModification]+dvmrsVolumesModifications = lens _dvmrsVolumesModifications (\ s a -> s{_dvmrsVolumesModifications = a}) . _Default . _Coerce;++-- | Token for pagination, null if there are no more results+dvmrsNextToken :: Lens' DescribeVolumesModificationsResponse (Maybe Text)+dvmrsNextToken = lens _dvmrsNextToken (\ s a -> s{_dvmrsNextToken = a});++-- | -- | The response status code.+dvmrsResponseStatus :: Lens' DescribeVolumesModificationsResponse Int+dvmrsResponseStatus = lens _dvmrsResponseStatus (\ s a -> s{_dvmrsResponseStatus = a});++instance NFData DescribeVolumesModificationsResponse+         where
gen/Network/AWS/EC2/DetachClassicLinkVPC.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DetachClassicLinkVPC--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , dclvrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DetachClassicLinkVpc. --@@ -52,11 +52,12 @@ -- -- /See:/ 'detachClassicLinkVPC' smart constructor. data DetachClassicLinkVPC = DetachClassicLinkVPC'-    { _dclvDryRun     :: !(Maybe Bool)-    , _dclvInstanceId :: !Text-    , _dclvVPCId      :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dclvDryRun     :: !(Maybe Bool)+  , _dclvInstanceId :: !Text+  , _dclvVPCId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachClassicLinkVPC' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,10 @@     -> Text -- ^ 'dclvVPCId'     -> DetachClassicLinkVPC detachClassicLinkVPC pInstanceId_ pVPCId_ =-    DetachClassicLinkVPC'-    { _dclvDryRun = Nothing-    , _dclvInstanceId = pInstanceId_-    , _dclvVPCId = pVPCId_-    }+  DetachClassicLinkVPC'+  {_dclvDryRun = Nothing, _dclvInstanceId = pInstanceId_, _dclvVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . dclvDryRun :: Lens' DetachClassicLinkVPC (Maybe Bool) dclvDryRun = lens _dclvDryRun (\ s a -> s{_dclvDryRun = a});@@ -99,9 +98,9 @@                  DetachClassicLinkVPCResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable DetachClassicLinkVPC+instance Hashable DetachClassicLinkVPC where -instance NFData DetachClassicLinkVPC+instance NFData DetachClassicLinkVPC where  instance ToHeaders DetachClassicLinkVPC where         toHeaders = const mempty@@ -124,10 +123,11 @@ -- -- /See:/ 'detachClassicLinkVPCResponse' smart constructor. data DetachClassicLinkVPCResponse = DetachClassicLinkVPCResponse'-    { _dclvrsReturn         :: !(Maybe Bool)-    , _dclvrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dclvrsReturn         :: !(Maybe Bool)+  , _dclvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachClassicLinkVPCResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,11 +139,10 @@     :: Int -- ^ 'dclvrsResponseStatus'     -> DetachClassicLinkVPCResponse detachClassicLinkVPCResponse pResponseStatus_ =-    DetachClassicLinkVPCResponse'-    { _dclvrsReturn = Nothing-    , _dclvrsResponseStatus = pResponseStatus_-    }+  DetachClassicLinkVPCResponse'+  {_dclvrsReturn = Nothing, _dclvrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. dclvrsReturn :: Lens' DetachClassicLinkVPCResponse (Maybe Bool) dclvrsReturn = lens _dclvrsReturn (\ s a -> s{_dclvrsReturn = a});@@ -152,4 +151,4 @@ dclvrsResponseStatus :: Lens' DetachClassicLinkVPCResponse Int dclvrsResponseStatus = lens _dclvrsResponseStatus (\ s a -> s{_dclvrsResponseStatus = a}); -instance NFData DetachClassicLinkVPCResponse+instance NFData DetachClassicLinkVPCResponse where
gen/Network/AWS/EC2/DetachInternetGateway.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DetachInternetGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- 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.+-- 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@@ -36,12 +36,12 @@     , DetachInternetGatewayResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DetachInternetGateway. --@@ -49,11 +49,12 @@ -- -- /See:/ 'detachInternetGateway' smart constructor. data DetachInternetGateway = DetachInternetGateway'-    { _digDryRun            :: !(Maybe Bool)-    , _digInternetGatewayId :: !Text-    , _digVPCId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _digDryRun            :: !(Maybe Bool)+  , _digInternetGatewayId :: !Text+  , _digVPCId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachInternetGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,12 +69,13 @@     -> Text -- ^ 'digVPCId'     -> DetachInternetGateway detachInternetGateway pInternetGatewayId_ pVPCId_ =-    DetachInternetGateway'-    { _digDryRun = Nothing-    , _digInternetGatewayId = pInternetGatewayId_-    , _digVPCId = pVPCId_-    }+  DetachInternetGateway'+  { _digDryRun = Nothing+  , _digInternetGatewayId = pInternetGatewayId_+  , _digVPCId = pVPCId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . digDryRun :: Lens' DetachInternetGateway (Maybe Bool) digDryRun = lens _digDryRun (\ s a -> s{_digDryRun = a});@@ -92,9 +94,9 @@         request = postQuery ec2         response = receiveNull DetachInternetGatewayResponse' -instance Hashable DetachInternetGateway+instance Hashable DetachInternetGateway where -instance NFData DetachInternetGateway+instance NFData DetachInternetGateway where  instance ToHeaders DetachInternetGateway where         toHeaders = const mempty@@ -113,13 +115,15 @@  -- | /See:/ 'detachInternetGatewayResponse' smart constructor. data DetachInternetGatewayResponse =-    DetachInternetGatewayResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DetachInternetGatewayResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachInternetGatewayResponse' with the minimum fields required to make a request. -- detachInternetGatewayResponse     :: DetachInternetGatewayResponse detachInternetGatewayResponse = DetachInternetGatewayResponse' -instance NFData DetachInternetGatewayResponse++instance NFData DetachInternetGatewayResponse where
gen/Network/AWS/EC2/DetachNetworkInterface.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DetachNetworkInterface--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -36,12 +36,12 @@     , DetachNetworkInterfaceResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DetachNetworkInterface. --@@ -49,11 +49,12 @@ -- -- /See:/ 'detachNetworkInterface' smart constructor. data DetachNetworkInterface = DetachNetworkInterface'-    { _dniForce        :: !(Maybe Bool)-    , _dniDryRun       :: !(Maybe Bool)-    , _dniAttachmentId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dniForce        :: !(Maybe Bool)+  , _dniDryRun       :: !(Maybe Bool)+  , _dniAttachmentId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachNetworkInterface' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,12 +68,10 @@     :: Text -- ^ 'dniAttachmentId'     -> DetachNetworkInterface detachNetworkInterface pAttachmentId_ =-    DetachNetworkInterface'-    { _dniForce = Nothing-    , _dniDryRun = Nothing-    , _dniAttachmentId = pAttachmentId_-    }+  DetachNetworkInterface'+  {_dniForce = Nothing, _dniDryRun = Nothing, _dniAttachmentId = pAttachmentId_} + -- | Specifies whether to force a detachment. dniForce :: Lens' DetachNetworkInterface (Maybe Bool) dniForce = lens _dniForce (\ s a -> s{_dniForce = a});@@ -92,9 +91,9 @@         response           = receiveNull DetachNetworkInterfaceResponse' -instance Hashable DetachNetworkInterface+instance Hashable DetachNetworkInterface where -instance NFData DetachNetworkInterface+instance NFData DetachNetworkInterface where  instance ToHeaders DetachNetworkInterface where         toHeaders = const mempty@@ -113,13 +112,15 @@  -- | /See:/ 'detachNetworkInterfaceResponse' smart constructor. data DetachNetworkInterfaceResponse =-    DetachNetworkInterfaceResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DetachNetworkInterfaceResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachNetworkInterfaceResponse' with the minimum fields required to make a request. -- detachNetworkInterfaceResponse     :: DetachNetworkInterfaceResponse detachNetworkInterfaceResponse = DetachNetworkInterfaceResponse' -instance NFData DetachNetworkInterfaceResponse++instance NFData DetachNetworkInterfaceResponse where
gen/Network/AWS/EC2/DetachVPNGateway.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DetachVPNGateway--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,20 +30,20 @@     , DetachVPNGateway     -- * Request Lenses     , dvpngDryRun-    , dvpngVPNGatewayId     , dvpngVPCId+    , dvpngVPNGatewayId      -- * Destructuring the Response     , detachVPNGatewayResponse     , DetachVPNGatewayResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DetachVpnGateway. --@@ -51,51 +51,53 @@ -- -- /See:/ 'detachVPNGateway' smart constructor. data DetachVPNGateway = DetachVPNGateway'-    { _dvpngDryRun       :: !(Maybe Bool)-    , _dvpngVPNGatewayId :: !Text-    , _dvpngVPCId        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpngDryRun       :: !(Maybe Bool)+  , _dvpngVPCId        :: !Text+  , _dvpngVPNGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachVPNGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dvpngDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'dvpngVPNGatewayId' - The ID of the virtual private gateway.--- -- * 'dvpngVPCId' - The ID of the VPC.+--+-- * 'dvpngVPNGatewayId' - The ID of the virtual private gateway. detachVPNGateway-    :: Text -- ^ 'dvpngVPNGatewayId'-    -> Text -- ^ 'dvpngVPCId'+    :: Text -- ^ 'dvpngVPCId'+    -> Text -- ^ 'dvpngVPNGatewayId'     -> DetachVPNGateway-detachVPNGateway pVPNGatewayId_ pVPCId_ =-    DetachVPNGateway'-    { _dvpngDryRun = Nothing-    , _dvpngVPNGatewayId = pVPNGatewayId_-    , _dvpngVPCId = pVPCId_-    }+detachVPNGateway pVPCId_ pVPNGatewayId_ =+  DetachVPNGateway'+  { _dvpngDryRun = Nothing+  , _dvpngVPCId = pVPCId_+  , _dvpngVPNGatewayId = pVPNGatewayId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . dvpngDryRun :: Lens' DetachVPNGateway (Maybe Bool) dvpngDryRun = lens _dvpngDryRun (\ s a -> s{_dvpngDryRun = a}); --- | The ID of the virtual private gateway.-dvpngVPNGatewayId :: Lens' DetachVPNGateway Text-dvpngVPNGatewayId = lens _dvpngVPNGatewayId (\ s a -> s{_dvpngVPNGatewayId = a});- -- | The ID of the VPC. dvpngVPCId :: Lens' DetachVPNGateway Text dvpngVPCId = lens _dvpngVPCId (\ s a -> s{_dvpngVPCId = a}); +-- | The ID of the virtual private gateway.+dvpngVPNGatewayId :: Lens' DetachVPNGateway Text+dvpngVPNGatewayId = lens _dvpngVPNGatewayId (\ s a -> s{_dvpngVPNGatewayId = a});+ instance AWSRequest DetachVPNGateway where         type Rs DetachVPNGateway = DetachVPNGatewayResponse         request = postQuery ec2         response = receiveNull DetachVPNGatewayResponse' -instance Hashable DetachVPNGateway+instance Hashable DetachVPNGateway where -instance NFData DetachVPNGateway+instance NFData DetachVPNGateway where  instance ToHeaders DetachVPNGateway where         toHeaders = const mempty@@ -108,19 +110,20 @@           = mconcat               ["Action" =: ("DetachVpnGateway" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _dvpngDryRun,-               "VpnGatewayId" =: _dvpngVPNGatewayId,-               "VpcId" =: _dvpngVPCId]+               "DryRun" =: _dvpngDryRun, "VpcId" =: _dvpngVPCId,+               "VpnGatewayId" =: _dvpngVPNGatewayId]  -- | /See:/ 'detachVPNGatewayResponse' smart constructor. data DetachVPNGatewayResponse =-    DetachVPNGatewayResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DetachVPNGatewayResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachVPNGatewayResponse' with the minimum fields required to make a request. -- detachVPNGatewayResponse     :: DetachVPNGatewayResponse detachVPNGatewayResponse = DetachVPNGatewayResponse' -instance NFData DetachVPNGatewayResponse++instance NFData DetachVPNGatewayResponse where
gen/Network/AWS/EC2/DetachVolume.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DetachVolume--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -49,12 +49,12 @@     , volAttachTime     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DetachVolume. --@@ -62,13 +62,14 @@ -- -- /See:/ 'detachVolume' smart constructor. data DetachVolume = DetachVolume'-    { _dvInstanceId :: !(Maybe Text)-    , _dvForce      :: !(Maybe Bool)-    , _dvDevice     :: !(Maybe Text)-    , _dvDryRun     :: !(Maybe Bool)-    , _dvVolumeId   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvInstanceId :: !(Maybe Text)+  , _dvForce      :: !(Maybe Bool)+  , _dvDevice     :: !(Maybe Text)+  , _dvDryRun     :: !(Maybe Bool)+  , _dvVolumeId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DetachVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,14 +87,15 @@     :: Text -- ^ 'dvVolumeId'     -> DetachVolume detachVolume pVolumeId_ =-    DetachVolume'-    { _dvInstanceId = Nothing-    , _dvForce = Nothing-    , _dvDevice = Nothing-    , _dvDryRun = Nothing-    , _dvVolumeId = pVolumeId_-    }+  DetachVolume'+  { _dvInstanceId = Nothing+  , _dvForce = Nothing+  , _dvDevice = Nothing+  , _dvDryRun = Nothing+  , _dvVolumeId = pVolumeId_+  } + -- | The ID of the instance. dvInstanceId :: Lens' DetachVolume (Maybe Text) dvInstanceId = lens _dvInstanceId (\ s a -> s{_dvInstanceId = a});@@ -119,9 +121,9 @@         request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x) -instance Hashable DetachVolume+instance Hashable DetachVolume where -instance NFData DetachVolume+instance NFData DetachVolume where  instance ToHeaders DetachVolume where         toHeaders = const mempty
gen/Network/AWS/EC2/DisableVGWRoutePropagation.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DisableVGWRoutePropagation--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,20 +27,20 @@       disableVGWRoutePropagation     , DisableVGWRoutePropagation     -- * Request Lenses-    , dvrpRouteTableId     , dvrpGatewayId+    , dvrpRouteTableId      -- * Destructuring the Response     , disableVGWRoutePropagationResponse     , DisableVGWRoutePropagationResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DisableVgwRoutePropagation. --@@ -48,35 +48,35 @@ -- -- /See:/ 'disableVGWRoutePropagation' smart constructor. data DisableVGWRoutePropagation = DisableVGWRoutePropagation'-    { _dvrpRouteTableId :: !Text-    , _dvrpGatewayId    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvrpGatewayId    :: !Text+  , _dvrpRouteTableId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableVGWRoutePropagation' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dvrpRouteTableId' - The ID of the route table.--- -- * 'dvrpGatewayId' - The ID of the virtual private gateway.+--+-- * 'dvrpRouteTableId' - The ID of the route table. disableVGWRoutePropagation-    :: Text -- ^ 'dvrpRouteTableId'-    -> Text -- ^ 'dvrpGatewayId'+    :: Text -- ^ 'dvrpGatewayId'+    -> Text -- ^ 'dvrpRouteTableId'     -> DisableVGWRoutePropagation-disableVGWRoutePropagation pRouteTableId_ pGatewayId_ =-    DisableVGWRoutePropagation'-    { _dvrpRouteTableId = pRouteTableId_-    , _dvrpGatewayId = pGatewayId_-    }+disableVGWRoutePropagation pGatewayId_ pRouteTableId_ =+  DisableVGWRoutePropagation'+  {_dvrpGatewayId = pGatewayId_, _dvrpRouteTableId = pRouteTableId_} --- | The ID of the route table.-dvrpRouteTableId :: Lens' DisableVGWRoutePropagation Text-dvrpRouteTableId = lens _dvrpRouteTableId (\ s a -> s{_dvrpRouteTableId = a});  -- | The ID of the virtual private gateway. dvrpGatewayId :: Lens' DisableVGWRoutePropagation Text dvrpGatewayId = lens _dvrpGatewayId (\ s a -> s{_dvrpGatewayId = a}); +-- | The ID of the route table.+dvrpRouteTableId :: Lens' DisableVGWRoutePropagation Text+dvrpRouteTableId = lens _dvrpRouteTableId (\ s a -> s{_dvrpRouteTableId = a});+ instance AWSRequest DisableVGWRoutePropagation where         type Rs DisableVGWRoutePropagation =              DisableVGWRoutePropagationResponse@@ -84,9 +84,9 @@         response           = receiveNull DisableVGWRoutePropagationResponse' -instance Hashable DisableVGWRoutePropagation+instance Hashable DisableVGWRoutePropagation where -instance NFData DisableVGWRoutePropagation+instance NFData DisableVGWRoutePropagation where  instance ToHeaders DisableVGWRoutePropagation where         toHeaders = const mempty@@ -100,18 +100,21 @@               ["Action" =:                  ("DisableVgwRoutePropagation" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "RouteTableId" =: _dvrpRouteTableId,-               "GatewayId" =: _dvrpGatewayId]+               "GatewayId" =: _dvrpGatewayId,+               "RouteTableId" =: _dvrpRouteTableId]  -- | /See:/ 'disableVGWRoutePropagationResponse' smart constructor. data DisableVGWRoutePropagationResponse =-    DisableVGWRoutePropagationResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DisableVGWRoutePropagationResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableVGWRoutePropagationResponse' with the minimum fields required to make a request. -- disableVGWRoutePropagationResponse     :: DisableVGWRoutePropagationResponse disableVGWRoutePropagationResponse = DisableVGWRoutePropagationResponse' + instance NFData DisableVGWRoutePropagationResponse+         where
gen/Network/AWS/EC2/DisableVPCClassicLink.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DisableVPCClassicLink--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , dvpcclrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DisableVpcClassicLink. --@@ -51,10 +51,11 @@ -- -- /See:/ 'disableVPCClassicLink' smart constructor. data DisableVPCClassicLink = DisableVPCClassicLink'-    { _dvpcclDryRun :: !(Maybe Bool)-    , _dvpcclVPCId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcclDryRun :: !(Maybe Bool)+  , _dvpcclVPCId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableVPCClassicLink' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,11 +67,9 @@     :: Text -- ^ 'dvpcclVPCId'     -> DisableVPCClassicLink disableVPCClassicLink pVPCId_ =-    DisableVPCClassicLink'-    { _dvpcclDryRun = Nothing-    , _dvpcclVPCId = pVPCId_-    }+  DisableVPCClassicLink' {_dvpcclDryRun = Nothing, _dvpcclVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . dvpcclDryRun :: Lens' DisableVPCClassicLink (Maybe Bool) dvpcclDryRun = lens _dvpcclDryRun (\ s a -> s{_dvpcclDryRun = a});@@ -89,9 +88,9 @@                  DisableVPCClassicLinkResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable DisableVPCClassicLink+instance Hashable DisableVPCClassicLink where -instance NFData DisableVPCClassicLink+instance NFData DisableVPCClassicLink where  instance ToHeaders DisableVPCClassicLink where         toHeaders = const mempty@@ -112,10 +111,11 @@ -- -- /See:/ 'disableVPCClassicLinkResponse' smart constructor. data DisableVPCClassicLinkResponse = DisableVPCClassicLinkResponse'-    { _dvpcclrsReturn         :: !(Maybe Bool)-    , _dvpcclrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvpcclrsReturn         :: !(Maybe Bool)+  , _dvpcclrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableVPCClassicLinkResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -127,11 +127,10 @@     :: Int -- ^ 'dvpcclrsResponseStatus'     -> DisableVPCClassicLinkResponse disableVPCClassicLinkResponse pResponseStatus_ =-    DisableVPCClassicLinkResponse'-    { _dvpcclrsReturn = Nothing-    , _dvpcclrsResponseStatus = pResponseStatus_-    }+  DisableVPCClassicLinkResponse'+  {_dvpcclrsReturn = Nothing, _dvpcclrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. dvpcclrsReturn :: Lens' DisableVPCClassicLinkResponse (Maybe Bool) dvpcclrsReturn = lens _dvpcclrsReturn (\ s a -> s{_dvpcclrsReturn = a});@@ -140,4 +139,4 @@ dvpcclrsResponseStatus :: Lens' DisableVPCClassicLinkResponse Int dvpcclrsResponseStatus = lens _dvpcclrsResponseStatus (\ s a -> s{_dvpcclrsResponseStatus = a}); -instance NFData DisableVPCClassicLinkResponse+instance NFData DisableVPCClassicLinkResponse where
gen/Network/AWS/EC2/DisableVPCClassicLinkDNSSupport.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.DisableVPCClassicLinkDNSSupport--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the Amazon Elastic Compute Cloud User Guide.+-- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the /Amazon Elastic Compute Cloud User Guide/ . -- -- module Network.AWS.EC2.DisableVPCClassicLinkDNSSupport@@ -37,12 +37,12 @@     , dvcldsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DisableVpcClassicLinkDnsSupport. --@@ -50,9 +50,10 @@ -- -- /See:/ 'disableVPCClassicLinkDNSSupport' smart constructor. newtype DisableVPCClassicLinkDNSSupport = DisableVPCClassicLinkDNSSupport'-    { _dvcldsVPCId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcldsVPCId :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableVPCClassicLinkDNSSupport' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -61,10 +62,9 @@ disableVPCClassicLinkDNSSupport     :: DisableVPCClassicLinkDNSSupport disableVPCClassicLinkDNSSupport =-    DisableVPCClassicLinkDNSSupport'-    { _dvcldsVPCId = Nothing-    }+  DisableVPCClassicLinkDNSSupport' {_dvcldsVPCId = Nothing} + -- | The ID of the VPC. dvcldsVPCId :: Lens' DisableVPCClassicLinkDNSSupport (Maybe Text) dvcldsVPCId = lens _dvcldsVPCId (\ s a -> s{_dvcldsVPCId = a});@@ -81,8 +81,9 @@                    (x .@? "return") <*> (pure (fromEnum s)))  instance Hashable DisableVPCClassicLinkDNSSupport+         where -instance NFData DisableVPCClassicLinkDNSSupport+instance NFData DisableVPCClassicLinkDNSSupport where  instance ToHeaders DisableVPCClassicLinkDNSSupport          where@@ -106,10 +107,11 @@ -- -- /See:/ 'disableVPCClassicLinkDNSSupportResponse' smart constructor. data DisableVPCClassicLinkDNSSupportResponse = DisableVPCClassicLinkDNSSupportResponse'-    { _dvcldsrsReturn         :: !(Maybe Bool)-    , _dvcldsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcldsrsReturn         :: !(Maybe Bool)+  , _dvcldsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisableVPCClassicLinkDNSSupportResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -121,11 +123,10 @@     :: Int -- ^ 'dvcldsrsResponseStatus'     -> DisableVPCClassicLinkDNSSupportResponse disableVPCClassicLinkDNSSupportResponse pResponseStatus_ =-    DisableVPCClassicLinkDNSSupportResponse'-    { _dvcldsrsReturn = Nothing-    , _dvcldsrsResponseStatus = pResponseStatus_-    }+  DisableVPCClassicLinkDNSSupportResponse'+  {_dvcldsrsReturn = Nothing, _dvcldsrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. dvcldsrsReturn :: Lens' DisableVPCClassicLinkDNSSupportResponse (Maybe Bool) dvcldsrsReturn = lens _dvcldsrsReturn (\ s a -> s{_dvcldsrsReturn = a});@@ -135,4 +136,5 @@ dvcldsrsResponseStatus = lens _dvcldsrsResponseStatus (\ s a -> s{_dvcldsrsResponseStatus = a});  instance NFData-         DisableVPCClassicLinkDNSSupportResponse+           DisableVPCClassicLinkDNSSupportResponse+         where
gen/Network/AWS/EC2/DisassociateAddress.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DisassociateAddress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , DisassociateAddressResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DisassociateAddress. --@@ -53,11 +53,12 @@ -- -- /See:/ 'disassociateAddress' smart constructor. data DisassociateAddress = DisassociateAddress'-    { _dasAssociationId :: !(Maybe Text)-    , _dasPublicIP      :: !(Maybe Text)-    , _dasDryRun        :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dasAssociationId :: !(Maybe Text)+  , _dasPublicIP      :: !(Maybe Text)+  , _dasDryRun        :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateAddress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,12 +71,10 @@ disassociateAddress     :: DisassociateAddress disassociateAddress =-    DisassociateAddress'-    { _dasAssociationId = Nothing-    , _dasPublicIP = Nothing-    , _dasDryRun = Nothing-    }+  DisassociateAddress'+  {_dasAssociationId = Nothing, _dasPublicIP = Nothing, _dasDryRun = Nothing} + -- | [EC2-VPC] The association ID. Required for EC2-VPC. dasAssociationId :: Lens' DisassociateAddress (Maybe Text) dasAssociationId = lens _dasAssociationId (\ s a -> s{_dasAssociationId = a});@@ -94,9 +93,9 @@         request = postQuery ec2         response = receiveNull DisassociateAddressResponse' -instance Hashable DisassociateAddress+instance Hashable DisassociateAddress where -instance NFData DisassociateAddress+instance NFData DisassociateAddress where  instance ToHeaders DisassociateAddress where         toHeaders = const mempty@@ -114,13 +113,15 @@  -- | /See:/ 'disassociateAddressResponse' smart constructor. data DisassociateAddressResponse =-    DisassociateAddressResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DisassociateAddressResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateAddressResponse' with the minimum fields required to make a request. -- disassociateAddressResponse     :: DisassociateAddressResponse disassociateAddressResponse = DisassociateAddressResponse' -instance NFData DisassociateAddressResponse++instance NFData DisassociateAddressResponse where
+ gen/Network/AWS/EC2/DisassociateIAMInstanceProfile.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.DisassociateIAMInstanceProfile+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates an IAM instance profile from a running or stopped instance.+--+--+-- Use 'DescribeIamInstanceProfileAssociations' to get the association ID.+--+module Network.AWS.EC2.DisassociateIAMInstanceProfile+    (+    -- * Creating a Request+      disassociateIAMInstanceProfile+    , DisassociateIAMInstanceProfile+    -- * Request Lenses+    , diapAssociationId++    -- * Destructuring the Response+    , disassociateIAMInstanceProfileResponse+    , DisassociateIAMInstanceProfileResponse+    -- * Response Lenses+    , diaprsIAMInstanceProfileAssociation+    , diaprsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'disassociateIAMInstanceProfile' smart constructor.+newtype DisassociateIAMInstanceProfile = DisassociateIAMInstanceProfile'+  { _diapAssociationId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DisassociateIAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diapAssociationId' - The ID of the IAM instance profile association.+disassociateIAMInstanceProfile+    :: Text -- ^ 'diapAssociationId'+    -> DisassociateIAMInstanceProfile+disassociateIAMInstanceProfile pAssociationId_ =+  DisassociateIAMInstanceProfile' {_diapAssociationId = pAssociationId_}+++-- | The ID of the IAM instance profile association.+diapAssociationId :: Lens' DisassociateIAMInstanceProfile Text+diapAssociationId = lens _diapAssociationId (\ s a -> s{_diapAssociationId = a});++instance AWSRequest DisassociateIAMInstanceProfile+         where+        type Rs DisassociateIAMInstanceProfile =+             DisassociateIAMInstanceProfileResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 DisassociateIAMInstanceProfileResponse' <$>+                   (x .@? "iamInstanceProfileAssociation") <*>+                     (pure (fromEnum s)))++instance Hashable DisassociateIAMInstanceProfile+         where++instance NFData DisassociateIAMInstanceProfile where++instance ToHeaders DisassociateIAMInstanceProfile+         where+        toHeaders = const mempty++instance ToPath DisassociateIAMInstanceProfile where+        toPath = const "/"++instance ToQuery DisassociateIAMInstanceProfile where+        toQuery DisassociateIAMInstanceProfile'{..}+          = mconcat+              ["Action" =:+                 ("DisassociateIamInstanceProfile" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "AssociationId" =: _diapAssociationId]++-- | /See:/ 'disassociateIAMInstanceProfileResponse' smart constructor.+data DisassociateIAMInstanceProfileResponse = DisassociateIAMInstanceProfileResponse'+  { _diaprsIAMInstanceProfileAssociation :: !(Maybe IAMInstanceProfileAssociation)+  , _diaprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DisassociateIAMInstanceProfileResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diaprsIAMInstanceProfileAssociation' - Information about the IAM instance profile association.+--+-- * 'diaprsResponseStatus' - -- | The response status code.+disassociateIAMInstanceProfileResponse+    :: Int -- ^ 'diaprsResponseStatus'+    -> DisassociateIAMInstanceProfileResponse+disassociateIAMInstanceProfileResponse pResponseStatus_ =+  DisassociateIAMInstanceProfileResponse'+  { _diaprsIAMInstanceProfileAssociation = Nothing+  , _diaprsResponseStatus = pResponseStatus_+  }+++-- | Information about the IAM instance profile association.+diaprsIAMInstanceProfileAssociation :: Lens' DisassociateIAMInstanceProfileResponse (Maybe IAMInstanceProfileAssociation)+diaprsIAMInstanceProfileAssociation = lens _diaprsIAMInstanceProfileAssociation (\ s a -> s{_diaprsIAMInstanceProfileAssociation = a});++-- | -- | The response status code.+diaprsResponseStatus :: Lens' DisassociateIAMInstanceProfileResponse Int+diaprsResponseStatus = lens _diaprsResponseStatus (\ s a -> s{_diaprsResponseStatus = a});++instance NFData+           DisassociateIAMInstanceProfileResponse+         where
gen/Network/AWS/EC2/DisassociateRouteTable.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DisassociateRouteTable--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , DisassociateRouteTableResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for DisassociateRouteTable. --@@ -50,10 +50,11 @@ -- -- /See:/ 'disassociateRouteTable' smart constructor. data DisassociateRouteTable = DisassociateRouteTable'-    { _drtDryRun        :: !(Maybe Bool)-    , _drtAssociationId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _drtDryRun        :: !(Maybe Bool)+  , _drtAssociationId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateRouteTable' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,10 @@     :: Text -- ^ 'drtAssociationId'     -> DisassociateRouteTable disassociateRouteTable pAssociationId_ =-    DisassociateRouteTable'-    { _drtDryRun = Nothing-    , _drtAssociationId = pAssociationId_-    }+  DisassociateRouteTable'+  {_drtDryRun = Nothing, _drtAssociationId = pAssociationId_} + -- | Checks whether you have the required permissions for the action, 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@ . drtDryRun :: Lens' DisassociateRouteTable (Maybe Bool) drtDryRun = lens _drtDryRun (\ s a -> s{_drtDryRun = a});@@ -85,9 +85,9 @@         response           = receiveNull DisassociateRouteTableResponse' -instance Hashable DisassociateRouteTable+instance Hashable DisassociateRouteTable where -instance NFData DisassociateRouteTable+instance NFData DisassociateRouteTable where  instance ToHeaders DisassociateRouteTable where         toHeaders = const mempty@@ -106,13 +106,15 @@  -- | /See:/ 'disassociateRouteTableResponse' smart constructor. data DisassociateRouteTableResponse =-    DisassociateRouteTableResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  DisassociateRouteTableResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateRouteTableResponse' with the minimum fields required to make a request. -- disassociateRouteTableResponse     :: DisassociateRouteTableResponse disassociateRouteTableResponse = DisassociateRouteTableResponse' -instance NFData DisassociateRouteTableResponse++instance NFData DisassociateRouteTableResponse where
gen/Network/AWS/EC2/DisassociateSubnetCidrBlock.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.DisassociateSubnetCidrBlock--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,18 +38,19 @@     , dscbrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'disassociateSubnetCidrBlock' smart constructor. newtype DisassociateSubnetCidrBlock = DisassociateSubnetCidrBlock'-    { _dscbAssociationId :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscbAssociationId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateSubnetCidrBlock' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +60,9 @@     :: Text -- ^ 'dscbAssociationId'     -> DisassociateSubnetCidrBlock disassociateSubnetCidrBlock pAssociationId_ =-    DisassociateSubnetCidrBlock'-    { _dscbAssociationId = pAssociationId_-    }+  DisassociateSubnetCidrBlock' {_dscbAssociationId = pAssociationId_} + -- | The association ID for the CIDR block. dscbAssociationId :: Lens' DisassociateSubnetCidrBlock Text dscbAssociationId = lens _dscbAssociationId (\ s a -> s{_dscbAssociationId = a});@@ -79,9 +79,9 @@                      (x .@? "ipv6CidrBlockAssociation")                      <*> (pure (fromEnum s))) -instance Hashable DisassociateSubnetCidrBlock+instance Hashable DisassociateSubnetCidrBlock where -instance NFData DisassociateSubnetCidrBlock+instance NFData DisassociateSubnetCidrBlock where  instance ToHeaders DisassociateSubnetCidrBlock where         toHeaders = const mempty@@ -99,11 +99,12 @@  -- | /See:/ 'disassociateSubnetCidrBlockResponse' smart constructor. data DisassociateSubnetCidrBlockResponse = DisassociateSubnetCidrBlockResponse'-    { _dscbrsSubnetId                 :: !(Maybe Text)-    , _dscbrsIPv6CidrBlockAssociation :: !(Maybe SubnetIPv6CidrBlockAssociation)-    , _dscbrsResponseStatus           :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dscbrsSubnetId                 :: !(Maybe Text)+  , _dscbrsIPv6CidrBlockAssociation :: !(Maybe SubnetIPv6CidrBlockAssociation)+  , _dscbrsResponseStatus           :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateSubnetCidrBlockResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -117,12 +118,13 @@     :: Int -- ^ 'dscbrsResponseStatus'     -> DisassociateSubnetCidrBlockResponse disassociateSubnetCidrBlockResponse pResponseStatus_ =-    DisassociateSubnetCidrBlockResponse'-    { _dscbrsSubnetId = Nothing-    , _dscbrsIPv6CidrBlockAssociation = Nothing-    , _dscbrsResponseStatus = pResponseStatus_-    }+  DisassociateSubnetCidrBlockResponse'+  { _dscbrsSubnetId = Nothing+  , _dscbrsIPv6CidrBlockAssociation = Nothing+  , _dscbrsResponseStatus = pResponseStatus_+  } + -- | The ID of the subnet. dscbrsSubnetId :: Lens' DisassociateSubnetCidrBlockResponse (Maybe Text) dscbrsSubnetId = lens _dscbrsSubnetId (\ s a -> s{_dscbrsSubnetId = a});@@ -136,3 +138,4 @@ dscbrsResponseStatus = lens _dscbrsResponseStatus (\ s a -> s{_dscbrsResponseStatus = a});  instance NFData DisassociateSubnetCidrBlockResponse+         where
gen/Network/AWS/EC2/DisassociateVPCCidrBlock.hs view
@@ -12,15 +12,17 @@  -- | -- Module      : Network.AWS.EC2.DisassociateVPCCidrBlock--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Disassociates a CIDR block from a VPC. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.+-- 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 'DescribeVpcs' . 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     (     -- * Creating a Request@@ -34,22 +36,24 @@     , DisassociateVPCCidrBlockResponse     -- * Response Lenses     , dvcbrsVPCId+    , dvcbrsCidrBlockAssociation     , dvcbrsIPv6CidrBlockAssociation     , dvcbrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'disassociateVPCCidrBlock' smart constructor. newtype DisassociateVPCCidrBlock = DisassociateVPCCidrBlock'-    { _dvcbAssociationId :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcbAssociationId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateVPCCidrBlock' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -59,10 +63,9 @@     :: Text -- ^ 'dvcbAssociationId'     -> DisassociateVPCCidrBlock disassociateVPCCidrBlock pAssociationId_ =-    DisassociateVPCCidrBlock'-    { _dvcbAssociationId = pAssociationId_-    }+  DisassociateVPCCidrBlock' {_dvcbAssociationId = pAssociationId_} + -- | The association ID for the CIDR block. dvcbAssociationId :: Lens' DisassociateVPCCidrBlock Text dvcbAssociationId = lens _dvcbAssociationId (\ s a -> s{_dvcbAssociationId = a});@@ -75,13 +78,13 @@           = receiveXML               (\ s h x ->                  DisassociateVPCCidrBlockResponse' <$>-                   (x .@? "vpcId") <*>-                     (x .@? "ipv6CidrBlockAssociation")+                   (x .@? "vpcId") <*> (x .@? "cidrBlockAssociation")+                     <*> (x .@? "ipv6CidrBlockAssociation")                      <*> (pure (fromEnum s))) -instance Hashable DisassociateVPCCidrBlock+instance Hashable DisassociateVPCCidrBlock where -instance NFData DisassociateVPCCidrBlock+instance NFData DisassociateVPCCidrBlock where  instance ToHeaders DisassociateVPCCidrBlock where         toHeaders = const mempty@@ -99,17 +102,21 @@  -- | /See:/ 'disassociateVPCCidrBlockResponse' smart constructor. data DisassociateVPCCidrBlockResponse = DisassociateVPCCidrBlockResponse'-    { _dvcbrsVPCId                    :: !(Maybe Text)-    , _dvcbrsIPv6CidrBlockAssociation :: !(Maybe VPCIPv6CidrBlockAssociation)-    , _dvcbrsResponseStatus           :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _dvcbrsVPCId                    :: !(Maybe Text)+  , _dvcbrsCidrBlockAssociation     :: !(Maybe VPCCidrBlockAssociation)+  , _dvcbrsIPv6CidrBlockAssociation :: !(Maybe VPCIPv6CidrBlockAssociation)+  , _dvcbrsResponseStatus           :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DisassociateVPCCidrBlockResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dvcbrsVPCId' - The ID of the VPC. --+-- * 'dvcbrsCidrBlockAssociation' - Information about the IPv4 CIDR block association.+-- -- * 'dvcbrsIPv6CidrBlockAssociation' - Information about the IPv6 CIDR block association. -- -- * 'dvcbrsResponseStatus' - -- | The response status code.@@ -117,16 +124,22 @@     :: Int -- ^ 'dvcbrsResponseStatus'     -> DisassociateVPCCidrBlockResponse disassociateVPCCidrBlockResponse pResponseStatus_ =-    DisassociateVPCCidrBlockResponse'-    { _dvcbrsVPCId = Nothing-    , _dvcbrsIPv6CidrBlockAssociation = Nothing-    , _dvcbrsResponseStatus = pResponseStatus_-    }+  DisassociateVPCCidrBlockResponse'+  { _dvcbrsVPCId = Nothing+  , _dvcbrsCidrBlockAssociation = Nothing+  , _dvcbrsIPv6CidrBlockAssociation = Nothing+  , _dvcbrsResponseStatus = pResponseStatus_+  } + -- | The ID of the VPC. dvcbrsVPCId :: Lens' DisassociateVPCCidrBlockResponse (Maybe Text) dvcbrsVPCId = lens _dvcbrsVPCId (\ s a -> s{_dvcbrsVPCId = a}); +-- | Information about the IPv4 CIDR block association.+dvcbrsCidrBlockAssociation :: Lens' DisassociateVPCCidrBlockResponse (Maybe VPCCidrBlockAssociation)+dvcbrsCidrBlockAssociation = lens _dvcbrsCidrBlockAssociation (\ s a -> s{_dvcbrsCidrBlockAssociation = a});+ -- | Information about the IPv6 CIDR block association. dvcbrsIPv6CidrBlockAssociation :: Lens' DisassociateVPCCidrBlockResponse (Maybe VPCIPv6CidrBlockAssociation) dvcbrsIPv6CidrBlockAssociation = lens _dvcbrsIPv6CidrBlockAssociation (\ s a -> s{_dvcbrsIPv6CidrBlockAssociation = a});@@ -136,3 +149,4 @@ dvcbrsResponseStatus = lens _dvcbrsResponseStatus (\ s a -> s{_dvcbrsResponseStatus = a});  instance NFData DisassociateVPCCidrBlockResponse+         where
gen/Network/AWS/EC2/EnableVGWRoutePropagation.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.EnableVGWRoutePropagation--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,20 +27,20 @@       enableVGWRoutePropagation     , EnableVGWRoutePropagation     -- * Request Lenses-    , evrpRouteTableId     , evrpGatewayId+    , evrpRouteTableId      -- * Destructuring the Response     , enableVGWRoutePropagationResponse     , EnableVGWRoutePropagationResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for EnableVgwRoutePropagation. --@@ -48,35 +48,35 @@ -- -- /See:/ 'enableVGWRoutePropagation' smart constructor. data EnableVGWRoutePropagation = EnableVGWRoutePropagation'-    { _evrpRouteTableId :: !Text-    , _evrpGatewayId    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _evrpGatewayId    :: !Text+  , _evrpRouteTableId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVGWRoutePropagation' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'evrpRouteTableId' - The ID of the route table.--- -- * 'evrpGatewayId' - The ID of the virtual private gateway.+--+-- * 'evrpRouteTableId' - The ID of the route table. enableVGWRoutePropagation-    :: Text -- ^ 'evrpRouteTableId'-    -> Text -- ^ 'evrpGatewayId'+    :: Text -- ^ 'evrpGatewayId'+    -> Text -- ^ 'evrpRouteTableId'     -> EnableVGWRoutePropagation-enableVGWRoutePropagation pRouteTableId_ pGatewayId_ =-    EnableVGWRoutePropagation'-    { _evrpRouteTableId = pRouteTableId_-    , _evrpGatewayId = pGatewayId_-    }+enableVGWRoutePropagation pGatewayId_ pRouteTableId_ =+  EnableVGWRoutePropagation'+  {_evrpGatewayId = pGatewayId_, _evrpRouteTableId = pRouteTableId_} --- | The ID of the route table.-evrpRouteTableId :: Lens' EnableVGWRoutePropagation Text-evrpRouteTableId = lens _evrpRouteTableId (\ s a -> s{_evrpRouteTableId = a});  -- | The ID of the virtual private gateway. evrpGatewayId :: Lens' EnableVGWRoutePropagation Text evrpGatewayId = lens _evrpGatewayId (\ s a -> s{_evrpGatewayId = a}); +-- | The ID of the route table.+evrpRouteTableId :: Lens' EnableVGWRoutePropagation Text+evrpRouteTableId = lens _evrpRouteTableId (\ s a -> s{_evrpRouteTableId = a});+ instance AWSRequest EnableVGWRoutePropagation where         type Rs EnableVGWRoutePropagation =              EnableVGWRoutePropagationResponse@@ -84,9 +84,9 @@         response           = receiveNull EnableVGWRoutePropagationResponse' -instance Hashable EnableVGWRoutePropagation+instance Hashable EnableVGWRoutePropagation where -instance NFData EnableVGWRoutePropagation+instance NFData EnableVGWRoutePropagation where  instance ToHeaders EnableVGWRoutePropagation where         toHeaders = const mempty@@ -100,18 +100,21 @@               ["Action" =:                  ("EnableVgwRoutePropagation" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "RouteTableId" =: _evrpRouteTableId,-               "GatewayId" =: _evrpGatewayId]+               "GatewayId" =: _evrpGatewayId,+               "RouteTableId" =: _evrpRouteTableId]  -- | /See:/ 'enableVGWRoutePropagationResponse' smart constructor. data EnableVGWRoutePropagationResponse =-    EnableVGWRoutePropagationResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  EnableVGWRoutePropagationResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVGWRoutePropagationResponse' with the minimum fields required to make a request. -- enableVGWRoutePropagationResponse     :: EnableVGWRoutePropagationResponse enableVGWRoutePropagationResponse = EnableVGWRoutePropagationResponse' + instance NFData EnableVGWRoutePropagationResponse+         where
gen/Network/AWS/EC2/EnableVPCClassicLink.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.EnableVPCClassicLink--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- 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 @10.0.0.0/8@ IP address range, excluding local routes for VPCs in the @10.0.0.0/16@ and @10.1.0.0/16@ IP address ranges. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the Amazon Elastic Compute Cloud User Guide.+-- 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 @10.0.0.0/8@ IP address range, excluding local routes for VPCs in the @10.0.0.0/16@ and @10.1.0.0/16@ IP address ranges. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the /Amazon Elastic Compute Cloud User Guide/ . -- -- module Network.AWS.EC2.EnableVPCClassicLink@@ -38,12 +38,12 @@     , evclrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for EnableVpcClassicLink. --@@ -51,10 +51,11 @@ -- -- /See:/ 'enableVPCClassicLink' smart constructor. data EnableVPCClassicLink = EnableVPCClassicLink'-    { _evclDryRun :: !(Maybe Bool)-    , _evclVPCId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _evclDryRun :: !(Maybe Bool)+  , _evclVPCId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVPCClassicLink' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,11 +67,9 @@     :: Text -- ^ 'evclVPCId'     -> EnableVPCClassicLink enableVPCClassicLink pVPCId_ =-    EnableVPCClassicLink'-    { _evclDryRun = Nothing-    , _evclVPCId = pVPCId_-    }+  EnableVPCClassicLink' {_evclDryRun = Nothing, _evclVPCId = pVPCId_} + -- | Checks whether you have the required permissions for the action, 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@ . evclDryRun :: Lens' EnableVPCClassicLink (Maybe Bool) evclDryRun = lens _evclDryRun (\ s a -> s{_evclDryRun = a});@@ -89,9 +88,9 @@                  EnableVPCClassicLinkResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable EnableVPCClassicLink+instance Hashable EnableVPCClassicLink where -instance NFData EnableVPCClassicLink+instance NFData EnableVPCClassicLink where  instance ToHeaders EnableVPCClassicLink where         toHeaders = const mempty@@ -112,10 +111,11 @@ -- -- /See:/ 'enableVPCClassicLinkResponse' smart constructor. data EnableVPCClassicLinkResponse = EnableVPCClassicLinkResponse'-    { _evclrsReturn         :: !(Maybe Bool)-    , _evclrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _evclrsReturn         :: !(Maybe Bool)+  , _evclrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVPCClassicLinkResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -127,11 +127,10 @@     :: Int -- ^ 'evclrsResponseStatus'     -> EnableVPCClassicLinkResponse enableVPCClassicLinkResponse pResponseStatus_ =-    EnableVPCClassicLinkResponse'-    { _evclrsReturn = Nothing-    , _evclrsResponseStatus = pResponseStatus_-    }+  EnableVPCClassicLinkResponse'+  {_evclrsReturn = Nothing, _evclrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. evclrsReturn :: Lens' EnableVPCClassicLinkResponse (Maybe Bool) evclrsReturn = lens _evclrsReturn (\ s a -> s{_evclrsReturn = a});@@ -140,4 +139,4 @@ evclrsResponseStatus :: Lens' EnableVPCClassicLinkResponse Int evclrsResponseStatus = lens _evclrsResponseStatus (\ s a -> s{_evclrsResponseStatus = a}); -instance NFData EnableVPCClassicLinkResponse+instance NFData EnableVPCClassicLinkResponse where
gen/Network/AWS/EC2/EnableVPCClassicLinkDNSSupport.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.EnableVPCClassicLinkDNSSupport--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@     , evcldsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for EnableVpcClassicLinkDnsSupport. --@@ -50,9 +50,10 @@ -- -- /See:/ 'enableVPCClassicLinkDNSSupport' smart constructor. newtype EnableVPCClassicLinkDNSSupport = EnableVPCClassicLinkDNSSupport'-    { _evcldsVPCId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _evcldsVPCId :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVPCClassicLinkDNSSupport' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -61,10 +62,9 @@ enableVPCClassicLinkDNSSupport     :: EnableVPCClassicLinkDNSSupport enableVPCClassicLinkDNSSupport =-    EnableVPCClassicLinkDNSSupport'-    { _evcldsVPCId = Nothing-    }+  EnableVPCClassicLinkDNSSupport' {_evcldsVPCId = Nothing} + -- | The ID of the VPC. evcldsVPCId :: Lens' EnableVPCClassicLinkDNSSupport (Maybe Text) evcldsVPCId = lens _evcldsVPCId (\ s a -> s{_evcldsVPCId = a});@@ -81,8 +81,9 @@                    (x .@? "return") <*> (pure (fromEnum s)))  instance Hashable EnableVPCClassicLinkDNSSupport+         where -instance NFData EnableVPCClassicLinkDNSSupport+instance NFData EnableVPCClassicLinkDNSSupport where  instance ToHeaders EnableVPCClassicLinkDNSSupport          where@@ -105,10 +106,11 @@ -- -- /See:/ 'enableVPCClassicLinkDNSSupportResponse' smart constructor. data EnableVPCClassicLinkDNSSupportResponse = EnableVPCClassicLinkDNSSupportResponse'-    { _evcldsrsReturn         :: !(Maybe Bool)-    , _evcldsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _evcldsrsReturn         :: !(Maybe Bool)+  , _evcldsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVPCClassicLinkDNSSupportResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -120,11 +122,10 @@     :: Int -- ^ 'evcldsrsResponseStatus'     -> EnableVPCClassicLinkDNSSupportResponse enableVPCClassicLinkDNSSupportResponse pResponseStatus_ =-    EnableVPCClassicLinkDNSSupportResponse'-    { _evcldsrsReturn = Nothing-    , _evcldsrsResponseStatus = pResponseStatus_-    }+  EnableVPCClassicLinkDNSSupportResponse'+  {_evcldsrsReturn = Nothing, _evcldsrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. evcldsrsReturn :: Lens' EnableVPCClassicLinkDNSSupportResponse (Maybe Bool) evcldsrsReturn = lens _evcldsrsReturn (\ s a -> s{_evcldsrsReturn = a});@@ -134,4 +135,5 @@ evcldsrsResponseStatus = lens _evcldsrsResponseStatus (\ s a -> s{_evcldsrsResponseStatus = a});  instance NFData-         EnableVPCClassicLinkDNSSupportResponse+           EnableVPCClassicLinkDNSSupportResponse+         where
gen/Network/AWS/EC2/EnableVolumeIO.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.EnableVolumeIO--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , EnableVolumeIOResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for EnableVolumeIO. --@@ -48,10 +48,11 @@ -- -- /See:/ 'enableVolumeIO' smart constructor. data EnableVolumeIO = EnableVolumeIO'-    { _evioDryRun   :: !(Maybe Bool)-    , _evioVolumeId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _evioDryRun   :: !(Maybe Bool)+  , _evioVolumeId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVolumeIO' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,9 @@     :: Text -- ^ 'evioVolumeId'     -> EnableVolumeIO enableVolumeIO pVolumeId_ =-    EnableVolumeIO'-    { _evioDryRun = Nothing-    , _evioVolumeId = pVolumeId_-    }+  EnableVolumeIO' {_evioDryRun = Nothing, _evioVolumeId = pVolumeId_} + -- | Checks whether you have the required permissions for the action, 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@ . evioDryRun :: Lens' EnableVolumeIO (Maybe Bool) evioDryRun = lens _evioDryRun (\ s a -> s{_evioDryRun = a});@@ -81,9 +80,9 @@         request = postQuery ec2         response = receiveNull EnableVolumeIOResponse' -instance Hashable EnableVolumeIO+instance Hashable EnableVolumeIO where -instance NFData EnableVolumeIO+instance NFData EnableVolumeIO where  instance ToHeaders EnableVolumeIO where         toHeaders = const mempty@@ -100,13 +99,15 @@  -- | /See:/ 'enableVolumeIOResponse' smart constructor. data EnableVolumeIOResponse =-    EnableVolumeIOResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  EnableVolumeIOResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'EnableVolumeIOResponse' with the minimum fields required to make a request. -- enableVolumeIOResponse     :: EnableVolumeIOResponse enableVolumeIOResponse = EnableVolumeIOResponse' -instance NFData EnableVolumeIOResponse++instance NFData EnableVolumeIOResponse where
gen/Network/AWS/EC2/GetConsoleOutput.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.GetConsoleOutput--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,7 +23,7 @@ -- -- Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface. ----- Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post.+-- Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output, which is available for at least one hour after the most recent post. -- -- For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it. --@@ -48,12 +48,12 @@     , gcorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for GetConsoleOutput. --@@ -61,10 +61,11 @@ -- -- /See:/ 'getConsoleOutput' smart constructor. data GetConsoleOutput = GetConsoleOutput'-    { _gcoDryRun     :: !(Maybe Bool)-    , _gcoInstanceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _gcoDryRun     :: !(Maybe Bool)+  , _gcoInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetConsoleOutput' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +77,9 @@     :: Text -- ^ 'gcoInstanceId'     -> GetConsoleOutput getConsoleOutput pInstanceId_ =-    GetConsoleOutput'-    { _gcoDryRun = Nothing-    , _gcoInstanceId = pInstanceId_-    }+  GetConsoleOutput' {_gcoDryRun = Nothing, _gcoInstanceId = pInstanceId_} + -- | Checks whether you have the required permissions for the action, 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@ . gcoDryRun :: Lens' GetConsoleOutput (Maybe Bool) gcoDryRun = lens _gcoDryRun (\ s a -> s{_gcoDryRun = a});@@ -100,9 +99,9 @@                      (x .@? "timestamp")                      <*> (pure (fromEnum s))) -instance Hashable GetConsoleOutput+instance Hashable GetConsoleOutput where -instance NFData GetConsoleOutput+instance NFData GetConsoleOutput where  instance ToHeaders GetConsoleOutput where         toHeaders = const mempty@@ -124,12 +123,13 @@ -- -- /See:/ 'getConsoleOutputResponse' smart constructor. data GetConsoleOutputResponse = GetConsoleOutputResponse'-    { _gcorsInstanceId     :: !(Maybe Text)-    , _gcorsOutput         :: !(Maybe Text)-    , _gcorsTimestamp      :: !(Maybe ISO8601)-    , _gcorsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _gcorsInstanceId     :: !(Maybe Text)+  , _gcorsOutput         :: !(Maybe Text)+  , _gcorsTimestamp      :: !(Maybe ISO8601)+  , _gcorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetConsoleOutputResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -145,13 +145,14 @@     :: Int -- ^ 'gcorsResponseStatus'     -> GetConsoleOutputResponse getConsoleOutputResponse pResponseStatus_ =-    GetConsoleOutputResponse'-    { _gcorsInstanceId = Nothing-    , _gcorsOutput = Nothing-    , _gcorsTimestamp = Nothing-    , _gcorsResponseStatus = pResponseStatus_-    }+  GetConsoleOutputResponse'+  { _gcorsInstanceId = Nothing+  , _gcorsOutput = Nothing+  , _gcorsTimestamp = Nothing+  , _gcorsResponseStatus = pResponseStatus_+  } + -- | The ID of the instance. gcorsInstanceId :: Lens' GetConsoleOutputResponse (Maybe Text) gcorsInstanceId = lens _gcorsInstanceId (\ s a -> s{_gcorsInstanceId = a});@@ -168,4 +169,4 @@ gcorsResponseStatus :: Lens' GetConsoleOutputResponse Int gcorsResponseStatus = lens _gcorsResponseStatus (\ s a -> s{_gcorsResponseStatus = a}); -instance NFData GetConsoleOutputResponse+instance NFData GetConsoleOutputResponse where
gen/Network/AWS/EC2/GetConsoleScreenshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.GetConsoleScreenshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , gcsrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for the request. --@@ -55,11 +55,12 @@ -- -- /See:/ 'getConsoleScreenshot' smart constructor. data GetConsoleScreenshot = GetConsoleScreenshot'-    { _gcsWakeUp     :: !(Maybe Bool)-    , _gcsDryRun     :: !(Maybe Bool)-    , _gcsInstanceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _gcsWakeUp     :: !(Maybe Bool)+  , _gcsDryRun     :: !(Maybe Bool)+  , _gcsInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetConsoleScreenshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,10 @@     :: Text -- ^ 'gcsInstanceId'     -> GetConsoleScreenshot getConsoleScreenshot pInstanceId_ =-    GetConsoleScreenshot'-    { _gcsWakeUp = Nothing-    , _gcsDryRun = Nothing-    , _gcsInstanceId = pInstanceId_-    }+  GetConsoleScreenshot'+  {_gcsWakeUp = Nothing, _gcsDryRun = Nothing, _gcsInstanceId = pInstanceId_} + -- | When set to @true@ , acts as keystroke input and wakes up an instance that's in standby or "sleep" mode. gcsWakeUp :: Lens' GetConsoleScreenshot (Maybe Bool) gcsWakeUp = lens _gcsWakeUp (\ s a -> s{_gcsWakeUp = a});@@ -102,9 +101,9 @@                    (x .@? "instanceId") <*> (x .@? "imageData") <*>                      (pure (fromEnum s))) -instance Hashable GetConsoleScreenshot+instance Hashable GetConsoleScreenshot where -instance NFData GetConsoleScreenshot+instance NFData GetConsoleScreenshot where  instance ToHeaders GetConsoleScreenshot where         toHeaders = const mempty@@ -126,11 +125,12 @@ -- -- /See:/ 'getConsoleScreenshotResponse' smart constructor. data GetConsoleScreenshotResponse = GetConsoleScreenshotResponse'-    { _gcsrsInstanceId     :: !(Maybe Text)-    , _gcsrsImageData      :: !(Maybe Text)-    , _gcsrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _gcsrsInstanceId     :: !(Maybe Text)+  , _gcsrsImageData      :: !(Maybe Text)+  , _gcsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetConsoleScreenshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,12 +144,13 @@     :: Int -- ^ 'gcsrsResponseStatus'     -> GetConsoleScreenshotResponse getConsoleScreenshotResponse pResponseStatus_ =-    GetConsoleScreenshotResponse'-    { _gcsrsInstanceId = Nothing-    , _gcsrsImageData = Nothing-    , _gcsrsResponseStatus = pResponseStatus_-    }+  GetConsoleScreenshotResponse'+  { _gcsrsInstanceId = Nothing+  , _gcsrsImageData = Nothing+  , _gcsrsResponseStatus = pResponseStatus_+  } + -- | The ID of the instance. gcsrsInstanceId :: Lens' GetConsoleScreenshotResponse (Maybe Text) gcsrsInstanceId = lens _gcsrsInstanceId (\ s a -> s{_gcsrsInstanceId = a});@@ -162,4 +163,4 @@ gcsrsResponseStatus :: Lens' GetConsoleScreenshotResponse Int gcsrsResponseStatus = lens _gcsrsResponseStatus (\ s a -> s{_gcsrsResponseStatus = a}); -instance NFData GetConsoleScreenshotResponse+instance NFData GetConsoleScreenshotResponse where
gen/Network/AWS/EC2/GetHostReservationPurchasePreview.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.GetHostReservationPurchasePreview--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -29,8 +29,8 @@       getHostReservationPurchasePreview     , GetHostReservationPurchasePreview     -- * Request Lenses-    , ghrppOfferingId     , ghrppHostIdSet+    , ghrppOfferingId      -- * Destructuring the Response     , getHostReservationPurchasePreviewResponse@@ -43,43 +43,43 @@     , ghrpprsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'getHostReservationPurchasePreview' smart constructor. data GetHostReservationPurchasePreview = GetHostReservationPurchasePreview'-    { _ghrppOfferingId :: !Text-    , _ghrppHostIdSet  :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ghrppHostIdSet  :: ![Text]+  , _ghrppOfferingId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetHostReservationPurchasePreview' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'ghrppOfferingId' - The offering ID of the reservation.--- -- * 'ghrppHostIdSet' - The ID/s of the Dedicated Host/s that the reservation will be associated with.+--+-- * 'ghrppOfferingId' - The offering ID of the reservation. getHostReservationPurchasePreview     :: Text -- ^ 'ghrppOfferingId'     -> GetHostReservationPurchasePreview getHostReservationPurchasePreview pOfferingId_ =-    GetHostReservationPurchasePreview'-    { _ghrppOfferingId = pOfferingId_-    , _ghrppHostIdSet = mempty-    }+  GetHostReservationPurchasePreview'+  {_ghrppHostIdSet = mempty, _ghrppOfferingId = pOfferingId_} --- | The offering ID of the reservation.-ghrppOfferingId :: Lens' GetHostReservationPurchasePreview Text-ghrppOfferingId = lens _ghrppOfferingId (\ s a -> s{_ghrppOfferingId = a});  -- | The ID/s of the Dedicated Host/s that the reservation will be associated with. ghrppHostIdSet :: Lens' GetHostReservationPurchasePreview [Text] ghrppHostIdSet = lens _ghrppHostIdSet (\ s a -> s{_ghrppHostIdSet = a}) . _Coerce; +-- | The offering ID of the reservation.+ghrppOfferingId :: Lens' GetHostReservationPurchasePreview Text+ghrppOfferingId = lens _ghrppOfferingId (\ s a -> s{_ghrppOfferingId = a});+ instance AWSRequest GetHostReservationPurchasePreview          where         type Rs GetHostReservationPurchasePreview =@@ -93,12 +93,14 @@                      <*> (x .@? "totalUpfrontPrice")                      <*>                      (x .@? "purchase" .!@ mempty >>=-                        may (parseXMLList "member"))+                        may (parseXMLList "item"))                      <*> (pure (fromEnum s)))  instance Hashable GetHostReservationPurchasePreview+         where  instance NFData GetHostReservationPurchasePreview+         where  instance ToHeaders GetHostReservationPurchasePreview          where@@ -115,18 +117,19 @@               ["Action" =:                  ("GetHostReservationPurchasePreview" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "OfferingId" =: _ghrppOfferingId,-               toQueryList "HostIdSet" _ghrppHostIdSet]+               toQueryList "HostIdSet" _ghrppHostIdSet,+               "OfferingId" =: _ghrppOfferingId]  -- | /See:/ 'getHostReservationPurchasePreviewResponse' smart constructor. data GetHostReservationPurchasePreviewResponse = GetHostReservationPurchasePreviewResponse'-    { _ghrpprsCurrencyCode      :: !(Maybe CurrencyCodeValues)-    , _ghrpprsTotalHourlyPrice  :: !(Maybe Text)-    , _ghrpprsTotalUpfrontPrice :: !(Maybe Text)-    , _ghrpprsPurchase          :: !(Maybe [Purchase])-    , _ghrpprsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ghrpprsCurrencyCode      :: !(Maybe CurrencyCodeValues)+  , _ghrpprsTotalHourlyPrice  :: !(Maybe Text)+  , _ghrpprsTotalUpfrontPrice :: !(Maybe Text)+  , _ghrpprsPurchase          :: !(Maybe [Purchase])+  , _ghrpprsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetHostReservationPurchasePreviewResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,14 +147,15 @@     :: Int -- ^ 'ghrpprsResponseStatus'     -> GetHostReservationPurchasePreviewResponse getHostReservationPurchasePreviewResponse pResponseStatus_ =-    GetHostReservationPurchasePreviewResponse'-    { _ghrpprsCurrencyCode = Nothing-    , _ghrpprsTotalHourlyPrice = Nothing-    , _ghrpprsTotalUpfrontPrice = Nothing-    , _ghrpprsPurchase = Nothing-    , _ghrpprsResponseStatus = pResponseStatus_-    }+  GetHostReservationPurchasePreviewResponse'+  { _ghrpprsCurrencyCode = Nothing+  , _ghrpprsTotalHourlyPrice = Nothing+  , _ghrpprsTotalUpfrontPrice = Nothing+  , _ghrpprsPurchase = Nothing+  , _ghrpprsResponseStatus = pResponseStatus_+  } + -- | The currency in which the @totalUpfrontPrice@ and @totalHourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ . ghrpprsCurrencyCode :: Lens' GetHostReservationPurchasePreviewResponse (Maybe CurrencyCodeValues) ghrpprsCurrencyCode = lens _ghrpprsCurrencyCode (\ s a -> s{_ghrpprsCurrencyCode = a});@@ -173,4 +177,5 @@ ghrpprsResponseStatus = lens _ghrpprsResponseStatus (\ s a -> s{_ghrpprsResponseStatus = a});  instance NFData-         GetHostReservationPurchasePreviewResponse+           GetHostReservationPurchasePreviewResponse+         where
gen/Network/AWS/EC2/GetPasswordData.hs view
@@ -12,20 +12,22 @@  -- | -- Module      : Network.AWS.EC2.GetPasswordData--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Retrieves the encrypted administrator password for an instance running Windows.+-- Retrieves the encrypted administrator password for a running Windows instance. -- ----- The Windows password is generated at boot if the @EC2Config@ service plugin, @Ec2SetPassword@ , is enabled. This usually only happens the first time an AMI is launched, and then @Ec2SetPassword@ is automatically disabled. The password is not generated for rebundled AMIs unless @Ec2SetPassword@ is enabled before bundling.+-- The Windows password is generated at boot by the @EC2Config@ service or @EC2Launch@ scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html EC2Config> and <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html EC2Launch> in the Amazon Elastic Compute Cloud User Guide. --+-- For the @EC2Config@ service, the password is not generated for rebundled AMIs unless @Ec2SetPassword@ is enabled before bundling.+-- -- The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file. ----- Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.+-- 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     (@@ -46,12 +48,12 @@     , gpdrsTimestamp     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for GetPasswordData. --@@ -59,10 +61,11 @@ -- -- /See:/ 'getPasswordData' smart constructor. data GetPasswordData = GetPasswordData'-    { _gpdDryRun     :: !(Maybe Bool)-    , _gpdInstanceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _gpdDryRun     :: !(Maybe Bool)+  , _gpdInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetPasswordData' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,11 +77,9 @@     :: Text -- ^ 'gpdInstanceId'     -> GetPasswordData getPasswordData pInstanceId_ =-    GetPasswordData'-    { _gpdDryRun = Nothing-    , _gpdInstanceId = pInstanceId_-    }+  GetPasswordData' {_gpdDryRun = Nothing, _gpdInstanceId = pInstanceId_} + -- | Checks whether you have the required permissions for the action, 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@ . gpdDryRun :: Lens' GetPasswordData (Maybe Bool) gpdDryRun = lens _gpdDryRun (\ s a -> s{_gpdDryRun = a});@@ -98,9 +99,9 @@                      (x .@ "passwordData")                      <*> (x .@ "timestamp")) -instance Hashable GetPasswordData+instance Hashable GetPasswordData where -instance NFData GetPasswordData+instance NFData GetPasswordData where  instance ToHeaders GetPasswordData where         toHeaders = const mempty@@ -122,12 +123,13 @@ -- -- /See:/ 'getPasswordDataResponse' smart constructor. data GetPasswordDataResponse = GetPasswordDataResponse'-    { _gpdrsResponseStatus :: !Int-    , _gpdrsInstanceId     :: !Text-    , _gpdrsPasswordData   :: !Text-    , _gpdrsTimestamp      :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _gpdrsResponseStatus :: !Int+  , _gpdrsInstanceId     :: !Text+  , _gpdrsPasswordData   :: !Text+  , _gpdrsTimestamp      :: !ISO8601+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetPasswordDataResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -136,7 +138,7 @@ -- -- * 'gpdrsInstanceId' - The ID of the Windows instance. ----- * 'gpdrsPasswordData' - The password of the instance.+-- * 'gpdrsPasswordData' - The password of the instance. Returns an empty string if the password is not available. -- -- * 'gpdrsTimestamp' - The time the data was last updated. getPasswordDataResponse@@ -146,13 +148,14 @@     -> UTCTime -- ^ 'gpdrsTimestamp'     -> GetPasswordDataResponse getPasswordDataResponse pResponseStatus_ pInstanceId_ pPasswordData_ pTimestamp_ =-    GetPasswordDataResponse'-    { _gpdrsResponseStatus = pResponseStatus_-    , _gpdrsInstanceId = pInstanceId_-    , _gpdrsPasswordData = pPasswordData_-    , _gpdrsTimestamp = _Time # pTimestamp_-    }+  GetPasswordDataResponse'+  { _gpdrsResponseStatus = pResponseStatus_+  , _gpdrsInstanceId = pInstanceId_+  , _gpdrsPasswordData = pPasswordData_+  , _gpdrsTimestamp = _Time # pTimestamp_+  } + -- | -- | The response status code. gpdrsResponseStatus :: Lens' GetPasswordDataResponse Int gpdrsResponseStatus = lens _gpdrsResponseStatus (\ s a -> s{_gpdrsResponseStatus = a});@@ -161,7 +164,7 @@ gpdrsInstanceId :: Lens' GetPasswordDataResponse Text gpdrsInstanceId = lens _gpdrsInstanceId (\ s a -> s{_gpdrsInstanceId = a}); --- | The password of the instance.+-- | The password of the instance. Returns an empty string if the password is not available. gpdrsPasswordData :: Lens' GetPasswordDataResponse Text gpdrsPasswordData = lens _gpdrsPasswordData (\ s a -> s{_gpdrsPasswordData = a}); @@ -169,4 +172,4 @@ gpdrsTimestamp :: Lens' GetPasswordDataResponse UTCTime gpdrsTimestamp = lens _gpdrsTimestamp (\ s a -> s{_gpdrsTimestamp = a}) . _Time; -instance NFData GetPasswordDataResponse+instance NFData GetPasswordDataResponse where
gen/Network/AWS/EC2/GetReservedInstancesExchangeQuote.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.GetReservedInstancesExchangeQuote--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Returns details about the values and term of your specified Convertible Reserved Instances. When a target configuration is specified, it returns information about whether the exchange is valid and can be performed.+-- 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 'AcceptReservedInstancesExchangeQuote' to perform the exchange. -- -- module Network.AWS.EC2.GetReservedInstancesExchangeQuote@@ -47,12 +47,12 @@     , grieqrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for GetReservedInstanceExchangeQuote. --@@ -60,16 +60,17 @@ -- -- /See:/ 'getReservedInstancesExchangeQuote' smart constructor. data GetReservedInstancesExchangeQuote = GetReservedInstancesExchangeQuote'-    { _grieqTargetConfigurations :: !(Maybe [TargetConfigurationRequest])-    , _grieqDryRun               :: !(Maybe Bool)-    , _grieqReservedInstanceIds  :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _grieqTargetConfigurations :: !(Maybe [TargetConfigurationRequest])+  , _grieqDryRun               :: !(Maybe Bool)+  , _grieqReservedInstanceIds  :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetReservedInstancesExchangeQuote' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'grieqTargetConfigurations' - The configuration requirements of the Convertible Reserved Instances to exchange for your current Convertible Reserved Instances.+-- * 'grieqTargetConfigurations' - The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances. -- -- * 'grieqDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -77,13 +78,14 @@ getReservedInstancesExchangeQuote     :: GetReservedInstancesExchangeQuote getReservedInstancesExchangeQuote =-    GetReservedInstancesExchangeQuote'-    { _grieqTargetConfigurations = Nothing-    , _grieqDryRun = Nothing-    , _grieqReservedInstanceIds = mempty-    }+  GetReservedInstancesExchangeQuote'+  { _grieqTargetConfigurations = Nothing+  , _grieqDryRun = Nothing+  , _grieqReservedInstanceIds = mempty+  } --- | The configuration requirements of the Convertible Reserved Instances to exchange for your current Convertible Reserved Instances.++-- | The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances. grieqTargetConfigurations :: Lens' GetReservedInstancesExchangeQuote [TargetConfigurationRequest] grieqTargetConfigurations = lens _grieqTargetConfigurations (\ s a -> s{_grieqTargetConfigurations = a}) . _Default . _Coerce; @@ -120,8 +122,10 @@                      <*> (pure (fromEnum s)))  instance Hashable GetReservedInstancesExchangeQuote+         where  instance NFData GetReservedInstancesExchangeQuote+         where  instance ToHeaders GetReservedInstancesExchangeQuote          where@@ -151,31 +155,32 @@ -- -- /See:/ 'getReservedInstancesExchangeQuoteResponse' smart constructor. data GetReservedInstancesExchangeQuoteResponse = GetReservedInstancesExchangeQuoteResponse'-    { _grieqrsValidationFailureReason             :: !(Maybe Text)-    , _grieqrsTargetConfigurationValueRollup      :: !(Maybe ReservationValue)-    , _grieqrsCurrencyCode                        :: !(Maybe Text)-    , _grieqrsTargetConfigurationValueSet         :: !(Maybe [TargetReservationValue])-    , _grieqrsReservedInstanceValueRollup         :: !(Maybe ReservationValue)-    , _grieqrsOutputReservedInstancesWillExpireAt :: !(Maybe ISO8601)-    , _grieqrsReservedInstanceValueSet            :: !(Maybe [ReservedInstanceReservationValue])-    , _grieqrsIsValidExchange                     :: !(Maybe Bool)-    , _grieqrsPaymentDue                          :: !(Maybe Text)-    , _grieqrsResponseStatus                      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _grieqrsValidationFailureReason :: !(Maybe Text)+  , _grieqrsTargetConfigurationValueRollup :: !(Maybe ReservationValue)+  , _grieqrsCurrencyCode :: !(Maybe Text)+  , _grieqrsTargetConfigurationValueSet :: !(Maybe [TargetReservationValue])+  , _grieqrsReservedInstanceValueRollup :: !(Maybe ReservationValue)+  , _grieqrsOutputReservedInstancesWillExpireAt :: !(Maybe ISO8601)+  , _grieqrsReservedInstanceValueSet :: !(Maybe [ReservedInstanceReservationValue])+  , _grieqrsIsValidExchange :: !(Maybe Bool)+  , _grieqrsPaymentDue :: !(Maybe Text)+  , _grieqrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetReservedInstancesExchangeQuoteResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'grieqrsValidationFailureReason' - Describes the reason why the exchange cannot be completed. ----- * 'grieqrsTargetConfigurationValueRollup' - Undocumented member.+-- * 'grieqrsTargetConfigurationValueRollup' - The cost associated with the Reserved Instance. -- -- * 'grieqrsCurrencyCode' - The currency of the transaction. -- -- * 'grieqrsTargetConfigurationValueSet' - The values of the target Convertible Reserved Instances. ----- * 'grieqrsReservedInstanceValueRollup' - Undocumented member.+-- * 'grieqrsReservedInstanceValueRollup' - The cost associated with the Reserved Instance. -- -- * 'grieqrsOutputReservedInstancesWillExpireAt' - The new end date of the reservation term. --@@ -190,24 +195,25 @@     :: Int -- ^ 'grieqrsResponseStatus'     -> GetReservedInstancesExchangeQuoteResponse getReservedInstancesExchangeQuoteResponse pResponseStatus_ =-    GetReservedInstancesExchangeQuoteResponse'-    { _grieqrsValidationFailureReason = Nothing-    , _grieqrsTargetConfigurationValueRollup = Nothing-    , _grieqrsCurrencyCode = Nothing-    , _grieqrsTargetConfigurationValueSet = Nothing-    , _grieqrsReservedInstanceValueRollup = Nothing-    , _grieqrsOutputReservedInstancesWillExpireAt = Nothing-    , _grieqrsReservedInstanceValueSet = Nothing-    , _grieqrsIsValidExchange = Nothing-    , _grieqrsPaymentDue = Nothing-    , _grieqrsResponseStatus = pResponseStatus_-    }+  GetReservedInstancesExchangeQuoteResponse'+  { _grieqrsValidationFailureReason = Nothing+  , _grieqrsTargetConfigurationValueRollup = Nothing+  , _grieqrsCurrencyCode = Nothing+  , _grieqrsTargetConfigurationValueSet = Nothing+  , _grieqrsReservedInstanceValueRollup = Nothing+  , _grieqrsOutputReservedInstancesWillExpireAt = Nothing+  , _grieqrsReservedInstanceValueSet = Nothing+  , _grieqrsIsValidExchange = Nothing+  , _grieqrsPaymentDue = Nothing+  , _grieqrsResponseStatus = pResponseStatus_+  } + -- | Describes the reason why the exchange cannot be completed. grieqrsValidationFailureReason :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text) grieqrsValidationFailureReason = lens _grieqrsValidationFailureReason (\ s a -> s{_grieqrsValidationFailureReason = a}); --- | Undocumented member.+-- | The cost associated with the Reserved Instance. grieqrsTargetConfigurationValueRollup :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe ReservationValue) grieqrsTargetConfigurationValueRollup = lens _grieqrsTargetConfigurationValueRollup (\ s a -> s{_grieqrsTargetConfigurationValueRollup = a}); @@ -219,7 +225,7 @@ grieqrsTargetConfigurationValueSet :: Lens' GetReservedInstancesExchangeQuoteResponse [TargetReservationValue] grieqrsTargetConfigurationValueSet = lens _grieqrsTargetConfigurationValueSet (\ s a -> s{_grieqrsTargetConfigurationValueSet = a}) . _Default . _Coerce; --- | Undocumented member.+-- | The cost associated with the Reserved Instance. grieqrsReservedInstanceValueRollup :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe ReservationValue) grieqrsReservedInstanceValueRollup = lens _grieqrsReservedInstanceValueRollup (\ s a -> s{_grieqrsReservedInstanceValueRollup = a}); @@ -244,4 +250,5 @@ grieqrsResponseStatus = lens _grieqrsResponseStatus (\ s a -> s{_grieqrsResponseStatus = a});  instance NFData-         GetReservedInstancesExchangeQuoteResponse+           GetReservedInstancesExchangeQuoteResponse+         where
gen/Network/AWS/EC2/ImportImage.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ImportImage--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -56,12 +56,12 @@     , irsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ImportImage. --@@ -69,18 +69,19 @@ -- -- /See:/ 'importImage' smart constructor. data ImportImage = ImportImage'-    { _impHypervisor     :: !(Maybe Text)-    , _impPlatform       :: !(Maybe Text)-    , _impClientToken    :: !(Maybe Text)-    , _impLicenseType    :: !(Maybe Text)-    , _impRoleName       :: !(Maybe Text)-    , _impArchitecture   :: !(Maybe Text)-    , _impDescription    :: !(Maybe Text)-    , _impDryRun         :: !(Maybe Bool)-    , _impClientData     :: !(Maybe ClientData)-    , _impDiskContainers :: !(Maybe [ImageDiskContainer])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _impHypervisor     :: !(Maybe Text)+  , _impPlatform       :: !(Maybe Text)+  , _impClientToken    :: !(Maybe Text)+  , _impLicenseType    :: !(Maybe Text)+  , _impRoleName       :: !(Maybe Text)+  , _impArchitecture   :: !(Maybe Text)+  , _impDescription    :: !(Maybe Text)+  , _impDryRun         :: !(Maybe Bool)+  , _impClientData     :: !(Maybe ClientData)+  , _impDiskContainers :: !(Maybe [ImageDiskContainer])+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportImage' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -107,19 +108,20 @@ importImage     :: ImportImage importImage =-    ImportImage'-    { _impHypervisor = Nothing-    , _impPlatform = Nothing-    , _impClientToken = Nothing-    , _impLicenseType = Nothing-    , _impRoleName = Nothing-    , _impArchitecture = Nothing-    , _impDescription = Nothing-    , _impDryRun = Nothing-    , _impClientData = Nothing-    , _impDiskContainers = Nothing-    }+  ImportImage'+  { _impHypervisor = Nothing+  , _impPlatform = Nothing+  , _impClientToken = Nothing+  , _impLicenseType = Nothing+  , _impRoleName = Nothing+  , _impArchitecture = Nothing+  , _impDescription = Nothing+  , _impDryRun = Nothing+  , _impClientData = Nothing+  , _impDiskContainers = Nothing+  } + -- | The target hypervisor platform. Valid values: @xen@ impHypervisor :: Lens' ImportImage (Maybe Text) impHypervisor = lens _impHypervisor (\ s a -> s{_impHypervisor = a});@@ -181,9 +183,9 @@                      <*> (x .@? "description")                      <*> (pure (fromEnum s))) -instance Hashable ImportImage+instance Hashable ImportImage where -instance NFData ImportImage+instance NFData ImportImage where  instance ToHeaders ImportImage where         toHeaders = const mempty@@ -214,20 +216,21 @@ -- -- /See:/ 'importImageResponse' smart constructor. data ImportImageResponse = ImportImageResponse'-    { _irsStatus          :: !(Maybe Text)-    , _irsHypervisor      :: !(Maybe Text)-    , _irsPlatform        :: !(Maybe Text)-    , _irsProgress        :: !(Maybe Text)-    , _irsLicenseType     :: !(Maybe Text)-    , _irsSnapshotDetails :: !(Maybe [SnapshotDetail])-    , _irsStatusMessage   :: !(Maybe Text)-    , _irsImageId         :: !(Maybe Text)-    , _irsImportTaskId    :: !(Maybe Text)-    , _irsArchitecture    :: !(Maybe Text)-    , _irsDescription     :: !(Maybe Text)-    , _irsResponseStatus  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _irsStatus          :: !(Maybe Text)+  , _irsHypervisor      :: !(Maybe Text)+  , _irsPlatform        :: !(Maybe Text)+  , _irsProgress        :: !(Maybe Text)+  , _irsLicenseType     :: !(Maybe Text)+  , _irsSnapshotDetails :: !(Maybe [SnapshotDetail])+  , _irsStatusMessage   :: !(Maybe Text)+  , _irsImageId         :: !(Maybe Text)+  , _irsImportTaskId    :: !(Maybe Text)+  , _irsArchitecture    :: !(Maybe Text)+  , _irsDescription     :: !(Maybe Text)+  , _irsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportImageResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -259,21 +262,22 @@     :: Int -- ^ 'irsResponseStatus'     -> ImportImageResponse importImageResponse pResponseStatus_ =-    ImportImageResponse'-    { _irsStatus = Nothing-    , _irsHypervisor = Nothing-    , _irsPlatform = Nothing-    , _irsProgress = Nothing-    , _irsLicenseType = Nothing-    , _irsSnapshotDetails = Nothing-    , _irsStatusMessage = Nothing-    , _irsImageId = Nothing-    , _irsImportTaskId = Nothing-    , _irsArchitecture = Nothing-    , _irsDescription = Nothing-    , _irsResponseStatus = pResponseStatus_-    }+  ImportImageResponse'+  { _irsStatus = Nothing+  , _irsHypervisor = Nothing+  , _irsPlatform = Nothing+  , _irsProgress = Nothing+  , _irsLicenseType = Nothing+  , _irsSnapshotDetails = Nothing+  , _irsStatusMessage = Nothing+  , _irsImageId = Nothing+  , _irsImportTaskId = Nothing+  , _irsArchitecture = Nothing+  , _irsDescription = Nothing+  , _irsResponseStatus = pResponseStatus_+  } + -- | A brief status of the task. irsStatus :: Lens' ImportImageResponse (Maybe Text) irsStatus = lens _irsStatus (\ s a -> s{_irsStatus = a});@@ -322,4 +326,4 @@ irsResponseStatus :: Lens' ImportImageResponse Int irsResponseStatus = lens _irsResponseStatus (\ s a -> s{_irsResponseStatus = a}); -instance NFData ImportImageResponse+instance NFData ImportImageResponse where
gen/Network/AWS/EC2/ImportInstance.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ImportInstance--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , iirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ImportInstance. --@@ -56,13 +56,14 @@ -- -- /See:/ 'importInstance' smart constructor. data ImportInstance = ImportInstance'-    { _iiLaunchSpecification :: !(Maybe ImportInstanceLaunchSpecification)-    , _iiDiskImages          :: !(Maybe [DiskImage])-    , _iiDescription         :: !(Maybe Text)-    , _iiDryRun              :: !(Maybe Bool)-    , _iiPlatform            :: !PlatformValues-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _iiLaunchSpecification :: !(Maybe ImportInstanceLaunchSpecification)+  , _iiDiskImages          :: !(Maybe [DiskImage])+  , _iiDescription         :: !(Maybe Text)+  , _iiDryRun              :: !(Maybe Bool)+  , _iiPlatform            :: !PlatformValues+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportInstance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,14 +81,15 @@     :: PlatformValues -- ^ 'iiPlatform'     -> ImportInstance importInstance pPlatform_ =-    ImportInstance'-    { _iiLaunchSpecification = Nothing-    , _iiDiskImages = Nothing-    , _iiDescription = Nothing-    , _iiDryRun = Nothing-    , _iiPlatform = pPlatform_-    }+  ImportInstance'+  { _iiLaunchSpecification = Nothing+  , _iiDiskImages = Nothing+  , _iiDescription = Nothing+  , _iiDryRun = Nothing+  , _iiPlatform = pPlatform_+  } + -- | The launch specification. iiLaunchSpecification :: Lens' ImportInstance (Maybe ImportInstanceLaunchSpecification) iiLaunchSpecification = lens _iiLaunchSpecification (\ s a -> s{_iiLaunchSpecification = a});@@ -117,9 +119,9 @@                  ImportInstanceResponse' <$>                    (x .@? "conversionTask") <*> (pure (fromEnum s))) -instance Hashable ImportInstance+instance Hashable ImportInstance where -instance NFData ImportInstance+instance NFData ImportInstance where  instance ToHeaders ImportInstance where         toHeaders = const mempty@@ -143,10 +145,11 @@ -- -- /See:/ 'importInstanceResponse' smart constructor. data ImportInstanceResponse = ImportInstanceResponse'-    { _iirsConversionTask :: !(Maybe ConversionTask)-    , _iirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _iirsConversionTask :: !(Maybe ConversionTask)+  , _iirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportInstanceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -158,11 +161,10 @@     :: Int -- ^ 'iirsResponseStatus'     -> ImportInstanceResponse importInstanceResponse pResponseStatus_ =-    ImportInstanceResponse'-    { _iirsConversionTask = Nothing-    , _iirsResponseStatus = pResponseStatus_-    }+  ImportInstanceResponse'+  {_iirsConversionTask = Nothing, _iirsResponseStatus = pResponseStatus_} + -- | Information about the conversion task. iirsConversionTask :: Lens' ImportInstanceResponse (Maybe ConversionTask) iirsConversionTask = lens _iirsConversionTask (\ s a -> s{_iirsConversionTask = a});@@ -171,4 +173,4 @@ iirsResponseStatus :: Lens' ImportInstanceResponse Int iirsResponseStatus = lens _iirsResponseStatus (\ s a -> s{_iirsResponseStatus = a}); -instance NFData ImportInstanceResponse+instance NFData ImportInstanceResponse where
gen/Network/AWS/EC2/ImportKeyPair.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ImportKeyPair--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , ikprsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ImportKeyPair. --@@ -55,11 +55,12 @@ -- -- /See:/ 'importKeyPair' smart constructor. data ImportKeyPair = ImportKeyPair'-    { _ikpDryRun            :: !(Maybe Bool)-    , _ikpKeyName           :: !Text-    , _ikpPublicKeyMaterial :: !Base64-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ikpDryRun            :: !(Maybe Bool)+  , _ikpKeyName           :: !Text+  , _ikpPublicKeyMaterial :: !Base64+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportKeyPair' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,12 +75,13 @@     -> ByteString -- ^ 'ikpPublicKeyMaterial'     -> ImportKeyPair importKeyPair pKeyName_ pPublicKeyMaterial_ =-    ImportKeyPair'-    { _ikpDryRun = Nothing-    , _ikpKeyName = pKeyName_-    , _ikpPublicKeyMaterial = _Base64 # pPublicKeyMaterial_-    }+  ImportKeyPair'+  { _ikpDryRun = Nothing+  , _ikpKeyName = pKeyName_+  , _ikpPublicKeyMaterial = _Base64 # pPublicKeyMaterial_+  } + -- | Checks whether you have the required permissions for the action, 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@ . ikpDryRun :: Lens' ImportKeyPair (Maybe Bool) ikpDryRun = lens _ikpDryRun (\ s a -> s{_ikpDryRun = a});@@ -102,9 +104,9 @@                    (x .@? "keyFingerprint") <*> (x .@? "keyName") <*>                      (pure (fromEnum s))) -instance Hashable ImportKeyPair+instance Hashable ImportKeyPair where -instance NFData ImportKeyPair+instance NFData ImportKeyPair where  instance ToHeaders ImportKeyPair where         toHeaders = const mempty@@ -126,11 +128,12 @@ -- -- /See:/ 'importKeyPairResponse' smart constructor. data ImportKeyPairResponse = ImportKeyPairResponse'-    { _ikprsKeyFingerprint :: !(Maybe Text)-    , _ikprsKeyName        :: !(Maybe Text)-    , _ikprsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ikprsKeyFingerprint :: !(Maybe Text)+  , _ikprsKeyName        :: !(Maybe Text)+  , _ikprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportKeyPairResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,12 +147,13 @@     :: Int -- ^ 'ikprsResponseStatus'     -> ImportKeyPairResponse importKeyPairResponse pResponseStatus_ =-    ImportKeyPairResponse'-    { _ikprsKeyFingerprint = Nothing-    , _ikprsKeyName = Nothing-    , _ikprsResponseStatus = pResponseStatus_-    }+  ImportKeyPairResponse'+  { _ikprsKeyFingerprint = Nothing+  , _ikprsKeyName = Nothing+  , _ikprsResponseStatus = pResponseStatus_+  } + -- | The MD5 public key fingerprint as specified in section 4 of RFC 4716. ikprsKeyFingerprint :: Lens' ImportKeyPairResponse (Maybe Text) ikprsKeyFingerprint = lens _ikprsKeyFingerprint (\ s a -> s{_ikprsKeyFingerprint = a});@@ -162,4 +166,4 @@ ikprsResponseStatus :: Lens' ImportKeyPairResponse Int ikprsResponseStatus = lens _ikprsResponseStatus (\ s a -> s{_ikprsResponseStatus = a}); -instance NFData ImportKeyPairResponse+instance NFData ImportKeyPairResponse where
gen/Network/AWS/EC2/ImportSnapshot.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ImportSnapshot--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,12 +44,12 @@     , isrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ImportSnapshot. --@@ -57,14 +57,15 @@ -- -- /See:/ 'importSnapshot' smart constructor. data ImportSnapshot = ImportSnapshot'-    { _isDiskContainer :: !(Maybe SnapshotDiskContainer)-    , _isClientToken   :: !(Maybe Text)-    , _isRoleName      :: !(Maybe Text)-    , _isDescription   :: !(Maybe Text)-    , _isDryRun        :: !(Maybe Bool)-    , _isClientData    :: !(Maybe ClientData)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _isDiskContainer :: !(Maybe SnapshotDiskContainer)+  , _isClientToken   :: !(Maybe Text)+  , _isRoleName      :: !(Maybe Text)+  , _isDescription   :: !(Maybe Text)+  , _isDryRun        :: !(Maybe Bool)+  , _isClientData    :: !(Maybe ClientData)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportSnapshot' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,15 +84,16 @@ importSnapshot     :: ImportSnapshot importSnapshot =-    ImportSnapshot'-    { _isDiskContainer = Nothing-    , _isClientToken = Nothing-    , _isRoleName = Nothing-    , _isDescription = Nothing-    , _isDryRun = Nothing-    , _isClientData = Nothing-    }+  ImportSnapshot'+  { _isDiskContainer = Nothing+  , _isClientToken = Nothing+  , _isRoleName = Nothing+  , _isDescription = Nothing+  , _isDryRun = Nothing+  , _isClientData = Nothing+  } + -- | Information about the disk container. isDiskContainer :: Lens' ImportSnapshot (Maybe SnapshotDiskContainer) isDiskContainer = lens _isDiskContainer (\ s a -> s{_isDiskContainer = a});@@ -128,9 +130,9 @@                      <*> (x .@? "description")                      <*> (pure (fromEnum s))) -instance Hashable ImportSnapshot+instance Hashable ImportSnapshot where -instance NFData ImportSnapshot+instance NFData ImportSnapshot where  instance ToHeaders ImportSnapshot where         toHeaders = const mempty@@ -155,12 +157,13 @@ -- -- /See:/ 'importSnapshotResponse' smart constructor. data ImportSnapshotResponse = ImportSnapshotResponse'-    { _isrsSnapshotTaskDetail :: !(Maybe SnapshotTaskDetail)-    , _isrsImportTaskId       :: !(Maybe Text)-    , _isrsDescription        :: !(Maybe Text)-    , _isrsResponseStatus     :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _isrsSnapshotTaskDetail :: !(Maybe SnapshotTaskDetail)+  , _isrsImportTaskId       :: !(Maybe Text)+  , _isrsDescription        :: !(Maybe Text)+  , _isrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportSnapshotResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -176,13 +179,14 @@     :: Int -- ^ 'isrsResponseStatus'     -> ImportSnapshotResponse importSnapshotResponse pResponseStatus_ =-    ImportSnapshotResponse'-    { _isrsSnapshotTaskDetail = Nothing-    , _isrsImportTaskId = Nothing-    , _isrsDescription = Nothing-    , _isrsResponseStatus = pResponseStatus_-    }+  ImportSnapshotResponse'+  { _isrsSnapshotTaskDetail = Nothing+  , _isrsImportTaskId = Nothing+  , _isrsDescription = Nothing+  , _isrsResponseStatus = pResponseStatus_+  } + -- | Information about the import snapshot task. isrsSnapshotTaskDetail :: Lens' ImportSnapshotResponse (Maybe SnapshotTaskDetail) isrsSnapshotTaskDetail = lens _isrsSnapshotTaskDetail (\ s a -> s{_isrsSnapshotTaskDetail = a});@@ -199,4 +203,4 @@ isrsResponseStatus :: Lens' ImportSnapshotResponse Int isrsResponseStatus = lens _isrsResponseStatus (\ s a -> s{_isrsResponseStatus = a}); -instance NFData ImportSnapshotResponse+instance NFData ImportSnapshotResponse where
gen/Network/AWS/EC2/ImportVolume.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ImportVolume--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , ivrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ImportVolume. --@@ -56,13 +56,14 @@ -- -- /See:/ 'importVolume' smart constructor. data ImportVolume = ImportVolume'-    { _ivDescription      :: !(Maybe Text)-    , _ivDryRun           :: !(Maybe Bool)-    , _ivAvailabilityZone :: !Text-    , _ivImage            :: !DiskImageDetail-    , _ivVolume           :: !VolumeDetail-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ivDescription      :: !(Maybe Text)+  , _ivDryRun           :: !(Maybe Bool)+  , _ivAvailabilityZone :: !Text+  , _ivImage            :: !DiskImageDetail+  , _ivVolume           :: !VolumeDetail+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,14 +83,15 @@     -> VolumeDetail -- ^ 'ivVolume'     -> ImportVolume importVolume pAvailabilityZone_ pImage_ pVolume_ =-    ImportVolume'-    { _ivDescription = Nothing-    , _ivDryRun = Nothing-    , _ivAvailabilityZone = pAvailabilityZone_-    , _ivImage = pImage_-    , _ivVolume = pVolume_-    }+  ImportVolume'+  { _ivDescription = Nothing+  , _ivDryRun = Nothing+  , _ivAvailabilityZone = pAvailabilityZone_+  , _ivImage = pImage_+  , _ivVolume = pVolume_+  } + -- | A description of the volume. ivDescription :: Lens' ImportVolume (Maybe Text) ivDescription = lens _ivDescription (\ s a -> s{_ivDescription = a});@@ -119,9 +121,9 @@                  ImportVolumeResponse' <$>                    (x .@? "conversionTask") <*> (pure (fromEnum s))) -instance Hashable ImportVolume+instance Hashable ImportVolume where -instance NFData ImportVolume+instance NFData ImportVolume where  instance ToHeaders ImportVolume where         toHeaders = const mempty@@ -145,10 +147,11 @@ -- -- /See:/ 'importVolumeResponse' smart constructor. data ImportVolumeResponse = ImportVolumeResponse'-    { _ivrsConversionTask :: !(Maybe ConversionTask)-    , _ivrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ivrsConversionTask :: !(Maybe ConversionTask)+  , _ivrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ImportVolumeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -160,11 +163,10 @@     :: Int -- ^ 'ivrsResponseStatus'     -> ImportVolumeResponse importVolumeResponse pResponseStatus_ =-    ImportVolumeResponse'-    { _ivrsConversionTask = Nothing-    , _ivrsResponseStatus = pResponseStatus_-    }+  ImportVolumeResponse'+  {_ivrsConversionTask = Nothing, _ivrsResponseStatus = pResponseStatus_} + -- | Information about the conversion task. ivrsConversionTask :: Lens' ImportVolumeResponse (Maybe ConversionTask) ivrsConversionTask = lens _ivrsConversionTask (\ s a -> s{_ivrsConversionTask = a});@@ -173,4 +175,4 @@ ivrsResponseStatus :: Lens' ImportVolumeResponse Int ivrsResponseStatus = lens _ivrsResponseStatus (\ s a -> s{_ivrsResponseStatus = a}); -instance NFData ImportVolumeResponse+instance NFData ImportVolumeResponse where
+ gen/Network/AWS/EC2/ModifyFpgaImageAttribute.hs view
@@ -0,0 +1,224 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.ModifyFpgaImageAttribute+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the specified attribute of the specified Amazon FPGA Image (AFI).+--+--+module Network.AWS.EC2.ModifyFpgaImageAttribute+    (+    -- * Creating a Request+      modifyFpgaImageAttribute+    , ModifyFpgaImageAttribute+    -- * Request Lenses+    , mfiaAttribute+    , mfiaUserIds+    , mfiaUserGroups+    , mfiaLoadPermission+    , mfiaName+    , mfiaOperationType+    , mfiaProductCodes+    , mfiaDescription+    , mfiaDryRun+    , mfiaFpgaImageId++    -- * Destructuring the Response+    , modifyFpgaImageAttributeResponse+    , ModifyFpgaImageAttributeResponse+    -- * Response Lenses+    , mfiarsFpgaImageAttribute+    , mfiarsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'modifyFpgaImageAttribute' smart constructor.+data ModifyFpgaImageAttribute = ModifyFpgaImageAttribute'+  { _mfiaAttribute      :: !(Maybe FpgaImageAttributeName)+  , _mfiaUserIds        :: !(Maybe [Text])+  , _mfiaUserGroups     :: !(Maybe [Text])+  , _mfiaLoadPermission :: !(Maybe LoadPermissionModifications)+  , _mfiaName           :: !(Maybe Text)+  , _mfiaOperationType  :: !(Maybe OperationType)+  , _mfiaProductCodes   :: !(Maybe [Text])+  , _mfiaDescription    :: !(Maybe Text)+  , _mfiaDryRun         :: !(Maybe Bool)+  , _mfiaFpgaImageId    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyFpgaImageAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mfiaAttribute' - The name of the attribute.+--+-- * 'mfiaUserIds' - One or more AWS account IDs. This parameter is valid only when modifying the @loadPermission@ attribute.+--+-- * 'mfiaUserGroups' - One or more user groups. This parameter is valid only when modifying the @loadPermission@ attribute.+--+-- * 'mfiaLoadPermission' - The load permission for the AFI.+--+-- * 'mfiaName' - A name for the AFI.+--+-- * 'mfiaOperationType' - The operation type.+--+-- * 'mfiaProductCodes' - 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 @productCodes@ attribute.+--+-- * 'mfiaDescription' - A description for the AFI.+--+-- * 'mfiaDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'mfiaFpgaImageId' - The ID of the AFI.+modifyFpgaImageAttribute+    :: Text -- ^ 'mfiaFpgaImageId'+    -> ModifyFpgaImageAttribute+modifyFpgaImageAttribute pFpgaImageId_ =+  ModifyFpgaImageAttribute'+  { _mfiaAttribute = Nothing+  , _mfiaUserIds = Nothing+  , _mfiaUserGroups = Nothing+  , _mfiaLoadPermission = Nothing+  , _mfiaName = Nothing+  , _mfiaOperationType = Nothing+  , _mfiaProductCodes = Nothing+  , _mfiaDescription = Nothing+  , _mfiaDryRun = Nothing+  , _mfiaFpgaImageId = pFpgaImageId_+  }+++-- | The name of the attribute.+mfiaAttribute :: Lens' ModifyFpgaImageAttribute (Maybe FpgaImageAttributeName)+mfiaAttribute = lens _mfiaAttribute (\ s a -> s{_mfiaAttribute = a});++-- | One or more AWS account IDs. This parameter is valid only when modifying the @loadPermission@ attribute.+mfiaUserIds :: Lens' ModifyFpgaImageAttribute [Text]+mfiaUserIds = lens _mfiaUserIds (\ s a -> s{_mfiaUserIds = a}) . _Default . _Coerce;++-- | One or more user groups. This parameter is valid only when modifying the @loadPermission@ attribute.+mfiaUserGroups :: Lens' ModifyFpgaImageAttribute [Text]+mfiaUserGroups = lens _mfiaUserGroups (\ s a -> s{_mfiaUserGroups = a}) . _Default . _Coerce;++-- | The load permission for the AFI.+mfiaLoadPermission :: Lens' ModifyFpgaImageAttribute (Maybe LoadPermissionModifications)+mfiaLoadPermission = lens _mfiaLoadPermission (\ s a -> s{_mfiaLoadPermission = a});++-- | A name for the AFI.+mfiaName :: Lens' ModifyFpgaImageAttribute (Maybe Text)+mfiaName = lens _mfiaName (\ s a -> s{_mfiaName = a});++-- | The operation type.+mfiaOperationType :: Lens' ModifyFpgaImageAttribute (Maybe OperationType)+mfiaOperationType = lens _mfiaOperationType (\ s a -> s{_mfiaOperationType = 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 @productCodes@ attribute.+mfiaProductCodes :: Lens' ModifyFpgaImageAttribute [Text]+mfiaProductCodes = lens _mfiaProductCodes (\ s a -> s{_mfiaProductCodes = a}) . _Default . _Coerce;++-- | A description for the AFI.+mfiaDescription :: Lens' ModifyFpgaImageAttribute (Maybe Text)+mfiaDescription = lens _mfiaDescription (\ s a -> s{_mfiaDescription = a});++-- | Checks whether you have the required permissions for the action, 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@ .+mfiaDryRun :: Lens' ModifyFpgaImageAttribute (Maybe Bool)+mfiaDryRun = lens _mfiaDryRun (\ s a -> s{_mfiaDryRun = a});++-- | The ID of the AFI.+mfiaFpgaImageId :: Lens' ModifyFpgaImageAttribute Text+mfiaFpgaImageId = lens _mfiaFpgaImageId (\ s a -> s{_mfiaFpgaImageId = a});++instance AWSRequest ModifyFpgaImageAttribute where+        type Rs ModifyFpgaImageAttribute =+             ModifyFpgaImageAttributeResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 ModifyFpgaImageAttributeResponse' <$>+                   (x .@? "fpgaImageAttribute") <*> (pure (fromEnum s)))++instance Hashable ModifyFpgaImageAttribute where++instance NFData ModifyFpgaImageAttribute where++instance ToHeaders ModifyFpgaImageAttribute where+        toHeaders = const mempty++instance ToPath ModifyFpgaImageAttribute where+        toPath = const "/"++instance ToQuery ModifyFpgaImageAttribute where+        toQuery ModifyFpgaImageAttribute'{..}+          = mconcat+              ["Action" =:+                 ("ModifyFpgaImageAttribute" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "Attribute" =: _mfiaAttribute,+               toQuery (toQueryList "UserId" <$> _mfiaUserIds),+               toQuery+                 (toQueryList "UserGroup" <$> _mfiaUserGroups),+               "LoadPermission" =: _mfiaLoadPermission,+               "Name" =: _mfiaName,+               "OperationType" =: _mfiaOperationType,+               toQuery+                 (toQueryList "ProductCode" <$> _mfiaProductCodes),+               "Description" =: _mfiaDescription,+               "DryRun" =: _mfiaDryRun,+               "FpgaImageId" =: _mfiaFpgaImageId]++-- | /See:/ 'modifyFpgaImageAttributeResponse' smart constructor.+data ModifyFpgaImageAttributeResponse = ModifyFpgaImageAttributeResponse'+  { _mfiarsFpgaImageAttribute :: !(Maybe FpgaImageAttribute)+  , _mfiarsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyFpgaImageAttributeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mfiarsFpgaImageAttribute' - Information about the attribute.+--+-- * 'mfiarsResponseStatus' - -- | The response status code.+modifyFpgaImageAttributeResponse+    :: Int -- ^ 'mfiarsResponseStatus'+    -> ModifyFpgaImageAttributeResponse+modifyFpgaImageAttributeResponse pResponseStatus_ =+  ModifyFpgaImageAttributeResponse'+  { _mfiarsFpgaImageAttribute = Nothing+  , _mfiarsResponseStatus = pResponseStatus_+  }+++-- | Information about the attribute.+mfiarsFpgaImageAttribute :: Lens' ModifyFpgaImageAttributeResponse (Maybe FpgaImageAttribute)+mfiarsFpgaImageAttribute = lens _mfiarsFpgaImageAttribute (\ s a -> s{_mfiarsFpgaImageAttribute = a});++-- | -- | The response status code.+mfiarsResponseStatus :: Lens' ModifyFpgaImageAttributeResponse Int+mfiarsResponseStatus = lens _mfiarsResponseStatus (\ s a -> s{_mfiarsResponseStatus = a});++instance NFData ModifyFpgaImageAttributeResponse+         where
gen/Network/AWS/EC2/ModifyHosts.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyHosts--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,8 +27,8 @@       modifyHosts     , ModifyHosts     -- * Request Lenses-    , mhHostIds     , mhAutoPlacement+    , mhHostIds      -- * Destructuring the Response     , modifyHostsResponse@@ -39,12 +39,12 @@     , mhrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyHosts. --@@ -52,34 +52,33 @@ -- -- /See:/ 'modifyHosts' smart constructor. data ModifyHosts = ModifyHosts'-    { _mhHostIds       :: ![Text]-    , _mhAutoPlacement :: !AutoPlacement-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mhAutoPlacement :: !AutoPlacement+  , _mhHostIds       :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyHosts' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'mhHostIds' - The host IDs of the Dedicated Hosts you want to modify.--- -- * 'mhAutoPlacement' - Specify whether to enable or disable auto-placement.+--+-- * 'mhHostIds' - The host IDs of the Dedicated Hosts you want to modify. modifyHosts     :: AutoPlacement -- ^ 'mhAutoPlacement'     -> ModifyHosts modifyHosts pAutoPlacement_ =-    ModifyHosts'-    { _mhHostIds = mempty-    , _mhAutoPlacement = pAutoPlacement_-    }+  ModifyHosts' {_mhAutoPlacement = pAutoPlacement_, _mhHostIds = mempty} --- | The host IDs of the Dedicated Hosts you want to modify.-mhHostIds :: Lens' ModifyHosts [Text]-mhHostIds = lens _mhHostIds (\ s a -> s{_mhHostIds = a}) . _Coerce;  -- | Specify whether to enable or disable auto-placement. mhAutoPlacement :: Lens' ModifyHosts AutoPlacement mhAutoPlacement = lens _mhAutoPlacement (\ s a -> s{_mhAutoPlacement = a}); +-- | The host IDs of the Dedicated Hosts you want to modify.+mhHostIds :: Lens' ModifyHosts [Text]+mhHostIds = lens _mhHostIds (\ s a -> s{_mhHostIds = a}) . _Coerce;+ instance AWSRequest ModifyHosts where         type Rs ModifyHosts = ModifyHostsResponse         request = postQuery ec2@@ -94,9 +93,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable ModifyHosts+instance Hashable ModifyHosts where -instance NFData ModifyHosts+instance NFData ModifyHosts where  instance ToHeaders ModifyHosts where         toHeaders = const mempty@@ -109,8 +108,8 @@           = mconcat               ["Action" =: ("ModifyHosts" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               toQueryList "HostId" _mhHostIds,-               "AutoPlacement" =: _mhAutoPlacement]+               "AutoPlacement" =: _mhAutoPlacement,+               toQueryList "HostId" _mhHostIds]  -- | Contains the output of ModifyHosts. --@@ -118,11 +117,12 @@ -- -- /See:/ 'modifyHostsResponse' smart constructor. data ModifyHostsResponse = ModifyHostsResponse'-    { _mhrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])-    , _mhrsSuccessful     :: !(Maybe [Text])-    , _mhrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mhrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])+  , _mhrsSuccessful     :: !(Maybe [Text])+  , _mhrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyHostsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -136,12 +136,13 @@     :: Int -- ^ 'mhrsResponseStatus'     -> ModifyHostsResponse modifyHostsResponse pResponseStatus_ =-    ModifyHostsResponse'-    { _mhrsUnsuccessful = Nothing-    , _mhrsSuccessful = Nothing-    , _mhrsResponseStatus = pResponseStatus_-    }+  ModifyHostsResponse'+  { _mhrsUnsuccessful = Nothing+  , _mhrsSuccessful = Nothing+  , _mhrsResponseStatus = pResponseStatus_+  } + -- | The IDs of the Dedicated Hosts that could not be modified. Check whether the setting you requested can be used. mhrsUnsuccessful :: Lens' ModifyHostsResponse [UnsuccessfulItem] mhrsUnsuccessful = lens _mhrsUnsuccessful (\ s a -> s{_mhrsUnsuccessful = a}) . _Default . _Coerce;@@ -154,4 +155,4 @@ mhrsResponseStatus :: Lens' ModifyHostsResponse Int mhrsResponseStatus = lens _mhrsResponseStatus (\ s a -> s{_mhrsResponseStatus = a}); -instance NFData ModifyHostsResponse+instance NFData ModifyHostsResponse where
gen/Network/AWS/EC2/ModifyIdFormat.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyIdFormat--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , ModifyIdFormatResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters of ModifyIdFormat. --@@ -52,10 +52,11 @@ -- -- /See:/ 'modifyIdFormat' smart constructor. data ModifyIdFormat = ModifyIdFormat'-    { _mifResource   :: !Text-    , _mifUseLongIds :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mifResource   :: !Text+  , _mifUseLongIds :: !Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyIdFormat' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,11 +69,9 @@     -> Bool -- ^ 'mifUseLongIds'     -> ModifyIdFormat modifyIdFormat pResource_ pUseLongIds_ =-    ModifyIdFormat'-    { _mifResource = pResource_-    , _mifUseLongIds = pUseLongIds_-    }+  ModifyIdFormat' {_mifResource = pResource_, _mifUseLongIds = pUseLongIds_} + -- | The type of resource: @instance@ | @reservation@ | @snapshot@ | @volume@ mifResource :: Lens' ModifyIdFormat Text mifResource = lens _mifResource (\ s a -> s{_mifResource = a});@@ -86,9 +85,9 @@         request = postQuery ec2         response = receiveNull ModifyIdFormatResponse' -instance Hashable ModifyIdFormat+instance Hashable ModifyIdFormat where -instance NFData ModifyIdFormat+instance NFData ModifyIdFormat where  instance ToHeaders ModifyIdFormat where         toHeaders = const mempty@@ -106,13 +105,15 @@  -- | /See:/ 'modifyIdFormatResponse' smart constructor. data ModifyIdFormatResponse =-    ModifyIdFormatResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyIdFormatResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyIdFormatResponse' with the minimum fields required to make a request. -- modifyIdFormatResponse     :: ModifyIdFormatResponse modifyIdFormatResponse = ModifyIdFormatResponse' -instance NFData ModifyIdFormatResponse++instance NFData ModifyIdFormatResponse where
gen/Network/AWS/EC2/ModifyIdentityIdFormat.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyIdentityIdFormat--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -33,21 +33,21 @@       modifyIdentityIdFormat     , ModifyIdentityIdFormat     -- * Request Lenses+    , miifPrincipalARN     , miifResource     , miifUseLongIds-    , miifPrincipalARN      -- * Destructuring the Response     , modifyIdentityIdFormatResponse     , ModifyIdentityIdFormatResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters of ModifyIdentityIdFormat. --@@ -55,32 +55,38 @@ -- -- /See:/ 'modifyIdentityIdFormat' smart constructor. data ModifyIdentityIdFormat = ModifyIdentityIdFormat'-    { _miifResource     :: !Text-    , _miifUseLongIds   :: !Bool-    , _miifPrincipalARN :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _miifPrincipalARN :: !Text+  , _miifResource     :: !Text+  , _miifUseLongIds   :: !Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyIdentityIdFormat' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'miifPrincipalARN' - The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify @all@ to modify the ID format for all IAM users, IAM roles, and the root user of the account.+-- -- * 'miifResource' - The type of resource: @instance@ | @reservation@ | @snapshot@ | @volume@ -- -- * 'miifUseLongIds' - Indicates whether the resource should use longer IDs (17-character IDs)------ * 'miifPrincipalARN' - The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify @all@ to modify the ID format for all IAM users, IAM roles, and the root user of the account. modifyIdentityIdFormat-    :: Text -- ^ 'miifResource'+    :: Text -- ^ 'miifPrincipalARN'+    -> Text -- ^ 'miifResource'     -> Bool -- ^ 'miifUseLongIds'-    -> Text -- ^ 'miifPrincipalARN'     -> ModifyIdentityIdFormat-modifyIdentityIdFormat pResource_ pUseLongIds_ pPrincipalARN_ =-    ModifyIdentityIdFormat'-    { _miifResource = pResource_-    , _miifUseLongIds = pUseLongIds_-    , _miifPrincipalARN = pPrincipalARN_-    }+modifyIdentityIdFormat pPrincipalARN_ pResource_ pUseLongIds_ =+  ModifyIdentityIdFormat'+  { _miifPrincipalARN = pPrincipalARN_+  , _miifResource = pResource_+  , _miifUseLongIds = pUseLongIds_+  } ++-- | The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify @all@ to modify the ID format for all IAM users, IAM roles, and the root user of the account.+miifPrincipalARN :: Lens' ModifyIdentityIdFormat Text+miifPrincipalARN = lens _miifPrincipalARN (\ s a -> s{_miifPrincipalARN = a});+ -- | The type of resource: @instance@ | @reservation@ | @snapshot@ | @volume@ miifResource :: Lens' ModifyIdentityIdFormat Text miifResource = lens _miifResource (\ s a -> s{_miifResource = a});@@ -89,10 +95,6 @@ miifUseLongIds :: Lens' ModifyIdentityIdFormat Bool miifUseLongIds = lens _miifUseLongIds (\ s a -> s{_miifUseLongIds = a}); --- | The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify @all@ to modify the ID format for all IAM users, IAM roles, and the root user of the account.-miifPrincipalARN :: Lens' ModifyIdentityIdFormat Text-miifPrincipalARN = lens _miifPrincipalARN (\ s a -> s{_miifPrincipalARN = a});- instance AWSRequest ModifyIdentityIdFormat where         type Rs ModifyIdentityIdFormat =              ModifyIdentityIdFormatResponse@@ -100,9 +102,9 @@         response           = receiveNull ModifyIdentityIdFormatResponse' -instance Hashable ModifyIdentityIdFormat+instance Hashable ModifyIdentityIdFormat where -instance NFData ModifyIdentityIdFormat+instance NFData ModifyIdentityIdFormat where  instance ToHeaders ModifyIdentityIdFormat where         toHeaders = const mempty@@ -116,19 +118,21 @@               ["Action" =:                  ("ModifyIdentityIdFormat" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),+               "PrincipalArn" =: _miifPrincipalARN,                "Resource" =: _miifResource,-               "UseLongIds" =: _miifUseLongIds,-               "PrincipalArn" =: _miifPrincipalARN]+               "UseLongIds" =: _miifUseLongIds]  -- | /See:/ 'modifyIdentityIdFormatResponse' smart constructor. data ModifyIdentityIdFormatResponse =-    ModifyIdentityIdFormatResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyIdentityIdFormatResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyIdentityIdFormatResponse' with the minimum fields required to make a request. -- modifyIdentityIdFormatResponse     :: ModifyIdentityIdFormatResponse modifyIdentityIdFormatResponse = ModifyIdentityIdFormatResponse' -instance NFData ModifyIdentityIdFormatResponse++instance NFData ModifyIdentityIdFormatResponse where
gen/Network/AWS/EC2/ModifyImageAttribute.hs view
@@ -12,15 +12,19 @@  -- | -- Module      : Network.AWS.EC2.ModifyImageAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.+-- Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. You can use the @Attribute@ parameter to specify the attribute or one of the following parameters: @Description@ , @LaunchPermission@ , or @ProductCode@ . -- --+-- 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     (     -- * Creating a Request@@ -43,12 +47,12 @@     , ModifyImageAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyImageAttribute. --@@ -56,37 +60,38 @@ -- -- /See:/ 'modifyImageAttribute' smart constructor. data ModifyImageAttribute = ModifyImageAttribute'-    { _miaAttribute        :: !(Maybe Text)-    , _miaUserIds          :: !(Maybe [Text])-    , _miaUserGroups       :: !(Maybe [Text])-    , _miaValue            :: !(Maybe Text)-    , _miaLaunchPermission :: !(Maybe LaunchPermissionModifications)-    , _miaOperationType    :: !(Maybe OperationType)-    , _miaProductCodes     :: !(Maybe [Text])-    , _miaDescription      :: !(Maybe AttributeValue)-    , _miaDryRun           :: !(Maybe Bool)-    , _miaImageId          :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _miaAttribute        :: !(Maybe Text)+  , _miaUserIds          :: !(Maybe [Text])+  , _miaUserGroups       :: !(Maybe [Text])+  , _miaValue            :: !(Maybe Text)+  , _miaLaunchPermission :: !(Maybe LaunchPermissionModifications)+  , _miaOperationType    :: !(Maybe OperationType)+  , _miaProductCodes     :: !(Maybe [Text])+  , _miaDescription      :: !(Maybe AttributeValue)+  , _miaDryRun           :: !(Maybe Bool)+  , _miaImageId          :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyImageAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'miaAttribute' - The name of the attribute to modify.+-- * 'miaAttribute' - The name of the attribute to modify. The valid values are @description@ , @launchPermission@ , and @productCodes@ . ----- * 'miaUserIds' - One or more AWS account IDs. This is only valid when modifying the @launchPermission@ attribute.+-- * 'miaUserIds' - One or more AWS account IDs. This parameter can be used only when the @Attribute@ parameter is @launchPermission@ . ----- * 'miaUserGroups' - One or more user groups. This is only valid when modifying the @launchPermission@ attribute.+-- * 'miaUserGroups' - One or more user groups. This parameter can be used only when the @Attribute@ parameter is @launchPermission@ . ----- * 'miaValue' - The value of the attribute being modified. This is only valid when modifying the @description@ attribute.+-- * 'miaValue' - The value of the attribute being modified. This parameter can be used only when the @Attribute@ parameter is @description@ or @productCodes@ . ----- * 'miaLaunchPermission' - A launch permission modification.+-- * 'miaLaunchPermission' - A new launch permission for the AMI. ----- * 'miaOperationType' - The operation type.+-- * 'miaOperationType' - The operation type. This parameter can be used only when the @Attribute@ parameter is @launchPermission@ . ----- * 'miaProductCodes' - One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the @productCodes@ attribute.+-- * 'miaProductCodes' - One or more DevPay product codes. After you add a product code to an AMI, it can't be removed. ----- * 'miaDescription' - A description for the AMI.+-- * 'miaDescription' - A new description for the AMI. -- -- * 'miaDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -95,48 +100,49 @@     :: Text -- ^ 'miaImageId'     -> ModifyImageAttribute modifyImageAttribute pImageId_ =-    ModifyImageAttribute'-    { _miaAttribute = Nothing-    , _miaUserIds = Nothing-    , _miaUserGroups = Nothing-    , _miaValue = Nothing-    , _miaLaunchPermission = Nothing-    , _miaOperationType = Nothing-    , _miaProductCodes = Nothing-    , _miaDescription = Nothing-    , _miaDryRun = Nothing-    , _miaImageId = pImageId_-    }+  ModifyImageAttribute'+  { _miaAttribute = Nothing+  , _miaUserIds = Nothing+  , _miaUserGroups = Nothing+  , _miaValue = Nothing+  , _miaLaunchPermission = Nothing+  , _miaOperationType = Nothing+  , _miaProductCodes = Nothing+  , _miaDescription = Nothing+  , _miaDryRun = Nothing+  , _miaImageId = pImageId_+  } --- | The name of the attribute to modify.++-- | The name of the attribute to modify. The valid values are @description@ , @launchPermission@ , and @productCodes@ . miaAttribute :: Lens' ModifyImageAttribute (Maybe Text) miaAttribute = lens _miaAttribute (\ s a -> s{_miaAttribute = a}); --- | One or more AWS account IDs. This is only valid when modifying the @launchPermission@ attribute.+-- | One or more AWS account IDs. This parameter can be used only when the @Attribute@ parameter is @launchPermission@ . miaUserIds :: Lens' ModifyImageAttribute [Text] miaUserIds = lens _miaUserIds (\ s a -> s{_miaUserIds = a}) . _Default . _Coerce; --- | One or more user groups. This is only valid when modifying the @launchPermission@ attribute.+-- | One or more user groups. This parameter can be used only when the @Attribute@ parameter is @launchPermission@ . miaUserGroups :: Lens' ModifyImageAttribute [Text] miaUserGroups = lens _miaUserGroups (\ s a -> s{_miaUserGroups = a}) . _Default . _Coerce; --- | The value of the attribute being modified. This is only valid when modifying the @description@ attribute.+-- | The value of the attribute being modified. This parameter can be used only when the @Attribute@ parameter is @description@ or @productCodes@ . miaValue :: Lens' ModifyImageAttribute (Maybe Text) miaValue = lens _miaValue (\ s a -> s{_miaValue = a}); --- | A launch permission modification.+-- | A new launch permission for the AMI. miaLaunchPermission :: Lens' ModifyImageAttribute (Maybe LaunchPermissionModifications) miaLaunchPermission = lens _miaLaunchPermission (\ s a -> s{_miaLaunchPermission = a}); --- | The operation type.+-- | The operation type. This parameter can be used only when the @Attribute@ parameter is @launchPermission@ . miaOperationType :: Lens' ModifyImageAttribute (Maybe OperationType) miaOperationType = lens _miaOperationType (\ s a -> s{_miaOperationType = a}); --- | One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the @productCodes@ attribute.+-- | One or more DevPay product codes. After you add a product code to an AMI, it can't be removed. miaProductCodes :: Lens' ModifyImageAttribute [Text] miaProductCodes = lens _miaProductCodes (\ s a -> s{_miaProductCodes = a}) . _Default . _Coerce; --- | A description for the AMI.+-- | A new description for the AMI. miaDescription :: Lens' ModifyImageAttribute (Maybe AttributeValue) miaDescription = lens _miaDescription (\ s a -> s{_miaDescription = a}); @@ -154,9 +160,9 @@         request = postQuery ec2         response = receiveNull ModifyImageAttributeResponse' -instance Hashable ModifyImageAttribute+instance Hashable ModifyImageAttribute where -instance NFData ModifyImageAttribute+instance NFData ModifyImageAttribute where  instance ToHeaders ModifyImageAttribute where         toHeaders = const mempty@@ -182,13 +188,15 @@  -- | /See:/ 'modifyImageAttributeResponse' smart constructor. data ModifyImageAttributeResponse =-    ModifyImageAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyImageAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyImageAttributeResponse' with the minimum fields required to make a request. -- modifyImageAttributeResponse     :: ModifyImageAttributeResponse modifyImageAttributeResponse = ModifyImageAttributeResponse' -instance NFData ModifyImageAttributeResponse++instance NFData ModifyImageAttributeResponse where
gen/Network/AWS/EC2/ModifyInstanceAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyInstanceAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -51,12 +51,12 @@     , ModifyInstanceAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyInstanceAttribute. --@@ -64,24 +64,25 @@ -- -- /See:/ 'modifyInstanceAttribute' smart constructor. data ModifyInstanceAttribute = ModifyInstanceAttribute'-    { _mGroups                            :: !(Maybe [Text])-    , _mAttribute                         :: !(Maybe InstanceAttributeName)-    , _mEnaSupport                        :: !(Maybe AttributeBooleanValue)-    , _mSourceDestCheck                   :: !(Maybe AttributeBooleanValue)-    , _mDisableAPITermination             :: !(Maybe AttributeBooleanValue)-    , _mKernel                            :: !(Maybe AttributeValue)-    , _mRAMDisk                           :: !(Maybe AttributeValue)-    , _mValue                             :: !(Maybe Text)-    , _mInstanceType                      :: !(Maybe AttributeValue)-    , _mSRIOVNetSupport                   :: !(Maybe AttributeValue)-    , _mEBSOptimized                      :: !(Maybe AttributeBooleanValue)-    , _mUserData                          :: !(Maybe BlobAttributeValue)-    , _mInstanceInitiatedShutdownBehavior :: !(Maybe AttributeValue)-    , _mBlockDeviceMappings               :: !(Maybe [InstanceBlockDeviceMappingSpecification])-    , _mDryRun                            :: !(Maybe Bool)-    , _mInstanceId                        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mGroups :: !(Maybe [Text])+  , _mAttribute :: !(Maybe InstanceAttributeName)+  , _mEnaSupport :: !(Maybe AttributeBooleanValue)+  , _mSourceDestCheck :: !(Maybe AttributeBooleanValue)+  , _mDisableAPITermination :: !(Maybe AttributeBooleanValue)+  , _mKernel :: !(Maybe AttributeValue)+  , _mRAMDisk :: !(Maybe AttributeValue)+  , _mValue :: !(Maybe Text)+  , _mInstanceType :: !(Maybe AttributeValue)+  , _mSRIOVNetSupport :: !(Maybe AttributeValue)+  , _mEBSOptimized :: !(Maybe AttributeBooleanValue)+  , _mUserData :: !(Maybe BlobAttributeValue)+  , _mInstanceInitiatedShutdownBehavior :: !(Maybe AttributeValue)+  , _mBlockDeviceMappings :: !(Maybe [InstanceBlockDeviceMappingSpecification])+  , _mDryRun :: !(Maybe Bool)+  , _mInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyInstanceAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -92,9 +93,9 @@ -- -- * 'mEnaSupport' - Set to @true@ 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. ----- * 'mSourceDestCheck' - Specifies whether source/destination checking is enabled. A value of @true@ means that checking is enabled, and @false@ means checking is disabled. This value must be @false@ for a NAT instance to perform NAT.+-- * 'mSourceDestCheck' - Specifies whether source/destination checking is enabled. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. This value must be @false@ for a NAT instance to perform NAT. ----- * 'mDisableAPITermination' - If the value is @true@ , you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this paramater for Spot Instances.+-- * 'mDisableAPITermination' - If the value is @true@ , 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. -- -- * 'mKernel' - 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html PV-GRUB> . --@@ -106,9 +107,9 @@ -- -- * 'mSRIOVNetSupport' - Set to @simple@ 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. ----- * 'mEBSOptimized' - Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.+-- * 'mEBSOptimized' - Specifies whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. ----- * 'mUserData' - 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' - 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. -- -- * 'mInstanceInitiatedShutdownBehavior' - Specifies whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). --@@ -121,25 +122,26 @@     :: Text -- ^ 'mInstanceId'     -> ModifyInstanceAttribute modifyInstanceAttribute pInstanceId_ =-    ModifyInstanceAttribute'-    { _mGroups = Nothing-    , _mAttribute = Nothing-    , _mEnaSupport = Nothing-    , _mSourceDestCheck = Nothing-    , _mDisableAPITermination = Nothing-    , _mKernel = Nothing-    , _mRAMDisk = Nothing-    , _mValue = Nothing-    , _mInstanceType = Nothing-    , _mSRIOVNetSupport = Nothing-    , _mEBSOptimized = Nothing-    , _mUserData = Nothing-    , _mInstanceInitiatedShutdownBehavior = Nothing-    , _mBlockDeviceMappings = Nothing-    , _mDryRun = Nothing-    , _mInstanceId = pInstanceId_-    }+  ModifyInstanceAttribute'+  { _mGroups = Nothing+  , _mAttribute = Nothing+  , _mEnaSupport = Nothing+  , _mSourceDestCheck = Nothing+  , _mDisableAPITermination = Nothing+  , _mKernel = Nothing+  , _mRAMDisk = Nothing+  , _mValue = Nothing+  , _mInstanceType = Nothing+  , _mSRIOVNetSupport = Nothing+  , _mEBSOptimized = Nothing+  , _mUserData = Nothing+  , _mInstanceInitiatedShutdownBehavior = Nothing+  , _mBlockDeviceMappings = Nothing+  , _mDryRun = Nothing+  , _mInstanceId = pInstanceId_+  } + -- | [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. mGroups :: Lens' ModifyInstanceAttribute [Text] mGroups = lens _mGroups (\ s a -> s{_mGroups = a}) . _Default . _Coerce;@@ -152,11 +154,11 @@ mEnaSupport :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue) mEnaSupport = lens _mEnaSupport (\ s a -> s{_mEnaSupport = a}); --- | Specifies whether source/destination checking is enabled. A value of @true@ means that checking is enabled, and @false@ means checking is disabled. This value must be @false@ for a NAT instance to perform NAT.+-- | Specifies whether source/destination checking is enabled. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. This value must be @false@ for a NAT instance to perform NAT. mSourceDestCheck :: Lens' ModifyInstanceAttribute (Maybe AttributeBooleanValue) mSourceDestCheck = lens _mSourceDestCheck (\ s a -> s{_mSourceDestCheck = a}); --- | If the value is @true@ , you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this paramater for Spot Instances.+-- | If the value is @true@ , 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) mDisableAPITermination = lens _mDisableAPITermination (\ s a -> s{_mDisableAPITermination = a}); @@ -180,11 +182,11 @@ mSRIOVNetSupport :: Lens' ModifyInstanceAttribute (Maybe AttributeValue) mSRIOVNetSupport = lens _mSRIOVNetSupport (\ s a -> s{_mSRIOVNetSupport = a}); --- | Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.+-- | Specifies whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS 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) mEBSOptimized = lens _mEBSOptimized (\ s a -> s{_mEBSOptimized = 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.+-- | 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) mUserData = lens _mUserData (\ s a -> s{_mUserData = a}); @@ -211,9 +213,9 @@         response           = receiveNull ModifyInstanceAttributeResponse' -instance Hashable ModifyInstanceAttribute+instance Hashable ModifyInstanceAttribute where -instance NFData ModifyInstanceAttribute+instance NFData ModifyInstanceAttribute where  instance ToHeaders ModifyInstanceAttribute where         toHeaders = const mempty@@ -246,13 +248,15 @@  -- | /See:/ 'modifyInstanceAttributeResponse' smart constructor. data ModifyInstanceAttributeResponse =-    ModifyInstanceAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyInstanceAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyInstanceAttributeResponse' with the minimum fields required to make a request. -- modifyInstanceAttributeResponse     :: ModifyInstanceAttributeResponse modifyInstanceAttributeResponse = ModifyInstanceAttributeResponse' -instance NFData ModifyInstanceAttributeResponse++instance NFData ModifyInstanceAttributeResponse where
gen/Network/AWS/EC2/ModifyInstancePlacement.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyInstancePlacement--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,12 +48,12 @@     , miprsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyInstancePlacement. --@@ -61,12 +61,13 @@ -- -- /See:/ 'modifyInstancePlacement' smart constructor. data ModifyInstancePlacement = ModifyInstancePlacement'-    { _mipAffinity   :: !(Maybe Affinity)-    , _mipHostId     :: !(Maybe Text)-    , _mipTenancy    :: !(Maybe HostTenancy)-    , _mipInstanceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mipAffinity   :: !(Maybe Affinity)+  , _mipHostId     :: !(Maybe Text)+  , _mipTenancy    :: !(Maybe HostTenancy)+  , _mipInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyInstancePlacement' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,13 +83,14 @@     :: Text -- ^ 'mipInstanceId'     -> ModifyInstancePlacement modifyInstancePlacement pInstanceId_ =-    ModifyInstancePlacement'-    { _mipAffinity = Nothing-    , _mipHostId = Nothing-    , _mipTenancy = Nothing-    , _mipInstanceId = pInstanceId_-    }+  ModifyInstancePlacement'+  { _mipAffinity = Nothing+  , _mipHostId = Nothing+  , _mipTenancy = Nothing+  , _mipInstanceId = pInstanceId_+  } + -- | The new affinity setting for the instance. mipAffinity :: Lens' ModifyInstancePlacement (Maybe Affinity) mipAffinity = lens _mipAffinity (\ s a -> s{_mipAffinity = a});@@ -115,9 +117,9 @@                  ModifyInstancePlacementResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable ModifyInstancePlacement+instance Hashable ModifyInstancePlacement where -instance NFData ModifyInstancePlacement+instance NFData ModifyInstancePlacement where  instance ToHeaders ModifyInstancePlacement where         toHeaders = const mempty@@ -141,10 +143,11 @@ -- -- /See:/ 'modifyInstancePlacementResponse' smart constructor. data ModifyInstancePlacementResponse = ModifyInstancePlacementResponse'-    { _miprsReturn         :: !(Maybe Bool)-    , _miprsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _miprsReturn         :: !(Maybe Bool)+  , _miprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyInstancePlacementResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -156,11 +159,10 @@     :: Int -- ^ 'miprsResponseStatus'     -> ModifyInstancePlacementResponse modifyInstancePlacementResponse pResponseStatus_ =-    ModifyInstancePlacementResponse'-    { _miprsReturn = Nothing-    , _miprsResponseStatus = pResponseStatus_-    }+  ModifyInstancePlacementResponse'+  {_miprsReturn = Nothing, _miprsResponseStatus = pResponseStatus_} + -- | Is @true@ if the request succeeds, and an error otherwise. miprsReturn :: Lens' ModifyInstancePlacementResponse (Maybe Bool) miprsReturn = lens _miprsReturn (\ s a -> s{_miprsReturn = a});@@ -169,4 +171,4 @@ miprsResponseStatus :: Lens' ModifyInstancePlacementResponse Int miprsResponseStatus = lens _miprsResponseStatus (\ s a -> s{_miprsResponseStatus = a}); -instance NFData ModifyInstancePlacementResponse+instance NFData ModifyInstancePlacementResponse where
gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyNetworkInterfaceAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , ModifyNetworkInterfaceAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyNetworkInterfaceAttribute. --@@ -52,14 +52,15 @@ -- -- /See:/ 'modifyNetworkInterfaceAttribute' smart constructor. data ModifyNetworkInterfaceAttribute = ModifyNetworkInterfaceAttribute'-    { _mniaGroups             :: !(Maybe [Text])-    , _mniaSourceDestCheck    :: !(Maybe AttributeBooleanValue)-    , _mniaAttachment         :: !(Maybe NetworkInterfaceAttachmentChanges)-    , _mniaDescription        :: !(Maybe AttributeValue)-    , _mniaDryRun             :: !(Maybe Bool)-    , _mniaNetworkInterfaceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mniaGroups             :: !(Maybe [Text])+  , _mniaSourceDestCheck    :: !(Maybe AttributeBooleanValue)+  , _mniaAttachment         :: !(Maybe NetworkInterfaceAttachmentChanges)+  , _mniaDescription        :: !(Maybe AttributeValue)+  , _mniaDryRun             :: !(Maybe Bool)+  , _mniaNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyNetworkInterfaceAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,15 +80,16 @@     :: Text -- ^ 'mniaNetworkInterfaceId'     -> ModifyNetworkInterfaceAttribute modifyNetworkInterfaceAttribute pNetworkInterfaceId_ =-    ModifyNetworkInterfaceAttribute'-    { _mniaGroups = Nothing-    , _mniaSourceDestCheck = Nothing-    , _mniaAttachment = Nothing-    , _mniaDescription = Nothing-    , _mniaDryRun = Nothing-    , _mniaNetworkInterfaceId = pNetworkInterfaceId_-    }+  ModifyNetworkInterfaceAttribute'+  { _mniaGroups = Nothing+  , _mniaSourceDestCheck = Nothing+  , _mniaAttachment = Nothing+  , _mniaDescription = Nothing+  , _mniaDryRun = Nothing+  , _mniaNetworkInterfaceId = pNetworkInterfaceId_+  } + -- | 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] mniaGroups = lens _mniaGroups (\ s a -> s{_mniaGroups = a}) . _Default . _Coerce;@@ -122,8 +124,9 @@               ModifyNetworkInterfaceAttributeResponse'  instance Hashable ModifyNetworkInterfaceAttribute+         where -instance NFData ModifyNetworkInterfaceAttribute+instance NFData ModifyNetworkInterfaceAttribute where  instance ToHeaders ModifyNetworkInterfaceAttribute          where@@ -149,15 +152,18 @@  -- | /See:/ 'modifyNetworkInterfaceAttributeResponse' smart constructor. data ModifyNetworkInterfaceAttributeResponse =-    ModifyNetworkInterfaceAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyNetworkInterfaceAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyNetworkInterfaceAttributeResponse' with the minimum fields required to make a request. -- modifyNetworkInterfaceAttributeResponse     :: ModifyNetworkInterfaceAttributeResponse modifyNetworkInterfaceAttributeResponse =-    ModifyNetworkInterfaceAttributeResponse'+  ModifyNetworkInterfaceAttributeResponse' + instance NFData-         ModifyNetworkInterfaceAttributeResponse+           ModifyNetworkInterfaceAttributeResponse+         where
gen/Network/AWS/EC2/ModifyReservedInstances.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.ModifyReservedInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Standard Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.+-- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances> in the Amazon Elastic Compute Cloud User Guide.@@ -41,12 +41,12 @@     , mrirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyReservedInstances. --@@ -54,11 +54,12 @@ -- -- /See:/ 'modifyReservedInstances' smart constructor. data ModifyReservedInstances = ModifyReservedInstances'-    { _mriClientToken          :: !(Maybe Text)-    , _mriReservedInstancesIds :: ![Text]-    , _mriTargetConfigurations :: ![ReservedInstancesConfiguration]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mriClientToken          :: !(Maybe Text)+  , _mriReservedInstancesIds :: ![Text]+  , _mriTargetConfigurations :: ![ReservedInstancesConfiguration]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyReservedInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,13 @@ modifyReservedInstances     :: ModifyReservedInstances modifyReservedInstances =-    ModifyReservedInstances'-    { _mriClientToken = Nothing-    , _mriReservedInstancesIds = mempty-    , _mriTargetConfigurations = mempty-    }+  ModifyReservedInstances'+  { _mriClientToken = Nothing+  , _mriReservedInstancesIds = mempty+  , _mriTargetConfigurations = mempty+  } + -- | A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> . mriClientToken :: Lens' ModifyReservedInstances (Maybe Text) mriClientToken = lens _mriClientToken (\ s a -> s{_mriClientToken = a});@@ -100,9 +102,9 @@                    (x .@? "reservedInstancesModificationId") <*>                      (pure (fromEnum s))) -instance Hashable ModifyReservedInstances+instance Hashable ModifyReservedInstances where -instance NFData ModifyReservedInstances+instance NFData ModifyReservedInstances where  instance ToHeaders ModifyReservedInstances where         toHeaders = const mempty@@ -129,10 +131,11 @@ -- -- /See:/ 'modifyReservedInstancesResponse' smart constructor. data ModifyReservedInstancesResponse = ModifyReservedInstancesResponse'-    { _mrirsReservedInstancesModificationId :: !(Maybe Text)-    , _mrirsResponseStatus                  :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mrirsReservedInstancesModificationId :: !(Maybe Text)+  , _mrirsResponseStatus                  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyReservedInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,11 +147,12 @@     :: Int -- ^ 'mrirsResponseStatus'     -> ModifyReservedInstancesResponse modifyReservedInstancesResponse pResponseStatus_ =-    ModifyReservedInstancesResponse'-    { _mrirsReservedInstancesModificationId = Nothing-    , _mrirsResponseStatus = pResponseStatus_-    }+  ModifyReservedInstancesResponse'+  { _mrirsReservedInstancesModificationId = Nothing+  , _mrirsResponseStatus = pResponseStatus_+  } + -- | The ID for the modification. mrirsReservedInstancesModificationId :: Lens' ModifyReservedInstancesResponse (Maybe Text) mrirsReservedInstancesModificationId = lens _mrirsReservedInstancesModificationId (\ s a -> s{_mrirsReservedInstancesModificationId = a});@@ -157,4 +161,4 @@ mrirsResponseStatus :: Lens' ModifyReservedInstancesResponse Int mrirsResponseStatus = lens _mrirsResponseStatus (\ s a -> s{_mrirsResponseStatus = a}); -instance NFData ModifyReservedInstancesResponse+instance NFData ModifyReservedInstancesResponse where
gen/Network/AWS/EC2/ModifySnapshotAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifySnapshotAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , ModifySnapshotAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifySnapshotAttribute. --@@ -55,15 +55,16 @@ -- -- /See:/ 'modifySnapshotAttribute' smart constructor. data ModifySnapshotAttribute = ModifySnapshotAttribute'-    { _msaAttribute              :: !(Maybe SnapshotAttributeName)-    , _msaCreateVolumePermission :: !(Maybe CreateVolumePermissionModifications)-    , _msaUserIds                :: !(Maybe [Text])-    , _msaGroupNames             :: !(Maybe [Text])-    , _msaOperationType          :: !(Maybe OperationType)-    , _msaDryRun                 :: !(Maybe Bool)-    , _msaSnapshotId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _msaAttribute              :: !(Maybe SnapshotAttributeName)+  , _msaCreateVolumePermission :: !(Maybe CreateVolumePermissionModifications)+  , _msaUserIds                :: !(Maybe [Text])+  , _msaGroupNames             :: !(Maybe [Text])+  , _msaOperationType          :: !(Maybe OperationType)+  , _msaDryRun                 :: !(Maybe Bool)+  , _msaSnapshotId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySnapshotAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,16 +86,17 @@     :: Text -- ^ 'msaSnapshotId'     -> ModifySnapshotAttribute modifySnapshotAttribute pSnapshotId_ =-    ModifySnapshotAttribute'-    { _msaAttribute = Nothing-    , _msaCreateVolumePermission = Nothing-    , _msaUserIds = Nothing-    , _msaGroupNames = Nothing-    , _msaOperationType = Nothing-    , _msaDryRun = Nothing-    , _msaSnapshotId = pSnapshotId_-    }+  ModifySnapshotAttribute'+  { _msaAttribute = Nothing+  , _msaCreateVolumePermission = Nothing+  , _msaUserIds = Nothing+  , _msaGroupNames = Nothing+  , _msaOperationType = Nothing+  , _msaDryRun = Nothing+  , _msaSnapshotId = pSnapshotId_+  } + -- | The snapshot attribute to modify. msaAttribute :: Lens' ModifySnapshotAttribute (Maybe SnapshotAttributeName) msaAttribute = lens _msaAttribute (\ s a -> s{_msaAttribute = a});@@ -130,9 +132,9 @@         response           = receiveNull ModifySnapshotAttributeResponse' -instance Hashable ModifySnapshotAttribute+instance Hashable ModifySnapshotAttribute where -instance NFData ModifySnapshotAttribute+instance NFData ModifySnapshotAttribute where  instance ToHeaders ModifySnapshotAttribute where         toHeaders = const mempty@@ -157,13 +159,15 @@  -- | /See:/ 'modifySnapshotAttributeResponse' smart constructor. data ModifySnapshotAttributeResponse =-    ModifySnapshotAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifySnapshotAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySnapshotAttributeResponse' with the minimum fields required to make a request. -- modifySnapshotAttributeResponse     :: ModifySnapshotAttributeResponse modifySnapshotAttributeResponse = ModifySnapshotAttributeResponse' -instance NFData ModifySnapshotAttributeResponse++instance NFData ModifySnapshotAttributeResponse where
gen/Network/AWS/EC2/ModifySpotFleetRequest.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifySpotFleetRequest--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,12 +45,12 @@     , msfrrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifySpotFleetRequest. --@@ -58,11 +58,12 @@ -- -- /See:/ 'modifySpotFleetRequest' smart constructor. data ModifySpotFleetRequest = ModifySpotFleetRequest'-    { _msfrTargetCapacity                  :: !(Maybe Int)-    , _msfrExcessCapacityTerminationPolicy :: !(Maybe ExcessCapacityTerminationPolicy)-    , _msfrSpotFleetRequestId              :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _msfrTargetCapacity :: !(Maybe Int)+  , _msfrExcessCapacityTerminationPolicy :: !(Maybe ExcessCapacityTerminationPolicy)+  , _msfrSpotFleetRequestId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySpotFleetRequest' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,12 +77,13 @@     :: Text -- ^ 'msfrSpotFleetRequestId'     -> ModifySpotFleetRequest modifySpotFleetRequest pSpotFleetRequestId_ =-    ModifySpotFleetRequest'-    { _msfrTargetCapacity = Nothing-    , _msfrExcessCapacityTerminationPolicy = Nothing-    , _msfrSpotFleetRequestId = pSpotFleetRequestId_-    }+  ModifySpotFleetRequest'+  { _msfrTargetCapacity = Nothing+  , _msfrExcessCapacityTerminationPolicy = Nothing+  , _msfrSpotFleetRequestId = pSpotFleetRequestId_+  } + -- | The size of the fleet. msfrTargetCapacity :: Lens' ModifySpotFleetRequest (Maybe Int) msfrTargetCapacity = lens _msfrTargetCapacity (\ s a -> s{_msfrTargetCapacity = a});@@ -104,9 +106,9 @@                  ModifySpotFleetRequestResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable ModifySpotFleetRequest+instance Hashable ModifySpotFleetRequest where -instance NFData ModifySpotFleetRequest+instance NFData ModifySpotFleetRequest where  instance ToHeaders ModifySpotFleetRequest where         toHeaders = const mempty@@ -131,10 +133,11 @@ -- -- /See:/ 'modifySpotFleetRequestResponse' smart constructor. data ModifySpotFleetRequestResponse = ModifySpotFleetRequestResponse'-    { _msfrrsReturn         :: !(Maybe Bool)-    , _msfrrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _msfrrsReturn         :: !(Maybe Bool)+  , _msfrrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySpotFleetRequestResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -146,11 +149,10 @@     :: Int -- ^ 'msfrrsResponseStatus'     -> ModifySpotFleetRequestResponse modifySpotFleetRequestResponse pResponseStatus_ =-    ModifySpotFleetRequestResponse'-    { _msfrrsReturn = Nothing-    , _msfrrsResponseStatus = pResponseStatus_-    }+  ModifySpotFleetRequestResponse'+  {_msfrrsReturn = Nothing, _msfrrsResponseStatus = pResponseStatus_} + -- | Is @true@ if the request succeeds, and an error otherwise. msfrrsReturn :: Lens' ModifySpotFleetRequestResponse (Maybe Bool) msfrrsReturn = lens _msfrrsReturn (\ s a -> s{_msfrrsReturn = a});@@ -159,4 +161,4 @@ msfrrsResponseStatus :: Lens' ModifySpotFleetRequestResponse Int msfrrsResponseStatus = lens _msfrrsResponseStatus (\ s a -> s{_msfrrsResponseStatus = a}); -instance NFData ModifySpotFleetRequestResponse+instance NFData ModifySpotFleetRequestResponse where
gen/Network/AWS/EC2/ModifySubnetAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifySubnetAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -36,12 +36,12 @@     , ModifySubnetAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifySubnetAttribute. --@@ -49,16 +49,17 @@ -- -- /See:/ 'modifySubnetAttribute' smart constructor. data ModifySubnetAttribute = ModifySubnetAttribute'-    { _msaAssignIPv6AddressOnCreation :: !(Maybe AttributeBooleanValue)-    , _msaMapPublicIPOnLaunch         :: !(Maybe AttributeBooleanValue)-    , _msaSubnetId                    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _msaAssignIPv6AddressOnCreation :: !(Maybe AttributeBooleanValue)+  , _msaMapPublicIPOnLaunch         :: !(Maybe AttributeBooleanValue)+  , _msaSubnetId                    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySubnetAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'msaAssignIPv6AddressOnCreation' - Specify @true@ to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. This includes a network interface that's created when launching an instance into the subnet (the instance therefore receives an IPv6 address).+-- * 'msaAssignIPv6AddressOnCreation' - Specify @true@ 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 @2016-11-15@ or later of the Amazon EC2 API. -- -- * 'msaMapPublicIPOnLaunch' - Specify @true@ 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). --@@ -67,13 +68,14 @@     :: Text -- ^ 'msaSubnetId'     -> ModifySubnetAttribute modifySubnetAttribute pSubnetId_ =-    ModifySubnetAttribute'-    { _msaAssignIPv6AddressOnCreation = Nothing-    , _msaMapPublicIPOnLaunch = Nothing-    , _msaSubnetId = pSubnetId_-    }+  ModifySubnetAttribute'+  { _msaAssignIPv6AddressOnCreation = Nothing+  , _msaMapPublicIPOnLaunch = Nothing+  , _msaSubnetId = pSubnetId_+  } --- | Specify @true@ 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).++-- | Specify @true@ 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 @2016-11-15@ or later of the Amazon EC2 API. msaAssignIPv6AddressOnCreation :: Lens' ModifySubnetAttribute (Maybe AttributeBooleanValue) msaAssignIPv6AddressOnCreation = lens _msaAssignIPv6AddressOnCreation (\ s a -> s{_msaAssignIPv6AddressOnCreation = a}); @@ -91,9 +93,9 @@         request = postQuery ec2         response = receiveNull ModifySubnetAttributeResponse' -instance Hashable ModifySubnetAttribute+instance Hashable ModifySubnetAttribute where -instance NFData ModifySubnetAttribute+instance NFData ModifySubnetAttribute where  instance ToHeaders ModifySubnetAttribute where         toHeaders = const mempty@@ -113,13 +115,15 @@  -- | /See:/ 'modifySubnetAttributeResponse' smart constructor. data ModifySubnetAttributeResponse =-    ModifySubnetAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifySubnetAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifySubnetAttributeResponse' with the minimum fields required to make a request. -- modifySubnetAttributeResponse     :: ModifySubnetAttributeResponse modifySubnetAttributeResponse = ModifySubnetAttributeResponse' -instance NFData ModifySubnetAttributeResponse++instance NFData ModifySubnetAttributeResponse where
gen/Network/AWS/EC2/ModifyVPCAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyVPCAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -36,12 +36,12 @@     , ModifyVPCAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyVpcAttribute. --@@ -49,11 +49,12 @@ -- -- /See:/ 'modifyVPCAttribute' smart constructor. data ModifyVPCAttribute = ModifyVPCAttribute'-    { _mvaEnableDNSHostnames :: !(Maybe AttributeBooleanValue)-    , _mvaEnableDNSSupport   :: !(Maybe AttributeBooleanValue)-    , _mvaVPCId              :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mvaEnableDNSHostnames :: !(Maybe AttributeBooleanValue)+  , _mvaEnableDNSSupport   :: !(Maybe AttributeBooleanValue)+  , _mvaVPCId              :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVPCAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,12 +68,13 @@     :: Text -- ^ 'mvaVPCId'     -> ModifyVPCAttribute modifyVPCAttribute pVPCId_ =-    ModifyVPCAttribute'-    { _mvaEnableDNSHostnames = Nothing-    , _mvaEnableDNSSupport = Nothing-    , _mvaVPCId = pVPCId_-    }+  ModifyVPCAttribute'+  { _mvaEnableDNSHostnames = Nothing+  , _mvaEnableDNSSupport = Nothing+  , _mvaVPCId = pVPCId_+  } + -- | 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) mvaEnableDNSHostnames = lens _mvaEnableDNSHostnames (\ s a -> s{_mvaEnableDNSHostnames = a});@@ -91,9 +93,9 @@         request = postQuery ec2         response = receiveNull ModifyVPCAttributeResponse' -instance Hashable ModifyVPCAttribute+instance Hashable ModifyVPCAttribute where -instance NFData ModifyVPCAttribute+instance NFData ModifyVPCAttribute where  instance ToHeaders ModifyVPCAttribute where         toHeaders = const mempty@@ -112,13 +114,15 @@  -- | /See:/ 'modifyVPCAttributeResponse' smart constructor. data ModifyVPCAttributeResponse =-    ModifyVPCAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyVPCAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVPCAttributeResponse' with the minimum fields required to make a request. -- modifyVPCAttributeResponse     :: ModifyVPCAttributeResponse modifyVPCAttributeResponse = ModifyVPCAttributeResponse' -instance NFData ModifyVPCAttributeResponse++instance NFData ModifyVPCAttributeResponse where
gen/Network/AWS/EC2/ModifyVPCEndpoint.hs view
@@ -12,13 +12,13 @@  -- | -- Module      : Network.AWS.EC2.ModifyVPCEndpoint--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you can add and remove route tables associated with the endpoint.+-- 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 <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html VPC Endpoints> in the /Amazon Virtual Private Cloud User Guide/ . -- -- module Network.AWS.EC2.ModifyVPCEndpoint@@ -31,7 +31,12 @@     , mveRemoveRouteTableIds     , mveResetPolicy     , mveAddRouteTableIds+    , mvePrivateDNSEnabled+    , mveAddSubnetIds+    , mveRemoveSubnetIds+    , mveAddSecurityGroupIds     , mveDryRun+    , mveRemoveSecurityGroupIds     , mveVPCEndpointId      -- * Destructuring the Response@@ -42,12 +47,12 @@     , mversResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyVpcEndpoint. --@@ -55,62 +60,104 @@ -- -- /See:/ 'modifyVPCEndpoint' smart constructor. data ModifyVPCEndpoint = ModifyVPCEndpoint'-    { _mvePolicyDocument      :: !(Maybe Text)-    , _mveRemoveRouteTableIds :: !(Maybe [Text])-    , _mveResetPolicy         :: !(Maybe Bool)-    , _mveAddRouteTableIds    :: !(Maybe [Text])-    , _mveDryRun              :: !(Maybe Bool)-    , _mveVPCEndpointId       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mvePolicyDocument         :: !(Maybe Text)+  , _mveRemoveRouteTableIds    :: !(Maybe [Text])+  , _mveResetPolicy            :: !(Maybe Bool)+  , _mveAddRouteTableIds       :: !(Maybe [Text])+  , _mvePrivateDNSEnabled      :: !(Maybe Bool)+  , _mveAddSubnetIds           :: !(Maybe [Text])+  , _mveRemoveSubnetIds        :: !(Maybe [Text])+  , _mveAddSecurityGroupIds    :: !(Maybe [Text])+  , _mveDryRun                 :: !(Maybe Bool)+  , _mveRemoveSecurityGroupIds :: !(Maybe [Text])+  , _mveVPCEndpointId          :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVPCEndpoint' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'mvePolicyDocument' - A policy document to attach to the endpoint. The policy must be in valid JSON format.+-- * 'mvePolicyDocument' - (Gateway endpoint) A policy document to attach to the endpoint. The policy must be in valid JSON format. ----- * 'mveRemoveRouteTableIds' - One or more route table IDs to disassociate from the endpoint.+-- * 'mveRemoveRouteTableIds' - (Gateway endpoint) One or more route table IDs to disassociate from the endpoint. ----- * 'mveResetPolicy' - Specify @true@ to reset the policy document to the default policy. The default policy allows access to the service.+-- * 'mveResetPolicy' - (Gateway endpoint) Specify @true@ to reset the policy document to the default policy. The default policy allows full access to the service. ----- * 'mveAddRouteTableIds' - One or more route tables IDs to associate with the endpoint.+-- * 'mveAddRouteTableIds' - (Gateway endpoint) One or more route tables IDs to associate with the endpoint. --+-- * 'mvePrivateDNSEnabled' - (Interface endpoint) Indicate whether a private hosted zone is associated with the VPC.+--+-- * 'mveAddSubnetIds' - (Interface endpoint) One or more subnet IDs in which to serve the endpoint.+--+-- * 'mveRemoveSubnetIds' - (Interface endpoint) One or more subnets IDs in which to remove the endpoint.+--+-- * 'mveAddSecurityGroupIds' - (Interface endpoint) One or more security group IDs to associate with the network interface.+-- -- * 'mveDryRun' - Checks whether you have the required permissions for the action, 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@ . --+-- * 'mveRemoveSecurityGroupIds' - (Interface endpoint) One or more security group IDs to disassociate from the network interface.+-- -- * 'mveVPCEndpointId' - The ID of the endpoint. modifyVPCEndpoint     :: Text -- ^ 'mveVPCEndpointId'     -> ModifyVPCEndpoint modifyVPCEndpoint pVPCEndpointId_ =-    ModifyVPCEndpoint'-    { _mvePolicyDocument = Nothing-    , _mveRemoveRouteTableIds = Nothing-    , _mveResetPolicy = Nothing-    , _mveAddRouteTableIds = Nothing-    , _mveDryRun = Nothing-    , _mveVPCEndpointId = pVPCEndpointId_-    }+  ModifyVPCEndpoint'+  { _mvePolicyDocument = Nothing+  , _mveRemoveRouteTableIds = Nothing+  , _mveResetPolicy = Nothing+  , _mveAddRouteTableIds = Nothing+  , _mvePrivateDNSEnabled = Nothing+  , _mveAddSubnetIds = Nothing+  , _mveRemoveSubnetIds = Nothing+  , _mveAddSecurityGroupIds = Nothing+  , _mveDryRun = Nothing+  , _mveRemoveSecurityGroupIds = Nothing+  , _mveVPCEndpointId = pVPCEndpointId_+  } --- | A policy document to attach to the endpoint. The policy must be in valid JSON format.++-- | (Gateway endpoint) A policy document to attach to the endpoint. The policy must be in valid JSON format. mvePolicyDocument :: Lens' ModifyVPCEndpoint (Maybe Text) mvePolicyDocument = lens _mvePolicyDocument (\ s a -> s{_mvePolicyDocument = a}); --- | One or more route table IDs to disassociate from the endpoint.+-- | (Gateway endpoint) One or more route table IDs to disassociate from the endpoint. mveRemoveRouteTableIds :: Lens' ModifyVPCEndpoint [Text] mveRemoveRouteTableIds = lens _mveRemoveRouteTableIds (\ s a -> s{_mveRemoveRouteTableIds = a}) . _Default . _Coerce; --- | Specify @true@ to reset the policy document to the default policy. The default policy allows access to the service.+-- | (Gateway endpoint) Specify @true@ to reset the policy document to the default policy. The default policy allows full access to the service. mveResetPolicy :: Lens' ModifyVPCEndpoint (Maybe Bool) mveResetPolicy = lens _mveResetPolicy (\ s a -> s{_mveResetPolicy = a}); --- | One or more route tables IDs to associate with the endpoint.+-- | (Gateway endpoint) One or more route tables IDs to associate with the endpoint. mveAddRouteTableIds :: Lens' ModifyVPCEndpoint [Text] mveAddRouteTableIds = lens _mveAddRouteTableIds (\ s a -> s{_mveAddRouteTableIds = a}) . _Default . _Coerce; +-- | (Interface endpoint) Indicate whether a private hosted zone is associated with the VPC.+mvePrivateDNSEnabled :: Lens' ModifyVPCEndpoint (Maybe Bool)+mvePrivateDNSEnabled = lens _mvePrivateDNSEnabled (\ s a -> s{_mvePrivateDNSEnabled = a});++-- | (Interface endpoint) One or more subnet IDs in which to serve the endpoint.+mveAddSubnetIds :: Lens' ModifyVPCEndpoint [Text]+mveAddSubnetIds = lens _mveAddSubnetIds (\ s a -> s{_mveAddSubnetIds = a}) . _Default . _Coerce;++-- | (Interface endpoint) One or more subnets IDs in which to remove the endpoint.+mveRemoveSubnetIds :: Lens' ModifyVPCEndpoint [Text]+mveRemoveSubnetIds = lens _mveRemoveSubnetIds (\ s a -> s{_mveRemoveSubnetIds = a}) . _Default . _Coerce;++-- | (Interface endpoint) One or more security group IDs to associate with the network interface.+mveAddSecurityGroupIds :: Lens' ModifyVPCEndpoint [Text]+mveAddSecurityGroupIds = lens _mveAddSecurityGroupIds (\ s a -> s{_mveAddSecurityGroupIds = a}) . _Default . _Coerce;+ -- | Checks whether you have the required permissions for the action, 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@ . mveDryRun :: Lens' ModifyVPCEndpoint (Maybe Bool) mveDryRun = lens _mveDryRun (\ s a -> s{_mveDryRun = a}); +-- | (Interface endpoint) One or more security group IDs to disassociate from the network interface.+mveRemoveSecurityGroupIds :: Lens' ModifyVPCEndpoint [Text]+mveRemoveSecurityGroupIds = lens _mveRemoveSecurityGroupIds (\ s a -> s{_mveRemoveSecurityGroupIds = a}) . _Default . _Coerce;+ -- | The ID of the endpoint. mveVPCEndpointId :: Lens' ModifyVPCEndpoint Text mveVPCEndpointId = lens _mveVPCEndpointId (\ s a -> s{_mveVPCEndpointId = a});@@ -124,9 +171,9 @@                  ModifyVPCEndpointResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable ModifyVPCEndpoint+instance Hashable ModifyVPCEndpoint where -instance NFData ModifyVPCEndpoint+instance NFData ModifyVPCEndpoint where  instance ToHeaders ModifyVPCEndpoint where         toHeaders = const mempty@@ -147,19 +194,28 @@                toQuery                  (toQueryList "AddRouteTableId" <$>                     _mveAddRouteTableIds),+               "PrivateDnsEnabled" =: _mvePrivateDNSEnabled,+               toQuery+                 (toQueryList "AddSubnetId" <$> _mveAddSubnetIds),+               toQuery+                 (toQueryList "RemoveSubnetId" <$>+                    _mveRemoveSubnetIds),+               toQuery+                 (toQueryList "AddSecurityGroupId" <$>+                    _mveAddSecurityGroupIds),                "DryRun" =: _mveDryRun,+               toQuery+                 (toQueryList "RemoveSecurityGroupId" <$>+                    _mveRemoveSecurityGroupIds),                "VpcEndpointId" =: _mveVPCEndpointId] --- | Contains the output of ModifyVpcEndpoint.------------ /See:/ 'modifyVPCEndpointResponse' smart constructor.+-- | /See:/ 'modifyVPCEndpointResponse' smart constructor. data ModifyVPCEndpointResponse = ModifyVPCEndpointResponse'-    { _mversReturn         :: !(Maybe Bool)-    , _mversResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mversReturn         :: !(Maybe Bool)+  , _mversResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVPCEndpointResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -171,11 +227,10 @@     :: Int -- ^ 'mversResponseStatus'     -> ModifyVPCEndpointResponse modifyVPCEndpointResponse pResponseStatus_ =-    ModifyVPCEndpointResponse'-    { _mversReturn = Nothing-    , _mversResponseStatus = pResponseStatus_-    }+  ModifyVPCEndpointResponse'+  {_mversReturn = Nothing, _mversResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. mversReturn :: Lens' ModifyVPCEndpointResponse (Maybe Bool) mversReturn = lens _mversReturn (\ s a -> s{_mversReturn = a});@@ -184,4 +239,4 @@ mversResponseStatus :: Lens' ModifyVPCEndpointResponse Int mversResponseStatus = lens _mversResponseStatus (\ s a -> s{_mversResponseStatus = a}); -instance NFData ModifyVPCEndpointResponse+instance NFData ModifyVPCEndpointResponse where
gen/Network/AWS/EC2/ModifyVPCPeeringConnectionOptions.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyVPCPeeringConnectionOptions--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -51,21 +51,22 @@     , mvpcorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'modifyVPCPeeringConnectionOptions' smart constructor. data ModifyVPCPeeringConnectionOptions = ModifyVPCPeeringConnectionOptions'-    { _mvpcoRequesterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptionsRequest)-    , _mvpcoAccepterPeeringConnectionOptions  :: !(Maybe PeeringConnectionOptionsRequest)-    , _mvpcoDryRun                            :: !(Maybe Bool)-    , _mvpcoVPCPeeringConnectionId            :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mvpcoRequesterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptionsRequest)+  , _mvpcoAccepterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptionsRequest)+  , _mvpcoDryRun :: !(Maybe Bool)+  , _mvpcoVPCPeeringConnectionId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVPCPeeringConnectionOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,13 +82,14 @@     :: Text -- ^ 'mvpcoVPCPeeringConnectionId'     -> ModifyVPCPeeringConnectionOptions modifyVPCPeeringConnectionOptions pVPCPeeringConnectionId_ =-    ModifyVPCPeeringConnectionOptions'-    { _mvpcoRequesterPeeringConnectionOptions = Nothing-    , _mvpcoAccepterPeeringConnectionOptions = Nothing-    , _mvpcoDryRun = Nothing-    , _mvpcoVPCPeeringConnectionId = pVPCPeeringConnectionId_-    }+  ModifyVPCPeeringConnectionOptions'+  { _mvpcoRequesterPeeringConnectionOptions = Nothing+  , _mvpcoAccepterPeeringConnectionOptions = Nothing+  , _mvpcoDryRun = Nothing+  , _mvpcoVPCPeeringConnectionId = pVPCPeeringConnectionId_+  } + -- | The VPC peering connection options for the requester VPC. mvpcoRequesterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptions (Maybe PeeringConnectionOptionsRequest) mvpcoRequesterPeeringConnectionOptions = lens _mvpcoRequesterPeeringConnectionOptions (\ s a -> s{_mvpcoRequesterPeeringConnectionOptions = a});@@ -118,8 +120,10 @@                      <*> (pure (fromEnum s)))  instance Hashable ModifyVPCPeeringConnectionOptions+         where  instance NFData ModifyVPCPeeringConnectionOptions+         where  instance ToHeaders ModifyVPCPeeringConnectionOptions          where@@ -146,11 +150,12 @@  -- | /See:/ 'modifyVPCPeeringConnectionOptionsResponse' smart constructor. data ModifyVPCPeeringConnectionOptionsResponse = ModifyVPCPeeringConnectionOptionsResponse'-    { _mvpcorsRequesterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptions)-    , _mvpcorsAccepterPeeringConnectionOptions  :: !(Maybe PeeringConnectionOptions)-    , _mvpcorsResponseStatus                    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mvpcorsRequesterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptions)+  , _mvpcorsAccepterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptions)+  , _mvpcorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVPCPeeringConnectionOptionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,12 +169,13 @@     :: Int -- ^ 'mvpcorsResponseStatus'     -> ModifyVPCPeeringConnectionOptionsResponse modifyVPCPeeringConnectionOptionsResponse pResponseStatus_ =-    ModifyVPCPeeringConnectionOptionsResponse'-    { _mvpcorsRequesterPeeringConnectionOptions = Nothing-    , _mvpcorsAccepterPeeringConnectionOptions = Nothing-    , _mvpcorsResponseStatus = pResponseStatus_-    }+  ModifyVPCPeeringConnectionOptionsResponse'+  { _mvpcorsRequesterPeeringConnectionOptions = Nothing+  , _mvpcorsAccepterPeeringConnectionOptions = Nothing+  , _mvpcorsResponseStatus = pResponseStatus_+  } + -- | Information about the VPC peering connection options for the requester VPC. mvpcorsRequesterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptionsResponse (Maybe PeeringConnectionOptions) mvpcorsRequesterPeeringConnectionOptions = lens _mvpcorsRequesterPeeringConnectionOptions (\ s a -> s{_mvpcorsRequesterPeeringConnectionOptions = a});@@ -183,4 +189,5 @@ mvpcorsResponseStatus = lens _mvpcorsResponseStatus (\ s a -> s{_mvpcorsResponseStatus = a});  instance NFData-         ModifyVPCPeeringConnectionOptionsResponse+           ModifyVPCPeeringConnectionOptionsResponse+         where
+ gen/Network/AWS/EC2/ModifyVPCTenancy.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.ModifyVPCTenancy+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the instance tenancy attribute of the specified VPC. You can change the instance tenancy attribute of a VPC to @default@ only. You cannot change the instance tenancy attribute to @dedicated@ .+--+--+-- After you modify the tenancy of the VPC, any new instances that you launch into the VPC have a tenancy of @default@ , 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html Dedicated Instances> in the /Amazon Elastic Compute Cloud User Guide/ .+--+module Network.AWS.EC2.ModifyVPCTenancy+    (+    -- * Creating a Request+      modifyVPCTenancy+    , ModifyVPCTenancy+    -- * Request Lenses+    , mvtDryRun+    , mvtVPCId+    , mvtInstanceTenancy++    -- * Destructuring the Response+    , modifyVPCTenancyResponse+    , ModifyVPCTenancyResponse+    -- * Response Lenses+    , mvtrsReturnValue+    , mvtrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for ModifyVpcTenancy.+--+--+--+-- /See:/ 'modifyVPCTenancy' smart constructor.+data ModifyVPCTenancy = ModifyVPCTenancy'+  { _mvtDryRun          :: !(Maybe Bool)+  , _mvtVPCId           :: !Text+  , _mvtInstanceTenancy :: !VPCTenancy+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyVPCTenancy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvtDryRun' - 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@ .+--+-- * 'mvtVPCId' - The ID of the VPC.+--+-- * 'mvtInstanceTenancy' - The instance tenancy attribute for the VPC.+modifyVPCTenancy+    :: Text -- ^ 'mvtVPCId'+    -> VPCTenancy -- ^ 'mvtInstanceTenancy'+    -> ModifyVPCTenancy+modifyVPCTenancy pVPCId_ pInstanceTenancy_ =+  ModifyVPCTenancy'+  { _mvtDryRun = Nothing+  , _mvtVPCId = pVPCId_+  , _mvtInstanceTenancy = pInstanceTenancy_+  }+++-- | 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@ .+mvtDryRun :: Lens' ModifyVPCTenancy (Maybe Bool)+mvtDryRun = lens _mvtDryRun (\ s a -> s{_mvtDryRun = a});++-- | The ID of the VPC.+mvtVPCId :: Lens' ModifyVPCTenancy Text+mvtVPCId = lens _mvtVPCId (\ s a -> s{_mvtVPCId = a});++-- | The instance tenancy attribute for the VPC.+mvtInstanceTenancy :: Lens' ModifyVPCTenancy VPCTenancy+mvtInstanceTenancy = lens _mvtInstanceTenancy (\ s a -> s{_mvtInstanceTenancy = a});++instance AWSRequest ModifyVPCTenancy where+        type Rs ModifyVPCTenancy = ModifyVPCTenancyResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 ModifyVPCTenancyResponse' <$>+                   (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable ModifyVPCTenancy where++instance NFData ModifyVPCTenancy where++instance ToHeaders ModifyVPCTenancy where+        toHeaders = const mempty++instance ToPath ModifyVPCTenancy where+        toPath = const "/"++instance ToQuery ModifyVPCTenancy where+        toQuery ModifyVPCTenancy'{..}+          = mconcat+              ["Action" =: ("ModifyVpcTenancy" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "DryRun" =: _mvtDryRun, "VpcId" =: _mvtVPCId,+               "InstanceTenancy" =: _mvtInstanceTenancy]++-- | Contains the output of ModifyVpcTenancy.+--+--+--+-- /See:/ 'modifyVPCTenancyResponse' smart constructor.+data ModifyVPCTenancyResponse = ModifyVPCTenancyResponse'+  { _mvtrsReturnValue    :: !(Maybe Bool)+  , _mvtrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyVPCTenancyResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvtrsReturnValue' - Returns @true@ if the request succeeds; otherwise, returns an error.+--+-- * 'mvtrsResponseStatus' - -- | The response status code.+modifyVPCTenancyResponse+    :: Int -- ^ 'mvtrsResponseStatus'+    -> ModifyVPCTenancyResponse+modifyVPCTenancyResponse pResponseStatus_ =+  ModifyVPCTenancyResponse'+  {_mvtrsReturnValue = Nothing, _mvtrsResponseStatus = pResponseStatus_}+++-- | Returns @true@ if the request succeeds; otherwise, returns an error.+mvtrsReturnValue :: Lens' ModifyVPCTenancyResponse (Maybe Bool)+mvtrsReturnValue = lens _mvtrsReturnValue (\ s a -> s{_mvtrsReturnValue = a});++-- | -- | The response status code.+mvtrsResponseStatus :: Lens' ModifyVPCTenancyResponse Int+mvtrsResponseStatus = lens _mvtrsResponseStatus (\ s a -> s{_mvtrsResponseStatus = a});++instance NFData ModifyVPCTenancyResponse where
+ gen/Network/AWS/EC2/ModifyVolume.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.ModifyVolume+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html Modifying the Size, IOPS, or Type of an EBS Volume on Linux> . For more information about modifying an EBS volume running Windows, see <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html Modifying the Size, IOPS, or Type of an EBS Volume on Windows> .+--+--+-- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux Extending a Linux File System> . For information about extending a Windows file system, see <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html#recognize-expanded-volume-windows Extending a Windows File System> .+--+-- You can use CloudWatch Events to check the status of a modification to an EBS volume. For information about CloudWatch Events, see the <http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ Amazon CloudWatch Events User Guide> . You can also track the status of a modification using the 'DescribeVolumesModifications' API. For information about tracking status changes using either method, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods Monitoring Volume Modifications> .+--+module Network.AWS.EC2.ModifyVolume+    (+    -- * Creating a Request+      modifyVolume+    , ModifyVolume+    -- * Request Lenses+    , mvSize+    , mvIOPS+    , mvVolumeType+    , mvDryRun+    , mvVolumeId++    -- * Destructuring the Response+    , modifyVolumeResponse+    , ModifyVolumeResponse+    -- * Response Lenses+    , mvrsVolumeModification+    , mvrsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'modifyVolume' smart constructor.+data ModifyVolume = ModifyVolume'+  { _mvSize       :: !(Maybe Int)+  , _mvIOPS       :: !(Maybe Int)+  , _mvVolumeType :: !(Maybe VolumeType)+  , _mvDryRun     :: !(Maybe Bool)+  , _mvVolumeId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyVolume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvSize' - 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html> . Default: If no size is specified, the existing size is retained.+--+-- * 'mvIOPS' - Target IOPS rate of the volume to be modified. Only valid for Provisioned IOPS SSD (@io1@ ) volumes. For more information about @io1@ IOPS configuration, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops> . Default: If no IOPS value is specified, the existing value is retained.+--+-- * 'mvVolumeType' - Target EBS volume type of the volume to be modified The API does not support modifications for volume type @standard@ . You also cannot change the type of a volume to @standard@ .  Default: If no type is specified, the existing type is retained.+--+-- * 'mvDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'mvVolumeId' - Undocumented member.+modifyVolume+    :: Text -- ^ 'mvVolumeId'+    -> ModifyVolume+modifyVolume pVolumeId_ =+  ModifyVolume'+  { _mvSize = Nothing+  , _mvIOPS = Nothing+  , _mvVolumeType = Nothing+  , _mvDryRun = Nothing+  , _mvVolumeId = pVolumeId_+  }+++-- | 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html> . Default: If no size is specified, the existing size is retained.+mvSize :: Lens' ModifyVolume (Maybe Int)+mvSize = lens _mvSize (\ s a -> s{_mvSize = a});++-- | Target IOPS rate of the volume to be modified. Only valid for Provisioned IOPS SSD (@io1@ ) volumes. For more information about @io1@ IOPS configuration, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops> . Default: If no IOPS value is specified, the existing value is retained.+mvIOPS :: Lens' ModifyVolume (Maybe Int)+mvIOPS = lens _mvIOPS (\ s a -> s{_mvIOPS = a});++-- | Target EBS volume type of the volume to be modified The API does not support modifications for volume type @standard@ . You also cannot change the type of a volume to @standard@ .  Default: If no type is specified, the existing type is retained.+mvVolumeType :: Lens' ModifyVolume (Maybe VolumeType)+mvVolumeType = lens _mvVolumeType (\ s a -> s{_mvVolumeType = a});++-- | Checks whether you have the required permissions for the action, 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@ .+mvDryRun :: Lens' ModifyVolume (Maybe Bool)+mvDryRun = lens _mvDryRun (\ s a -> s{_mvDryRun = a});++-- | Undocumented member.+mvVolumeId :: Lens' ModifyVolume Text+mvVolumeId = lens _mvVolumeId (\ s a -> s{_mvVolumeId = a});++instance AWSRequest ModifyVolume where+        type Rs ModifyVolume = ModifyVolumeResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 ModifyVolumeResponse' <$>+                   (x .@? "volumeModification") <*> (pure (fromEnum s)))++instance Hashable ModifyVolume where++instance NFData ModifyVolume where++instance ToHeaders ModifyVolume where+        toHeaders = const mempty++instance ToPath ModifyVolume where+        toPath = const "/"++instance ToQuery ModifyVolume where+        toQuery ModifyVolume'{..}+          = mconcat+              ["Action" =: ("ModifyVolume" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "Size" =: _mvSize, "Iops" =: _mvIOPS,+               "VolumeType" =: _mvVolumeType, "DryRun" =: _mvDryRun,+               "VolumeId" =: _mvVolumeId]++-- | /See:/ 'modifyVolumeResponse' smart constructor.+data ModifyVolumeResponse = ModifyVolumeResponse'+  { _mvrsVolumeModification :: !(Maybe VolumeModification)+  , _mvrsResponseStatus     :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ModifyVolumeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvrsVolumeModification' - A 'VolumeModification' object.+--+-- * 'mvrsResponseStatus' - -- | The response status code.+modifyVolumeResponse+    :: Int -- ^ 'mvrsResponseStatus'+    -> ModifyVolumeResponse+modifyVolumeResponse pResponseStatus_ =+  ModifyVolumeResponse'+  {_mvrsVolumeModification = Nothing, _mvrsResponseStatus = pResponseStatus_}+++-- | A 'VolumeModification' object.+mvrsVolumeModification :: Lens' ModifyVolumeResponse (Maybe VolumeModification)+mvrsVolumeModification = lens _mvrsVolumeModification (\ s a -> s{_mvrsVolumeModification = a});++-- | -- | The response status code.+mvrsResponseStatus :: Lens' ModifyVolumeResponse Int+mvrsResponseStatus = lens _mvrsResponseStatus (\ s a -> s{_mvrsResponseStatus = a});++instance NFData ModifyVolumeResponse where
gen/Network/AWS/EC2/ModifyVolumeAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ModifyVolumeAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , ModifyVolumeAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ModifyVolumeAttribute. --@@ -53,11 +53,12 @@ -- -- /See:/ 'modifyVolumeAttribute' smart constructor. data ModifyVolumeAttribute = ModifyVolumeAttribute'-    { _mvaAutoEnableIO :: !(Maybe AttributeBooleanValue)-    , _mvaDryRun       :: !(Maybe Bool)-    , _mvaVolumeId     :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mvaAutoEnableIO :: !(Maybe AttributeBooleanValue)+  , _mvaDryRun       :: !(Maybe Bool)+  , _mvaVolumeId     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVolumeAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,10 @@     :: Text -- ^ 'mvaVolumeId'     -> ModifyVolumeAttribute modifyVolumeAttribute pVolumeId_ =-    ModifyVolumeAttribute'-    { _mvaAutoEnableIO = Nothing-    , _mvaDryRun = Nothing-    , _mvaVolumeId = pVolumeId_-    }+  ModifyVolumeAttribute'+  {_mvaAutoEnableIO = Nothing, _mvaDryRun = Nothing, _mvaVolumeId = pVolumeId_} + -- | Indicates whether the volume should be auto-enabled for I/O operations. mvaAutoEnableIO :: Lens' ModifyVolumeAttribute (Maybe AttributeBooleanValue) mvaAutoEnableIO = lens _mvaAutoEnableIO (\ s a -> s{_mvaAutoEnableIO = a});@@ -95,9 +94,9 @@         request = postQuery ec2         response = receiveNull ModifyVolumeAttributeResponse' -instance Hashable ModifyVolumeAttribute+instance Hashable ModifyVolumeAttribute where -instance NFData ModifyVolumeAttribute+instance NFData ModifyVolumeAttribute where  instance ToHeaders ModifyVolumeAttribute where         toHeaders = const mempty@@ -115,13 +114,15 @@  -- | /See:/ 'modifyVolumeAttributeResponse' smart constructor. data ModifyVolumeAttributeResponse =-    ModifyVolumeAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ModifyVolumeAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ModifyVolumeAttributeResponse' with the minimum fields required to make a request. -- modifyVolumeAttributeResponse     :: ModifyVolumeAttributeResponse modifyVolumeAttributeResponse = ModifyVolumeAttributeResponse' -instance NFData ModifyVolumeAttributeResponse++instance NFData ModifyVolumeAttributeResponse where
gen/Network/AWS/EC2/MonitorInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.MonitorInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,12 +40,12 @@     , mirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for MonitorInstances. --@@ -53,10 +53,11 @@ -- -- /See:/ 'monitorInstances' smart constructor. data MonitorInstances = MonitorInstances'-    { _miDryRun      :: !(Maybe Bool)-    , _miInstanceIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _miDryRun      :: !(Maybe Bool)+  , _miInstanceIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'MonitorInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,9 @@ monitorInstances     :: MonitorInstances monitorInstances =-    MonitorInstances'-    { _miDryRun = Nothing-    , _miInstanceIds = mempty-    }+  MonitorInstances' {_miDryRun = Nothing, _miInstanceIds = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . miDryRun :: Lens' MonitorInstances (Maybe Bool) miDryRun = lens _miDryRun (\ s a -> s{_miDryRun = a});@@ -91,9 +90,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable MonitorInstances+instance Hashable MonitorInstances where -instance NFData MonitorInstances+instance NFData MonitorInstances where  instance ToHeaders MonitorInstances where         toHeaders = const mempty@@ -115,10 +114,11 @@ -- -- /See:/ 'monitorInstancesResponse' smart constructor. data MonitorInstancesResponse = MonitorInstancesResponse'-    { _mirsInstanceMonitorings :: !(Maybe [InstanceMonitoring])-    , _mirsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _mirsInstanceMonitorings :: !(Maybe [InstanceMonitoring])+  , _mirsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'MonitorInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +130,10 @@     :: Int -- ^ 'mirsResponseStatus'     -> MonitorInstancesResponse monitorInstancesResponse pResponseStatus_ =-    MonitorInstancesResponse'-    { _mirsInstanceMonitorings = Nothing-    , _mirsResponseStatus = pResponseStatus_-    }+  MonitorInstancesResponse'+  {_mirsInstanceMonitorings = Nothing, _mirsResponseStatus = pResponseStatus_} + -- | The monitoring information. mirsInstanceMonitorings :: Lens' MonitorInstancesResponse [InstanceMonitoring] mirsInstanceMonitorings = lens _mirsInstanceMonitorings (\ s a -> s{_mirsInstanceMonitorings = a}) . _Default . _Coerce;@@ -143,4 +142,4 @@ mirsResponseStatus :: Lens' MonitorInstancesResponse Int mirsResponseStatus = lens _mirsResponseStatus (\ s a -> s{_mirsResponseStatus = a}); -instance NFData MonitorInstancesResponse+instance NFData MonitorInstancesResponse where
gen/Network/AWS/EC2/MoveAddressToVPC.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.MoveAddressToVPC--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , matvrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for MoveAddressToVpc. --@@ -52,10 +52,11 @@ -- -- /See:/ 'moveAddressToVPC' smart constructor. data MoveAddressToVPC = MoveAddressToVPC'-    { _matvDryRun   :: !(Maybe Bool)-    , _matvPublicIP :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _matvDryRun   :: !(Maybe Bool)+  , _matvPublicIP :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'MoveAddressToVPC' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,9 @@     :: Text -- ^ 'matvPublicIP'     -> MoveAddressToVPC moveAddressToVPC pPublicIP_ =-    MoveAddressToVPC'-    { _matvDryRun = Nothing-    , _matvPublicIP = pPublicIP_-    }+  MoveAddressToVPC' {_matvDryRun = Nothing, _matvPublicIP = pPublicIP_} + -- | Checks whether you have the required permissions for the action, 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@ . matvDryRun :: Lens' MoveAddressToVPC (Maybe Bool) matvDryRun = lens _matvDryRun (\ s a -> s{_matvDryRun = a});@@ -90,9 +89,9 @@                    (x .@? "status") <*> (x .@? "allocationId") <*>                      (pure (fromEnum s))) -instance Hashable MoveAddressToVPC+instance Hashable MoveAddressToVPC where -instance NFData MoveAddressToVPC+instance NFData MoveAddressToVPC where  instance ToHeaders MoveAddressToVPC where         toHeaders = const mempty@@ -113,11 +112,12 @@ -- -- /See:/ 'moveAddressToVPCResponse' smart constructor. data MoveAddressToVPCResponse = MoveAddressToVPCResponse'-    { _matvrsStatus         :: !(Maybe AddressStatus)-    , _matvrsAllocationId   :: !(Maybe Text)-    , _matvrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _matvrsStatus         :: !(Maybe AddressStatus)+  , _matvrsAllocationId   :: !(Maybe Text)+  , _matvrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'MoveAddressToVPCResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -131,12 +131,13 @@     :: Int -- ^ 'matvrsResponseStatus'     -> MoveAddressToVPCResponse moveAddressToVPCResponse pResponseStatus_ =-    MoveAddressToVPCResponse'-    { _matvrsStatus = Nothing-    , _matvrsAllocationId = Nothing-    , _matvrsResponseStatus = pResponseStatus_-    }+  MoveAddressToVPCResponse'+  { _matvrsStatus = Nothing+  , _matvrsAllocationId = Nothing+  , _matvrsResponseStatus = pResponseStatus_+  } + -- | The status of the move of the IP address. matvrsStatus :: Lens' MoveAddressToVPCResponse (Maybe AddressStatus) matvrsStatus = lens _matvrsStatus (\ s a -> s{_matvrsStatus = a});@@ -149,4 +150,4 @@ matvrsResponseStatus :: Lens' MoveAddressToVPCResponse Int matvrsResponseStatus = lens _matvrsResponseStatus (\ s a -> s{_matvrsResponseStatus = a}); -instance NFData MoveAddressToVPCResponse+instance NFData MoveAddressToVPCResponse where
gen/Network/AWS/EC2/PurchaseHostReservation.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.PurchaseHostReservation--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,8 +30,8 @@     , phrCurrencyCode     , phrClientToken     , phrLimitPrice-    , phrOfferingId     , phrHostIdSet+    , phrOfferingId      -- * Destructuring the Response     , purchaseHostReservationResponse@@ -45,22 +45,23 @@     , phrrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'purchaseHostReservation' smart constructor. data PurchaseHostReservation = PurchaseHostReservation'-    { _phrCurrencyCode :: !(Maybe CurrencyCodeValues)-    , _phrClientToken  :: !(Maybe Text)-    , _phrLimitPrice   :: !(Maybe Text)-    , _phrOfferingId   :: !Text-    , _phrHostIdSet    :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _phrCurrencyCode :: !(Maybe CurrencyCodeValues)+  , _phrClientToken  :: !(Maybe Text)+  , _phrLimitPrice   :: !(Maybe Text)+  , _phrHostIdSet    :: ![Text]+  , _phrOfferingId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseHostReservation' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,21 +72,22 @@ -- -- * 'phrLimitPrice' - 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 @USD@ . For example, to indicate a limit price of USD 100, specify 100.00. ----- * 'phrOfferingId' - The ID of the offering.--- -- * 'phrHostIdSet' - The ID/s of the Dedicated Host/s that the reservation will be associated with.+--+-- * 'phrOfferingId' - The ID of the offering. purchaseHostReservation     :: Text -- ^ 'phrOfferingId'     -> PurchaseHostReservation purchaseHostReservation pOfferingId_ =-    PurchaseHostReservation'-    { _phrCurrencyCode = Nothing-    , _phrClientToken = Nothing-    , _phrLimitPrice = Nothing-    , _phrOfferingId = pOfferingId_-    , _phrHostIdSet = mempty-    }+  PurchaseHostReservation'+  { _phrCurrencyCode = Nothing+  , _phrClientToken = Nothing+  , _phrLimitPrice = Nothing+  , _phrHostIdSet = mempty+  , _phrOfferingId = pOfferingId_+  } + -- | The currency in which the @totalUpfrontPrice@ , @LimitPrice@ , and @totalHourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ . phrCurrencyCode :: Lens' PurchaseHostReservation (Maybe CurrencyCodeValues) phrCurrencyCode = lens _phrCurrencyCode (\ s a -> s{_phrCurrencyCode = a});@@ -98,14 +100,14 @@ phrLimitPrice :: Lens' PurchaseHostReservation (Maybe Text) phrLimitPrice = lens _phrLimitPrice (\ s a -> s{_phrLimitPrice = a}); --- | The ID of the offering.-phrOfferingId :: Lens' PurchaseHostReservation Text-phrOfferingId = lens _phrOfferingId (\ s a -> s{_phrOfferingId = a});- -- | The ID/s of the Dedicated Host/s that the reservation will be associated with. phrHostIdSet :: Lens' PurchaseHostReservation [Text] phrHostIdSet = lens _phrHostIdSet (\ s a -> s{_phrHostIdSet = a}) . _Coerce; +-- | The ID of the offering.+phrOfferingId :: Lens' PurchaseHostReservation Text+phrOfferingId = lens _phrOfferingId (\ s a -> s{_phrOfferingId = a});+ instance AWSRequest PurchaseHostReservation where         type Rs PurchaseHostReservation =              PurchaseHostReservationResponse@@ -119,12 +121,12 @@                      <*> (x .@? "totalUpfrontPrice")                      <*>                      (x .@? "purchase" .!@ mempty >>=-                        may (parseXMLList "member"))+                        may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable PurchaseHostReservation+instance Hashable PurchaseHostReservation where -instance NFData PurchaseHostReservation+instance NFData PurchaseHostReservation where  instance ToHeaders PurchaseHostReservation where         toHeaders = const mempty@@ -141,19 +143,20 @@                "CurrencyCode" =: _phrCurrencyCode,                "ClientToken" =: _phrClientToken,                "LimitPrice" =: _phrLimitPrice,-               "OfferingId" =: _phrOfferingId,-               toQueryList "HostIdSet" _phrHostIdSet]+               toQueryList "HostIdSet" _phrHostIdSet,+               "OfferingId" =: _phrOfferingId]  -- | /See:/ 'purchaseHostReservationResponse' smart constructor. data PurchaseHostReservationResponse = PurchaseHostReservationResponse'-    { _phrrsCurrencyCode      :: !(Maybe CurrencyCodeValues)-    , _phrrsClientToken       :: !(Maybe Text)-    , _phrrsTotalHourlyPrice  :: !(Maybe Text)-    , _phrrsTotalUpfrontPrice :: !(Maybe Text)-    , _phrrsPurchase          :: !(Maybe [Purchase])-    , _phrrsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _phrrsCurrencyCode      :: !(Maybe CurrencyCodeValues)+  , _phrrsClientToken       :: !(Maybe Text)+  , _phrrsTotalHourlyPrice  :: !(Maybe Text)+  , _phrrsTotalUpfrontPrice :: !(Maybe Text)+  , _phrrsPurchase          :: !(Maybe [Purchase])+  , _phrrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseHostReservationResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -173,15 +176,16 @@     :: Int -- ^ 'phrrsResponseStatus'     -> PurchaseHostReservationResponse purchaseHostReservationResponse pResponseStatus_ =-    PurchaseHostReservationResponse'-    { _phrrsCurrencyCode = Nothing-    , _phrrsClientToken = Nothing-    , _phrrsTotalHourlyPrice = Nothing-    , _phrrsTotalUpfrontPrice = Nothing-    , _phrrsPurchase = Nothing-    , _phrrsResponseStatus = pResponseStatus_-    }+  PurchaseHostReservationResponse'+  { _phrrsCurrencyCode = Nothing+  , _phrrsClientToken = Nothing+  , _phrrsTotalHourlyPrice = Nothing+  , _phrrsTotalUpfrontPrice = Nothing+  , _phrrsPurchase = Nothing+  , _phrrsResponseStatus = pResponseStatus_+  } + -- | The currency in which the @totalUpfrontPrice@ and @totalHourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ . phrrsCurrencyCode :: Lens' PurchaseHostReservationResponse (Maybe CurrencyCodeValues) phrrsCurrencyCode = lens _phrrsCurrencyCode (\ s a -> s{_phrrsCurrencyCode = a});@@ -206,4 +210,4 @@ phrrsResponseStatus :: Lens' PurchaseHostReservationResponse Int phrrsResponseStatus = lens _phrrsResponseStatus (\ s a -> s{_phrrsResponseStatus = a}); -instance NFData PurchaseHostReservationResponse+instance NFData PurchaseHostReservationResponse where
gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.PurchaseReservedInstancesOffering--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -33,8 +33,8 @@     -- * Request Lenses     , prioLimitPrice     , prioDryRun-    , prioReservedInstancesOfferingId     , prioInstanceCount+    , prioReservedInstancesOfferingId      -- * Destructuring the Response     , purchaseReservedInstancesOfferingResponse@@ -44,12 +44,12 @@     , priorsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for PurchaseReservedInstancesOffering. --@@ -57,12 +57,13 @@ -- -- /See:/ 'purchaseReservedInstancesOffering' smart constructor. data PurchaseReservedInstancesOffering = PurchaseReservedInstancesOffering'-    { _prioLimitPrice                  :: !(Maybe ReservedInstanceLimitPrice)-    , _prioDryRun                      :: !(Maybe Bool)-    , _prioReservedInstancesOfferingId :: !Text-    , _prioInstanceCount               :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _prioLimitPrice                  :: !(Maybe ReservedInstanceLimitPrice)+  , _prioDryRun                      :: !(Maybe Bool)+  , _prioInstanceCount               :: !Int+  , _prioReservedInstancesOfferingId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseReservedInstancesOffering' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,21 +72,22 @@ -- -- * 'prioDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'prioReservedInstancesOfferingId' - The ID of the Reserved Instance offering to purchase.--- -- * 'prioInstanceCount' - The number of Reserved Instances to purchase.+--+-- * 'prioReservedInstancesOfferingId' - The ID of the Reserved Instance offering to purchase. purchaseReservedInstancesOffering-    :: Text -- ^ 'prioReservedInstancesOfferingId'-    -> Int -- ^ 'prioInstanceCount'+    :: Int -- ^ 'prioInstanceCount'+    -> Text -- ^ 'prioReservedInstancesOfferingId'     -> PurchaseReservedInstancesOffering-purchaseReservedInstancesOffering pReservedInstancesOfferingId_ pInstanceCount_ =-    PurchaseReservedInstancesOffering'-    { _prioLimitPrice = Nothing-    , _prioDryRun = Nothing-    , _prioReservedInstancesOfferingId = pReservedInstancesOfferingId_-    , _prioInstanceCount = pInstanceCount_-    }+purchaseReservedInstancesOffering pInstanceCount_ pReservedInstancesOfferingId_ =+  PurchaseReservedInstancesOffering'+  { _prioLimitPrice = Nothing+  , _prioDryRun = Nothing+  , _prioInstanceCount = pInstanceCount_+  , _prioReservedInstancesOfferingId = pReservedInstancesOfferingId_+  } + -- | 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) prioLimitPrice = lens _prioLimitPrice (\ s a -> s{_prioLimitPrice = a});@@ -94,14 +96,14 @@ prioDryRun :: Lens' PurchaseReservedInstancesOffering (Maybe Bool) prioDryRun = lens _prioDryRun (\ s a -> s{_prioDryRun = a}); --- | The ID of the Reserved Instance offering to purchase.-prioReservedInstancesOfferingId :: Lens' PurchaseReservedInstancesOffering Text-prioReservedInstancesOfferingId = lens _prioReservedInstancesOfferingId (\ s a -> s{_prioReservedInstancesOfferingId = a});- -- | The number of Reserved Instances to purchase. prioInstanceCount :: Lens' PurchaseReservedInstancesOffering Int prioInstanceCount = lens _prioInstanceCount (\ s a -> s{_prioInstanceCount = a}); +-- | The ID of the Reserved Instance offering to purchase.+prioReservedInstancesOfferingId :: Lens' PurchaseReservedInstancesOffering Text+prioReservedInstancesOfferingId = lens _prioReservedInstancesOfferingId (\ s a -> s{_prioReservedInstancesOfferingId = a});+ instance AWSRequest PurchaseReservedInstancesOffering          where         type Rs PurchaseReservedInstancesOffering =@@ -115,8 +117,10 @@                      (pure (fromEnum s)))  instance Hashable PurchaseReservedInstancesOffering+         where  instance NFData PurchaseReservedInstancesOffering+         where  instance ToHeaders PurchaseReservedInstancesOffering          where@@ -135,9 +139,9 @@                "Version" =: ("2016-11-15" :: ByteString),                "LimitPrice" =: _prioLimitPrice,                "DryRun" =: _prioDryRun,+               "InstanceCount" =: _prioInstanceCount,                "ReservedInstancesOfferingId" =:-                 _prioReservedInstancesOfferingId,-               "InstanceCount" =: _prioInstanceCount]+                 _prioReservedInstancesOfferingId]  -- | Contains the output of PurchaseReservedInstancesOffering. --@@ -145,10 +149,11 @@ -- -- /See:/ 'purchaseReservedInstancesOfferingResponse' smart constructor. data PurchaseReservedInstancesOfferingResponse = PurchaseReservedInstancesOfferingResponse'-    { _priorsReservedInstancesId :: !(Maybe Text)-    , _priorsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _priorsReservedInstancesId :: !(Maybe Text)+  , _priorsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseReservedInstancesOfferingResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -160,11 +165,12 @@     :: Int -- ^ 'priorsResponseStatus'     -> PurchaseReservedInstancesOfferingResponse purchaseReservedInstancesOfferingResponse pResponseStatus_ =-    PurchaseReservedInstancesOfferingResponse'-    { _priorsReservedInstancesId = Nothing-    , _priorsResponseStatus = pResponseStatus_-    }+  PurchaseReservedInstancesOfferingResponse'+  { _priorsReservedInstancesId = Nothing+  , _priorsResponseStatus = pResponseStatus_+  } + -- | The IDs of the purchased Reserved Instances. priorsReservedInstancesId :: Lens' PurchaseReservedInstancesOfferingResponse (Maybe Text) priorsReservedInstancesId = lens _priorsReservedInstancesId (\ s a -> s{_priorsReservedInstancesId = a});@@ -174,4 +180,5 @@ priorsResponseStatus = lens _priorsResponseStatus (\ s a -> s{_priorsResponseStatus = a});  instance NFData-         PurchaseReservedInstancesOfferingResponse+           PurchaseReservedInstancesOfferingResponse+         where
gen/Network/AWS/EC2/PurchaseScheduledInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.PurchaseScheduledInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,12 +43,12 @@     , psirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for PurchaseScheduledInstances. --@@ -56,11 +56,12 @@ -- -- /See:/ 'purchaseScheduledInstances' smart constructor. data PurchaseScheduledInstances = PurchaseScheduledInstances'-    { _psiClientToken      :: !(Maybe Text)-    , _psiDryRun           :: !(Maybe Bool)-    , _psiPurchaseRequests :: !(List1 PurchaseRequest)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _psiClientToken      :: !(Maybe Text)+  , _psiDryRun           :: !(Maybe Bool)+  , _psiPurchaseRequests :: !(List1 PurchaseRequest)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseScheduledInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,12 +75,13 @@     :: NonEmpty PurchaseRequest -- ^ 'psiPurchaseRequests'     -> PurchaseScheduledInstances purchaseScheduledInstances pPurchaseRequests_ =-    PurchaseScheduledInstances'-    { _psiClientToken = Nothing-    , _psiDryRun = Nothing-    , _psiPurchaseRequests = _List1 # pPurchaseRequests_-    }+  PurchaseScheduledInstances'+  { _psiClientToken = Nothing+  , _psiDryRun = Nothing+  , _psiPurchaseRequests = _List1 # pPurchaseRequests_+  } + -- | Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> . psiClientToken :: Lens' PurchaseScheduledInstances (Maybe Text) psiClientToken = lens _psiClientToken (\ s a -> s{_psiClientToken = a});@@ -104,9 +106,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable PurchaseScheduledInstances+instance Hashable PurchaseScheduledInstances where -instance NFData PurchaseScheduledInstances+instance NFData PurchaseScheduledInstances where  instance ToHeaders PurchaseScheduledInstances where         toHeaders = const mempty@@ -130,10 +132,11 @@ -- -- /See:/ 'purchaseScheduledInstancesResponse' smart constructor. data PurchaseScheduledInstancesResponse = PurchaseScheduledInstancesResponse'-    { _psirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])-    , _psirsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _psirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])+  , _psirsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'PurchaseScheduledInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -145,11 +148,12 @@     :: Int -- ^ 'psirsResponseStatus'     -> PurchaseScheduledInstancesResponse purchaseScheduledInstancesResponse pResponseStatus_ =-    PurchaseScheduledInstancesResponse'-    { _psirsScheduledInstanceSet = Nothing-    , _psirsResponseStatus = pResponseStatus_-    }+  PurchaseScheduledInstancesResponse'+  { _psirsScheduledInstanceSet = Nothing+  , _psirsResponseStatus = pResponseStatus_+  } + -- | Information about the Scheduled Instances. psirsScheduledInstanceSet :: Lens' PurchaseScheduledInstancesResponse [ScheduledInstance] psirsScheduledInstanceSet = lens _psirsScheduledInstanceSet (\ s a -> s{_psirsScheduledInstanceSet = a}) . _Default . _Coerce;@@ -159,3 +163,4 @@ psirsResponseStatus = lens _psirsResponseStatus (\ s a -> s{_psirsResponseStatus = a});  instance NFData PurchaseScheduledInstancesResponse+         where
gen/Network/AWS/EC2/RebootInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RebootInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , RebootInstancesResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RebootInstances. --@@ -52,10 +52,11 @@ -- -- /See:/ 'rebootInstances' smart constructor. data RebootInstances = RebootInstances'-    { _rebDryRun      :: !(Maybe Bool)-    , _rebInstanceIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rebDryRun      :: !(Maybe Bool)+  , _rebInstanceIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RebootInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,11 +67,9 @@ rebootInstances     :: RebootInstances rebootInstances =-    RebootInstances'-    { _rebDryRun = Nothing-    , _rebInstanceIds = mempty-    }+  RebootInstances' {_rebDryRun = Nothing, _rebInstanceIds = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . rebDryRun :: Lens' RebootInstances (Maybe Bool) rebDryRun = lens _rebDryRun (\ s a -> s{_rebDryRun = a});@@ -84,9 +83,9 @@         request = postQuery ec2         response = receiveNull RebootInstancesResponse' -instance Hashable RebootInstances+instance Hashable RebootInstances where -instance NFData RebootInstances+instance NFData RebootInstances where  instance ToHeaders RebootInstances where         toHeaders = const mempty@@ -104,13 +103,15 @@  -- | /See:/ 'rebootInstancesResponse' smart constructor. data RebootInstancesResponse =-    RebootInstancesResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  RebootInstancesResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RebootInstancesResponse' with the minimum fields required to make a request. -- rebootInstancesResponse     :: RebootInstancesResponse rebootInstancesResponse = RebootInstancesResponse' -instance NFData RebootInstancesResponse++instance NFData RebootInstancesResponse where
gen/Network/AWS/EC2/RegisterImage.hs view
@@ -12,22 +12,20 @@  -- | -- Module      : Network.AWS.EC2.RegisterImage--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html Creating Your Own AMIs> in the /Amazon Elastic Compute Cloud User Guide/ . -- ----- You can also use @RegisterImage@ to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_LaunchingInstanceFromSnapshot.html Launching an Instance from a Snapshot> in the /Amazon Elastic Compute Cloud User Guide/ .------ /Important:/ Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 @billingProduct@ code associated with an AMI to verify subscription status for package updates. Creating an AMI from an EBS snapshot does not maintain this billing code, and subsequent instances launched from such an AMI will not be able to connect to package update infrastructure.+-- You can also use @RegisterImage@ 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-launch-snapshot.html Launching a Linux Instance from a Backup> in the /Amazon Elastic Compute Cloud User Guide/ . ----- Similarly, although you can create a Windows AMI from a snapshot, you can't successfully launch an instance from the AMI.+-- You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes. ----- To create Windows AMIs or to create AMIs for Linux operating systems that must retain AMI billing codes to work properly, see 'CreateImage' .+-- 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 'CreateImage' . -- -- 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. --@@ -40,6 +38,7 @@     , riVirtualizationType     , riImageLocation     , riEnaSupport+    , riBillingProducts     , riRAMDiskId     , riKernelId     , riRootDeviceName@@ -58,12 +57,12 @@     , rirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RegisterImage. --@@ -71,20 +70,22 @@ -- -- /See:/ 'registerImage' smart constructor. data RegisterImage = RegisterImage'-    { _riVirtualizationType  :: !(Maybe Text)-    , _riImageLocation       :: !(Maybe Text)-    , _riEnaSupport          :: !(Maybe Bool)-    , _riRAMDiskId           :: !(Maybe Text)-    , _riKernelId            :: !(Maybe Text)-    , _riRootDeviceName      :: !(Maybe Text)-    , _riSRIOVNetSupport     :: !(Maybe Text)-    , _riArchitecture        :: !(Maybe ArchitectureValues)-    , _riDescription         :: !(Maybe Text)-    , _riBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _riDryRun              :: !(Maybe Bool)-    , _riName                :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _riVirtualizationType  :: !(Maybe Text)+  , _riImageLocation       :: !(Maybe Text)+  , _riEnaSupport          :: !(Maybe Bool)+  , _riBillingProducts     :: !(Maybe [Text])+  , _riRAMDiskId           :: !(Maybe Text)+  , _riKernelId            :: !(Maybe Text)+  , _riRootDeviceName      :: !(Maybe Text)+  , _riSRIOVNetSupport     :: !(Maybe Text)+  , _riArchitecture        :: !(Maybe ArchitectureValues)+  , _riDescription         :: !(Maybe Text)+  , _riBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _riDryRun              :: !(Maybe Bool)+  , _riName                :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RegisterImage' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,11 +96,13 @@ -- -- * 'riEnaSupport' - Set to @true@ 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. --+-- * 'riBillingProducts' - 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.+-- -- * 'riRAMDiskId' - The ID of the RAM disk. -- -- * 'riKernelId' - The ID of the kernel. ----- * 'riRootDeviceName' - The name of the root device (for example, @/dev/sda1@ , or @/dev/xvda@ ).+-- * 'riRootDeviceName' - The device name of the root device volume (for example, @/dev/sda1@ ). -- -- * 'riSRIOVNetSupport' - Set to @simple@ 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 @sriovNetSupport@ 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. --@@ -116,21 +119,23 @@     :: Text -- ^ 'riName'     -> RegisterImage registerImage pName_ =-    RegisterImage'-    { _riVirtualizationType = Nothing-    , _riImageLocation = Nothing-    , _riEnaSupport = Nothing-    , _riRAMDiskId = Nothing-    , _riKernelId = Nothing-    , _riRootDeviceName = Nothing-    , _riSRIOVNetSupport = Nothing-    , _riArchitecture = Nothing-    , _riDescription = Nothing-    , _riBlockDeviceMappings = Nothing-    , _riDryRun = Nothing-    , _riName = pName_-    }+  RegisterImage'+  { _riVirtualizationType = Nothing+  , _riImageLocation = Nothing+  , _riEnaSupport = Nothing+  , _riBillingProducts = Nothing+  , _riRAMDiskId = Nothing+  , _riKernelId = Nothing+  , _riRootDeviceName = Nothing+  , _riSRIOVNetSupport = Nothing+  , _riArchitecture = Nothing+  , _riDescription = Nothing+  , _riBlockDeviceMappings = Nothing+  , _riDryRun = Nothing+  , _riName = pName_+  } + -- | The type of virtualization. Default: @paravirtual@ riVirtualizationType :: Lens' RegisterImage (Maybe Text) riVirtualizationType = lens _riVirtualizationType (\ s a -> s{_riVirtualizationType = a});@@ -143,6 +148,10 @@ riEnaSupport :: Lens' RegisterImage (Maybe Bool) riEnaSupport = lens _riEnaSupport (\ s a -> s{_riEnaSupport = 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.+riBillingProducts :: Lens' RegisterImage [Text]+riBillingProducts = lens _riBillingProducts (\ s a -> s{_riBillingProducts = a}) . _Default . _Coerce;+ -- | The ID of the RAM disk. riRAMDiskId :: Lens' RegisterImage (Maybe Text) riRAMDiskId = lens _riRAMDiskId (\ s a -> s{_riRAMDiskId = a});@@ -151,7 +160,7 @@ riKernelId :: Lens' RegisterImage (Maybe Text) riKernelId = lens _riKernelId (\ s a -> s{_riKernelId = a}); --- | The name of the root device (for example, @/dev/sda1@ , or @/dev/xvda@ ).+-- | The device name of the root device volume (for example, @/dev/sda1@ ). riRootDeviceName :: Lens' RegisterImage (Maybe Text) riRootDeviceName = lens _riRootDeviceName (\ s a -> s{_riRootDeviceName = a}); @@ -188,9 +197,9 @@                  RegisterImageResponse' <$>                    (x .@? "imageId") <*> (pure (fromEnum s))) -instance Hashable RegisterImage+instance Hashable RegisterImage where -instance NFData RegisterImage+instance NFData RegisterImage where  instance ToHeaders RegisterImage where         toHeaders = const mempty@@ -206,6 +215,9 @@                "VirtualizationType" =: _riVirtualizationType,                "ImageLocation" =: _riImageLocation,                "EnaSupport" =: _riEnaSupport,+               toQuery+                 (toQueryList "BillingProduct" <$>+                    _riBillingProducts),                "RamdiskId" =: _riRAMDiskId,                "KernelId" =: _riKernelId,                "RootDeviceName" =: _riRootDeviceName,@@ -223,10 +235,11 @@ -- -- /See:/ 'registerImageResponse' smart constructor. data RegisterImageResponse = RegisterImageResponse'-    { _rirsImageId        :: !(Maybe Text)-    , _rirsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rirsImageId        :: !(Maybe Text)+  , _rirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RegisterImageResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -238,11 +251,10 @@     :: Int -- ^ 'rirsResponseStatus'     -> RegisterImageResponse registerImageResponse pResponseStatus_ =-    RegisterImageResponse'-    { _rirsImageId = Nothing-    , _rirsResponseStatus = pResponseStatus_-    }+  RegisterImageResponse'+  {_rirsImageId = Nothing, _rirsResponseStatus = pResponseStatus_} + -- | The ID of the newly registered AMI. rirsImageId :: Lens' RegisterImageResponse (Maybe Text) rirsImageId = lens _rirsImageId (\ s a -> s{_rirsImageId = a});@@ -251,4 +263,4 @@ rirsResponseStatus :: Lens' RegisterImageResponse Int rirsResponseStatus = lens _rirsResponseStatus (\ s a -> s{_rirsResponseStatus = a}); -instance NFData RegisterImageResponse+instance NFData RegisterImageResponse where
gen/Network/AWS/EC2/RejectVPCPeeringConnection.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RejectVPCPeeringConnection--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , rvpcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RejectVpcPeeringConnection. --@@ -51,10 +51,11 @@ -- -- /See:/ 'rejectVPCPeeringConnection' smart constructor. data RejectVPCPeeringConnection = RejectVPCPeeringConnection'-    { _rvpcDryRun                 :: !(Maybe Bool)-    , _rvpcVPCPeeringConnectionId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rvpcDryRun                 :: !(Maybe Bool)+  , _rvpcVPCPeeringConnectionId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RejectVPCPeeringConnection' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,11 +67,12 @@     :: Text -- ^ 'rvpcVPCPeeringConnectionId'     -> RejectVPCPeeringConnection rejectVPCPeeringConnection pVPCPeeringConnectionId_ =-    RejectVPCPeeringConnection'-    { _rvpcDryRun = Nothing-    , _rvpcVPCPeeringConnectionId = pVPCPeeringConnectionId_-    }+  RejectVPCPeeringConnection'+  { _rvpcDryRun = Nothing+  , _rvpcVPCPeeringConnectionId = pVPCPeeringConnectionId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . rvpcDryRun :: Lens' RejectVPCPeeringConnection (Maybe Bool) rvpcDryRun = lens _rvpcDryRun (\ s a -> s{_rvpcDryRun = a});@@ -89,9 +91,9 @@                  RejectVPCPeeringConnectionResponse' <$>                    (x .@? "return") <*> (pure (fromEnum s))) -instance Hashable RejectVPCPeeringConnection+instance Hashable RejectVPCPeeringConnection where -instance NFData RejectVPCPeeringConnection+instance NFData RejectVPCPeeringConnection where  instance ToHeaders RejectVPCPeeringConnection where         toHeaders = const mempty@@ -115,10 +117,11 @@ -- -- /See:/ 'rejectVPCPeeringConnectionResponse' smart constructor. data RejectVPCPeeringConnectionResponse = RejectVPCPeeringConnectionResponse'-    { _rvpcrsReturn         :: !(Maybe Bool)-    , _rvpcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rvpcrsReturn         :: !(Maybe Bool)+  , _rvpcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RejectVPCPeeringConnectionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +133,10 @@     :: Int -- ^ 'rvpcrsResponseStatus'     -> RejectVPCPeeringConnectionResponse rejectVPCPeeringConnectionResponse pResponseStatus_ =-    RejectVPCPeeringConnectionResponse'-    { _rvpcrsReturn = Nothing-    , _rvpcrsResponseStatus = pResponseStatus_-    }+  RejectVPCPeeringConnectionResponse'+  {_rvpcrsReturn = Nothing, _rvpcrsResponseStatus = pResponseStatus_} + -- | Returns @true@ if the request succeeds; otherwise, it returns an error. rvpcrsReturn :: Lens' RejectVPCPeeringConnectionResponse (Maybe Bool) rvpcrsReturn = lens _rvpcrsReturn (\ s a -> s{_rvpcrsReturn = a});@@ -144,3 +146,4 @@ rvpcrsResponseStatus = lens _rvpcrsResponseStatus (\ s a -> s{_rvpcrsResponseStatus = a});  instance NFData RejectVPCPeeringConnectionResponse+         where
gen/Network/AWS/EC2/ReleaseAddress.hs view
@@ -12,21 +12,23 @@  -- | -- Module      : Network.AWS.EC2.ReleaseAddress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Releases the specified Elastic IP address. -- ----- After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an @AuthFailure@ error if the address is already allocated to another AWS account.--- -- [EC2-Classic, default VPC] 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 'DisassociateAddress' . ----- [Nondefault VPC] You must use 'DisassociateAddress' to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (@InvalidIPAddress.InUse@ ).+-- [Nondefault VPC] You must use 'DisassociateAddress' to disassociate the Elastic IP address before you can release it. Otherwise, Amazon EC2 returns an error (@InvalidIPAddress.InUse@ ). --+-- 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 @AuthFailure@ error if the address is already allocated to another AWS account.+--+-- [EC2-VPC] After you release an Elastic IP address for use in a VPC, you might be able to recover it. For more information, see 'AllocateAddress' .+-- module Network.AWS.EC2.ReleaseAddress     (     -- * Creating a Request@@ -42,12 +44,12 @@     , ReleaseAddressResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReleaseAddress. --@@ -55,11 +57,12 @@ -- -- /See:/ 'releaseAddress' smart constructor. data ReleaseAddress = ReleaseAddress'-    { _raAllocationId :: !(Maybe Text)-    , _raPublicIP     :: !(Maybe Text)-    , _raDryRun       :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _raAllocationId :: !(Maybe Text)+  , _raPublicIP     :: !(Maybe Text)+  , _raDryRun       :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReleaseAddress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,12 +75,10 @@ releaseAddress     :: ReleaseAddress releaseAddress =-    ReleaseAddress'-    { _raAllocationId = Nothing-    , _raPublicIP = Nothing-    , _raDryRun = Nothing-    }+  ReleaseAddress'+  {_raAllocationId = Nothing, _raPublicIP = Nothing, _raDryRun = Nothing} + -- | [EC2-VPC] The allocation ID. Required for EC2-VPC. raAllocationId :: Lens' ReleaseAddress (Maybe Text) raAllocationId = lens _raAllocationId (\ s a -> s{_raAllocationId = a});@@ -95,9 +96,9 @@         request = postQuery ec2         response = receiveNull ReleaseAddressResponse' -instance Hashable ReleaseAddress+instance Hashable ReleaseAddress where -instance NFData ReleaseAddress+instance NFData ReleaseAddress where  instance ToHeaders ReleaseAddress where         toHeaders = const mempty@@ -115,13 +116,15 @@  -- | /See:/ 'releaseAddressResponse' smart constructor. data ReleaseAddressResponse =-    ReleaseAddressResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ReleaseAddressResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReleaseAddressResponse' with the minimum fields required to make a request. -- releaseAddressResponse     :: ReleaseAddressResponse releaseAddressResponse = ReleaseAddressResponse' -instance NFData ReleaseAddressResponse++instance NFData ReleaseAddressResponse where
gen/Network/AWS/EC2/ReleaseHosts.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ReleaseHosts--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,12 +42,12 @@     , rhrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReleaseHosts. --@@ -55,9 +55,10 @@ -- -- /See:/ 'releaseHosts' smart constructor. newtype ReleaseHosts = ReleaseHosts'-    { _rhHostIds :: [Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rhHostIds :: [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReleaseHosts' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@ -- * 'rhHostIds' - The IDs of the Dedicated Hosts you want to release. releaseHosts     :: ReleaseHosts-releaseHosts =-    ReleaseHosts'-    { _rhHostIds = mempty-    }+releaseHosts = ReleaseHosts' {_rhHostIds = mempty} + -- | The IDs of the Dedicated Hosts you want to release. rhHostIds :: Lens' ReleaseHosts [Text] rhHostIds = lens _rhHostIds (\ s a -> s{_rhHostIds = a}) . _Coerce;@@ -88,9 +87,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable ReleaseHosts+instance Hashable ReleaseHosts where -instance NFData ReleaseHosts+instance NFData ReleaseHosts where  instance ToHeaders ReleaseHosts where         toHeaders = const mempty@@ -111,11 +110,12 @@ -- -- /See:/ 'releaseHostsResponse' smart constructor. data ReleaseHostsResponse = ReleaseHostsResponse'-    { _rhrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])-    , _rhrsSuccessful     :: !(Maybe [Text])-    , _rhrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rhrsUnsuccessful   :: !(Maybe [UnsuccessfulItem])+  , _rhrsSuccessful     :: !(Maybe [Text])+  , _rhrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReleaseHostsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -129,12 +129,13 @@     :: Int -- ^ 'rhrsResponseStatus'     -> ReleaseHostsResponse releaseHostsResponse pResponseStatus_ =-    ReleaseHostsResponse'-    { _rhrsUnsuccessful = Nothing-    , _rhrsSuccessful = Nothing-    , _rhrsResponseStatus = pResponseStatus_-    }+  ReleaseHostsResponse'+  { _rhrsUnsuccessful = Nothing+  , _rhrsSuccessful = Nothing+  , _rhrsResponseStatus = pResponseStatus_+  } + -- | The IDs of the Dedicated Hosts that could not be released, including an error message. rhrsUnsuccessful :: Lens' ReleaseHostsResponse [UnsuccessfulItem] rhrsUnsuccessful = lens _rhrsUnsuccessful (\ s a -> s{_rhrsUnsuccessful = a}) . _Default . _Coerce;@@ -147,4 +148,4 @@ rhrsResponseStatus :: Lens' ReleaseHostsResponse Int rhrsResponseStatus = lens _rhrsResponseStatus (\ s a -> s{_rhrsResponseStatus = a}); -instance NFData ReleaseHostsResponse+instance NFData ReleaseHostsResponse where
+ gen/Network/AWS/EC2/ReplaceIAMInstanceProfileAssociation.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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 'DescribeIamInstanceProfileAssociations' to get the association ID.+--+module Network.AWS.EC2.ReplaceIAMInstanceProfileAssociation+    (+    -- * Creating a Request+      replaceIAMInstanceProfileAssociation+    , ReplaceIAMInstanceProfileAssociation+    -- * Request Lenses+    , riapaIAMInstanceProfile+    , riapaAssociationId++    -- * Destructuring the Response+    , replaceIAMInstanceProfileAssociationResponse+    , ReplaceIAMInstanceProfileAssociationResponse+    -- * Response Lenses+    , riaparsIAMInstanceProfileAssociation+    , riaparsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'replaceIAMInstanceProfileAssociation' smart constructor.+data ReplaceIAMInstanceProfileAssociation = ReplaceIAMInstanceProfileAssociation'+  { _riapaIAMInstanceProfile :: !IAMInstanceProfileSpecification+  , _riapaAssociationId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReplaceIAMInstanceProfileAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riapaIAMInstanceProfile' - The IAM instance profile.+--+-- * 'riapaAssociationId' - The ID of the existing IAM instance profile association.+replaceIAMInstanceProfileAssociation+    :: IAMInstanceProfileSpecification -- ^ 'riapaIAMInstanceProfile'+    -> Text -- ^ 'riapaAssociationId'+    -> ReplaceIAMInstanceProfileAssociation+replaceIAMInstanceProfileAssociation pIAMInstanceProfile_ pAssociationId_ =+  ReplaceIAMInstanceProfileAssociation'+  { _riapaIAMInstanceProfile = pIAMInstanceProfile_+  , _riapaAssociationId = pAssociationId_+  }+++-- | The IAM instance profile.+riapaIAMInstanceProfile :: Lens' ReplaceIAMInstanceProfileAssociation IAMInstanceProfileSpecification+riapaIAMInstanceProfile = lens _riapaIAMInstanceProfile (\ s a -> s{_riapaIAMInstanceProfile = a});++-- | The ID of the existing IAM instance profile association.+riapaAssociationId :: Lens' ReplaceIAMInstanceProfileAssociation Text+riapaAssociationId = lens _riapaAssociationId (\ s a -> s{_riapaAssociationId = a});++instance AWSRequest+           ReplaceIAMInstanceProfileAssociation+         where+        type Rs ReplaceIAMInstanceProfileAssociation =+             ReplaceIAMInstanceProfileAssociationResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 ReplaceIAMInstanceProfileAssociationResponse' <$>+                   (x .@? "iamInstanceProfileAssociation") <*>+                     (pure (fromEnum s)))++instance Hashable+           ReplaceIAMInstanceProfileAssociation+         where++instance NFData ReplaceIAMInstanceProfileAssociation+         where++instance ToHeaders+           ReplaceIAMInstanceProfileAssociation+         where+        toHeaders = const mempty++instance ToPath ReplaceIAMInstanceProfileAssociation+         where+        toPath = const "/"++instance ToQuery ReplaceIAMInstanceProfileAssociation+         where+        toQuery ReplaceIAMInstanceProfileAssociation'{..}+          = mconcat+              ["Action" =:+                 ("ReplaceIamInstanceProfileAssociation" ::+                    ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "IamInstanceProfile" =: _riapaIAMInstanceProfile,+               "AssociationId" =: _riapaAssociationId]++-- | /See:/ 'replaceIAMInstanceProfileAssociationResponse' smart constructor.+data ReplaceIAMInstanceProfileAssociationResponse = ReplaceIAMInstanceProfileAssociationResponse'+  { _riaparsIAMInstanceProfileAssociation :: !(Maybe IAMInstanceProfileAssociation)+  , _riaparsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReplaceIAMInstanceProfileAssociationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riaparsIAMInstanceProfileAssociation' - Information about the IAM instance profile association.+--+-- * 'riaparsResponseStatus' - -- | The response status code.+replaceIAMInstanceProfileAssociationResponse+    :: Int -- ^ 'riaparsResponseStatus'+    -> ReplaceIAMInstanceProfileAssociationResponse+replaceIAMInstanceProfileAssociationResponse pResponseStatus_ =+  ReplaceIAMInstanceProfileAssociationResponse'+  { _riaparsIAMInstanceProfileAssociation = Nothing+  , _riaparsResponseStatus = pResponseStatus_+  }+++-- | Information about the IAM instance profile association.+riaparsIAMInstanceProfileAssociation :: Lens' ReplaceIAMInstanceProfileAssociationResponse (Maybe IAMInstanceProfileAssociation)+riaparsIAMInstanceProfileAssociation = lens _riaparsIAMInstanceProfileAssociation (\ s a -> s{_riaparsIAMInstanceProfileAssociation = a});++-- | -- | The response status code.+riaparsResponseStatus :: Lens' ReplaceIAMInstanceProfileAssociationResponse Int+riaparsResponseStatus = lens _riaparsResponseStatus (\ s a -> s{_riaparsResponseStatus = a});++instance NFData+           ReplaceIAMInstanceProfileAssociationResponse+         where
gen/Network/AWS/EC2/ReplaceNetworkACLAssociation.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ReplaceNetworkACLAssociation--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , rnaarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReplaceNetworkAclAssociation. --@@ -52,11 +52,12 @@ -- -- /See:/ 'replaceNetworkACLAssociation' smart constructor. data ReplaceNetworkACLAssociation = ReplaceNetworkACLAssociation'-    { _rnaaDryRun        :: !(Maybe Bool)-    , _rnaaAssociationId :: !Text-    , _rnaaNetworkACLId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rnaaDryRun        :: !(Maybe Bool)+  , _rnaaAssociationId :: !Text+  , _rnaaNetworkACLId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceNetworkACLAssociation' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,12 +72,13 @@     -> Text -- ^ 'rnaaNetworkACLId'     -> ReplaceNetworkACLAssociation replaceNetworkACLAssociation pAssociationId_ pNetworkACLId_ =-    ReplaceNetworkACLAssociation'-    { _rnaaDryRun = Nothing-    , _rnaaAssociationId = pAssociationId_-    , _rnaaNetworkACLId = pNetworkACLId_-    }+  ReplaceNetworkACLAssociation'+  { _rnaaDryRun = Nothing+  , _rnaaAssociationId = pAssociationId_+  , _rnaaNetworkACLId = pNetworkACLId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . rnaaDryRun :: Lens' ReplaceNetworkACLAssociation (Maybe Bool) rnaaDryRun = lens _rnaaDryRun (\ s a -> s{_rnaaDryRun = a});@@ -100,9 +102,9 @@                  ReplaceNetworkACLAssociationResponse' <$>                    (x .@? "newAssociationId") <*> (pure (fromEnum s))) -instance Hashable ReplaceNetworkACLAssociation+instance Hashable ReplaceNetworkACLAssociation where -instance NFData ReplaceNetworkACLAssociation+instance NFData ReplaceNetworkACLAssociation where  instance ToHeaders ReplaceNetworkACLAssociation where         toHeaders = const mempty@@ -126,10 +128,11 @@ -- -- /See:/ 'replaceNetworkACLAssociationResponse' smart constructor. data ReplaceNetworkACLAssociationResponse = ReplaceNetworkACLAssociationResponse'-    { _rnaarsNewAssociationId :: !(Maybe Text)-    , _rnaarsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rnaarsNewAssociationId :: !(Maybe Text)+  , _rnaarsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceNetworkACLAssociationResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +144,10 @@     :: Int -- ^ 'rnaarsResponseStatus'     -> ReplaceNetworkACLAssociationResponse replaceNetworkACLAssociationResponse pResponseStatus_ =-    ReplaceNetworkACLAssociationResponse'-    { _rnaarsNewAssociationId = Nothing-    , _rnaarsResponseStatus = pResponseStatus_-    }+  ReplaceNetworkACLAssociationResponse'+  {_rnaarsNewAssociationId = Nothing, _rnaarsResponseStatus = pResponseStatus_} + -- | The ID of the new association. rnaarsNewAssociationId :: Lens' ReplaceNetworkACLAssociationResponse (Maybe Text) rnaarsNewAssociationId = lens _rnaarsNewAssociationId (\ s a -> s{_rnaarsNewAssociationId = a});@@ -155,3 +157,4 @@ rnaarsResponseStatus = lens _rnaarsResponseStatus (\ s a -> s{_rnaarsResponseStatus = a});  instance NFData ReplaceNetworkACLAssociationResponse+         where
gen/Network/AWS/EC2/ReplaceNetworkACLEntry.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ReplaceNetworkACLEntry--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -32,23 +32,23 @@     , rnaePortRange     , rnaeCidrBlock     , rnaeDryRun+    , rnaeEgress     , rnaeNetworkACLId-    , rnaeRuleNumber     , rnaeProtocol     , rnaeRuleAction-    , rnaeEgress+    , rnaeRuleNumber      -- * Destructuring the Response     , replaceNetworkACLEntryResponse     , ReplaceNetworkACLEntryResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReplaceNetworkAclEntry. --@@ -56,18 +56,19 @@ -- -- /See:/ 'replaceNetworkACLEntry' smart constructor. data ReplaceNetworkACLEntry = ReplaceNetworkACLEntry'-    { _rnaeIPv6CidrBlock :: !(Maybe Text)-    , _rnaeICMPTypeCode  :: !(Maybe ICMPTypeCode)-    , _rnaePortRange     :: !(Maybe PortRange)-    , _rnaeCidrBlock     :: !(Maybe Text)-    , _rnaeDryRun        :: !(Maybe Bool)-    , _rnaeNetworkACLId  :: !Text-    , _rnaeRuleNumber    :: !Int-    , _rnaeProtocol      :: !Text-    , _rnaeRuleAction    :: !RuleAction-    , _rnaeEgress        :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rnaeIPv6CidrBlock :: !(Maybe Text)+  , _rnaeICMPTypeCode  :: !(Maybe ICMPTypeCode)+  , _rnaePortRange     :: !(Maybe PortRange)+  , _rnaeCidrBlock     :: !(Maybe Text)+  , _rnaeDryRun        :: !(Maybe Bool)+  , _rnaeEgress        :: !Bool+  , _rnaeNetworkACLId  :: !Text+  , _rnaeProtocol      :: !Text+  , _rnaeRuleAction    :: !RuleAction+  , _rnaeRuleNumber    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceNetworkACLEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,36 +83,37 @@ -- -- * 'rnaeDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'rnaeNetworkACLId' - The ID of the ACL.+-- * 'rnaeEgress' - Indicates whether to replace the egress rule. Default: If no value is specified, we replace the ingress rule. ----- * 'rnaeRuleNumber' - The rule number of the entry to replace.+-- * 'rnaeNetworkACLId' - The ID of the ACL. -- -- * 'rnaeProtocol' - The IP protocol. You can specify @all@ or @-1@ to mean all protocols. If you specify @all@ , @-1@ , or a protocol number other than @tcp@ , @udp@ , or @icmp@ , traffic on all ports is allowed, regardless of any ports or ICMP types or codes you specify. If you specify protocol @58@ (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 @58@ (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code. -- -- * 'rnaeRuleAction' - Indicates whether to allow or deny the traffic that matches the rule. ----- * 'rnaeEgress' - Indicates whether to replace the egress rule. Default: If no value is specified, we replace the ingress rule.+-- * 'rnaeRuleNumber' - The rule number of the entry to replace. replaceNetworkACLEntry-    :: Text -- ^ 'rnaeNetworkACLId'-    -> Int -- ^ 'rnaeRuleNumber'+    :: Bool -- ^ 'rnaeEgress'+    -> Text -- ^ 'rnaeNetworkACLId'     -> Text -- ^ 'rnaeProtocol'     -> RuleAction -- ^ 'rnaeRuleAction'-    -> Bool -- ^ 'rnaeEgress'+    -> Int -- ^ 'rnaeRuleNumber'     -> ReplaceNetworkACLEntry-replaceNetworkACLEntry pNetworkACLId_ pRuleNumber_ pProtocol_ pRuleAction_ pEgress_ =-    ReplaceNetworkACLEntry'-    { _rnaeIPv6CidrBlock = Nothing-    , _rnaeICMPTypeCode = Nothing-    , _rnaePortRange = Nothing-    , _rnaeCidrBlock = Nothing-    , _rnaeDryRun = Nothing-    , _rnaeNetworkACLId = pNetworkACLId_-    , _rnaeRuleNumber = pRuleNumber_-    , _rnaeProtocol = pProtocol_-    , _rnaeRuleAction = pRuleAction_-    , _rnaeEgress = pEgress_-    }+replaceNetworkACLEntry pEgress_ pNetworkACLId_ pProtocol_ pRuleAction_ pRuleNumber_ =+  ReplaceNetworkACLEntry'+  { _rnaeIPv6CidrBlock = Nothing+  , _rnaeICMPTypeCode = Nothing+  , _rnaePortRange = Nothing+  , _rnaeCidrBlock = Nothing+  , _rnaeDryRun = Nothing+  , _rnaeEgress = pEgress_+  , _rnaeNetworkACLId = pNetworkACLId_+  , _rnaeProtocol = pProtocol_+  , _rnaeRuleAction = pRuleAction_+  , _rnaeRuleNumber = pRuleNumber_+  } + -- | The IPv6 network range to allow or deny, in CIDR notation (for example @2001:bd8:1234:1a00::/64@ ). rnaeIPv6CidrBlock :: Lens' ReplaceNetworkACLEntry (Maybe Text) rnaeIPv6CidrBlock = lens _rnaeIPv6CidrBlock (\ s a -> s{_rnaeIPv6CidrBlock = a});@@ -132,14 +134,14 @@ rnaeDryRun :: Lens' ReplaceNetworkACLEntry (Maybe Bool) rnaeDryRun = lens _rnaeDryRun (\ s a -> s{_rnaeDryRun = a}); +-- | Indicates whether to replace the egress rule. Default: If no value is specified, we replace the ingress rule.+rnaeEgress :: Lens' ReplaceNetworkACLEntry Bool+rnaeEgress = lens _rnaeEgress (\ s a -> s{_rnaeEgress = a});+ -- | The ID of the ACL. rnaeNetworkACLId :: Lens' ReplaceNetworkACLEntry Text rnaeNetworkACLId = lens _rnaeNetworkACLId (\ s a -> s{_rnaeNetworkACLId = a}); --- | The rule number of the entry to replace.-rnaeRuleNumber :: Lens' ReplaceNetworkACLEntry Int-rnaeRuleNumber = lens _rnaeRuleNumber (\ s a -> s{_rnaeRuleNumber = a});- -- | The IP protocol. You can specify @all@ or @-1@ to mean all protocols. If you specify @all@ , @-1@ , or a protocol number other than @tcp@ , @udp@ , or @icmp@ , traffic on all ports is allowed, regardless of any ports or ICMP types or codes you specify. If you specify protocol @58@ (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 @58@ (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code. rnaeProtocol :: Lens' ReplaceNetworkACLEntry Text rnaeProtocol = lens _rnaeProtocol (\ s a -> s{_rnaeProtocol = a});@@ -148,9 +150,9 @@ rnaeRuleAction :: Lens' ReplaceNetworkACLEntry RuleAction rnaeRuleAction = lens _rnaeRuleAction (\ s a -> s{_rnaeRuleAction = a}); --- | Indicates whether to replace the egress rule. Default: If no value is specified, we replace the ingress rule.-rnaeEgress :: Lens' ReplaceNetworkACLEntry Bool-rnaeEgress = lens _rnaeEgress (\ s a -> s{_rnaeEgress = a});+-- | The rule number of the entry to replace.+rnaeRuleNumber :: Lens' ReplaceNetworkACLEntry Int+rnaeRuleNumber = lens _rnaeRuleNumber (\ s a -> s{_rnaeRuleNumber = a});  instance AWSRequest ReplaceNetworkACLEntry where         type Rs ReplaceNetworkACLEntry =@@ -159,9 +161,9 @@         response           = receiveNull ReplaceNetworkACLEntryResponse' -instance Hashable ReplaceNetworkACLEntry+instance Hashable ReplaceNetworkACLEntry where -instance NFData ReplaceNetworkACLEntry+instance NFData ReplaceNetworkACLEntry where  instance ToHeaders ReplaceNetworkACLEntry where         toHeaders = const mempty@@ -179,22 +181,23 @@                "Icmp" =: _rnaeICMPTypeCode,                "PortRange" =: _rnaePortRange,                "CidrBlock" =: _rnaeCidrBlock,-               "DryRun" =: _rnaeDryRun,+               "DryRun" =: _rnaeDryRun, "Egress" =: _rnaeEgress,                "NetworkAclId" =: _rnaeNetworkACLId,-               "RuleNumber" =: _rnaeRuleNumber,                "Protocol" =: _rnaeProtocol,                "RuleAction" =: _rnaeRuleAction,-               "Egress" =: _rnaeEgress]+               "RuleNumber" =: _rnaeRuleNumber]  -- | /See:/ 'replaceNetworkACLEntryResponse' smart constructor. data ReplaceNetworkACLEntryResponse =-    ReplaceNetworkACLEntryResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ReplaceNetworkACLEntryResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceNetworkACLEntryResponse' with the minimum fields required to make a request. -- replaceNetworkACLEntryResponse     :: ReplaceNetworkACLEntryResponse replaceNetworkACLEntryResponse = ReplaceNetworkACLEntryResponse' -instance NFData ReplaceNetworkACLEntryResponse++instance NFData ReplaceNetworkACLEntryResponse where
gen/Network/AWS/EC2/ReplaceRoute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ReplaceRoute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,12 +45,12 @@     , ReplaceRouteResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReplaceRoute. --@@ -58,18 +58,19 @@ -- -- /See:/ 'replaceRoute' smart constructor. data ReplaceRoute = ReplaceRoute'-    { _rrVPCPeeringConnectionId      :: !(Maybe Text)-    , _rrInstanceId                  :: !(Maybe Text)-    , _rrEgressOnlyInternetGatewayId :: !(Maybe Text)-    , _rrDestinationIPv6CidrBlock    :: !(Maybe Text)-    , _rrNatGatewayId                :: !(Maybe Text)-    , _rrNetworkInterfaceId          :: !(Maybe Text)-    , _rrGatewayId                   :: !(Maybe Text)-    , _rrDryRun                      :: !(Maybe Bool)-    , _rrDestinationCidrBlock        :: !(Maybe Text)-    , _rrRouteTableId                :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rrVPCPeeringConnectionId      :: !(Maybe Text)+  , _rrInstanceId                  :: !(Maybe Text)+  , _rrEgressOnlyInternetGatewayId :: !(Maybe Text)+  , _rrDestinationIPv6CidrBlock    :: !(Maybe Text)+  , _rrNatGatewayId                :: !(Maybe Text)+  , _rrNetworkInterfaceId          :: !(Maybe Text)+  , _rrGatewayId                   :: !(Maybe Text)+  , _rrDryRun                      :: !(Maybe Bool)+  , _rrDestinationCidrBlock        :: !(Maybe Text)+  , _rrRouteTableId                :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceRoute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -97,19 +98,20 @@     :: Text -- ^ 'rrRouteTableId'     -> ReplaceRoute replaceRoute pRouteTableId_ =-    ReplaceRoute'-    { _rrVPCPeeringConnectionId = Nothing-    , _rrInstanceId = Nothing-    , _rrEgressOnlyInternetGatewayId = Nothing-    , _rrDestinationIPv6CidrBlock = Nothing-    , _rrNatGatewayId = Nothing-    , _rrNetworkInterfaceId = Nothing-    , _rrGatewayId = Nothing-    , _rrDryRun = Nothing-    , _rrDestinationCidrBlock = Nothing-    , _rrRouteTableId = pRouteTableId_-    }+  ReplaceRoute'+  { _rrVPCPeeringConnectionId = Nothing+  , _rrInstanceId = Nothing+  , _rrEgressOnlyInternetGatewayId = Nothing+  , _rrDestinationIPv6CidrBlock = Nothing+  , _rrNatGatewayId = Nothing+  , _rrNetworkInterfaceId = Nothing+  , _rrGatewayId = Nothing+  , _rrDryRun = Nothing+  , _rrDestinationCidrBlock = Nothing+  , _rrRouteTableId = pRouteTableId_+  } + -- | The ID of a VPC peering connection. rrVPCPeeringConnectionId :: Lens' ReplaceRoute (Maybe Text) rrVPCPeeringConnectionId = lens _rrVPCPeeringConnectionId (\ s a -> s{_rrVPCPeeringConnectionId = a});@@ -155,9 +157,9 @@         request = postQuery ec2         response = receiveNull ReplaceRouteResponse' -instance Hashable ReplaceRoute+instance Hashable ReplaceRoute where -instance NFData ReplaceRoute+instance NFData ReplaceRoute where  instance ToHeaders ReplaceRoute where         toHeaders = const mempty@@ -185,13 +187,15 @@  -- | /See:/ 'replaceRouteResponse' smart constructor. data ReplaceRouteResponse =-    ReplaceRouteResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ReplaceRouteResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceRouteResponse' with the minimum fields required to make a request. -- replaceRouteResponse     :: ReplaceRouteResponse replaceRouteResponse = ReplaceRouteResponse' -instance NFData ReplaceRouteResponse++instance NFData ReplaceRouteResponse where
gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ReplaceRouteTableAssociation--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,12 +41,12 @@     , rrtarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReplaceRouteTableAssociation. --@@ -54,11 +54,12 @@ -- -- /See:/ 'replaceRouteTableAssociation' smart constructor. data ReplaceRouteTableAssociation = ReplaceRouteTableAssociation'-    { _rrtaDryRun        :: !(Maybe Bool)-    , _rrtaAssociationId :: !Text-    , _rrtaRouteTableId  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rrtaDryRun        :: !(Maybe Bool)+  , _rrtaAssociationId :: !Text+  , _rrtaRouteTableId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceRouteTableAssociation' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,12 +74,13 @@     -> Text -- ^ 'rrtaRouteTableId'     -> ReplaceRouteTableAssociation replaceRouteTableAssociation pAssociationId_ pRouteTableId_ =-    ReplaceRouteTableAssociation'-    { _rrtaDryRun = Nothing-    , _rrtaAssociationId = pAssociationId_-    , _rrtaRouteTableId = pRouteTableId_-    }+  ReplaceRouteTableAssociation'+  { _rrtaDryRun = Nothing+  , _rrtaAssociationId = pAssociationId_+  , _rrtaRouteTableId = pRouteTableId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . rrtaDryRun :: Lens' ReplaceRouteTableAssociation (Maybe Bool) rrtaDryRun = lens _rrtaDryRun (\ s a -> s{_rrtaDryRun = a});@@ -102,9 +104,9 @@                  ReplaceRouteTableAssociationResponse' <$>                    (x .@? "newAssociationId") <*> (pure (fromEnum s))) -instance Hashable ReplaceRouteTableAssociation+instance Hashable ReplaceRouteTableAssociation where -instance NFData ReplaceRouteTableAssociation+instance NFData ReplaceRouteTableAssociation where  instance ToHeaders ReplaceRouteTableAssociation where         toHeaders = const mempty@@ -128,10 +130,11 @@ -- -- /See:/ 'replaceRouteTableAssociationResponse' smart constructor. data ReplaceRouteTableAssociationResponse = ReplaceRouteTableAssociationResponse'-    { _rrtarsNewAssociationId :: !(Maybe Text)-    , _rrtarsResponseStatus   :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rrtarsNewAssociationId :: !(Maybe Text)+  , _rrtarsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReplaceRouteTableAssociationResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -143,11 +146,10 @@     :: Int -- ^ 'rrtarsResponseStatus'     -> ReplaceRouteTableAssociationResponse replaceRouteTableAssociationResponse pResponseStatus_ =-    ReplaceRouteTableAssociationResponse'-    { _rrtarsNewAssociationId = Nothing-    , _rrtarsResponseStatus = pResponseStatus_-    }+  ReplaceRouteTableAssociationResponse'+  {_rrtarsNewAssociationId = Nothing, _rrtarsResponseStatus = pResponseStatus_} + -- | The ID of the new association. rrtarsNewAssociationId :: Lens' ReplaceRouteTableAssociationResponse (Maybe Text) rrtarsNewAssociationId = lens _rrtarsNewAssociationId (\ s a -> s{_rrtarsNewAssociationId = a});@@ -157,3 +159,4 @@ rrtarsResponseStatus = lens _rrtarsResponseStatus (\ s a -> s{_rrtarsResponseStatus = a});  instance NFData ReplaceRouteTableAssociationResponse+         where
gen/Network/AWS/EC2/ReportInstanceStatus.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ReportInstanceStatus--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,20 +34,20 @@     , risDescription     , risDryRun     , risInstances-    , risStatus     , risReasonCodes+    , risStatus      -- * Destructuring the Response     , reportInstanceStatusResponse     , ReportInstanceStatusResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ReportInstanceStatus. --@@ -55,15 +55,16 @@ -- -- /See:/ 'reportInstanceStatus' smart constructor. data ReportInstanceStatus = ReportInstanceStatus'-    { _risStartTime   :: !(Maybe ISO8601)-    , _risEndTime     :: !(Maybe ISO8601)-    , _risDescription :: !(Maybe Text)-    , _risDryRun      :: !(Maybe Bool)-    , _risInstances   :: ![Text]-    , _risStatus      :: !ReportStatusType-    , _risReasonCodes :: ![ReportInstanceReasonCodes]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _risStartTime   :: !(Maybe ISO8601)+  , _risEndTime     :: !(Maybe ISO8601)+  , _risDescription :: !(Maybe Text)+  , _risDryRun      :: !(Maybe Bool)+  , _risInstances   :: ![Text]+  , _risReasonCodes :: ![ReportInstanceReasonCodes]+  , _risStatus      :: !ReportStatusType+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReportInstanceStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,23 +79,24 @@ -- -- * 'risInstances' - One or more instances. ----- * 'risStatus' - The status of all instances listed.+-- * 'risReasonCodes' - One or more reason codes that describe the health state of your instance.     * @instance-stuck-in-state@ : My instance is stuck in a state.     * @unresponsive@ : My instance is unresponsive.     * @not-accepting-credentials@ : My instance is not accepting my credentials.     * @password-not-available@ : A password is not available for my instance.     * @performance-network@ : My instance is experiencing performance problems that I believe are network related.     * @performance-instance-store@ : My instance is experiencing performance problems that I believe are related to the instance stores.     * @performance-ebs-volume@ : My instance is experiencing performance problems that I believe are related to an EBS volume.     * @performance-other@ : My instance is experiencing performance problems.     * @other@ : [explain using the description parameter] ----- * 'risReasonCodes' - One or more reason codes that describes the health state of your instance.     * @instance-stuck-in-state@ : My instance is stuck in a state.     * @unresponsive@ : My instance is unresponsive.     * @not-accepting-credentials@ : My instance is not accepting my credentials.     * @password-not-available@ : A password is not available for my instance.     * @performance-network@ : My instance is experiencing performance problems which I believe are network related.     * @performance-instance-store@ : My instance is experiencing performance problems which I believe are related to the instance stores.     * @performance-ebs-volume@ : My instance is experiencing performance problems which I believe are related to an EBS volume.     * @performance-other@ : My instance is experiencing performance problems.     * @other@ : [explain using the description parameter]+-- * 'risStatus' - The status of all instances listed. reportInstanceStatus     :: ReportStatusType -- ^ 'risStatus'     -> ReportInstanceStatus reportInstanceStatus pStatus_ =-    ReportInstanceStatus'-    { _risStartTime = Nothing-    , _risEndTime = Nothing-    , _risDescription = Nothing-    , _risDryRun = Nothing-    , _risInstances = mempty-    , _risStatus = pStatus_-    , _risReasonCodes = mempty-    }+  ReportInstanceStatus'+  { _risStartTime = Nothing+  , _risEndTime = Nothing+  , _risDescription = Nothing+  , _risDryRun = Nothing+  , _risInstances = mempty+  , _risReasonCodes = mempty+  , _risStatus = pStatus_+  } + -- | The time at which the reported instance health state began. risStartTime :: Lens' ReportInstanceStatus (Maybe UTCTime) risStartTime = lens _risStartTime (\ s a -> s{_risStartTime = a}) . mapping _Time;@@ -115,23 +117,23 @@ risInstances :: Lens' ReportInstanceStatus [Text] risInstances = lens _risInstances (\ s a -> s{_risInstances = a}) . _Coerce; +-- | One or more reason codes that describe the health state of your instance.     * @instance-stuck-in-state@ : My instance is stuck in a state.     * @unresponsive@ : My instance is unresponsive.     * @not-accepting-credentials@ : My instance is not accepting my credentials.     * @password-not-available@ : A password is not available for my instance.     * @performance-network@ : My instance is experiencing performance problems that I believe are network related.     * @performance-instance-store@ : My instance is experiencing performance problems that I believe are related to the instance stores.     * @performance-ebs-volume@ : My instance is experiencing performance problems that I believe are related to an EBS volume.     * @performance-other@ : My instance is experiencing performance problems.     * @other@ : [explain using the description parameter]+risReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes]+risReasonCodes = lens _risReasonCodes (\ s a -> s{_risReasonCodes = a}) . _Coerce;+ -- | The status of all instances listed. risStatus :: Lens' ReportInstanceStatus ReportStatusType risStatus = lens _risStatus (\ s a -> s{_risStatus = a}); --- | One or more reason codes that describes the health state of your instance.     * @instance-stuck-in-state@ : My instance is stuck in a state.     * @unresponsive@ : My instance is unresponsive.     * @not-accepting-credentials@ : My instance is not accepting my credentials.     * @password-not-available@ : A password is not available for my instance.     * @performance-network@ : My instance is experiencing performance problems which I believe are network related.     * @performance-instance-store@ : My instance is experiencing performance problems which I believe are related to the instance stores.     * @performance-ebs-volume@ : My instance is experiencing performance problems which I believe are related to an EBS volume.     * @performance-other@ : My instance is experiencing performance problems.     * @other@ : [explain using the description parameter]-risReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes]-risReasonCodes = lens _risReasonCodes (\ s a -> s{_risReasonCodes = a}) . _Coerce;- instance AWSRequest ReportInstanceStatus where         type Rs ReportInstanceStatus =              ReportInstanceStatusResponse         request = postQuery ec2         response = receiveNull ReportInstanceStatusResponse' -instance Hashable ReportInstanceStatus+instance Hashable ReportInstanceStatus where -instance NFData ReportInstanceStatus+instance NFData ReportInstanceStatus where  instance ToHeaders ReportInstanceStatus where         toHeaders = const mempty@@ -149,18 +151,20 @@                "Description" =: _risDescription,                "DryRun" =: _risDryRun,                toQueryList "InstanceId" _risInstances,-               "Status" =: _risStatus,-               toQueryList "ReasonCode" _risReasonCodes]+               toQueryList "ReasonCode" _risReasonCodes,+               "Status" =: _risStatus]  -- | /See:/ 'reportInstanceStatusResponse' smart constructor. data ReportInstanceStatusResponse =-    ReportInstanceStatusResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ReportInstanceStatusResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ReportInstanceStatusResponse' with the minimum fields required to make a request. -- reportInstanceStatusResponse     :: ReportInstanceStatusResponse reportInstanceStatusResponse = ReportInstanceStatusResponse' -instance NFData ReportInstanceStatusResponse++instance NFData ReportInstanceStatusResponse where
gen/Network/AWS/EC2/RequestSpotFleet.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RequestSpotFleet--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -46,12 +46,12 @@     , rsfrsSpotFleetRequestId     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RequestSpotFleet. --@@ -59,10 +59,11 @@ -- -- /See:/ 'requestSpotFleet' smart constructor. data RequestSpotFleet = RequestSpotFleet'-    { _rsfDryRun                 :: !(Maybe Bool)-    , _rsfSpotFleetRequestConfig :: !SpotFleetRequestConfigData-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsfDryRun                 :: !(Maybe Bool)+  , _rsfSpotFleetRequestConfig :: !SpotFleetRequestConfigData+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RequestSpotFleet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -74,11 +75,10 @@     :: SpotFleetRequestConfigData -- ^ 'rsfSpotFleetRequestConfig'     -> RequestSpotFleet requestSpotFleet pSpotFleetRequestConfig_ =-    RequestSpotFleet'-    { _rsfDryRun = Nothing-    , _rsfSpotFleetRequestConfig = pSpotFleetRequestConfig_-    }+  RequestSpotFleet'+  {_rsfDryRun = Nothing, _rsfSpotFleetRequestConfig = pSpotFleetRequestConfig_} + -- | Checks whether you have the required permissions for the action, 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@ . rsfDryRun :: Lens' RequestSpotFleet (Maybe Bool) rsfDryRun = lens _rsfDryRun (\ s a -> s{_rsfDryRun = a});@@ -96,9 +96,9 @@                  RequestSpotFleetResponse' <$>                    (pure (fromEnum s)) <*> (x .@ "spotFleetRequestId")) -instance Hashable RequestSpotFleet+instance Hashable RequestSpotFleet where -instance NFData RequestSpotFleet+instance NFData RequestSpotFleet where  instance ToHeaders RequestSpotFleet where         toHeaders = const mempty@@ -121,10 +121,11 @@ -- -- /See:/ 'requestSpotFleetResponse' smart constructor. data RequestSpotFleetResponse = RequestSpotFleetResponse'-    { _rsfrsResponseStatus     :: !Int-    , _rsfrsSpotFleetRequestId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsfrsResponseStatus     :: !Int+  , _rsfrsSpotFleetRequestId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RequestSpotFleetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -137,11 +138,12 @@     -> Text -- ^ 'rsfrsSpotFleetRequestId'     -> RequestSpotFleetResponse requestSpotFleetResponse pResponseStatus_ pSpotFleetRequestId_ =-    RequestSpotFleetResponse'-    { _rsfrsResponseStatus = pResponseStatus_-    , _rsfrsSpotFleetRequestId = pSpotFleetRequestId_-    }+  RequestSpotFleetResponse'+  { _rsfrsResponseStatus = pResponseStatus_+  , _rsfrsSpotFleetRequestId = pSpotFleetRequestId_+  } + -- | -- | The response status code. rsfrsResponseStatus :: Lens' RequestSpotFleetResponse Int rsfrsResponseStatus = lens _rsfrsResponseStatus (\ s a -> s{_rsfrsResponseStatus = a});@@ -150,4 +152,4 @@ rsfrsSpotFleetRequestId :: Lens' RequestSpotFleetResponse Text rsfrsSpotFleetRequestId = lens _rsfrsSpotFleetRequestId (\ s a -> s{_rsfrsSpotFleetRequestId = a}); -instance NFData RequestSpotFleetResponse+instance NFData RequestSpotFleetResponse where
gen/Network/AWS/EC2/RequestSpotInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RequestSpotInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,6 +30,7 @@     , rsisBlockDurationMinutes     , rsisClientToken     , rsisInstanceCount+    , rsisInstanceInterruptionBehavior     , rsisLaunchSpecification     , rsisAvailabilityZoneGroup     , rsisValidUntil@@ -47,12 +48,12 @@     , rsirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RequestSpotInstances. --@@ -60,19 +61,21 @@ -- -- /See:/ 'requestSpotInstances' smart constructor. data RequestSpotInstances = RequestSpotInstances'-    { _rsisBlockDurationMinutes  :: !(Maybe Int)-    , _rsisClientToken           :: !(Maybe Text)-    , _rsisInstanceCount         :: !(Maybe Int)-    , _rsisLaunchSpecification   :: !(Maybe RequestSpotLaunchSpecification)-    , _rsisAvailabilityZoneGroup :: !(Maybe Text)-    , _rsisValidUntil            :: !(Maybe ISO8601)-    , _rsisLaunchGroup           :: !(Maybe Text)-    , _rsisType                  :: !(Maybe SpotInstanceType)-    , _rsisValidFrom             :: !(Maybe ISO8601)-    , _rsisDryRun                :: !(Maybe Bool)-    , _rsisSpotPrice             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsisBlockDurationMinutes         :: !(Maybe Int)+  , _rsisClientToken                  :: !(Maybe Text)+  , _rsisInstanceCount                :: !(Maybe Int)+  , _rsisInstanceInterruptionBehavior :: !(Maybe InstanceInterruptionBehavior)+  , _rsisLaunchSpecification          :: !(Maybe RequestSpotLaunchSpecification)+  , _rsisAvailabilityZoneGroup        :: !(Maybe Text)+  , _rsisValidUntil                   :: !(Maybe ISO8601)+  , _rsisLaunchGroup                  :: !(Maybe Text)+  , _rsisType                         :: !(Maybe SpotInstanceType)+  , _rsisValidFrom                    :: !(Maybe ISO8601)+  , _rsisDryRun                       :: !(Maybe Bool)+  , _rsisSpotPrice                    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RequestSpotInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,8 +86,10 @@ -- -- * 'rsisInstanceCount' - The maximum number of Spot instances to launch. Default: 1 ----- * 'rsisLaunchSpecification' - Undocumented member.+-- * 'rsisInstanceInterruptionBehavior' - Indicates whether a Spot instance stops or terminates when it is interrupted. --+-- * 'rsisLaunchSpecification' - The launch specification.+-- -- * 'rsisAvailabilityZoneGroup' - The user-specified name for a logical grouping of bids. When you specify an Availability Zone group in a Spot Instance request, all Spot instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to bids for Spot Instances of the same instance type. Any additional Spot instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active. If there is no active instance running in the Availability Zone group that you specify for a new Spot instance request (all instances are terminated, the bid is expired, or the bid falls below current market), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group. Default: Instances are launched in any available Availability Zone. -- -- * 'rsisValidUntil' - The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. Default: The request is effective indefinitely.@@ -102,20 +107,22 @@     :: Text -- ^ 'rsisSpotPrice'     -> RequestSpotInstances requestSpotInstances pSpotPrice_ =-    RequestSpotInstances'-    { _rsisBlockDurationMinutes = Nothing-    , _rsisClientToken = Nothing-    , _rsisInstanceCount = Nothing-    , _rsisLaunchSpecification = Nothing-    , _rsisAvailabilityZoneGroup = Nothing-    , _rsisValidUntil = Nothing-    , _rsisLaunchGroup = Nothing-    , _rsisType = Nothing-    , _rsisValidFrom = Nothing-    , _rsisDryRun = Nothing-    , _rsisSpotPrice = pSpotPrice_-    }+  RequestSpotInstances'+  { _rsisBlockDurationMinutes = Nothing+  , _rsisClientToken = Nothing+  , _rsisInstanceCount = Nothing+  , _rsisInstanceInterruptionBehavior = Nothing+  , _rsisLaunchSpecification = Nothing+  , _rsisAvailabilityZoneGroup = Nothing+  , _rsisValidUntil = Nothing+  , _rsisLaunchGroup = Nothing+  , _rsisType = Nothing+  , _rsisValidFrom = Nothing+  , _rsisDryRun = Nothing+  , _rsisSpotPrice = pSpotPrice_+  } + -- | The required duration for the Spot instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can't specify an Availability Zone group or a launch group if you specify a duration. rsisBlockDurationMinutes :: Lens' RequestSpotInstances (Maybe Int) rsisBlockDurationMinutes = lens _rsisBlockDurationMinutes (\ s a -> s{_rsisBlockDurationMinutes = a});@@ -128,7 +135,11 @@ rsisInstanceCount :: Lens' RequestSpotInstances (Maybe Int) rsisInstanceCount = lens _rsisInstanceCount (\ s a -> s{_rsisInstanceCount = a}); --- | Undocumented member.+-- | Indicates whether a Spot instance stops or terminates when it is interrupted.+rsisInstanceInterruptionBehavior :: Lens' RequestSpotInstances (Maybe InstanceInterruptionBehavior)+rsisInstanceInterruptionBehavior = lens _rsisInstanceInterruptionBehavior (\ s a -> s{_rsisInstanceInterruptionBehavior = a});++-- | The launch specification. rsisLaunchSpecification :: Lens' RequestSpotInstances (Maybe RequestSpotLaunchSpecification) rsisLaunchSpecification = lens _rsisLaunchSpecification (\ s a -> s{_rsisLaunchSpecification = a}); @@ -172,9 +183,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable RequestSpotInstances+instance Hashable RequestSpotInstances where -instance NFData RequestSpotInstances+instance NFData RequestSpotInstances where  instance ToHeaders RequestSpotInstances where         toHeaders = const mempty@@ -190,6 +201,8 @@                "BlockDurationMinutes" =: _rsisBlockDurationMinutes,                "ClientToken" =: _rsisClientToken,                "InstanceCount" =: _rsisInstanceCount,+               "InstanceInterruptionBehavior" =:+                 _rsisInstanceInterruptionBehavior,                "LaunchSpecification" =: _rsisLaunchSpecification,                "AvailabilityZoneGroup" =:                  _rsisAvailabilityZoneGroup,@@ -205,10 +218,11 @@ -- -- /See:/ 'requestSpotInstancesResponse' smart constructor. data RequestSpotInstancesResponse = RequestSpotInstancesResponse'-    { _rsirsSpotInstanceRequests :: !(Maybe [SpotInstanceRequest])-    , _rsirsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsirsSpotInstanceRequests :: !(Maybe [SpotInstanceRequest])+  , _rsirsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RequestSpotInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -220,11 +234,12 @@     :: Int -- ^ 'rsirsResponseStatus'     -> RequestSpotInstancesResponse requestSpotInstancesResponse pResponseStatus_ =-    RequestSpotInstancesResponse'-    { _rsirsSpotInstanceRequests = Nothing-    , _rsirsResponseStatus = pResponseStatus_-    }+  RequestSpotInstancesResponse'+  { _rsirsSpotInstanceRequests = Nothing+  , _rsirsResponseStatus = pResponseStatus_+  } + -- | One or more Spot instance requests. rsirsSpotInstanceRequests :: Lens' RequestSpotInstancesResponse [SpotInstanceRequest] rsirsSpotInstanceRequests = lens _rsirsSpotInstanceRequests (\ s a -> s{_rsirsSpotInstanceRequests = a}) . _Default . _Coerce;@@ -233,4 +248,4 @@ rsirsResponseStatus :: Lens' RequestSpotInstancesResponse Int rsirsResponseStatus = lens _rsirsResponseStatus (\ s a -> s{_rsirsResponseStatus = a}); -instance NFData RequestSpotInstancesResponse+instance NFData RequestSpotInstancesResponse where
+ gen/Network/AWS/EC2/ResetFpgaImageAttribute.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.ResetFpgaImageAttribute+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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+    (+    -- * Creating a Request+      resetFpgaImageAttribute+    , ResetFpgaImageAttribute+    -- * Request Lenses+    , rfiaAttribute+    , rfiaDryRun+    , rfiaFpgaImageId++    -- * Destructuring the Response+    , resetFpgaImageAttributeResponse+    , ResetFpgaImageAttributeResponse+    -- * Response Lenses+    , rfiarsReturn+    , rfiarsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'resetFpgaImageAttribute' smart constructor.+data ResetFpgaImageAttribute = ResetFpgaImageAttribute'+  { _rfiaAttribute   :: !(Maybe ResetFpgaImageAttributeName)+  , _rfiaDryRun      :: !(Maybe Bool)+  , _rfiaFpgaImageId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ResetFpgaImageAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rfiaAttribute' - The attribute.+--+-- * 'rfiaDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'rfiaFpgaImageId' - The ID of the AFI.+resetFpgaImageAttribute+    :: Text -- ^ 'rfiaFpgaImageId'+    -> ResetFpgaImageAttribute+resetFpgaImageAttribute pFpgaImageId_ =+  ResetFpgaImageAttribute'+  { _rfiaAttribute = Nothing+  , _rfiaDryRun = Nothing+  , _rfiaFpgaImageId = pFpgaImageId_+  }+++-- | The attribute.+rfiaAttribute :: Lens' ResetFpgaImageAttribute (Maybe ResetFpgaImageAttributeName)+rfiaAttribute = lens _rfiaAttribute (\ s a -> s{_rfiaAttribute = a});++-- | Checks whether you have the required permissions for the action, 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@ .+rfiaDryRun :: Lens' ResetFpgaImageAttribute (Maybe Bool)+rfiaDryRun = lens _rfiaDryRun (\ s a -> s{_rfiaDryRun = a});++-- | The ID of the AFI.+rfiaFpgaImageId :: Lens' ResetFpgaImageAttribute Text+rfiaFpgaImageId = lens _rfiaFpgaImageId (\ s a -> s{_rfiaFpgaImageId = a});++instance AWSRequest ResetFpgaImageAttribute where+        type Rs ResetFpgaImageAttribute =+             ResetFpgaImageAttributeResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 ResetFpgaImageAttributeResponse' <$>+                   (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable ResetFpgaImageAttribute where++instance NFData ResetFpgaImageAttribute where++instance ToHeaders ResetFpgaImageAttribute where+        toHeaders = const mempty++instance ToPath ResetFpgaImageAttribute where+        toPath = const "/"++instance ToQuery ResetFpgaImageAttribute where+        toQuery ResetFpgaImageAttribute'{..}+          = mconcat+              ["Action" =:+                 ("ResetFpgaImageAttribute" :: ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "Attribute" =: _rfiaAttribute,+               "DryRun" =: _rfiaDryRun,+               "FpgaImageId" =: _rfiaFpgaImageId]++-- | /See:/ 'resetFpgaImageAttributeResponse' smart constructor.+data ResetFpgaImageAttributeResponse = ResetFpgaImageAttributeResponse'+  { _rfiarsReturn         :: !(Maybe Bool)+  , _rfiarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ResetFpgaImageAttributeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rfiarsReturn' - Is @true@ if the request succeeds, and an error otherwise.+--+-- * 'rfiarsResponseStatus' - -- | The response status code.+resetFpgaImageAttributeResponse+    :: Int -- ^ 'rfiarsResponseStatus'+    -> ResetFpgaImageAttributeResponse+resetFpgaImageAttributeResponse pResponseStatus_ =+  ResetFpgaImageAttributeResponse'+  {_rfiarsReturn = Nothing, _rfiarsResponseStatus = pResponseStatus_}+++-- | Is @true@ if the request succeeds, and an error otherwise.+rfiarsReturn :: Lens' ResetFpgaImageAttributeResponse (Maybe Bool)+rfiarsReturn = lens _rfiarsReturn (\ s a -> s{_rfiarsReturn = a});++-- | -- | The response status code.+rfiarsResponseStatus :: Lens' ResetFpgaImageAttributeResponse Int+rfiarsResponseStatus = lens _rfiarsResponseStatus (\ s a -> s{_rfiarsResponseStatus = a});++instance NFData ResetFpgaImageAttributeResponse where
gen/Network/AWS/EC2/ResetImageAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ResetImageAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -28,20 +28,20 @@     , ResetImageAttribute     -- * Request Lenses     , resDryRun-    , resImageId     , resAttribute+    , resImageId      -- * Destructuring the Response     , resetImageAttributeResponse     , ResetImageAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ResetImageAttribute. --@@ -49,52 +49,51 @@ -- -- /See:/ 'resetImageAttribute' smart constructor. data ResetImageAttribute = ResetImageAttribute'-    { _resDryRun    :: !(Maybe Bool)-    , _resImageId   :: !Text-    , _resAttribute :: !ResetImageAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _resDryRun    :: !(Maybe Bool)+  , _resAttribute :: !ResetImageAttributeName+  , _resImageId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetImageAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'resDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'resImageId' - The ID of the AMI.--- -- * 'resAttribute' - The attribute to reset (currently you can only reset the launch permission attribute).+--+-- * 'resImageId' - The ID of the AMI. resetImageAttribute-    :: Text -- ^ 'resImageId'-    -> ResetImageAttributeName -- ^ 'resAttribute'+    :: ResetImageAttributeName -- ^ 'resAttribute'+    -> Text -- ^ 'resImageId'     -> ResetImageAttribute-resetImageAttribute pImageId_ pAttribute_ =-    ResetImageAttribute'-    { _resDryRun = Nothing-    , _resImageId = pImageId_-    , _resAttribute = pAttribute_-    }+resetImageAttribute pAttribute_ pImageId_ =+  ResetImageAttribute'+  {_resDryRun = Nothing, _resAttribute = pAttribute_, _resImageId = pImageId_} + -- | Checks whether you have the required permissions for the action, 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@ . resDryRun :: Lens' ResetImageAttribute (Maybe Bool) resDryRun = lens _resDryRun (\ s a -> s{_resDryRun = a}); --- | The ID of the AMI.-resImageId :: Lens' ResetImageAttribute Text-resImageId = lens _resImageId (\ s a -> s{_resImageId = a});- -- | The attribute to reset (currently you can only reset the launch permission attribute). resAttribute :: Lens' ResetImageAttribute ResetImageAttributeName resAttribute = lens _resAttribute (\ s a -> s{_resAttribute = a}); +-- | The ID of the AMI.+resImageId :: Lens' ResetImageAttribute Text+resImageId = lens _resImageId (\ s a -> s{_resImageId = a});+ instance AWSRequest ResetImageAttribute where         type Rs ResetImageAttribute =              ResetImageAttributeResponse         request = postQuery ec2         response = receiveNull ResetImageAttributeResponse' -instance Hashable ResetImageAttribute+instance Hashable ResetImageAttribute where -instance NFData ResetImageAttribute+instance NFData ResetImageAttribute where  instance ToHeaders ResetImageAttribute where         toHeaders = const mempty@@ -107,18 +106,20 @@           = mconcat               ["Action" =: ("ResetImageAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _resDryRun, "ImageId" =: _resImageId,-               "Attribute" =: _resAttribute]+               "DryRun" =: _resDryRun, "Attribute" =: _resAttribute,+               "ImageId" =: _resImageId]  -- | /See:/ 'resetImageAttributeResponse' smart constructor. data ResetImageAttributeResponse =-    ResetImageAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ResetImageAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetImageAttributeResponse' with the minimum fields required to make a request. -- resetImageAttributeResponse     :: ResetImageAttributeResponse resetImageAttributeResponse = ResetImageAttributeResponse' -instance NFData ResetImageAttributeResponse++instance NFData ResetImageAttributeResponse where
gen/Network/AWS/EC2/ResetInstanceAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ResetInstanceAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,20 +30,20 @@     , ResetInstanceAttribute     -- * Request Lenses     , riaDryRun-    , riaInstanceId     , riaAttribute+    , riaInstanceId      -- * Destructuring the Response     , resetInstanceAttributeResponse     , ResetInstanceAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ResetInstanceAttribute. --@@ -51,43 +51,45 @@ -- -- /See:/ 'resetInstanceAttribute' smart constructor. data ResetInstanceAttribute = ResetInstanceAttribute'-    { _riaDryRun     :: !(Maybe Bool)-    , _riaInstanceId :: !Text-    , _riaAttribute  :: !InstanceAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _riaDryRun     :: !(Maybe Bool)+  , _riaAttribute  :: !InstanceAttributeName+  , _riaInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetInstanceAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'riaDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'riaInstanceId' - The ID of the instance.--- -- * 'riaAttribute' - The attribute to reset. /Important:/ You can only reset the following attributes: @kernel@ | @ramdisk@ | @sourceDestCheck@ . To change an instance attribute, use 'ModifyInstanceAttribute' .+--+-- * 'riaInstanceId' - The ID of the instance. resetInstanceAttribute-    :: Text -- ^ 'riaInstanceId'-    -> InstanceAttributeName -- ^ 'riaAttribute'+    :: InstanceAttributeName -- ^ 'riaAttribute'+    -> Text -- ^ 'riaInstanceId'     -> ResetInstanceAttribute-resetInstanceAttribute pInstanceId_ pAttribute_ =-    ResetInstanceAttribute'-    { _riaDryRun = Nothing-    , _riaInstanceId = pInstanceId_-    , _riaAttribute = pAttribute_-    }+resetInstanceAttribute pAttribute_ pInstanceId_ =+  ResetInstanceAttribute'+  { _riaDryRun = Nothing+  , _riaAttribute = pAttribute_+  , _riaInstanceId = pInstanceId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . riaDryRun :: Lens' ResetInstanceAttribute (Maybe Bool) riaDryRun = lens _riaDryRun (\ s a -> s{_riaDryRun = a}); --- | The ID of the instance.-riaInstanceId :: Lens' ResetInstanceAttribute Text-riaInstanceId = lens _riaInstanceId (\ s a -> s{_riaInstanceId = a});- -- | The attribute to reset. /Important:/ You can only reset the following attributes: @kernel@ | @ramdisk@ | @sourceDestCheck@ . To change an instance attribute, use 'ModifyInstanceAttribute' . riaAttribute :: Lens' ResetInstanceAttribute InstanceAttributeName riaAttribute = lens _riaAttribute (\ s a -> s{_riaAttribute = a}); +-- | The ID of the instance.+riaInstanceId :: Lens' ResetInstanceAttribute Text+riaInstanceId = lens _riaInstanceId (\ s a -> s{_riaInstanceId = a});+ instance AWSRequest ResetInstanceAttribute where         type Rs ResetInstanceAttribute =              ResetInstanceAttributeResponse@@ -95,9 +97,9 @@         response           = receiveNull ResetInstanceAttributeResponse' -instance Hashable ResetInstanceAttribute+instance Hashable ResetInstanceAttribute where -instance NFData ResetInstanceAttribute+instance NFData ResetInstanceAttribute where  instance ToHeaders ResetInstanceAttribute where         toHeaders = const mempty@@ -111,19 +113,20 @@               ["Action" =:                  ("ResetInstanceAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _riaDryRun,-               "InstanceId" =: _riaInstanceId,-               "Attribute" =: _riaAttribute]+               "DryRun" =: _riaDryRun, "Attribute" =: _riaAttribute,+               "InstanceId" =: _riaInstanceId]  -- | /See:/ 'resetInstanceAttributeResponse' smart constructor. data ResetInstanceAttributeResponse =-    ResetInstanceAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ResetInstanceAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetInstanceAttributeResponse' with the minimum fields required to make a request. -- resetInstanceAttributeResponse     :: ResetInstanceAttributeResponse resetInstanceAttributeResponse = ResetInstanceAttributeResponse' -instance NFData ResetInstanceAttributeResponse++instance NFData ResetInstanceAttributeResponse where
gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ResetNetworkInterfaceAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -36,12 +36,12 @@     , ResetNetworkInterfaceAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ResetNetworkInterfaceAttribute. --@@ -49,11 +49,12 @@ -- -- /See:/ 'resetNetworkInterfaceAttribute' smart constructor. data ResetNetworkInterfaceAttribute = ResetNetworkInterfaceAttribute'-    { _rniaSourceDestCheck    :: !(Maybe Text)-    , _rniaDryRun             :: !(Maybe Bool)-    , _rniaNetworkInterfaceId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rniaSourceDestCheck    :: !(Maybe Text)+  , _rniaDryRun             :: !(Maybe Bool)+  , _rniaNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetNetworkInterfaceAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,12 +68,13 @@     :: Text -- ^ 'rniaNetworkInterfaceId'     -> ResetNetworkInterfaceAttribute resetNetworkInterfaceAttribute pNetworkInterfaceId_ =-    ResetNetworkInterfaceAttribute'-    { _rniaSourceDestCheck = Nothing-    , _rniaDryRun = Nothing-    , _rniaNetworkInterfaceId = pNetworkInterfaceId_-    }+  ResetNetworkInterfaceAttribute'+  { _rniaSourceDestCheck = Nothing+  , _rniaDryRun = Nothing+  , _rniaNetworkInterfaceId = pNetworkInterfaceId_+  } + -- | The source/destination checking attribute. Resets the value to @true@ . rniaSourceDestCheck :: Lens' ResetNetworkInterfaceAttribute (Maybe Text) rniaSourceDestCheck = lens _rniaSourceDestCheck (\ s a -> s{_rniaSourceDestCheck = a});@@ -94,8 +96,9 @@           = receiveNull ResetNetworkInterfaceAttributeResponse'  instance Hashable ResetNetworkInterfaceAttribute+         where -instance NFData ResetNetworkInterfaceAttribute+instance NFData ResetNetworkInterfaceAttribute where  instance ToHeaders ResetNetworkInterfaceAttribute          where@@ -116,15 +119,17 @@  -- | /See:/ 'resetNetworkInterfaceAttributeResponse' smart constructor. data ResetNetworkInterfaceAttributeResponse =-    ResetNetworkInterfaceAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ResetNetworkInterfaceAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetNetworkInterfaceAttributeResponse' with the minimum fields required to make a request. -- resetNetworkInterfaceAttributeResponse     :: ResetNetworkInterfaceAttributeResponse-resetNetworkInterfaceAttributeResponse =-    ResetNetworkInterfaceAttributeResponse'+resetNetworkInterfaceAttributeResponse = ResetNetworkInterfaceAttributeResponse' + instance NFData-         ResetNetworkInterfaceAttributeResponse+           ResetNetworkInterfaceAttributeResponse+         where
gen/Network/AWS/EC2/ResetSnapshotAttribute.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.ResetSnapshotAttribute--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -30,20 +30,20 @@     , ResetSnapshotAttribute     -- * Request Lenses     , rsaDryRun-    , rsaSnapshotId     , rsaAttribute+    , rsaSnapshotId      -- * Destructuring the Response     , resetSnapshotAttributeResponse     , ResetSnapshotAttributeResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for ResetSnapshotAttribute. --@@ -51,43 +51,45 @@ -- -- /See:/ 'resetSnapshotAttribute' smart constructor. data ResetSnapshotAttribute = ResetSnapshotAttribute'-    { _rsaDryRun     :: !(Maybe Bool)-    , _rsaSnapshotId :: !Text-    , _rsaAttribute  :: !SnapshotAttributeName-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsaDryRun     :: !(Maybe Bool)+  , _rsaAttribute  :: !SnapshotAttributeName+  , _rsaSnapshotId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetSnapshotAttribute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rsaDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'rsaSnapshotId' - The ID of the snapshot.--- -- * 'rsaAttribute' - The attribute to reset. Currently, only the attribute for permission to create volumes can be reset.+--+-- * 'rsaSnapshotId' - The ID of the snapshot. resetSnapshotAttribute-    :: Text -- ^ 'rsaSnapshotId'-    -> SnapshotAttributeName -- ^ 'rsaAttribute'+    :: SnapshotAttributeName -- ^ 'rsaAttribute'+    -> Text -- ^ 'rsaSnapshotId'     -> ResetSnapshotAttribute-resetSnapshotAttribute pSnapshotId_ pAttribute_ =-    ResetSnapshotAttribute'-    { _rsaDryRun = Nothing-    , _rsaSnapshotId = pSnapshotId_-    , _rsaAttribute = pAttribute_-    }+resetSnapshotAttribute pAttribute_ pSnapshotId_ =+  ResetSnapshotAttribute'+  { _rsaDryRun = Nothing+  , _rsaAttribute = pAttribute_+  , _rsaSnapshotId = pSnapshotId_+  } + -- | Checks whether you have the required permissions for the action, 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@ . rsaDryRun :: Lens' ResetSnapshotAttribute (Maybe Bool) rsaDryRun = lens _rsaDryRun (\ s a -> s{_rsaDryRun = a}); --- | The ID of the snapshot.-rsaSnapshotId :: Lens' ResetSnapshotAttribute Text-rsaSnapshotId = lens _rsaSnapshotId (\ s a -> s{_rsaSnapshotId = a});- -- | The attribute to reset. Currently, only the attribute for permission to create volumes can be reset. rsaAttribute :: Lens' ResetSnapshotAttribute SnapshotAttributeName rsaAttribute = lens _rsaAttribute (\ s a -> s{_rsaAttribute = a}); +-- | The ID of the snapshot.+rsaSnapshotId :: Lens' ResetSnapshotAttribute Text+rsaSnapshotId = lens _rsaSnapshotId (\ s a -> s{_rsaSnapshotId = a});+ instance AWSRequest ResetSnapshotAttribute where         type Rs ResetSnapshotAttribute =              ResetSnapshotAttributeResponse@@ -95,9 +97,9 @@         response           = receiveNull ResetSnapshotAttributeResponse' -instance Hashable ResetSnapshotAttribute+instance Hashable ResetSnapshotAttribute where -instance NFData ResetSnapshotAttribute+instance NFData ResetSnapshotAttribute where  instance ToHeaders ResetSnapshotAttribute where         toHeaders = const mempty@@ -111,19 +113,20 @@               ["Action" =:                  ("ResetSnapshotAttribute" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "DryRun" =: _rsaDryRun,-               "SnapshotId" =: _rsaSnapshotId,-               "Attribute" =: _rsaAttribute]+               "DryRun" =: _rsaDryRun, "Attribute" =: _rsaAttribute,+               "SnapshotId" =: _rsaSnapshotId]  -- | /See:/ 'resetSnapshotAttributeResponse' smart constructor. data ResetSnapshotAttributeResponse =-    ResetSnapshotAttributeResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  ResetSnapshotAttributeResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ResetSnapshotAttributeResponse' with the minimum fields required to make a request. -- resetSnapshotAttributeResponse     :: ResetSnapshotAttributeResponse resetSnapshotAttributeResponse = ResetSnapshotAttributeResponse' -instance NFData ResetSnapshotAttributeResponse++instance NFData ResetSnapshotAttributeResponse where
gen/Network/AWS/EC2/RestoreAddressToClassic.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RestoreAddressToClassic--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,12 +39,12 @@     , ratcrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RestoreAddressToClassic. --@@ -52,10 +52,11 @@ -- -- /See:/ 'restoreAddressToClassic' smart constructor. data RestoreAddressToClassic = RestoreAddressToClassic'-    { _ratcDryRun   :: !(Maybe Bool)-    , _ratcPublicIP :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ratcDryRun   :: !(Maybe Bool)+  , _ratcPublicIP :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RestoreAddressToClassic' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,11 +68,9 @@     :: Text -- ^ 'ratcPublicIP'     -> RestoreAddressToClassic restoreAddressToClassic pPublicIP_ =-    RestoreAddressToClassic'-    { _ratcDryRun = Nothing-    , _ratcPublicIP = pPublicIP_-    }+  RestoreAddressToClassic' {_ratcDryRun = Nothing, _ratcPublicIP = pPublicIP_} + -- | Checks whether you have the required permissions for the action, 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@ . ratcDryRun :: Lens' RestoreAddressToClassic (Maybe Bool) ratcDryRun = lens _ratcDryRun (\ s a -> s{_ratcDryRun = a});@@ -91,9 +90,9 @@                    (x .@? "status") <*> (x .@? "publicIp") <*>                      (pure (fromEnum s))) -instance Hashable RestoreAddressToClassic+instance Hashable RestoreAddressToClassic where -instance NFData RestoreAddressToClassic+instance NFData RestoreAddressToClassic where  instance ToHeaders RestoreAddressToClassic where         toHeaders = const mempty@@ -115,11 +114,12 @@ -- -- /See:/ 'restoreAddressToClassicResponse' smart constructor. data RestoreAddressToClassicResponse = RestoreAddressToClassicResponse'-    { _ratcrsStatus         :: !(Maybe AddressStatus)-    , _ratcrsPublicIP       :: !(Maybe Text)-    , _ratcrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _ratcrsStatus         :: !(Maybe AddressStatus)+  , _ratcrsPublicIP       :: !(Maybe Text)+  , _ratcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RestoreAddressToClassicResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -133,12 +133,13 @@     :: Int -- ^ 'ratcrsResponseStatus'     -> RestoreAddressToClassicResponse restoreAddressToClassicResponse pResponseStatus_ =-    RestoreAddressToClassicResponse'-    { _ratcrsStatus = Nothing-    , _ratcrsPublicIP = Nothing-    , _ratcrsResponseStatus = pResponseStatus_-    }+  RestoreAddressToClassicResponse'+  { _ratcrsStatus = Nothing+  , _ratcrsPublicIP = Nothing+  , _ratcrsResponseStatus = pResponseStatus_+  } + -- | The move status for the IP address. ratcrsStatus :: Lens' RestoreAddressToClassicResponse (Maybe AddressStatus) ratcrsStatus = lens _ratcrsStatus (\ s a -> s{_ratcrsStatus = a});@@ -151,4 +152,4 @@ ratcrsResponseStatus :: Lens' RestoreAddressToClassicResponse Int ratcrsResponseStatus = lens _ratcrsResponseStatus (\ s a -> s{_ratcrsResponseStatus = a}); -instance NFData RestoreAddressToClassicResponse+instance NFData RestoreAddressToClassicResponse where
gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.RevokeSecurityGroupEgress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- [EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to security groups for use in EC2-Classic. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked.+-- [EC2-VPC only] 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. -- ----- 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.+-- 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. --@@ -46,12 +46,12 @@     , RevokeSecurityGroupEgressResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RevokeSecurityGroupEgress. --@@ -59,34 +59,35 @@ -- -- /See:/ 'revokeSecurityGroupEgress' smart constructor. data RevokeSecurityGroupEgress = RevokeSecurityGroupEgress'-    { _rsgeFromPort                   :: !(Maybe Int)-    , _rsgeIPPermissions              :: !(Maybe [IPPermission])-    , _rsgeIPProtocol                 :: !(Maybe Text)-    , _rsgeToPort                     :: !(Maybe Int)-    , _rsgeCidrIP                     :: !(Maybe Text)-    , _rsgeSourceSecurityGroupOwnerId :: !(Maybe Text)-    , _rsgeSourceSecurityGroupName    :: !(Maybe Text)-    , _rsgeDryRun                     :: !(Maybe Bool)-    , _rsgeGroupId                    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsgeFromPort                   :: !(Maybe Int)+  , _rsgeIPPermissions              :: !(Maybe [IPPermission])+  , _rsgeIPProtocol                 :: !(Maybe Text)+  , _rsgeToPort                     :: !(Maybe Int)+  , _rsgeCidrIP                     :: !(Maybe Text)+  , _rsgeSourceSecurityGroupOwnerId :: !(Maybe Text)+  , _rsgeSourceSecurityGroupName    :: !(Maybe Text)+  , _rsgeDryRun                     :: !(Maybe Bool)+  , _rsgeGroupId                    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeSecurityGroupEgress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'rsgeFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.+-- * 'rsgeFromPort' - Not supported. Use a set of IP permissions to specify the port. ----- * 'rsgeIPPermissions' - A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.+-- * 'rsgeIPPermissions' - 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. ----- * 'rsgeIPProtocol' - The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.+-- * 'rsgeIPProtocol' - Not supported. Use a set of IP permissions to specify the protocol name or number. ----- * 'rsgeToPort' - The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.+-- * 'rsgeToPort' - Not supported. Use a set of IP permissions to specify the port. ----- * 'rsgeCidrIP' - The CIDR IP address range. We recommend that you specify the CIDR range in a set of IP permissions instead.+-- * 'rsgeCidrIP' - Not supported. Use a set of IP permissions to specify the CIDR. ----- * 'rsgeSourceSecurityGroupOwnerId' - The AWS account number for a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- * 'rsgeSourceSecurityGroupOwnerId' - Not supported. Use a set of IP permissions to specify a destination security group. ----- * 'rsgeSourceSecurityGroupName' - The name of a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- * 'rsgeSourceSecurityGroupName' - Not supported. Use a set of IP permissions to specify a destination security group. -- -- * 'rsgeDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -95,43 +96,44 @@     :: Text -- ^ 'rsgeGroupId'     -> RevokeSecurityGroupEgress revokeSecurityGroupEgress pGroupId_ =-    RevokeSecurityGroupEgress'-    { _rsgeFromPort = Nothing-    , _rsgeIPPermissions = Nothing-    , _rsgeIPProtocol = Nothing-    , _rsgeToPort = Nothing-    , _rsgeCidrIP = Nothing-    , _rsgeSourceSecurityGroupOwnerId = Nothing-    , _rsgeSourceSecurityGroupName = Nothing-    , _rsgeDryRun = Nothing-    , _rsgeGroupId = pGroupId_-    }+  RevokeSecurityGroupEgress'+  { _rsgeFromPort = Nothing+  , _rsgeIPPermissions = Nothing+  , _rsgeIPProtocol = Nothing+  , _rsgeToPort = Nothing+  , _rsgeCidrIP = Nothing+  , _rsgeSourceSecurityGroupOwnerId = Nothing+  , _rsgeSourceSecurityGroupName = Nothing+  , _rsgeDryRun = Nothing+  , _rsgeGroupId = pGroupId_+  } --- | The start of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.++-- | Not supported. Use a set of IP permissions to specify the port. rsgeFromPort :: Lens' RevokeSecurityGroupEgress (Maybe Int) rsgeFromPort = lens _rsgeFromPort (\ s a -> s{_rsgeFromPort = a}); --- | A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.+-- | 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] rsgeIPPermissions = lens _rsgeIPPermissions (\ s a -> s{_rsgeIPPermissions = a}) . _Default . _Coerce; --- | The IP protocol name or number. We recommend that you specify the protocol in a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify the protocol name or number. rsgeIPProtocol :: Lens' RevokeSecurityGroupEgress (Maybe Text) rsgeIPProtocol = lens _rsgeIPProtocol (\ s a -> s{_rsgeIPProtocol = a}); --- | The end of port range for the TCP and UDP protocols, or an ICMP type number. We recommend that you specify the port range in a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify the port. rsgeToPort :: Lens' RevokeSecurityGroupEgress (Maybe Int) rsgeToPort = lens _rsgeToPort (\ s a -> s{_rsgeToPort = a}); --- | The CIDR IP address range. We recommend that you specify the CIDR range in a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify the CIDR. rsgeCidrIP :: Lens' RevokeSecurityGroupEgress (Maybe Text) rsgeCidrIP = lens _rsgeCidrIP (\ s a -> s{_rsgeCidrIP = a}); --- | The AWS account number for a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify a destination security group. rsgeSourceSecurityGroupOwnerId :: Lens' RevokeSecurityGroupEgress (Maybe Text) rsgeSourceSecurityGroupOwnerId = lens _rsgeSourceSecurityGroupOwnerId (\ s a -> s{_rsgeSourceSecurityGroupOwnerId = a}); --- | The name of a destination security group. To revoke outbound access to a destination security group, we recommend that you use a set of IP permissions instead.+-- | Not supported. Use a set of IP permissions to specify a destination security group. rsgeSourceSecurityGroupName :: Lens' RevokeSecurityGroupEgress (Maybe Text) rsgeSourceSecurityGroupName = lens _rsgeSourceSecurityGroupName (\ s a -> s{_rsgeSourceSecurityGroupName = a}); @@ -150,9 +152,9 @@         response           = receiveNull RevokeSecurityGroupEgressResponse' -instance Hashable RevokeSecurityGroupEgress+instance Hashable RevokeSecurityGroupEgress where -instance NFData RevokeSecurityGroupEgress+instance NFData RevokeSecurityGroupEgress where  instance ToHeaders RevokeSecurityGroupEgress where         toHeaders = const mempty@@ -179,13 +181,16 @@  -- | /See:/ 'revokeSecurityGroupEgressResponse' smart constructor. data RevokeSecurityGroupEgressResponse =-    RevokeSecurityGroupEgressResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  RevokeSecurityGroupEgressResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeSecurityGroupEgressResponse' with the minimum fields required to make a request. -- revokeSecurityGroupEgressResponse     :: RevokeSecurityGroupEgressResponse revokeSecurityGroupEgressResponse = RevokeSecurityGroupEgressResponse' + instance NFData RevokeSecurityGroupEgressResponse+         where
gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.RevokeSecurityGroupIngress--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed.+-- 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.+-- 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. --@@ -47,12 +47,12 @@     , RevokeSecurityGroupIngressResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RevokeSecurityGroupIngress. --@@ -60,29 +60,30 @@ -- -- /See:/ 'revokeSecurityGroupIngress' smart constructor. data RevokeSecurityGroupIngress = RevokeSecurityGroupIngress'-    { _rsgiFromPort                   :: !(Maybe Int)-    , _rsgiIPPermissions              :: !(Maybe [IPPermission])-    , _rsgiIPProtocol                 :: !(Maybe Text)-    , _rsgiGroupId                    :: !(Maybe Text)-    , _rsgiToPort                     :: !(Maybe Int)-    , _rsgiCidrIP                     :: !(Maybe Text)-    , _rsgiSourceSecurityGroupOwnerId :: !(Maybe Text)-    , _rsgiGroupName                  :: !(Maybe Text)-    , _rsgiSourceSecurityGroupName    :: !(Maybe Text)-    , _rsgiDryRun                     :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsgiFromPort                   :: !(Maybe Int)+  , _rsgiIPPermissions              :: !(Maybe [IPPermission])+  , _rsgiIPProtocol                 :: !(Maybe Text)+  , _rsgiGroupId                    :: !(Maybe Text)+  , _rsgiToPort                     :: !(Maybe Int)+  , _rsgiCidrIP                     :: !(Maybe Text)+  , _rsgiSourceSecurityGroupOwnerId :: !(Maybe Text)+  , _rsgiGroupName                  :: !(Maybe Text)+  , _rsgiSourceSecurityGroupName    :: !(Maybe Text)+  , _rsgiDryRun                     :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeSecurityGroupIngress' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rsgiFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use @-1@ to specify all ICMP types. ----- * 'rsgiIPPermissions' - A set of IP permissions. You can't specify a source security group and a CIDR IP address range.+-- * 'rsgiIPPermissions' - 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. -- -- * 'rsgiIPProtocol' - The IP protocol name (@tcp@ , @udp@ , @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers> ). Use @-1@ to specify all. ----- * 'rsgiGroupId' - The ID of the security group. Required for a security group in a nondefault VPC.+-- * 'rsgiGroupId' - 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. -- -- * 'rsgiToPort' - The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use @-1@ to specify all ICMP codes for the ICMP type. --@@ -90,7 +91,7 @@ -- -- * 'rsgiSourceSecurityGroupOwnerId' - [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. ----- * 'rsgiGroupName' - [EC2-Classic, default VPC] The name of the security group.+-- * 'rsgiGroupName' - [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. -- -- * 'rsgiSourceSecurityGroupName' - [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. --@@ -98,24 +99,25 @@ revokeSecurityGroupIngress     :: RevokeSecurityGroupIngress revokeSecurityGroupIngress =-    RevokeSecurityGroupIngress'-    { _rsgiFromPort = Nothing-    , _rsgiIPPermissions = Nothing-    , _rsgiIPProtocol = Nothing-    , _rsgiGroupId = Nothing-    , _rsgiToPort = Nothing-    , _rsgiCidrIP = Nothing-    , _rsgiSourceSecurityGroupOwnerId = Nothing-    , _rsgiGroupName = Nothing-    , _rsgiSourceSecurityGroupName = Nothing-    , _rsgiDryRun = Nothing-    }+  RevokeSecurityGroupIngress'+  { _rsgiFromPort = Nothing+  , _rsgiIPPermissions = Nothing+  , _rsgiIPProtocol = Nothing+  , _rsgiGroupId = Nothing+  , _rsgiToPort = Nothing+  , _rsgiCidrIP = Nothing+  , _rsgiSourceSecurityGroupOwnerId = Nothing+  , _rsgiGroupName = Nothing+  , _rsgiSourceSecurityGroupName = Nothing+  , _rsgiDryRun = Nothing+  } + -- | The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use @-1@ to specify all ICMP types. rsgiFromPort :: Lens' RevokeSecurityGroupIngress (Maybe Int) rsgiFromPort = lens _rsgiFromPort (\ s a -> s{_rsgiFromPort = a}); --- | A set of IP permissions. You can't specify a source security group and a CIDR IP address range.+-- | 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] rsgiIPPermissions = lens _rsgiIPPermissions (\ s a -> s{_rsgiIPPermissions = a}) . _Default . _Coerce; @@ -123,7 +125,7 @@ rsgiIPProtocol :: Lens' RevokeSecurityGroupIngress (Maybe Text) rsgiIPProtocol = lens _rsgiIPProtocol (\ s a -> s{_rsgiIPProtocol = a}); --- | The ID of the security group. Required for a security group in a nondefault VPC.+-- | 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) rsgiGroupId = lens _rsgiGroupId (\ s a -> s{_rsgiGroupId = a}); @@ -139,7 +141,7 @@ rsgiSourceSecurityGroupOwnerId :: Lens' RevokeSecurityGroupIngress (Maybe Text) rsgiSourceSecurityGroupOwnerId = lens _rsgiSourceSecurityGroupOwnerId (\ s a -> s{_rsgiSourceSecurityGroupOwnerId = a}); --- | [EC2-Classic, default VPC] The name of the security group.+-- | [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. rsgiGroupName :: Lens' RevokeSecurityGroupIngress (Maybe Text) rsgiGroupName = lens _rsgiGroupName (\ s a -> s{_rsgiGroupName = a}); @@ -158,9 +160,9 @@         response           = receiveNull RevokeSecurityGroupIngressResponse' -instance Hashable RevokeSecurityGroupIngress+instance Hashable RevokeSecurityGroupIngress where -instance NFData RevokeSecurityGroupIngress+instance NFData RevokeSecurityGroupIngress where  instance ToHeaders RevokeSecurityGroupIngress where         toHeaders = const mempty@@ -189,13 +191,16 @@  -- | /See:/ 'revokeSecurityGroupIngressResponse' smart constructor. data RevokeSecurityGroupIngressResponse =-    RevokeSecurityGroupIngressResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  RevokeSecurityGroupIngressResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RevokeSecurityGroupIngressResponse' with the minimum fields required to make a request. -- revokeSecurityGroupIngressResponse     :: RevokeSecurityGroupIngressResponse revokeSecurityGroupIngressResponse = RevokeSecurityGroupIngressResponse' + instance NFData RevokeSecurityGroupIngressResponse+         where
gen/Network/AWS/EC2/RunInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RunInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -31,7 +31,7 @@ -- --     * [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. -----     * Not all instance types support IPv6 addresses. For more information, see <http://aws.amazon.com/ec2/instance-types/ Amazon EC2 Instance Types> .+--     * Not all instance types support IPv6 addresses. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> . -- --     * If you don't specify a security group ID, we use the default security group. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Security Groups> . --@@ -39,9 +39,9 @@ -- -- ----- To ensure faster instance launches, break up large requests into smaller batches. For example, create 5 separate launch requests for 100 instances each instead of 1 launch request for 500 instances.+-- 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 @running@ state. You can check the state of your instance using 'DescribeInstances' . After launch, you can apply tags to your running instance (requires a resource ID). For more information, see 'CreateTags' and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Amazon EC2 Resources> .+-- An instance is ready for you to use when it's in the @running@ state. You can check the state of your instance using 'DescribeInstances' . You can tag instances and EBS volumes during launch, after launch, or both. For more information, see 'CreateTags' and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Amazon EC2 Resources> . -- -- 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 <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon Elastic Compute Cloud User Guide/ . --@@ -67,8 +67,10 @@     , rEBSOptimized     , rUserData     , rMonitoring+    , rTagSpecifications     , rIPv6AddressCount     , rIAMInstanceProfile+    , rElasticGpuSpecification     , rPrivateIPAddress     , rInstanceInitiatedShutdownBehavior     , rBlockDeviceMappings@@ -76,8 +78,8 @@     , rPlacement     , rIPv6Addresses     , rImageId-    , rMinCount     , rMaxCount+    , rMinCount      -- * Destructuring the Response     , reservation@@ -90,12 +92,12 @@     , rOwnerId     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RunInstances. --@@ -103,33 +105,36 @@ -- -- /See:/ 'runInstances' smart constructor. data RunInstances = RunInstances'-    { _rAdditionalInfo                    :: !(Maybe Text)-    , _rSecurityGroupIds                  :: !(Maybe [Text])-    , _rSecurityGroups                    :: !(Maybe [Text])-    , _rClientToken                       :: !(Maybe Text)-    , _rDisableAPITermination             :: !(Maybe Bool)-    , _rKeyName                           :: !(Maybe Text)-    , _rNetworkInterfaces                 :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _rRAMDiskId                         :: !(Maybe Text)-    , _rSubnetId                          :: !(Maybe Text)-    , _rKernelId                          :: !(Maybe Text)-    , _rInstanceType                      :: !(Maybe InstanceType)-    , _rEBSOptimized                      :: !(Maybe Bool)-    , _rUserData                          :: !(Maybe Text)-    , _rMonitoring                        :: !(Maybe RunInstancesMonitoringEnabled)-    , _rIPv6AddressCount                  :: !(Maybe Int)-    , _rIAMInstanceProfile                :: !(Maybe IAMInstanceProfileSpecification)-    , _rPrivateIPAddress                  :: !(Maybe Text)-    , _rInstanceInitiatedShutdownBehavior :: !(Maybe ShutdownBehavior)-    , _rBlockDeviceMappings               :: !(Maybe [BlockDeviceMapping])-    , _rDryRun                            :: !(Maybe Bool)-    , _rPlacement                         :: !(Maybe Placement)-    , _rIPv6Addresses                     :: !(Maybe [InstanceIPv6Address])-    , _rImageId                           :: !Text-    , _rMinCount                          :: !Int-    , _rMaxCount                          :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rAdditionalInfo :: !(Maybe Text)+  , _rSecurityGroupIds :: !(Maybe [Text])+  , _rSecurityGroups :: !(Maybe [Text])+  , _rClientToken :: !(Maybe Text)+  , _rDisableAPITermination :: !(Maybe Bool)+  , _rKeyName :: !(Maybe Text)+  , _rNetworkInterfaces :: !(Maybe [InstanceNetworkInterfaceSpecification])+  , _rRAMDiskId :: !(Maybe Text)+  , _rSubnetId :: !(Maybe Text)+  , _rKernelId :: !(Maybe Text)+  , _rInstanceType :: !(Maybe InstanceType)+  , _rEBSOptimized :: !(Maybe Bool)+  , _rUserData :: !(Maybe Text)+  , _rMonitoring :: !(Maybe RunInstancesMonitoringEnabled)+  , _rTagSpecifications :: !(Maybe [TagSpecification])+  , _rIPv6AddressCount :: !(Maybe Int)+  , _rIAMInstanceProfile :: !(Maybe IAMInstanceProfileSpecification)+  , _rElasticGpuSpecification :: !(Maybe [ElasticGpuSpecification])+  , _rPrivateIPAddress :: !(Maybe Text)+  , _rInstanceInitiatedShutdownBehavior :: !(Maybe ShutdownBehavior)+  , _rBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _rDryRun :: !(Maybe Bool)+  , _rPlacement :: !(Maybe Placement)+  , _rIPv6Addresses :: !(Maybe [InstanceIPv6Address])+  , _rImageId :: !Text+  , _rMaxCount :: !Int+  , _rMinCount :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RunInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -156,21 +161,25 @@ -- -- * 'rInstanceType' - The instance type. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon Elastic Compute Cloud User Guide/ . Default: @m1.small@ ----- * 'rEBSOptimized' - Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@+-- * 'rEBSOptimized' - Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@ ----- * 'rUserData' - The user data to make available to the instance. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html Running Commands on Your Linux Instance at Launch> (Linux) and <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data Adding User Data> (Windows). If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+-- * 'rUserData' - The user data to make available to the instance. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html Running Commands on Your Linux Instance at Launch> (Linux) and <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data Adding User Data> (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. -- -- * 'rMonitoring' - The monitoring for the instance. --+-- * 'rTagSpecifications' - 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.+-- -- * 'rIPv6AddressCount' - [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. -- -- * 'rIAMInstanceProfile' - The IAM instance profile. --+-- * 'rElasticGpuSpecification' - An Elastic GPU to associate with the instance.+-- -- * 'rPrivateIPAddress' - [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. -- -- * 'rInstanceInitiatedShutdownBehavior' - Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: @stop@ ----- * 'rBlockDeviceMappings' - The block device mapping. /Important:/ Supplying both a snapshot ID and an encryption value as arguments for block-device mapping results in an error. This is because only blank volumes can be encrypted on start, and these are not created from a snapshot. If a snapshot is the basis for the volume, it contains data by definition and its encryption status cannot be changed using this action.+-- * 'rBlockDeviceMappings' - 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. -- -- * 'rDryRun' - Checks whether you have the required permissions for the action, 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@ . --@@ -180,43 +189,46 @@ -- -- * 'rImageId' - The ID of the AMI, which you can get by calling 'DescribeImages' . ----- * 'rMinCount' - 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 <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2> in the Amazon EC2 General FAQ.--- -- * 'rMaxCount' - 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 @MinCount@ . 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 <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2> in the Amazon EC2 FAQ.+--+-- * 'rMinCount' - 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 <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2> in the Amazon EC2 General FAQ. runInstances     :: Text -- ^ 'rImageId'-    -> Int -- ^ 'rMinCount'     -> Int -- ^ 'rMaxCount'+    -> Int -- ^ 'rMinCount'     -> RunInstances-runInstances pImageId_ pMinCount_ pMaxCount_ =-    RunInstances'-    { _rAdditionalInfo = Nothing-    , _rSecurityGroupIds = Nothing-    , _rSecurityGroups = Nothing-    , _rClientToken = Nothing-    , _rDisableAPITermination = Nothing-    , _rKeyName = Nothing-    , _rNetworkInterfaces = Nothing-    , _rRAMDiskId = Nothing-    , _rSubnetId = Nothing-    , _rKernelId = Nothing-    , _rInstanceType = Nothing-    , _rEBSOptimized = Nothing-    , _rUserData = Nothing-    , _rMonitoring = Nothing-    , _rIPv6AddressCount = Nothing-    , _rIAMInstanceProfile = Nothing-    , _rPrivateIPAddress = Nothing-    , _rInstanceInitiatedShutdownBehavior = Nothing-    , _rBlockDeviceMappings = Nothing-    , _rDryRun = Nothing-    , _rPlacement = Nothing-    , _rIPv6Addresses = Nothing-    , _rImageId = pImageId_-    , _rMinCount = pMinCount_-    , _rMaxCount = pMaxCount_-    }+runInstances pImageId_ pMaxCount_ pMinCount_ =+  RunInstances'+  { _rAdditionalInfo = Nothing+  , _rSecurityGroupIds = Nothing+  , _rSecurityGroups = Nothing+  , _rClientToken = Nothing+  , _rDisableAPITermination = Nothing+  , _rKeyName = Nothing+  , _rNetworkInterfaces = Nothing+  , _rRAMDiskId = Nothing+  , _rSubnetId = Nothing+  , _rKernelId = Nothing+  , _rInstanceType = Nothing+  , _rEBSOptimized = Nothing+  , _rUserData = Nothing+  , _rMonitoring = Nothing+  , _rTagSpecifications = Nothing+  , _rIPv6AddressCount = Nothing+  , _rIAMInstanceProfile = Nothing+  , _rElasticGpuSpecification = Nothing+  , _rPrivateIPAddress = Nothing+  , _rInstanceInitiatedShutdownBehavior = Nothing+  , _rBlockDeviceMappings = Nothing+  , _rDryRun = Nothing+  , _rPlacement = Nothing+  , _rIPv6Addresses = Nothing+  , _rImageId = pImageId_+  , _rMaxCount = pMaxCount_+  , _rMinCount = pMinCount_+  } + -- | Reserved. rAdditionalInfo :: Lens' RunInstances (Maybe Text) rAdditionalInfo = lens _rAdditionalInfo (\ s a -> s{_rAdditionalInfo = a});@@ -261,11 +273,11 @@ rInstanceType :: Lens' RunInstances (Maybe InstanceType) rInstanceType = lens _rInstanceType (\ s a -> s{_rInstanceType = a}); --- | Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@+-- | Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@ rEBSOptimized :: Lens' RunInstances (Maybe Bool) rEBSOptimized = lens _rEBSOptimized (\ s a -> s{_rEBSOptimized = a}); --- | The user data to make available to the instance. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html Running Commands on Your Linux Instance at Launch> (Linux) and <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data Adding User Data> (Windows). If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+-- | The user data to make available to the instance. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html Running Commands on Your Linux Instance at Launch> (Linux) and <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data Adding User Data> (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. rUserData :: Lens' RunInstances (Maybe Text) rUserData = lens _rUserData (\ s a -> s{_rUserData = a}); @@ -273,6 +285,10 @@ rMonitoring :: Lens' RunInstances (Maybe RunInstancesMonitoringEnabled) rMonitoring = lens _rMonitoring (\ s a -> s{_rMonitoring = 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.+rTagSpecifications :: Lens' RunInstances [TagSpecification]+rTagSpecifications = lens _rTagSpecifications (\ s a -> s{_rTagSpecifications = a}) . _Default . _Coerce;+ -- | [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. rIPv6AddressCount :: Lens' RunInstances (Maybe Int) rIPv6AddressCount = lens _rIPv6AddressCount (\ s a -> s{_rIPv6AddressCount = a});@@ -281,6 +297,10 @@ rIAMInstanceProfile :: Lens' RunInstances (Maybe IAMInstanceProfileSpecification) rIAMInstanceProfile = lens _rIAMInstanceProfile (\ s a -> s{_rIAMInstanceProfile = a}); +-- | An Elastic GPU to associate with the instance.+rElasticGpuSpecification :: Lens' RunInstances [ElasticGpuSpecification]+rElasticGpuSpecification = lens _rElasticGpuSpecification (\ s a -> s{_rElasticGpuSpecification = a}) . _Default . _Coerce;+ -- | [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. rPrivateIPAddress :: Lens' RunInstances (Maybe Text) rPrivateIPAddress = lens _rPrivateIPAddress (\ s a -> s{_rPrivateIPAddress = a});@@ -289,7 +309,7 @@ rInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe ShutdownBehavior) rInstanceInitiatedShutdownBehavior = lens _rInstanceInitiatedShutdownBehavior (\ s a -> s{_rInstanceInitiatedShutdownBehavior = a}); --- | The block device mapping. /Important:/ 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.+-- | 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. rBlockDeviceMappings :: Lens' RunInstances [BlockDeviceMapping] rBlockDeviceMappings = lens _rBlockDeviceMappings (\ s a -> s{_rBlockDeviceMappings = a}) . _Default . _Coerce; @@ -309,22 +329,22 @@ rImageId :: Lens' RunInstances Text rImageId = lens _rImageId (\ s a -> s{_rImageId = 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 <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2> in the Amazon EC2 General FAQ.-rMinCount :: Lens' RunInstances Int-rMinCount = lens _rMinCount (\ s a -> s{_rMinCount = 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 @MinCount@ . 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 <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2> in the Amazon EC2 FAQ. rMaxCount :: Lens' RunInstances Int rMaxCount = lens _rMaxCount (\ s a -> s{_rMaxCount = 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 <http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2 How many instances can I run in Amazon EC2> in the Amazon EC2 General FAQ.+rMinCount :: Lens' RunInstances Int+rMinCount = lens _rMinCount (\ s a -> s{_rMinCount = a});+ instance AWSRequest RunInstances where         type Rs RunInstances = Reservation         request = postQuery ec2         response = receiveXML (\ s h x -> parseXML x) -instance Hashable RunInstances+instance Hashable RunInstances where -instance NFData RunInstances+instance NFData RunInstances where  instance ToHeaders RunInstances where         toHeaders = const mempty@@ -355,8 +375,14 @@                "EbsOptimized" =: _rEBSOptimized,                "UserData" =: _rUserData,                "Monitoring" =: _rMonitoring,+               toQuery+                 (toQueryList "TagSpecification" <$>+                    _rTagSpecifications),                "Ipv6AddressCount" =: _rIPv6AddressCount,                "IamInstanceProfile" =: _rIAMInstanceProfile,+               toQuery+                 (toQueryList "ElasticGpuSpecification" <$>+                    _rElasticGpuSpecification),                "PrivateIpAddress" =: _rPrivateIPAddress,                "InstanceInitiatedShutdownBehavior" =:                  _rInstanceInitiatedShutdownBehavior,@@ -366,5 +392,5 @@                "DryRun" =: _rDryRun, "Placement" =: _rPlacement,                toQuery                  (toQueryList "Ipv6Address" <$> _rIPv6Addresses),-               "ImageId" =: _rImageId, "MinCount" =: _rMinCount,-               "MaxCount" =: _rMaxCount]+               "ImageId" =: _rImageId, "MaxCount" =: _rMaxCount,+               "MinCount" =: _rMinCount]
gen/Network/AWS/EC2/RunScheduledInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.RunScheduledInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -34,8 +34,8 @@     , rsiClientToken     , rsiInstanceCount     , rsiDryRun-    , rsiScheduledInstanceId     , rsiLaunchSpecification+    , rsiScheduledInstanceId      -- * Destructuring the Response     , runScheduledInstancesResponse@@ -45,12 +45,12 @@     , rrsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for RunScheduledInstances. --@@ -58,13 +58,14 @@ -- -- /See:/ 'runScheduledInstances' smart constructor. data RunScheduledInstances = RunScheduledInstances'-    { _rsiClientToken         :: !(Maybe Text)-    , _rsiInstanceCount       :: !(Maybe Int)-    , _rsiDryRun              :: !(Maybe Bool)-    , _rsiScheduledInstanceId :: !Text-    , _rsiLaunchSpecification :: !ScheduledInstancesLaunchSpecification-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rsiClientToken         :: !(Maybe Text)+  , _rsiInstanceCount       :: !(Maybe Int)+  , _rsiDryRun              :: !(Maybe Bool)+  , _rsiLaunchSpecification :: !ScheduledInstancesLaunchSpecification+  , _rsiScheduledInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RunScheduledInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,22 +76,23 @@ -- -- * 'rsiDryRun' - Checks whether you have the required permissions for the action, 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@ . ----- * 'rsiScheduledInstanceId' - The Scheduled Instance ID.--- -- * 'rsiLaunchSpecification' - The launch specification. You must match the instance type, Availability Zone, network, and platform of the schedule that you purchased.+--+-- * 'rsiScheduledInstanceId' - The Scheduled Instance ID. runScheduledInstances-    :: Text -- ^ 'rsiScheduledInstanceId'-    -> ScheduledInstancesLaunchSpecification -- ^ 'rsiLaunchSpecification'+    :: ScheduledInstancesLaunchSpecification -- ^ 'rsiLaunchSpecification'+    -> Text -- ^ 'rsiScheduledInstanceId'     -> RunScheduledInstances-runScheduledInstances pScheduledInstanceId_ pLaunchSpecification_ =-    RunScheduledInstances'-    { _rsiClientToken = Nothing-    , _rsiInstanceCount = Nothing-    , _rsiDryRun = Nothing-    , _rsiScheduledInstanceId = pScheduledInstanceId_-    , _rsiLaunchSpecification = pLaunchSpecification_-    }+runScheduledInstances pLaunchSpecification_ pScheduledInstanceId_ =+  RunScheduledInstances'+  { _rsiClientToken = Nothing+  , _rsiInstanceCount = Nothing+  , _rsiDryRun = Nothing+  , _rsiLaunchSpecification = pLaunchSpecification_+  , _rsiScheduledInstanceId = pScheduledInstanceId_+  } + -- | Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> . rsiClientToken :: Lens' RunScheduledInstances (Maybe Text) rsiClientToken = lens _rsiClientToken (\ s a -> s{_rsiClientToken = a});@@ -103,14 +105,14 @@ rsiDryRun :: Lens' RunScheduledInstances (Maybe Bool) rsiDryRun = lens _rsiDryRun (\ s a -> s{_rsiDryRun = a}); --- | The Scheduled Instance ID.-rsiScheduledInstanceId :: Lens' RunScheduledInstances Text-rsiScheduledInstanceId = lens _rsiScheduledInstanceId (\ s a -> s{_rsiScheduledInstanceId = a});- -- | The launch specification. You must match the instance type, Availability Zone, network, and platform of the schedule that you purchased. rsiLaunchSpecification :: Lens' RunScheduledInstances ScheduledInstancesLaunchSpecification rsiLaunchSpecification = lens _rsiLaunchSpecification (\ s a -> s{_rsiLaunchSpecification = a}); +-- | The Scheduled Instance ID.+rsiScheduledInstanceId :: Lens' RunScheduledInstances Text+rsiScheduledInstanceId = lens _rsiScheduledInstanceId (\ s a -> s{_rsiScheduledInstanceId = a});+ instance AWSRequest RunScheduledInstances where         type Rs RunScheduledInstances =              RunScheduledInstancesResponse@@ -123,9 +125,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable RunScheduledInstances+instance Hashable RunScheduledInstances where -instance NFData RunScheduledInstances+instance NFData RunScheduledInstances where  instance ToHeaders RunScheduledInstances where         toHeaders = const mempty@@ -141,8 +143,8 @@                "ClientToken" =: _rsiClientToken,                "InstanceCount" =: _rsiInstanceCount,                "DryRun" =: _rsiDryRun,-               "ScheduledInstanceId" =: _rsiScheduledInstanceId,-               "LaunchSpecification" =: _rsiLaunchSpecification]+               "LaunchSpecification" =: _rsiLaunchSpecification,+               "ScheduledInstanceId" =: _rsiScheduledInstanceId]  -- | Contains the output of RunScheduledInstances. --@@ -150,10 +152,11 @@ -- -- /See:/ 'runScheduledInstancesResponse' smart constructor. data RunScheduledInstancesResponse = RunScheduledInstancesResponse'-    { _rrsInstanceIdSet  :: !(Maybe [Text])-    , _rrsResponseStatus :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _rrsInstanceIdSet  :: !(Maybe [Text])+  , _rrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RunScheduledInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -165,11 +168,10 @@     :: Int -- ^ 'rrsResponseStatus'     -> RunScheduledInstancesResponse runScheduledInstancesResponse pResponseStatus_ =-    RunScheduledInstancesResponse'-    { _rrsInstanceIdSet = Nothing-    , _rrsResponseStatus = pResponseStatus_-    }+  RunScheduledInstancesResponse'+  {_rrsInstanceIdSet = Nothing, _rrsResponseStatus = pResponseStatus_} + -- | The IDs of the newly launched instances. rrsInstanceIdSet :: Lens' RunScheduledInstancesResponse [Text] rrsInstanceIdSet = lens _rrsInstanceIdSet (\ s a -> s{_rrsInstanceIdSet = a}) . _Default . _Coerce;@@ -178,4 +180,4 @@ rrsResponseStatus :: Lens' RunScheduledInstancesResponse Int rrsResponseStatus = lens _rrsResponseStatus (\ s a -> s{_rrsResponseStatus = a}); -instance NFData RunScheduledInstancesResponse+instance NFData RunScheduledInstancesResponse where
gen/Network/AWS/EC2/StartInstances.hs view
@@ -12,16 +12,16 @@  -- | -- Module      : Network.AWS.EC2.StartInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Starts an Amazon EBS-backed AMI that you've previously stopped.+-- 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 hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.+-- 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. --@@ -47,12 +47,12 @@     , srsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for StartInstances. --@@ -60,11 +60,12 @@ -- -- /See:/ 'startInstances' smart constructor. data StartInstances = StartInstances'-    { _sAdditionalInfo :: !(Maybe Text)-    , _sDryRun         :: !(Maybe Bool)-    , _sInstanceIds    :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _sAdditionalInfo :: !(Maybe Text)+  , _sDryRun         :: !(Maybe Bool)+  , _sInstanceIds    :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StartInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,12 +78,10 @@ startInstances     :: StartInstances startInstances =-    StartInstances'-    { _sAdditionalInfo = Nothing-    , _sDryRun = Nothing-    , _sInstanceIds = mempty-    }+  StartInstances'+  {_sAdditionalInfo = Nothing, _sDryRun = Nothing, _sInstanceIds = mempty} + -- | Reserved. sAdditionalInfo :: Lens' StartInstances (Maybe Text) sAdditionalInfo = lens _sAdditionalInfo (\ s a -> s{_sAdditionalInfo = a});@@ -106,9 +105,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable StartInstances+instance Hashable StartInstances where -instance NFData StartInstances+instance NFData StartInstances where  instance ToHeaders StartInstances where         toHeaders = const mempty@@ -131,10 +130,11 @@ -- -- /See:/ 'startInstancesResponse' smart constructor. data StartInstancesResponse = StartInstancesResponse'-    { _srsStartingInstances :: !(Maybe [InstanceStateChange])-    , _srsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _srsStartingInstances :: !(Maybe [InstanceStateChange])+  , _srsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StartInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -146,11 +146,10 @@     :: Int -- ^ 'srsResponseStatus'     -> StartInstancesResponse startInstancesResponse pResponseStatus_ =-    StartInstancesResponse'-    { _srsStartingInstances = Nothing-    , _srsResponseStatus = pResponseStatus_-    }+  StartInstancesResponse'+  {_srsStartingInstances = Nothing, _srsResponseStatus = pResponseStatus_} + -- | Information about one or more started instances. srsStartingInstances :: Lens' StartInstancesResponse [InstanceStateChange] srsStartingInstances = lens _srsStartingInstances (\ s a -> s{_srsStartingInstances = a}) . _Default . _Coerce;@@ -159,4 +158,4 @@ srsResponseStatus :: Lens' StartInstancesResponse Int srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a}); -instance NFData StartInstancesResponse+instance NFData StartInstancesResponse where
gen/Network/AWS/EC2/StopInstances.hs view
@@ -12,18 +12,18 @@  -- | -- Module      : Network.AWS.EC2.StopInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Stops an Amazon EBS-backed instance. -- ----- We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.+-- 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.+-- 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. --@@ -49,12 +49,12 @@     , sirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for StopInstances. --@@ -62,11 +62,12 @@ -- -- /See:/ 'stopInstances' smart constructor. data StopInstances = StopInstances'-    { _siForce       :: !(Maybe Bool)-    , _siDryRun      :: !(Maybe Bool)-    , _siInstanceIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _siForce       :: !(Maybe Bool)+  , _siDryRun      :: !(Maybe Bool)+  , _siInstanceIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StopInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,12 +80,10 @@ stopInstances     :: StopInstances stopInstances =-    StopInstances'-    { _siForce = Nothing-    , _siDryRun = Nothing-    , _siInstanceIds = mempty-    }+  StopInstances'+  {_siForce = Nothing, _siDryRun = Nothing, _siInstanceIds = mempty} + -- | 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: @false@ siForce :: Lens' StopInstances (Maybe Bool) siForce = lens _siForce (\ s a -> s{_siForce = a});@@ -108,9 +107,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable StopInstances+instance Hashable StopInstances where -instance NFData StopInstances+instance NFData StopInstances where  instance ToHeaders StopInstances where         toHeaders = const mempty@@ -132,10 +131,11 @@ -- -- /See:/ 'stopInstancesResponse' smart constructor. data StopInstancesResponse = StopInstancesResponse'-    { _sirsStoppingInstances :: !(Maybe [InstanceStateChange])-    , _sirsResponseStatus    :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _sirsStoppingInstances :: !(Maybe [InstanceStateChange])+  , _sirsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StopInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -147,11 +147,10 @@     :: Int -- ^ 'sirsResponseStatus'     -> StopInstancesResponse stopInstancesResponse pResponseStatus_ =-    StopInstancesResponse'-    { _sirsStoppingInstances = Nothing-    , _sirsResponseStatus = pResponseStatus_-    }+  StopInstancesResponse'+  {_sirsStoppingInstances = Nothing, _sirsResponseStatus = pResponseStatus_} + -- | Information about one or more stopped instances. sirsStoppingInstances :: Lens' StopInstancesResponse [InstanceStateChange] sirsStoppingInstances = lens _sirsStoppingInstances (\ s a -> s{_sirsStoppingInstances = a}) . _Default . _Coerce;@@ -160,4 +159,4 @@ sirsResponseStatus :: Lens' StopInstancesResponse Int sirsResponseStatus = lens _sirsResponseStatus (\ s a -> s{_sirsResponseStatus = a}); -instance NFData StopInstancesResponse+instance NFData StopInstancesResponse where
gen/Network/AWS/EC2/TerminateInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.TerminateInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,12 +48,12 @@     , tirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for TerminateInstances. --@@ -61,10 +61,11 @@ -- -- /See:/ 'terminateInstances' smart constructor. data TerminateInstances = TerminateInstances'-    { _tiDryRun      :: !(Maybe Bool)-    , _tiInstanceIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _tiDryRun      :: !(Maybe Bool)+  , _tiInstanceIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'TerminateInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +76,9 @@ terminateInstances     :: TerminateInstances terminateInstances =-    TerminateInstances'-    { _tiDryRun = Nothing-    , _tiInstanceIds = mempty-    }+  TerminateInstances' {_tiDryRun = Nothing, _tiInstanceIds = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . tiDryRun :: Lens' TerminateInstances (Maybe Bool) tiDryRun = lens _tiDryRun (\ s a -> s{_tiDryRun = a});@@ -100,9 +99,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable TerminateInstances+instance Hashable TerminateInstances where -instance NFData TerminateInstances+instance NFData TerminateInstances where  instance ToHeaders TerminateInstances where         toHeaders = const mempty@@ -124,10 +123,11 @@ -- -- /See:/ 'terminateInstancesResponse' smart constructor. data TerminateInstancesResponse = TerminateInstancesResponse'-    { _tirsTerminatingInstances :: !(Maybe [InstanceStateChange])-    , _tirsResponseStatus       :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _tirsTerminatingInstances :: !(Maybe [InstanceStateChange])+  , _tirsResponseStatus       :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'TerminateInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,11 +139,10 @@     :: Int -- ^ 'tirsResponseStatus'     -> TerminateInstancesResponse terminateInstancesResponse pResponseStatus_ =-    TerminateInstancesResponse'-    { _tirsTerminatingInstances = Nothing-    , _tirsResponseStatus = pResponseStatus_-    }+  TerminateInstancesResponse'+  {_tirsTerminatingInstances = Nothing, _tirsResponseStatus = pResponseStatus_} + -- | Information about one or more terminated instances. tirsTerminatingInstances :: Lens' TerminateInstancesResponse [InstanceStateChange] tirsTerminatingInstances = lens _tirsTerminatingInstances (\ s a -> s{_tirsTerminatingInstances = a}) . _Default . _Coerce;@@ -152,4 +151,4 @@ tirsResponseStatus :: Lens' TerminateInstancesResponse Int tirsResponseStatus = lens _tirsResponseStatus (\ s a -> s{_tirsResponseStatus = a}); -instance NFData TerminateInstancesResponse+instance NFData TerminateInstancesResponse where
gen/Network/AWS/EC2/Types.hs view
@@ -4,9 +4,9 @@  -- | -- Module      : Network.AWS.EC2.Types--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -83,6 +83,12 @@     -- * DomainType     , DomainType (..) +    -- * ElasticGpuState+    , ElasticGpuState (..)++    -- * ElasticGpuStatus+    , ElasticGpuStatus (..)+     -- * EventCode     , EventCode (..) @@ -104,6 +110,12 @@     -- * FlowLogsResourceType     , FlowLogsResourceType (..) +    -- * FpgaImageAttributeName+    , FpgaImageAttributeName (..)++    -- * FpgaImageStateCode+    , FpgaImageStateCode (..)+     -- * GatewayType     , GatewayType (..) @@ -113,6 +125,9 @@     -- * HypervisorType     , HypervisorType (..) +    -- * IAMInstanceProfileAssociationState+    , IAMInstanceProfileAssociationState (..)+     -- * ImageAttributeName     , ImageAttributeName (..) @@ -125,6 +140,12 @@     -- * InstanceAttributeName     , InstanceAttributeName (..) +    -- * InstanceHealthStatus+    , InstanceHealthStatus (..)++    -- * InstanceInterruptionBehavior+    , InstanceInterruptionBehavior (..)+     -- * InstanceLifecycleType     , InstanceLifecycleType (..) @@ -134,6 +155,9 @@     -- * InstanceType     , InstanceType (..) +    -- * InterfacePermissionType+    , InterfacePermissionType (..)+     -- * ListingState     , ListingState (..) @@ -152,6 +176,9 @@     -- * NetworkInterfaceAttribute     , NetworkInterfaceAttribute (..) +    -- * NetworkInterfacePermissionStateCode+    , NetworkInterfacePermissionStateCode (..)+     -- * NetworkInterfaceStatus     , NetworkInterfaceStatus (..) @@ -203,6 +230,9 @@     -- * ReservedInstanceState     , ReservedInstanceState (..) +    -- * ResetFpgaImageAttributeName+    , ResetFpgaImageAttributeName (..)+     -- * ResetImageAttributeName     , ResetImageAttributeName (..) @@ -221,6 +251,9 @@     -- * Scope     , Scope (..) +    -- * ServiceType+    , ServiceType (..)+     -- * ShutdownBehavior     , ShutdownBehavior (..) @@ -269,12 +302,18 @@     -- * VPCCidrBlockStateCode     , VPCCidrBlockStateCode (..) +    -- * VPCEndpointType+    , VPCEndpointType (..)+     -- * VPCPeeringConnectionStateReasonCode     , VPCPeeringConnectionStateReasonCode (..)      -- * VPCState     , VPCState (..) +    -- * VPCTenancy+    , VPCTenancy (..)+     -- * VPNState     , VPNState (..) @@ -290,6 +329,9 @@     -- * VolumeAttributeName     , VolumeAttributeName (..) +    -- * VolumeModificationState+    , VolumeModificationState (..)+     -- * VolumeState     , VolumeState (..) @@ -317,6 +359,7 @@     , ActiveInstance     , activeInstance     , aiInstanceId+    , aiInstanceHealth     , aiInstanceType     , aiSpotInstanceRequestId @@ -401,15 +444,15 @@     -- * CancelSpotFleetRequestsErrorItem     , CancelSpotFleetRequestsErrorItem     , cancelSpotFleetRequestsErrorItem-    , csfreiSpotFleetRequestId     , csfreiError+    , csfreiSpotFleetRequestId      -- * CancelSpotFleetRequestsSuccessItem     , CancelSpotFleetRequestsSuccessItem     , cancelSpotFleetRequestsSuccessItem-    , csfrsiSpotFleetRequestId     , csfrsiCurrentSpotFleetRequestState     , csfrsiPreviousSpotFleetRequestState+    , csfrsiSpotFleetRequestId      -- * CancelledSpotInstanceRequest     , CancelledSpotInstanceRequest@@ -417,6 +460,11 @@     , csirState     , csirSpotInstanceRequestId +    -- * CidrBlock+    , CidrBlock+    , cidrBlock+    , cbCidrBlock+     -- * ClassicLinkDNSSupport     , ClassicLinkDNSSupport     , classicLinkDNSSupport@@ -431,6 +479,16 @@     , cliVPCId     , cliTags +    -- * ClassicLoadBalancer+    , ClassicLoadBalancer+    , classicLoadBalancer+    , clbName++    -- * ClassicLoadBalancersConfig+    , ClassicLoadBalancersConfig+    , classicLoadBalancersConfig+    , clbcClassicLoadBalancers+     -- * ClientData     , ClientData     , clientData@@ -485,6 +543,12 @@     , doDHCPOptionsId     , doTags +    -- * DNSEntry+    , DNSEntry+    , dnsEntry+    , deHostedZoneId+    , deDNSName+     -- * DiskImage     , DiskImage     , diskImage@@ -497,14 +561,14 @@     , diskImageDescription     , dChecksum     , dFormat-    , dSize     , dImportManifestURL+    , dSize      -- * DiskImageDetail     , DiskImageDetail     , diskImageDetail-    , didFormat     , didBytes+    , didFormat     , didImportManifestURL      -- * DiskImageVolumeDescription@@ -543,6 +607,34 @@     , eoigEgressOnlyInternetGatewayId     , eoigAttachments +    -- * ElasticGpuAssociation+    , ElasticGpuAssociation+    , elasticGpuAssociation+    , egaElasticGpuId+    , egaElasticGpuAssociationId+    , egaElasticGpuAssociationTime+    , egaElasticGpuAssociationState++    -- * ElasticGpuHealth+    , ElasticGpuHealth+    , elasticGpuHealth+    , eghStatus++    -- * ElasticGpuSpecification+    , ElasticGpuSpecification+    , elasticGpuSpecification+    , egsType++    -- * ElasticGpus+    , ElasticGpus+    , elasticGpus+    , egInstanceId+    , egElasticGpuType+    , egElasticGpuId+    , egElasticGpuState+    , egElasticGpuHealth+    , egAvailabilityZone+     -- * EventInformation     , EventInformation     , eventInformation@@ -595,6 +687,39 @@     , flDeliverLogsPermissionARN     , flFlowLogId +    -- * FpgaImage+    , FpgaImage+    , fpgaImage+    , fiShellVersion+    , fiPciId+    , fiState+    , fiOwnerAlias+    , fiFpgaImageId+    , fiOwnerId+    , fiUpdateTime+    , fiName+    , fiProductCodes+    , fiDescription+    , fiCreateTime+    , fiTags+    , fiPublic+    , fiFpgaImageGlobalId++    -- * FpgaImageAttribute+    , FpgaImageAttribute+    , fpgaImageAttribute+    , fiaFpgaImageId+    , fiaName+    , fiaProductCodes+    , fiaDescription+    , fiaLoadPermissions++    -- * FpgaImageState+    , FpgaImageState+    , fpgaImageState+    , fisCode+    , fisMessage+     -- * GroupIdentifier     , GroupIdentifier     , groupIdentifier@@ -604,9 +729,9 @@     -- * HistoryRecord     , HistoryRecord     , historyRecord-    , hrTimestamp-    , hrEventType     , hrEventInformation+    , hrEventType+    , hrTimestamp      -- * Host     , Host@@ -669,6 +794,15 @@     , iapARN     , iapId +    -- * IAMInstanceProfileAssociation+    , IAMInstanceProfileAssociation+    , iamInstanceProfileAssociation+    , iapaAssociationId+    , iapaInstanceId+    , iapaState+    , iapaIAMInstanceProfile+    , iapaTimestamp+     -- * IAMInstanceProfileSpecification     , IAMInstanceProfileSpecification     , iamInstanceProfileSpecification@@ -695,7 +829,8 @@     -- * IPRange     , IPRange     , ipRange-    , irCidrIP+    , iprDescription+    , iprCidrIP      -- * IPv6CidrBlock     , IPv6CidrBlock@@ -706,6 +841,7 @@     , IPv6Range     , ipv6Range     , irCidrIPv6+    , irDescription      -- * IdFormat     , IdFormat@@ -795,11 +931,11 @@     , importInstanceVolumeDetailItem     , iivdiStatusMessage     , iivdiDescription-    , iivdiBytesConverted     , iivdiAvailabilityZone+    , iivdiBytesConverted     , iivdiImage-    , iivdiVolume     , iivdiStatus+    , iivdiVolume      -- * ImportSnapshotTask     , ImportSnapshotTask@@ -812,8 +948,8 @@     , ImportVolumeTaskDetails     , importVolumeTaskDetails     , ivtdDescription-    , ivtdBytesConverted     , ivtdAvailabilityZone+    , ivtdBytesConverted     , ivtdImage     , ivtdVolume @@ -826,6 +962,7 @@     , insClientToken     , insEnaSupport     , insSourceDestCheck+    , insElasticGpuAssociations     , insVPCId     , insKeyName     , insNetworkInterfaces@@ -1028,14 +1165,14 @@     -- * LaunchPermission     , LaunchPermission     , launchPermission-    , lpGroup-    , lpUserId+    , lGroup+    , lUserId      -- * LaunchPermissionModifications     , LaunchPermissionModifications     , launchPermissionModifications-    , lpmRemove-    , lpmAdd+    , lRemove+    , lAdd      -- * LaunchSpecification     , LaunchSpecification@@ -1056,6 +1193,30 @@     , lsBlockDeviceMappings     , lsPlacement +    -- * LoadBalancersConfig+    , LoadBalancersConfig+    , loadBalancersConfig+    , lbcClassicLoadBalancersConfig+    , lbcTargetGroupsConfig++    -- * LoadPermission+    , LoadPermission+    , loadPermission+    , lpGroup+    , lpUserId++    -- * LoadPermissionModifications+    , LoadPermissionModifications+    , loadPermissionModifications+    , lpmRemove+    , lpmAdd++    -- * LoadPermissionRequest+    , LoadPermissionRequest+    , loadPermissionRequest+    , lprGroup+    , lprUserId+     -- * Monitoring     , Monitoring     , monitoring@@ -1080,6 +1241,7 @@     , ngProvisionedBandwidth     , ngNatGatewayAddresses     , ngCreateTime+    , ngTags      -- * NatGatewayAddress     , NatGatewayAddress@@ -1173,6 +1335,22 @@     , networkInterfaceIPv6Address     , niiaIPv6Address +    -- * NetworkInterfacePermission+    , NetworkInterfacePermission+    , networkInterfacePermission+    , nipPermissionState+    , nipNetworkInterfacePermissionId+    , nipNetworkInterfaceId+    , nipAWSAccountId+    , nipAWSService+    , nipPermission++    -- * NetworkInterfacePermissionState+    , NetworkInterfacePermissionState+    , networkInterfacePermissionState+    , nipsState+    , nipsStatusMessage+     -- * NetworkInterfacePrivateIPAddress     , NetworkInterfacePrivateIPAddress     , networkInterfacePrivateIPAddress@@ -1187,6 +1365,14 @@     , ndcValues     , ndcKey +    -- * PciId+    , PciId+    , pciId+    , piSubsystemId+    , piDeviceId+    , piSubsystemVendorId+    , piVendorId+     -- * PeeringConnectionOptions     , PeeringConnectionOptions     , peeringConnectionOptions@@ -1206,6 +1392,7 @@     , placement     , pAffinity     , pHostId+    , pSpreadDomain     , pAvailabilityZone     , pTenancy     , pGroupName@@ -1234,6 +1421,7 @@     , PrefixListId     , prefixListId     , pliPrefixListId+    , pliDescription      -- * PriceSchedule     , PriceSchedule@@ -1297,8 +1485,8 @@     -- * PurchaseRequest     , PurchaseRequest     , purchaseRequest-    , prPurchaseToken     , prInstanceCount+    , prPurchaseToken      -- * RecurringCharge     , RecurringCharge@@ -1642,6 +1830,12 @@     , sgGroupName     , sgDescription +    -- * SecurityGroupIdentifier+    , SecurityGroupIdentifier+    , securityGroupIdentifier+    , sgiGroupId+    , sgiGroupName+     -- * SecurityGroupReference     , SecurityGroupReference     , securityGroupReference@@ -1649,6 +1843,23 @@     , sgrGroupId     , sgrReferencingVPCId +    -- * ServiceDetail+    , ServiceDetail+    , serviceDetail+    , sdVPCEndpointPolicySupported+    , sdBaseEndpointDNSNames+    , sdOwner+    , sdAvailabilityZones+    , sdServiceName+    , sdServiceType+    , sdAcceptanceRequired+    , sdPrivateDNSName++    -- * ServiceTypeDetail+    , ServiceTypeDetail+    , serviceTypeDetail+    , stdServiceType+     -- * SlotDateTimeRangeRequest     , SlotDateTimeRangeRequest     , slotDateTimeRangeRequest@@ -1738,6 +1949,7 @@     , sflsEBSOptimized     , sflsUserData     , sflsMonitoring+    , sflsTagSpecifications     , sflsIAMInstanceProfile     , sflsImageId     , sflsAddressingType@@ -1753,27 +1965,36 @@     , SpotFleetRequestConfig     , spotFleetRequestConfig     , sfrcActivityStatus+    , sfrcCreateTime+    , sfrcSpotFleetRequestConfig     , sfrcSpotFleetRequestId     , sfrcSpotFleetRequestState-    , sfrcSpotFleetRequestConfig-    , sfrcCreateTime      -- * SpotFleetRequestConfigData     , SpotFleetRequestConfigData     , spotFleetRequestConfigData     , sfrcdClientToken+    , sfrcdInstanceInterruptionBehavior+    , sfrcdLoadBalancersConfig     , sfrcdExcessCapacityTerminationPolicy     , sfrcdValidUntil     , sfrcdTerminateInstancesWithExpiration     , sfrcdFulfilledCapacity     , sfrcdType     , sfrcdValidFrom+    , sfrcdReplaceUnhealthyInstances     , sfrcdAllocationStrategy-    , sfrcdSpotPrice-    , sfrcdTargetCapacity     , sfrcdIAMFleetRole     , sfrcdLaunchSpecifications+    , sfrcdSpotPrice+    , sfrcdTargetCapacity +    -- * SpotFleetTagSpecification+    , SpotFleetTagSpecification+    , spotFleetTagSpecification+    , sftsResourceType+    , sftsTags+     -- * SpotInstanceRequest     , SpotInstanceRequest     , spotInstanceRequest@@ -1782,6 +2003,7 @@     , sirState     , sirActualBlockHourlyPrice     , sirBlockDurationMinutes+    , sirInstanceInterruptionBehavior     , sirProductDescription     , sirSpotPrice     , sirLaunchSpecification@@ -1813,6 +2035,7 @@     , SpotPlacement     , spotPlacement     , spAvailabilityZone+    , spTenancy     , spGroupName      -- * SpotPrice@@ -1855,6 +2078,12 @@     , storage     , sS3 +    -- * StorageLocation+    , StorageLocation+    , storageLocation+    , slBucket+    , slKey+     -- * Subnet     , Subnet     , subnet@@ -1897,6 +2126,12 @@     , tdKey     , tdValue +    -- * TagSpecification+    , TagSpecification+    , tagSpecification+    , tsResourceType+    , tsTags+     -- * TargetConfiguration     , TargetConfiguration     , targetConfiguration@@ -1909,6 +2144,16 @@     , tcrInstanceCount     , tcrOfferingId +    -- * TargetGroup+    , TargetGroup+    , targetGroup+    , tgARN++    -- * TargetGroupsConfig+    , TargetGroupsConfig+    , targetGroupsConfig+    , tgcTargetGroups+     -- * TargetReservationValue     , TargetReservationValue     , targetReservationValue@@ -1952,6 +2197,7 @@     , uigpUserId     , uigpGroupId     , uigpGroupName+    , uigpDescription     , uigpPeeringStatus      -- * VGWTelemetry@@ -1967,6 +2213,7 @@     , VPC     , vpc     , vpcIPv6CidrBlockAssociationSet+    , vpcCidrBlockAssociationSet     , vpcTags     , vpcIsDefault     , vpcCidrBlock@@ -1981,6 +2228,13 @@     , vaState     , vaVPCId +    -- * VPCCidrBlockAssociation+    , VPCCidrBlockAssociation+    , vpcCidrBlockAssociation+    , vcbaAssociationId+    , vcbaCidrBlockState+    , vcbaCidrBlock+     -- * VPCCidrBlockState     , VPCCidrBlockState     , vpcCidrBlockState@@ -1997,9 +2251,15 @@     -- * VPCEndpoint     , VPCEndpoint     , vpcEndpoint+    , veGroups     , veState     , vePolicyDocument+    , veSubnetIds+    , veNetworkInterfaceIds     , veVPCId+    , veDNSEntries+    , veVPCEndpointType+    , vePrivateDNSEnabled     , veCreationTimestamp     , veServiceName     , veVPCEndpointId@@ -2038,6 +2298,7 @@     -- * VPCPeeringConnectionVPCInfo     , VPCPeeringConnectionVPCInfo     , vpcPeeringConnectionVPCInfo+    , vpcviCidrBlockSet     , vpcviVPCId     , vpcviOwnerId     , vpcviPeeringOptions@@ -2050,6 +2311,7 @@     , vcCustomerGatewayConfiguration     , vcRoutes     , vcVPNGatewayId+    , vcCategory     , vcOptions     , vcTags     , vcVGWTelemetry@@ -2066,6 +2328,7 @@     -- * VPNConnectionOptionsSpecification     , VPNConnectionOptionsSpecification     , vpnConnectionOptionsSpecification+    , vcosTunnelOptions     , vcosStaticRoutesOnly      -- * VPNGateway@@ -2074,6 +2337,7 @@     , vgState     , vgVPCAttachments     , vgVPNGatewayId+    , vgAmazonSideASN     , vgAvailabilityZone     , vgType     , vgTags@@ -2085,6 +2349,12 @@     , vsrSource     , vsrDestinationCidrBlock +    -- * VPNTunnelOptionsSpecification+    , VPNTunnelOptionsSpecification+    , vpnTunnelOptionsSpecification+    , vtosTunnelInsideCidr+    , vtosPreSharedKey+     -- * Volume     , Volume     , volume@@ -2116,6 +2386,22 @@     , volumeDetail     , vdSize +    -- * VolumeModification+    , VolumeModification+    , volumeModification+    , vmProgress+    , vmStartTime+    , vmModificationState+    , vmTargetVolumeType+    , vmOriginalVolumeType+    , vmTargetSize+    , vmTargetIOPS+    , vmOriginalSize+    , vmOriginalIOPS+    , vmStatusMessage+    , vmEndTime+    , vmVolumeId+     -- * VolumeStatusAction     , VolumeStatusAction     , volumeStatusAction@@ -2155,41 +2441,43 @@     , vsiVolumeId     ) where -import           Network.AWS.EC2.Internal-import           Network.AWS.EC2.Types.Product-import           Network.AWS.EC2.Types.Sum-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Sign.V4+import Network.AWS.EC2.Internal+import Network.AWS.EC2.Types.Product+import Network.AWS.EC2.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4  -- | API version @2016-11-15@ of the Amazon Elastic Compute Cloud SDK configuration. ec2 :: Service ec2 =-    Service-    { _svcAbbrev = "EC2"-    , _svcSigner = v4-    , _svcPrefix = "ec2"-    , _svcVersion = "2016-11-15"-    , _svcEndpoint = defaultEndpoint ec2-    , _svcTimeout = Just 70-    , _svcCheck = statusSuccess-    , _svcError = parseXMLError "EC2"-    , _svcRetry = retry-    }+  Service+  { _svcAbbrev = "EC2"+  , _svcSigner = v4+  , _svcPrefix = "ec2"+  , _svcVersion = "2016-11-15"+  , _svcEndpoint = defaultEndpoint ec2+  , _svcTimeout = Just 70+  , _svcCheck = statusSuccess+  , _svcError = parseXMLError "EC2"+  , _svcRetry = retry+  }   where     retry =-        Exponential-        { _retryBase = 5.0e-2-        , _retryGrowth = 2-        , _retryAttempts = 5-        , _retryCheck = check-        }+      Exponential+      { _retryBase = 5.0e-2+      , _retryGrowth = 2+      , _retryAttempts = 5+      , _retryCheck = check+      }     check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"       | has (hasCode "RequestLimitExceeded" . hasStatus 503) e =-          Just "request_limit_exceeded"+        Just "request_limit_exceeded"       | has (hasStatus 429) e = Just "too_many_requests"       | has (hasCode "ThrottlingException" . hasStatus 400) e =-          Just "throttling_exception"+        Just "throttling_exception"       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"       | has (hasStatus 504) e = Just "gateway_timeout"       | has (hasStatus 502) e = Just "bad_gateway"@@ -2197,3 +2485,4 @@       | has (hasStatus 500) e = Just "general_server_error"       | has (hasStatus 509) e = Just "limit_exceeded"       | otherwise = Nothing+
gen/Network/AWS/EC2/Types/Product.hs view
@@ -9,14795 +9,16929 @@  -- | -- Module      : Network.AWS.EC2.Types.Product--- Copyright   : (c) 2013-2016 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.EC2.Types.Product where--import           Network.AWS.EC2.Internal-import           Network.AWS.EC2.Types.Sum-import           Network.AWS.Lens-import           Network.AWS.Prelude---- | Describes an account attribute.------------ /See:/ 'accountAttribute' smart constructor.-data AccountAttribute = AccountAttribute'-    { _aaAttributeValues :: !(Maybe [AccountAttributeValue])-    , _aaAttributeName   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AccountAttribute' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aaAttributeValues' - One or more values for the account attribute.------ * 'aaAttributeName' - The name of the account attribute.-accountAttribute-    :: AccountAttribute-accountAttribute =-    AccountAttribute'-    { _aaAttributeValues = Nothing-    , _aaAttributeName = Nothing-    }---- | One or more values for the account attribute.-aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]-aaAttributeValues = lens _aaAttributeValues (\ s a -> s{_aaAttributeValues = a}) . _Default . _Coerce;---- | The name of the account attribute.-aaAttributeName :: Lens' AccountAttribute (Maybe Text)-aaAttributeName = lens _aaAttributeName (\ s a -> s{_aaAttributeName = a});--instance FromXML AccountAttribute where-        parseXML x-          = AccountAttribute' <$>-              (x .@? "attributeValueSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "attributeName")--instance Hashable AccountAttribute--instance NFData AccountAttribute---- | Describes a value of an account attribute.------------ /See:/ 'accountAttributeValue' smart constructor.-newtype AccountAttributeValue = AccountAttributeValue'-    { _aavAttributeValue :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AccountAttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aavAttributeValue' - The value of the attribute.-accountAttributeValue-    :: AccountAttributeValue-accountAttributeValue =-    AccountAttributeValue'-    { _aavAttributeValue = Nothing-    }---- | The value of the attribute.-aavAttributeValue :: Lens' AccountAttributeValue (Maybe Text)-aavAttributeValue = lens _aavAttributeValue (\ s a -> s{_aavAttributeValue = a});--instance FromXML AccountAttributeValue where-        parseXML x-          = AccountAttributeValue' <$> (x .@? "attributeValue")--instance Hashable AccountAttributeValue--instance NFData AccountAttributeValue---- | Describes a running instance in a Spot fleet.------------ /See:/ 'activeInstance' smart constructor.-data ActiveInstance = ActiveInstance'-    { _aiInstanceId            :: !(Maybe Text)-    , _aiInstanceType          :: !(Maybe Text)-    , _aiSpotInstanceRequestId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ActiveInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aiInstanceId' - The ID of the instance.------ * 'aiInstanceType' - The instance type.------ * 'aiSpotInstanceRequestId' - The ID of the Spot instance request.-activeInstance-    :: ActiveInstance-activeInstance =-    ActiveInstance'-    { _aiInstanceId = Nothing-    , _aiInstanceType = Nothing-    , _aiSpotInstanceRequestId = Nothing-    }---- | The ID of the instance.-aiInstanceId :: Lens' ActiveInstance (Maybe Text)-aiInstanceId = lens _aiInstanceId (\ s a -> s{_aiInstanceId = a});---- | The instance type.-aiInstanceType :: Lens' ActiveInstance (Maybe Text)-aiInstanceType = lens _aiInstanceType (\ s a -> s{_aiInstanceType = a});---- | The ID of the Spot instance request.-aiSpotInstanceRequestId :: Lens' ActiveInstance (Maybe Text)-aiSpotInstanceRequestId = lens _aiSpotInstanceRequestId (\ s a -> s{_aiSpotInstanceRequestId = a});--instance FromXML ActiveInstance where-        parseXML x-          = ActiveInstance' <$>-              (x .@? "instanceId") <*> (x .@? "instanceType") <*>-                (x .@? "spotInstanceRequestId")--instance Hashable ActiveInstance--instance NFData ActiveInstance---- | Describes an Elastic IP address.------------ /See:/ 'address' smart constructor.-data Address = Address'-    { _aAssociationId           :: !(Maybe Text)-    , _aInstanceId              :: !(Maybe Text)-    , _aNetworkInterfaceOwnerId :: !(Maybe Text)-    , _aAllocationId            :: !(Maybe Text)-    , _aDomain                  :: !(Maybe DomainType)-    , _aNetworkInterfaceId      :: !(Maybe Text)-    , _aPrivateIPAddress        :: !(Maybe Text)-    , _aPublicIP                :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Address' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aAssociationId' - The ID representing the association of the address with an instance in a VPC.------ * 'aInstanceId' - The ID of the instance that the address is associated with (if any).------ * 'aNetworkInterfaceOwnerId' - The ID of the AWS account that owns the network interface.------ * 'aAllocationId' - The ID representing the allocation of the address for use with EC2-VPC.------ * 'aDomain' - Indicates whether this Elastic IP address is for use with instances in EC2-Classic (@standard@ ) or instances in a VPC (@vpc@ ).------ * 'aNetworkInterfaceId' - The ID of the network interface.------ * 'aPrivateIPAddress' - The private IP address associated with the Elastic IP address.------ * 'aPublicIP' - The Elastic IP address.-address-    :: Address-address =-    Address'-    { _aAssociationId = Nothing-    , _aInstanceId = Nothing-    , _aNetworkInterfaceOwnerId = Nothing-    , _aAllocationId = Nothing-    , _aDomain = Nothing-    , _aNetworkInterfaceId = Nothing-    , _aPrivateIPAddress = Nothing-    , _aPublicIP = Nothing-    }---- | The ID representing the association of the address with an instance in a VPC.-aAssociationId :: Lens' Address (Maybe Text)-aAssociationId = lens _aAssociationId (\ s a -> s{_aAssociationId = a});---- | The ID of the instance that the address is associated with (if any).-aInstanceId :: Lens' Address (Maybe Text)-aInstanceId = lens _aInstanceId (\ s a -> s{_aInstanceId = a});---- | The ID of the AWS account that owns the network interface.-aNetworkInterfaceOwnerId :: Lens' Address (Maybe Text)-aNetworkInterfaceOwnerId = lens _aNetworkInterfaceOwnerId (\ s a -> s{_aNetworkInterfaceOwnerId = a});---- | The ID representing the allocation of the address for use with EC2-VPC.-aAllocationId :: Lens' Address (Maybe Text)-aAllocationId = lens _aAllocationId (\ s a -> s{_aAllocationId = a});---- | Indicates whether this Elastic IP address is for use with instances in EC2-Classic (@standard@ ) or instances in a VPC (@vpc@ ).-aDomain :: Lens' Address (Maybe DomainType)-aDomain = lens _aDomain (\ s a -> s{_aDomain = a});---- | The ID of the network interface.-aNetworkInterfaceId :: Lens' Address (Maybe Text)-aNetworkInterfaceId = lens _aNetworkInterfaceId (\ s a -> s{_aNetworkInterfaceId = a});---- | The private IP address associated with the Elastic IP address.-aPrivateIPAddress :: Lens' Address (Maybe Text)-aPrivateIPAddress = lens _aPrivateIPAddress (\ s a -> s{_aPrivateIPAddress = a});---- | The Elastic IP address.-aPublicIP :: Lens' Address (Maybe Text)-aPublicIP = lens _aPublicIP (\ s a -> s{_aPublicIP = a});--instance FromXML Address where-        parseXML x-          = Address' <$>-              (x .@? "associationId") <*> (x .@? "instanceId") <*>-                (x .@? "networkInterfaceOwnerId")-                <*> (x .@? "allocationId")-                <*> (x .@? "domain")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "publicIp")--instance Hashable Address--instance NFData Address---- | Describes a value for a resource attribute that is a Boolean value.------------ /See:/ 'attributeBooleanValue' smart constructor.-newtype AttributeBooleanValue = AttributeBooleanValue'-    { _abvValue :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AttributeBooleanValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'abvValue' - The attribute value. The valid values are @true@ or @false@ .-attributeBooleanValue-    :: AttributeBooleanValue-attributeBooleanValue =-    AttributeBooleanValue'-    { _abvValue = Nothing-    }---- | The attribute value. The valid values are @true@ or @false@ .-abvValue :: Lens' AttributeBooleanValue (Maybe Bool)-abvValue = lens _abvValue (\ s a -> s{_abvValue = a});--instance FromXML AttributeBooleanValue where-        parseXML x-          = AttributeBooleanValue' <$> (x .@? "value")--instance Hashable AttributeBooleanValue--instance NFData AttributeBooleanValue--instance ToQuery AttributeBooleanValue where-        toQuery AttributeBooleanValue'{..}-          = mconcat ["Value" =: _abvValue]---- | Describes a value for a resource attribute that is a String.------------ /See:/ 'attributeValue' smart constructor.-newtype AttributeValue = AttributeValue'-    { _avValue :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'avValue' - The attribute value. Note that the value is case-sensitive.-attributeValue-    :: AttributeValue-attributeValue =-    AttributeValue'-    { _avValue = Nothing-    }---- | The attribute value. Note that the value is case-sensitive.-avValue :: Lens' AttributeValue (Maybe Text)-avValue = lens _avValue (\ s a -> s{_avValue = a});--instance FromXML AttributeValue where-        parseXML x = AttributeValue' <$> (x .@? "value")--instance Hashable AttributeValue--instance NFData AttributeValue--instance ToQuery AttributeValue where-        toQuery AttributeValue'{..}-          = mconcat ["Value" =: _avValue]---- | Describes an Availability Zone.------------ /See:/ 'availabilityZone' smart constructor.-data AvailabilityZone = AvailabilityZone'-    { _azState      :: !(Maybe AvailabilityZoneState)-    , _azRegionName :: !(Maybe Text)-    , _azZoneName   :: !(Maybe Text)-    , _azMessages   :: !(Maybe [AvailabilityZoneMessage])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'azState' - The state of the Availability Zone.------ * 'azRegionName' - The name of the region.------ * 'azZoneName' - The name of the Availability Zone.------ * 'azMessages' - Any messages about the Availability Zone.-availabilityZone-    :: AvailabilityZone-availabilityZone =-    AvailabilityZone'-    { _azState = Nothing-    , _azRegionName = Nothing-    , _azZoneName = Nothing-    , _azMessages = Nothing-    }---- | The state of the Availability Zone.-azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)-azState = lens _azState (\ s a -> s{_azState = a});---- | The name of the region.-azRegionName :: Lens' AvailabilityZone (Maybe Text)-azRegionName = lens _azRegionName (\ s a -> s{_azRegionName = a});---- | The name of the Availability Zone.-azZoneName :: Lens' AvailabilityZone (Maybe Text)-azZoneName = lens _azZoneName (\ s a -> s{_azZoneName = a});---- | Any messages about the Availability Zone.-azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]-azMessages = lens _azMessages (\ s a -> s{_azMessages = a}) . _Default . _Coerce;--instance FromXML AvailabilityZone where-        parseXML x-          = AvailabilityZone' <$>-              (x .@? "zoneState") <*> (x .@? "regionName") <*>-                (x .@? "zoneName")-                <*>-                (x .@? "messageSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable AvailabilityZone--instance NFData AvailabilityZone---- | Describes a message about an Availability Zone.------------ /See:/ 'availabilityZoneMessage' smart constructor.-newtype AvailabilityZoneMessage = AvailabilityZoneMessage'-    { _azmMessage :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailabilityZoneMessage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'azmMessage' - The message about the Availability Zone.-availabilityZoneMessage-    :: AvailabilityZoneMessage-availabilityZoneMessage =-    AvailabilityZoneMessage'-    { _azmMessage = Nothing-    }---- | The message about the Availability Zone.-azmMessage :: Lens' AvailabilityZoneMessage (Maybe Text)-azmMessage = lens _azmMessage (\ s a -> s{_azmMessage = a});--instance FromXML AvailabilityZoneMessage where-        parseXML x-          = AvailabilityZoneMessage' <$> (x .@? "message")--instance Hashable AvailabilityZoneMessage--instance NFData AvailabilityZoneMessage---- | The capacity information for instances launched onto the Dedicated Host.------------ /See:/ 'availableCapacity' smart constructor.-data AvailableCapacity = AvailableCapacity'-    { _acAvailableInstanceCapacity :: !(Maybe [InstanceCapacity])-    , _acAvailableVCPUs            :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'AvailableCapacity' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'acAvailableInstanceCapacity' - The total number of instances that the Dedicated Host supports.------ * 'acAvailableVCPUs' - The number of vCPUs available on the Dedicated Host.-availableCapacity-    :: AvailableCapacity-availableCapacity =-    AvailableCapacity'-    { _acAvailableInstanceCapacity = Nothing-    , _acAvailableVCPUs = Nothing-    }---- | The total number of instances that the Dedicated Host supports.-acAvailableInstanceCapacity :: Lens' AvailableCapacity [InstanceCapacity]-acAvailableInstanceCapacity = lens _acAvailableInstanceCapacity (\ s a -> s{_acAvailableInstanceCapacity = a}) . _Default . _Coerce;---- | The number of vCPUs available on the Dedicated Host.-acAvailableVCPUs :: Lens' AvailableCapacity (Maybe Int)-acAvailableVCPUs = lens _acAvailableVCPUs (\ s a -> s{_acAvailableVCPUs = a});--instance FromXML AvailableCapacity where-        parseXML x-          = AvailableCapacity' <$>-              (x .@? "availableInstanceCapacity" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "availableVCpus")--instance Hashable AvailableCapacity--instance NFData AvailableCapacity---- | /See:/ 'blobAttributeValue' smart constructor.-newtype BlobAttributeValue = BlobAttributeValue'-    { _bavValue :: Maybe Base64-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BlobAttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bavValue' - Undocumented member.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.-blobAttributeValue-    :: BlobAttributeValue-blobAttributeValue =-    BlobAttributeValue'-    { _bavValue = Nothing-    }---- | Undocumented member.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.-bavValue :: Lens' BlobAttributeValue (Maybe ByteString)-bavValue = lens _bavValue (\ s a -> s{_bavValue = a}) . mapping _Base64;--instance Hashable BlobAttributeValue--instance NFData BlobAttributeValue--instance ToQuery BlobAttributeValue where-        toQuery BlobAttributeValue'{..}-          = mconcat ["Value" =: _bavValue]---- | Describes a block device mapping.------------ /See:/ 'blockDeviceMapping' smart constructor.-data BlockDeviceMapping = BlockDeviceMapping'-    { _bdmVirtualName :: !(Maybe Text)-    , _bdmNoDevice    :: !(Maybe Text)-    , _bdmEBS         :: !(Maybe EBSBlockDevice)-    , _bdmDeviceName  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BlockDeviceMapping' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bdmVirtualName' - The virtual device name (@ephemeral@ N). 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. 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.------ * 'bdmNoDevice' - Suppresses the specified device included in the block device mapping of the AMI.------ * 'bdmEBS' - Parameters used to automatically set up EBS volumes when the instance is launched.------ * 'bdmDeviceName' - The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-blockDeviceMapping-    :: Text -- ^ 'bdmDeviceName'-    -> BlockDeviceMapping-blockDeviceMapping pDeviceName_ =-    BlockDeviceMapping'-    { _bdmVirtualName = Nothing-    , _bdmNoDevice = Nothing-    , _bdmEBS = Nothing-    , _bdmDeviceName = pDeviceName_-    }---- | The virtual device name (@ephemeral@ N). 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. 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)-bdmVirtualName = lens _bdmVirtualName (\ s a -> s{_bdmVirtualName = a});---- | Suppresses the specified device included in the block device mapping of the AMI.-bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)-bdmNoDevice = lens _bdmNoDevice (\ s a -> s{_bdmNoDevice = a});---- | Parameters used to automatically set up EBS volumes when the instance is launched.-bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)-bdmEBS = lens _bdmEBS (\ s a -> s{_bdmEBS = a});---- | The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-bdmDeviceName :: Lens' BlockDeviceMapping Text-bdmDeviceName = lens _bdmDeviceName (\ s a -> s{_bdmDeviceName = a});--instance FromXML BlockDeviceMapping where-        parseXML x-          = BlockDeviceMapping' <$>-              (x .@? "virtualName") <*> (x .@? "noDevice") <*>-                (x .@? "ebs")-                <*> (x .@ "deviceName")--instance Hashable BlockDeviceMapping--instance NFData BlockDeviceMapping--instance ToQuery BlockDeviceMapping where-        toQuery BlockDeviceMapping'{..}-          = mconcat-              ["VirtualName" =: _bdmVirtualName,-               "NoDevice" =: _bdmNoDevice, "Ebs" =: _bdmEBS,-               "DeviceName" =: _bdmDeviceName]---- | Describes a bundle task.------------ /See:/ 'bundleTask' smart constructor.-data BundleTask = BundleTask'-    { _btBundleTaskError :: !(Maybe BundleTaskError)-    , _btBundleId        :: !Text-    , _btInstanceId      :: !Text-    , _btProgress        :: !Text-    , _btStartTime       :: !ISO8601-    , _btState           :: !BundleTaskState-    , _btStorage         :: !Storage-    , _btUpdateTime      :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BundleTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'btBundleTaskError' - If the task fails, a description of the error.------ * 'btBundleId' - The ID of the bundle task.------ * 'btInstanceId' - The ID of the instance associated with this bundle task.------ * 'btProgress' - The level of task completion, as a percent (for example, 20%).------ * 'btStartTime' - The time this task started.------ * 'btState' - The state of the task.------ * 'btStorage' - The Amazon S3 storage locations.------ * 'btUpdateTime' - The time of the most recent update for the task.-bundleTask-    :: Text -- ^ 'btBundleId'-    -> Text -- ^ 'btInstanceId'-    -> Text -- ^ 'btProgress'-    -> UTCTime -- ^ 'btStartTime'-    -> BundleTaskState -- ^ 'btState'-    -> Storage -- ^ 'btStorage'-    -> UTCTime -- ^ 'btUpdateTime'-    -> BundleTask-bundleTask pBundleId_ pInstanceId_ pProgress_ pStartTime_ pState_ pStorage_ pUpdateTime_ =-    BundleTask'-    { _btBundleTaskError = Nothing-    , _btBundleId = pBundleId_-    , _btInstanceId = pInstanceId_-    , _btProgress = pProgress_-    , _btStartTime = _Time # pStartTime_-    , _btState = pState_-    , _btStorage = pStorage_-    , _btUpdateTime = _Time # pUpdateTime_-    }---- | If the task fails, a description of the error.-btBundleTaskError :: Lens' BundleTask (Maybe BundleTaskError)-btBundleTaskError = lens _btBundleTaskError (\ s a -> s{_btBundleTaskError = a});---- | The ID of the bundle task.-btBundleId :: Lens' BundleTask Text-btBundleId = lens _btBundleId (\ s a -> s{_btBundleId = a});---- | The ID of the instance associated with this bundle task.-btInstanceId :: Lens' BundleTask Text-btInstanceId = lens _btInstanceId (\ s a -> s{_btInstanceId = a});---- | The level of task completion, as a percent (for example, 20%).-btProgress :: Lens' BundleTask Text-btProgress = lens _btProgress (\ s a -> s{_btProgress = a});---- | The time this task started.-btStartTime :: Lens' BundleTask UTCTime-btStartTime = lens _btStartTime (\ s a -> s{_btStartTime = a}) . _Time;---- | The state of the task.-btState :: Lens' BundleTask BundleTaskState-btState = lens _btState (\ s a -> s{_btState = a});---- | The Amazon S3 storage locations.-btStorage :: Lens' BundleTask Storage-btStorage = lens _btStorage (\ s a -> s{_btStorage = a});---- | The time of the most recent update for the task.-btUpdateTime :: Lens' BundleTask UTCTime-btUpdateTime = lens _btUpdateTime (\ s a -> s{_btUpdateTime = a}) . _Time;--instance FromXML BundleTask where-        parseXML x-          = BundleTask' <$>-              (x .@? "error") <*> (x .@ "bundleId") <*>-                (x .@ "instanceId")-                <*> (x .@ "progress")-                <*> (x .@ "startTime")-                <*> (x .@ "state")-                <*> (x .@ "storage")-                <*> (x .@ "updateTime")--instance Hashable BundleTask--instance NFData BundleTask---- | Describes an error for 'BundleInstance' .------------ /See:/ 'bundleTaskError' smart constructor.-data BundleTaskError = BundleTaskError'-    { _bteCode    :: !(Maybe Text)-    , _bteMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'BundleTaskError' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bteCode' - The error code.------ * 'bteMessage' - The error message.-bundleTaskError-    :: BundleTaskError-bundleTaskError =-    BundleTaskError'-    { _bteCode = Nothing-    , _bteMessage = Nothing-    }---- | The error code.-bteCode :: Lens' BundleTaskError (Maybe Text)-bteCode = lens _bteCode (\ s a -> s{_bteCode = a});---- | The error message.-bteMessage :: Lens' BundleTaskError (Maybe Text)-bteMessage = lens _bteMessage (\ s a -> s{_bteMessage = a});--instance FromXML BundleTaskError where-        parseXML x-          = BundleTaskError' <$>-              (x .@? "code") <*> (x .@? "message")--instance Hashable BundleTaskError--instance NFData BundleTaskError---- | Describes a Spot fleet error.------------ /See:/ 'cancelSpotFleetRequestsError' smart constructor.-data CancelSpotFleetRequestsError = CancelSpotFleetRequestsError'-    { _csfreCode    :: !CancelBatchErrorCode-    , _csfreMessage :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelSpotFleetRequestsError' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csfreCode' - The error code.------ * 'csfreMessage' - The description for the error code.-cancelSpotFleetRequestsError-    :: CancelBatchErrorCode -- ^ 'csfreCode'-    -> Text -- ^ 'csfreMessage'-    -> CancelSpotFleetRequestsError-cancelSpotFleetRequestsError pCode_ pMessage_ =-    CancelSpotFleetRequestsError'-    { _csfreCode = pCode_-    , _csfreMessage = pMessage_-    }---- | The error code.-csfreCode :: Lens' CancelSpotFleetRequestsError CancelBatchErrorCode-csfreCode = lens _csfreCode (\ s a -> s{_csfreCode = a});---- | The description for the error code.-csfreMessage :: Lens' CancelSpotFleetRequestsError Text-csfreMessage = lens _csfreMessage (\ s a -> s{_csfreMessage = a});--instance FromXML CancelSpotFleetRequestsError where-        parseXML x-          = CancelSpotFleetRequestsError' <$>-              (x .@ "code") <*> (x .@ "message")--instance Hashable CancelSpotFleetRequestsError--instance NFData CancelSpotFleetRequestsError---- | Describes a Spot fleet request that was not successfully canceled.------------ /See:/ 'cancelSpotFleetRequestsErrorItem' smart constructor.-data CancelSpotFleetRequestsErrorItem = CancelSpotFleetRequestsErrorItem'-    { _csfreiSpotFleetRequestId :: !Text-    , _csfreiError              :: !CancelSpotFleetRequestsError-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelSpotFleetRequestsErrorItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csfreiSpotFleetRequestId' - The ID of the Spot fleet request.------ * 'csfreiError' - The error.-cancelSpotFleetRequestsErrorItem-    :: Text -- ^ 'csfreiSpotFleetRequestId'-    -> CancelSpotFleetRequestsError -- ^ 'csfreiError'-    -> CancelSpotFleetRequestsErrorItem-cancelSpotFleetRequestsErrorItem pSpotFleetRequestId_ pError_ =-    CancelSpotFleetRequestsErrorItem'-    { _csfreiSpotFleetRequestId = pSpotFleetRequestId_-    , _csfreiError = pError_-    }---- | The ID of the Spot fleet request.-csfreiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsErrorItem Text-csfreiSpotFleetRequestId = lens _csfreiSpotFleetRequestId (\ s a -> s{_csfreiSpotFleetRequestId = a});---- | The error.-csfreiError :: Lens' CancelSpotFleetRequestsErrorItem CancelSpotFleetRequestsError-csfreiError = lens _csfreiError (\ s a -> s{_csfreiError = a});--instance FromXML CancelSpotFleetRequestsErrorItem-         where-        parseXML x-          = CancelSpotFleetRequestsErrorItem' <$>-              (x .@ "spotFleetRequestId") <*> (x .@ "error")--instance Hashable CancelSpotFleetRequestsErrorItem--instance NFData CancelSpotFleetRequestsErrorItem---- | Describes a Spot fleet request that was successfully canceled.------------ /See:/ 'cancelSpotFleetRequestsSuccessItem' smart constructor.-data CancelSpotFleetRequestsSuccessItem = CancelSpotFleetRequestsSuccessItem'-    { _csfrsiSpotFleetRequestId            :: !Text-    , _csfrsiCurrentSpotFleetRequestState  :: !BatchState-    , _csfrsiPreviousSpotFleetRequestState :: !BatchState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelSpotFleetRequestsSuccessItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csfrsiSpotFleetRequestId' - The ID of the Spot fleet request.------ * 'csfrsiCurrentSpotFleetRequestState' - The current state of the Spot fleet request.------ * 'csfrsiPreviousSpotFleetRequestState' - The previous state of the Spot fleet request.-cancelSpotFleetRequestsSuccessItem-    :: Text -- ^ 'csfrsiSpotFleetRequestId'-    -> BatchState -- ^ 'csfrsiCurrentSpotFleetRequestState'-    -> BatchState -- ^ 'csfrsiPreviousSpotFleetRequestState'-    -> CancelSpotFleetRequestsSuccessItem-cancelSpotFleetRequestsSuccessItem pSpotFleetRequestId_ pCurrentSpotFleetRequestState_ pPreviousSpotFleetRequestState_ =-    CancelSpotFleetRequestsSuccessItem'-    { _csfrsiSpotFleetRequestId = pSpotFleetRequestId_-    , _csfrsiCurrentSpotFleetRequestState = pCurrentSpotFleetRequestState_-    , _csfrsiPreviousSpotFleetRequestState = pPreviousSpotFleetRequestState_-    }---- | The ID of the Spot fleet request.-csfrsiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsSuccessItem Text-csfrsiSpotFleetRequestId = lens _csfrsiSpotFleetRequestId (\ s a -> s{_csfrsiSpotFleetRequestId = a});---- | The current state of the Spot fleet request.-csfrsiCurrentSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState-csfrsiCurrentSpotFleetRequestState = lens _csfrsiCurrentSpotFleetRequestState (\ s a -> s{_csfrsiCurrentSpotFleetRequestState = a});---- | The previous state of the Spot fleet request.-csfrsiPreviousSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState-csfrsiPreviousSpotFleetRequestState = lens _csfrsiPreviousSpotFleetRequestState (\ s a -> s{_csfrsiPreviousSpotFleetRequestState = a});--instance FromXML CancelSpotFleetRequestsSuccessItem-         where-        parseXML x-          = CancelSpotFleetRequestsSuccessItem' <$>-              (x .@ "spotFleetRequestId") <*>-                (x .@ "currentSpotFleetRequestState")-                <*> (x .@ "previousSpotFleetRequestState")--instance Hashable CancelSpotFleetRequestsSuccessItem--instance NFData CancelSpotFleetRequestsSuccessItem---- | Describes a request to cancel a Spot instance.------------ /See:/ 'cancelledSpotInstanceRequest' smart constructor.-data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest'-    { _csirState                 :: !(Maybe CancelSpotInstanceRequestState)-    , _csirSpotInstanceRequestId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CancelledSpotInstanceRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csirState' - The state of the Spot instance request.------ * 'csirSpotInstanceRequestId' - The ID of the Spot instance request.-cancelledSpotInstanceRequest-    :: CancelledSpotInstanceRequest-cancelledSpotInstanceRequest =-    CancelledSpotInstanceRequest'-    { _csirState = Nothing-    , _csirSpotInstanceRequestId = Nothing-    }---- | The state of the Spot instance request.-csirState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)-csirState = lens _csirState (\ s a -> s{_csirState = a});---- | The ID of the Spot instance request.-csirSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)-csirSpotInstanceRequestId = lens _csirSpotInstanceRequestId (\ s a -> s{_csirSpotInstanceRequestId = a});--instance FromXML CancelledSpotInstanceRequest where-        parseXML x-          = CancelledSpotInstanceRequest' <$>-              (x .@? "state") <*> (x .@? "spotInstanceRequestId")--instance Hashable CancelledSpotInstanceRequest--instance NFData CancelledSpotInstanceRequest---- | Describes the ClassicLink DNS support status of a VPC.------------ /See:/ 'classicLinkDNSSupport' smart constructor.-data ClassicLinkDNSSupport = ClassicLinkDNSSupport'-    { _cldsVPCId                   :: !(Maybe Text)-    , _cldsClassicLinkDNSSupported :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClassicLinkDNSSupport' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cldsVPCId' - The ID of the VPC.------ * 'cldsClassicLinkDNSSupported' - Indicates whether ClassicLink DNS support is enabled for the VPC.-classicLinkDNSSupport-    :: ClassicLinkDNSSupport-classicLinkDNSSupport =-    ClassicLinkDNSSupport'-    { _cldsVPCId = Nothing-    , _cldsClassicLinkDNSSupported = Nothing-    }---- | The ID of the VPC.-cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)-cldsVPCId = lens _cldsVPCId (\ s a -> s{_cldsVPCId = a});---- | Indicates whether ClassicLink DNS support is enabled for the VPC.-cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)-cldsClassicLinkDNSSupported = lens _cldsClassicLinkDNSSupported (\ s a -> s{_cldsClassicLinkDNSSupported = a});--instance FromXML ClassicLinkDNSSupport where-        parseXML x-          = ClassicLinkDNSSupport' <$>-              (x .@? "vpcId") <*> (x .@? "classicLinkDnsSupported")--instance Hashable ClassicLinkDNSSupport--instance NFData ClassicLinkDNSSupport---- | Describes a linked EC2-Classic instance.------------ /See:/ 'classicLinkInstance' smart constructor.-data ClassicLinkInstance = ClassicLinkInstance'-    { _cliInstanceId :: !(Maybe Text)-    , _cliGroups     :: !(Maybe [GroupIdentifier])-    , _cliVPCId      :: !(Maybe Text)-    , _cliTags       :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClassicLinkInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cliInstanceId' - The ID of the instance.------ * 'cliGroups' - A list of security groups.------ * 'cliVPCId' - The ID of the VPC.------ * 'cliTags' - Any tags assigned to the instance.-classicLinkInstance-    :: ClassicLinkInstance-classicLinkInstance =-    ClassicLinkInstance'-    { _cliInstanceId = Nothing-    , _cliGroups = Nothing-    , _cliVPCId = Nothing-    , _cliTags = Nothing-    }---- | The ID of the instance.-cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)-cliInstanceId = lens _cliInstanceId (\ s a -> s{_cliInstanceId = a});---- | A list of security groups.-cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]-cliGroups = lens _cliGroups (\ s a -> s{_cliGroups = a}) . _Default . _Coerce;---- | The ID of the VPC.-cliVPCId :: Lens' ClassicLinkInstance (Maybe Text)-cliVPCId = lens _cliVPCId (\ s a -> s{_cliVPCId = a});---- | Any tags assigned to the instance.-cliTags :: Lens' ClassicLinkInstance [Tag]-cliTags = lens _cliTags (\ s a -> s{_cliTags = a}) . _Default . _Coerce;--instance FromXML ClassicLinkInstance where-        parseXML x-          = ClassicLinkInstance' <$>-              (x .@? "instanceId") <*>-                (x .@? "groupSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpcId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable ClassicLinkInstance--instance NFData ClassicLinkInstance---- | Describes the client-specific data.------------ /See:/ 'clientData' smart constructor.-data ClientData = ClientData'-    { _cdUploadStart :: !(Maybe ISO8601)-    , _cdUploadSize  :: !(Maybe Double)-    , _cdUploadEnd   :: !(Maybe ISO8601)-    , _cdComment     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ClientData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdUploadStart' - The time that the disk upload starts.------ * 'cdUploadSize' - The size of the uploaded disk image, in GiB.------ * 'cdUploadEnd' - The time that the disk upload ends.------ * 'cdComment' - A user-defined comment about the disk upload.-clientData-    :: ClientData-clientData =-    ClientData'-    { _cdUploadStart = Nothing-    , _cdUploadSize = Nothing-    , _cdUploadEnd = Nothing-    , _cdComment = Nothing-    }---- | The time that the disk upload starts.-cdUploadStart :: Lens' ClientData (Maybe UTCTime)-cdUploadStart = lens _cdUploadStart (\ s a -> s{_cdUploadStart = a}) . mapping _Time;---- | The size of the uploaded disk image, in GiB.-cdUploadSize :: Lens' ClientData (Maybe Double)-cdUploadSize = lens _cdUploadSize (\ s a -> s{_cdUploadSize = a});---- | The time that the disk upload ends.-cdUploadEnd :: Lens' ClientData (Maybe UTCTime)-cdUploadEnd = lens _cdUploadEnd (\ s a -> s{_cdUploadEnd = a}) . mapping _Time;---- | A user-defined comment about the disk upload.-cdComment :: Lens' ClientData (Maybe Text)-cdComment = lens _cdComment (\ s a -> s{_cdComment = a});--instance Hashable ClientData--instance NFData ClientData--instance ToQuery ClientData where-        toQuery ClientData'{..}-          = mconcat-              ["UploadStart" =: _cdUploadStart,-               "UploadSize" =: _cdUploadSize,-               "UploadEnd" =: _cdUploadEnd, "Comment" =: _cdComment]---- | Describes a conversion task.------------ /See:/ 'conversionTask' smart constructor.-data ConversionTask = ConversionTask'-    { _ctImportInstance   :: !(Maybe ImportInstanceTaskDetails)-    , _ctStatusMessage    :: !(Maybe Text)-    , _ctImportVolume     :: !(Maybe ImportVolumeTaskDetails)-    , _ctExpirationTime   :: !(Maybe Text)-    , _ctTags             :: !(Maybe [Tag])-    , _ctConversionTaskId :: !Text-    , _ctState            :: !ConversionTaskState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ConversionTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ctImportInstance' - If the task is for importing an instance, this contains information about the import instance task.------ * 'ctStatusMessage' - The status message related to the conversion task.------ * 'ctImportVolume' - If the task is for importing a volume, this contains information about the import volume task.------ * 'ctExpirationTime' - The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.------ * 'ctTags' - Any tags assigned to the task.------ * 'ctConversionTaskId' - The ID of the conversion task.------ * 'ctState' - The state of the conversion task.-conversionTask-    :: Text -- ^ 'ctConversionTaskId'-    -> ConversionTaskState -- ^ 'ctState'-    -> ConversionTask-conversionTask pConversionTaskId_ pState_ =-    ConversionTask'-    { _ctImportInstance = Nothing-    , _ctStatusMessage = Nothing-    , _ctImportVolume = Nothing-    , _ctExpirationTime = Nothing-    , _ctTags = Nothing-    , _ctConversionTaskId = pConversionTaskId_-    , _ctState = pState_-    }---- | If the task is for importing an instance, this contains information about the import instance task.-ctImportInstance :: Lens' ConversionTask (Maybe ImportInstanceTaskDetails)-ctImportInstance = lens _ctImportInstance (\ s a -> s{_ctImportInstance = a});---- | The status message related to the conversion task.-ctStatusMessage :: Lens' ConversionTask (Maybe Text)-ctStatusMessage = lens _ctStatusMessage (\ s a -> s{_ctStatusMessage = a});---- | If the task is for importing a volume, this contains information about the import volume task.-ctImportVolume :: Lens' ConversionTask (Maybe ImportVolumeTaskDetails)-ctImportVolume = lens _ctImportVolume (\ s a -> s{_ctImportVolume = a});---- | 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)-ctExpirationTime = lens _ctExpirationTime (\ s a -> s{_ctExpirationTime = a});---- | Any tags assigned to the task.-ctTags :: Lens' ConversionTask [Tag]-ctTags = lens _ctTags (\ s a -> s{_ctTags = a}) . _Default . _Coerce;---- | The ID of the conversion task.-ctConversionTaskId :: Lens' ConversionTask Text-ctConversionTaskId = lens _ctConversionTaskId (\ s a -> s{_ctConversionTaskId = a});---- | The state of the conversion task.-ctState :: Lens' ConversionTask ConversionTaskState-ctState = lens _ctState (\ s a -> s{_ctState = a});--instance FromXML ConversionTask where-        parseXML x-          = ConversionTask' <$>-              (x .@? "importInstance") <*> (x .@? "statusMessage")-                <*> (x .@? "importVolume")-                <*> (x .@? "expirationTime")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "conversionTaskId")-                <*> (x .@ "state")--instance Hashable ConversionTask--instance NFData ConversionTask---- | Describes the user or group to be added or removed from the permissions for a volume.------------ /See:/ 'createVolumePermission' smart constructor.-data CreateVolumePermission = CreateVolumePermission'-    { _cvpGroup  :: !(Maybe PermissionGroup)-    , _cvpUserId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CreateVolumePermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvpGroup' - The specific group that is to be added or removed from a volume's list of create volume permissions.------ * 'cvpUserId' - The specific AWS account ID that is to be added or removed from a volume's list of create volume permissions.-createVolumePermission-    :: CreateVolumePermission-createVolumePermission =-    CreateVolumePermission'-    { _cvpGroup = Nothing-    , _cvpUserId = Nothing-    }---- | The specific group that is to be added or removed from a volume's list of create volume permissions.-cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)-cvpGroup = lens _cvpGroup (\ s a -> s{_cvpGroup = a});---- | 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)-cvpUserId = lens _cvpUserId (\ s a -> s{_cvpUserId = a});--instance FromXML CreateVolumePermission where-        parseXML x-          = CreateVolumePermission' <$>-              (x .@? "group") <*> (x .@? "userId")--instance Hashable CreateVolumePermission--instance NFData CreateVolumePermission--instance ToQuery CreateVolumePermission where-        toQuery CreateVolumePermission'{..}-          = mconcat-              ["Group" =: _cvpGroup, "UserId" =: _cvpUserId]---- | Describes modifications to the permissions for a volume.------------ /See:/ 'createVolumePermissionModifications' smart constructor.-data CreateVolumePermissionModifications = CreateVolumePermissionModifications'-    { _cvpmRemove :: !(Maybe [CreateVolumePermission])-    , _cvpmAdd    :: !(Maybe [CreateVolumePermission])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CreateVolumePermissionModifications' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cvpmRemove' - Removes a specific AWS account ID or group from a volume's list of create volume permissions.------ * 'cvpmAdd' - Adds a specific AWS account ID or group to a volume's list of create volume permissions.-createVolumePermissionModifications-    :: CreateVolumePermissionModifications-createVolumePermissionModifications =-    CreateVolumePermissionModifications'-    { _cvpmRemove = Nothing-    , _cvpmAdd = Nothing-    }---- | Removes a specific AWS account ID or group from a volume's list of create volume permissions.-cvpmRemove :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]-cvpmRemove = lens _cvpmRemove (\ s a -> s{_cvpmRemove = a}) . _Default . _Coerce;---- | Adds a specific AWS account ID or group to a volume's list of create volume permissions.-cvpmAdd :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]-cvpmAdd = lens _cvpmAdd (\ s a -> s{_cvpmAdd = a}) . _Default . _Coerce;--instance Hashable CreateVolumePermissionModifications--instance NFData CreateVolumePermissionModifications--instance ToQuery CreateVolumePermissionModifications-         where-        toQuery CreateVolumePermissionModifications'{..}-          = mconcat-              [toQuery (toQueryList "Remove" <$> _cvpmRemove),-               toQuery (toQueryList "Add" <$> _cvpmAdd)]---- | Describes a customer gateway.------------ /See:/ 'customerGateway' smart constructor.-data CustomerGateway = CustomerGateway'-    { _cgTags              :: !(Maybe [Tag])-    , _cgBGPASN            :: !Text-    , _cgCustomerGatewayId :: !Text-    , _cgIPAddress         :: !Text-    , _cgState             :: !Text-    , _cgType              :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'CustomerGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cgTags' - Any tags assigned to the customer gateway.------ * 'cgBGPASN' - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).------ * 'cgCustomerGatewayId' - The ID of the customer gateway.------ * 'cgIPAddress' - The Internet-routable IP address of the customer gateway's outside interface.------ * 'cgState' - The current state of the customer gateway (@pending | available | deleting | deleted@ ).------ * 'cgType' - The type of VPN connection the customer gateway supports (@ipsec.1@ ).-customerGateway-    :: Text -- ^ 'cgBGPASN'-    -> Text -- ^ 'cgCustomerGatewayId'-    -> Text -- ^ 'cgIPAddress'-    -> Text -- ^ 'cgState'-    -> Text -- ^ 'cgType'-    -> CustomerGateway-customerGateway pBGPASN_ pCustomerGatewayId_ pIPAddress_ pState_ pType_ =-    CustomerGateway'-    { _cgTags = Nothing-    , _cgBGPASN = pBGPASN_-    , _cgCustomerGatewayId = pCustomerGatewayId_-    , _cgIPAddress = pIPAddress_-    , _cgState = pState_-    , _cgType = pType_-    }---- | Any tags assigned to the customer gateway.-cgTags :: Lens' CustomerGateway [Tag]-cgTags = lens _cgTags (\ s a -> s{_cgTags = a}) . _Default . _Coerce;---- | The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).-cgBGPASN :: Lens' CustomerGateway Text-cgBGPASN = lens _cgBGPASN (\ s a -> s{_cgBGPASN = a});---- | The ID of the customer gateway.-cgCustomerGatewayId :: Lens' CustomerGateway Text-cgCustomerGatewayId = lens _cgCustomerGatewayId (\ s a -> s{_cgCustomerGatewayId = a});---- | The Internet-routable IP address of the customer gateway's outside interface.-cgIPAddress :: Lens' CustomerGateway Text-cgIPAddress = lens _cgIPAddress (\ s a -> s{_cgIPAddress = a});---- | The current state of the customer gateway (@pending | available | deleting | deleted@ ).-cgState :: Lens' CustomerGateway Text-cgState = lens _cgState (\ s a -> s{_cgState = a});---- | The type of VPN connection the customer gateway supports (@ipsec.1@ ).-cgType :: Lens' CustomerGateway Text-cgType = lens _cgType (\ s a -> s{_cgType = a});--instance FromXML CustomerGateway where-        parseXML x-          = CustomerGateway' <$>-              (x .@? "tagSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@ "bgpAsn")-                <*> (x .@ "customerGatewayId")-                <*> (x .@ "ipAddress")-                <*> (x .@ "state")-                <*> (x .@ "type")--instance Hashable CustomerGateway--instance NFData CustomerGateway---- | Describes a DHCP configuration option.------------ /See:/ 'dhcpConfiguration' smart constructor.-data DHCPConfiguration = DHCPConfiguration'-    { _dcValues :: !(Maybe [AttributeValue])-    , _dcKey    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DHCPConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dcValues' - One or more values for the DHCP option.------ * 'dcKey' - The name of a DHCP option.-dhcpConfiguration-    :: DHCPConfiguration-dhcpConfiguration =-    DHCPConfiguration'-    { _dcValues = Nothing-    , _dcKey = Nothing-    }---- | One or more values for the DHCP option.-dcValues :: Lens' DHCPConfiguration [AttributeValue]-dcValues = lens _dcValues (\ s a -> s{_dcValues = a}) . _Default . _Coerce;---- | The name of a DHCP option.-dcKey :: Lens' DHCPConfiguration (Maybe Text)-dcKey = lens _dcKey (\ s a -> s{_dcKey = a});--instance FromXML DHCPConfiguration where-        parseXML x-          = DHCPConfiguration' <$>-              (x .@? "valueSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "key")--instance Hashable DHCPConfiguration--instance NFData DHCPConfiguration---- | Describes a set of DHCP options.------------ /See:/ 'dhcpOptions' smart constructor.-data DHCPOptions = DHCPOptions'-    { _doDHCPConfigurations :: !(Maybe [DHCPConfiguration])-    , _doDHCPOptionsId      :: !(Maybe Text)-    , _doTags               :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DHCPOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'doDHCPConfigurations' - One or more DHCP options in the set.------ * 'doDHCPOptionsId' - The ID of the set of DHCP options.------ * 'doTags' - Any tags assigned to the DHCP options set.-dhcpOptions-    :: DHCPOptions-dhcpOptions =-    DHCPOptions'-    { _doDHCPConfigurations = Nothing-    , _doDHCPOptionsId = Nothing-    , _doTags = Nothing-    }---- | One or more DHCP options in the set.-doDHCPConfigurations :: Lens' DHCPOptions [DHCPConfiguration]-doDHCPConfigurations = lens _doDHCPConfigurations (\ s a -> s{_doDHCPConfigurations = a}) . _Default . _Coerce;---- | The ID of the set of DHCP options.-doDHCPOptionsId :: Lens' DHCPOptions (Maybe Text)-doDHCPOptionsId = lens _doDHCPOptionsId (\ s a -> s{_doDHCPOptionsId = a});---- | Any tags assigned to the DHCP options set.-doTags :: Lens' DHCPOptions [Tag]-doTags = lens _doTags (\ s a -> s{_doTags = a}) . _Default . _Coerce;--instance FromXML DHCPOptions where-        parseXML x-          = DHCPOptions' <$>-              (x .@? "dhcpConfigurationSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "dhcpOptionsId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable DHCPOptions--instance NFData DHCPOptions---- | Describes a disk image.------------ /See:/ 'diskImage' smart constructor.-data DiskImage = DiskImage'-    { _diImage       :: !(Maybe DiskImageDetail)-    , _diVolume      :: !(Maybe VolumeDetail)-    , _diDescription :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'diImage' - Information about the disk image.------ * 'diVolume' - Information about the volume.------ * 'diDescription' - A description of the disk image.-diskImage-    :: DiskImage-diskImage =-    DiskImage'-    { _diImage = Nothing-    , _diVolume = Nothing-    , _diDescription = Nothing-    }---- | Information about the disk image.-diImage :: Lens' DiskImage (Maybe DiskImageDetail)-diImage = lens _diImage (\ s a -> s{_diImage = a});---- | Information about the volume.-diVolume :: Lens' DiskImage (Maybe VolumeDetail)-diVolume = lens _diVolume (\ s a -> s{_diVolume = a});---- | A description of the disk image.-diDescription :: Lens' DiskImage (Maybe Text)-diDescription = lens _diDescription (\ s a -> s{_diDescription = a});--instance Hashable DiskImage--instance NFData DiskImage--instance ToQuery DiskImage where-        toQuery DiskImage'{..}-          = mconcat-              ["Image" =: _diImage, "Volume" =: _diVolume,-               "Description" =: _diDescription]---- | Describes a disk image.------------ /See:/ 'diskImageDescription' smart constructor.-data DiskImageDescription = DiskImageDescription'-    { _dChecksum          :: !(Maybe Text)-    , _dFormat            :: !DiskImageFormat-    , _dSize              :: !Integer-    , _dImportManifestURL :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImageDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dChecksum' - The checksum computed for the disk image.------ * 'dFormat' - The disk image format.------ * 'dSize' - The size of the disk image, in GiB.------ * 'dImportManifestURL' - 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .-diskImageDescription-    :: DiskImageFormat -- ^ 'dFormat'-    -> Integer -- ^ 'dSize'-    -> Text -- ^ 'dImportManifestURL'-    -> DiskImageDescription-diskImageDescription pFormat_ pSize_ pImportManifestURL_ =-    DiskImageDescription'-    { _dChecksum = Nothing-    , _dFormat = pFormat_-    , _dSize = pSize_-    , _dImportManifestURL = pImportManifestURL_-    }---- | The checksum computed for the disk image.-dChecksum :: Lens' DiskImageDescription (Maybe Text)-dChecksum = lens _dChecksum (\ s a -> s{_dChecksum = a});---- | The disk image format.-dFormat :: Lens' DiskImageDescription DiskImageFormat-dFormat = lens _dFormat (\ s a -> s{_dFormat = a});---- | The size of the disk image, in GiB.-dSize :: Lens' DiskImageDescription Integer-dSize = lens _dSize (\ s a -> s{_dSize = 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .-dImportManifestURL :: Lens' DiskImageDescription Text-dImportManifestURL = lens _dImportManifestURL (\ s a -> s{_dImportManifestURL = a});--instance FromXML DiskImageDescription where-        parseXML x-          = DiskImageDescription' <$>-              (x .@? "checksum") <*> (x .@ "format") <*>-                (x .@ "size")-                <*> (x .@ "importManifestUrl")--instance Hashable DiskImageDescription--instance NFData DiskImageDescription---- | Describes a disk image.------------ /See:/ 'diskImageDetail' smart constructor.-data DiskImageDetail = DiskImageDetail'-    { _didFormat            :: !DiskImageFormat-    , _didBytes             :: !Integer-    , _didImportManifestURL :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImageDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'didFormat' - The disk image format.------ * 'didBytes' - The size of the disk image, in GiB.------ * 'didImportManifestURL' - 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .-diskImageDetail-    :: DiskImageFormat -- ^ 'didFormat'-    -> Integer -- ^ 'didBytes'-    -> Text -- ^ 'didImportManifestURL'-    -> DiskImageDetail-diskImageDetail pFormat_ pBytes_ pImportManifestURL_ =-    DiskImageDetail'-    { _didFormat = pFormat_-    , _didBytes = pBytes_-    , _didImportManifestURL = pImportManifestURL_-    }---- | The disk image format.-didFormat :: Lens' DiskImageDetail DiskImageFormat-didFormat = lens _didFormat (\ s a -> s{_didFormat = a});---- | The size of the disk image, in GiB.-didBytes :: Lens' DiskImageDetail Integer-didBytes = lens _didBytes (\ s a -> s{_didBytes = 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .-didImportManifestURL :: Lens' DiskImageDetail Text-didImportManifestURL = lens _didImportManifestURL (\ s a -> s{_didImportManifestURL = a});--instance Hashable DiskImageDetail--instance NFData DiskImageDetail--instance ToQuery DiskImageDetail where-        toQuery DiskImageDetail'{..}-          = mconcat-              ["Format" =: _didFormat, "Bytes" =: _didBytes,-               "ImportManifestUrl" =: _didImportManifestURL]---- | Describes a disk image volume.------------ /See:/ 'diskImageVolumeDescription' smart constructor.-data DiskImageVolumeDescription = DiskImageVolumeDescription'-    { _divdSize :: !(Maybe Integer)-    , _divdId   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DiskImageVolumeDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'divdSize' - The size of the volume, in GiB.------ * 'divdId' - The volume identifier.-diskImageVolumeDescription-    :: Text -- ^ 'divdId'-    -> DiskImageVolumeDescription-diskImageVolumeDescription pId_ =-    DiskImageVolumeDescription'-    { _divdSize = Nothing-    , _divdId = pId_-    }---- | The size of the volume, in GiB.-divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)-divdSize = lens _divdSize (\ s a -> s{_divdSize = a});---- | The volume identifier.-divdId :: Lens' DiskImageVolumeDescription Text-divdId = lens _divdId (\ s a -> s{_divdId = a});--instance FromXML DiskImageVolumeDescription where-        parseXML x-          = DiskImageVolumeDescription' <$>-              (x .@? "size") <*> (x .@ "id")--instance Hashable DiskImageVolumeDescription--instance NFData DiskImageVolumeDescription---- | Describes a block device for an EBS volume.------------ /See:/ 'ebsBlockDevice' smart constructor.-data EBSBlockDevice = EBSBlockDevice'-    { _ebdDeleteOnTermination :: !(Maybe Bool)-    , _ebdVolumeSize          :: !(Maybe Int)-    , _ebdIOPS                :: !(Maybe Int)-    , _ebdEncrypted           :: !(Maybe Bool)-    , _ebdVolumeType          :: !(Maybe VolumeType)-    , _ebdSnapshotId          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EBSBlockDevice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ebdDeleteOnTermination' - Indicates whether the EBS volume is deleted on instance termination.------ * 'ebdVolumeSize' - The size of the volume, in GiB. Constraints: 1-16384 for General Purpose SSD (@gp2@ ), 4-16384 for Provisioned IOPS SSD (@io1@ ), 500-16384 for Throughput Optimized HDD (@st1@ ), 500-16384 for Cold HDD (@sc1@ ), and 1-1024 for Magnetic (@standard@ ) 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.------ * 'ebdIOPS' - The number of 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/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.------ * 'ebdEncrypted' - Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption.------ * 'ebdVolumeType' - The volume type: @gp2@ , @io1@ , @st1@ , @sc1@ , or @standard@ . Default: @standard@------ * 'ebdSnapshotId' - The ID of the snapshot.-ebsBlockDevice-    :: EBSBlockDevice-ebsBlockDevice =-    EBSBlockDevice'-    { _ebdDeleteOnTermination = Nothing-    , _ebdVolumeSize = Nothing-    , _ebdIOPS = Nothing-    , _ebdEncrypted = Nothing-    , _ebdVolumeType = Nothing-    , _ebdSnapshotId = Nothing-    }---- | Indicates whether the EBS volume is deleted on instance termination.-ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)-ebdDeleteOnTermination = lens _ebdDeleteOnTermination (\ s a -> s{_ebdDeleteOnTermination = a});---- | The size of the volume, in GiB. Constraints: 1-16384 for General Purpose SSD (@gp2@ ), 4-16384 for Provisioned IOPS SSD (@io1@ ), 500-16384 for Throughput Optimized HDD (@st1@ ), 500-16384 for Cold HDD (@sc1@ ), and 1-1024 for Magnetic (@standard@ ) 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)-ebdVolumeSize = lens _ebdVolumeSize (\ s a -> s{_ebdVolumeSize = a});---- | The number of 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/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.-ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)-ebdIOPS = lens _ebdIOPS (\ s a -> s{_ebdIOPS = a});---- | Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption.-ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)-ebdEncrypted = lens _ebdEncrypted (\ s a -> s{_ebdEncrypted = a});---- | The volume type: @gp2@ , @io1@ , @st1@ , @sc1@ , or @standard@ . Default: @standard@-ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)-ebdVolumeType = lens _ebdVolumeType (\ s a -> s{_ebdVolumeType = a});---- | The ID of the snapshot.-ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)-ebdSnapshotId = lens _ebdSnapshotId (\ s a -> s{_ebdSnapshotId = a});--instance FromXML EBSBlockDevice where-        parseXML x-          = EBSBlockDevice' <$>-              (x .@? "deleteOnTermination") <*>-                (x .@? "volumeSize")-                <*> (x .@? "iops")-                <*> (x .@? "encrypted")-                <*> (x .@? "volumeType")-                <*> (x .@? "snapshotId")--instance Hashable EBSBlockDevice--instance NFData EBSBlockDevice--instance ToQuery EBSBlockDevice where-        toQuery EBSBlockDevice'{..}-          = mconcat-              ["DeleteOnTermination" =: _ebdDeleteOnTermination,-               "VolumeSize" =: _ebdVolumeSize, "Iops" =: _ebdIOPS,-               "Encrypted" =: _ebdEncrypted,-               "VolumeType" =: _ebdVolumeType,-               "SnapshotId" =: _ebdSnapshotId]---- | Describes a parameter used to set up an EBS volume in a block device mapping.------------ /See:/ 'ebsInstanceBlockDevice' smart constructor.-data EBSInstanceBlockDevice = EBSInstanceBlockDevice'-    { _eibdStatus              :: !(Maybe AttachmentStatus)-    , _eibdDeleteOnTermination :: !(Maybe Bool)-    , _eibdVolumeId            :: !(Maybe Text)-    , _eibdAttachTime          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EBSInstanceBlockDevice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eibdStatus' - The attachment state.------ * 'eibdDeleteOnTermination' - Indicates whether the volume is deleted on instance termination.------ * 'eibdVolumeId' - The ID of the EBS volume.------ * 'eibdAttachTime' - The time stamp when the attachment initiated.-ebsInstanceBlockDevice-    :: EBSInstanceBlockDevice-ebsInstanceBlockDevice =-    EBSInstanceBlockDevice'-    { _eibdStatus = Nothing-    , _eibdDeleteOnTermination = Nothing-    , _eibdVolumeId = Nothing-    , _eibdAttachTime = Nothing-    }---- | The attachment state.-eibdStatus :: Lens' EBSInstanceBlockDevice (Maybe AttachmentStatus)-eibdStatus = lens _eibdStatus (\ s a -> s{_eibdStatus = a});---- | Indicates whether the volume is deleted on instance termination.-eibdDeleteOnTermination :: Lens' EBSInstanceBlockDevice (Maybe Bool)-eibdDeleteOnTermination = lens _eibdDeleteOnTermination (\ s a -> s{_eibdDeleteOnTermination = a});---- | The ID of the EBS volume.-eibdVolumeId :: Lens' EBSInstanceBlockDevice (Maybe Text)-eibdVolumeId = lens _eibdVolumeId (\ s a -> s{_eibdVolumeId = a});---- | The time stamp when the attachment initiated.-eibdAttachTime :: Lens' EBSInstanceBlockDevice (Maybe UTCTime)-eibdAttachTime = lens _eibdAttachTime (\ s a -> s{_eibdAttachTime = a}) . mapping _Time;--instance FromXML EBSInstanceBlockDevice where-        parseXML x-          = EBSInstanceBlockDevice' <$>-              (x .@? "status") <*> (x .@? "deleteOnTermination")-                <*> (x .@? "volumeId")-                <*> (x .@? "attachTime")--instance Hashable EBSInstanceBlockDevice--instance NFData EBSInstanceBlockDevice---- | Describes information used to set up an EBS volume specified in a block device mapping.------------ /See:/ 'ebsInstanceBlockDeviceSpecification' smart constructor.-data EBSInstanceBlockDeviceSpecification = EBSInstanceBlockDeviceSpecification'-    { _eibdsDeleteOnTermination :: !(Maybe Bool)-    , _eibdsVolumeId            :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EBSInstanceBlockDeviceSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eibdsDeleteOnTermination' - Indicates whether the volume is deleted on instance termination.------ * 'eibdsVolumeId' - The ID of the EBS volume.-ebsInstanceBlockDeviceSpecification-    :: EBSInstanceBlockDeviceSpecification-ebsInstanceBlockDeviceSpecification =-    EBSInstanceBlockDeviceSpecification'-    { _eibdsDeleteOnTermination = Nothing-    , _eibdsVolumeId = Nothing-    }---- | Indicates whether the volume is deleted on instance termination.-eibdsDeleteOnTermination :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Bool)-eibdsDeleteOnTermination = lens _eibdsDeleteOnTermination (\ s a -> s{_eibdsDeleteOnTermination = a});---- | The ID of the EBS volume.-eibdsVolumeId :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Text)-eibdsVolumeId = lens _eibdsVolumeId (\ s a -> s{_eibdsVolumeId = a});--instance Hashable EBSInstanceBlockDeviceSpecification--instance NFData EBSInstanceBlockDeviceSpecification--instance ToQuery EBSInstanceBlockDeviceSpecification-         where-        toQuery EBSInstanceBlockDeviceSpecification'{..}-          = mconcat-              ["DeleteOnTermination" =: _eibdsDeleteOnTermination,-               "VolumeId" =: _eibdsVolumeId]---- | Describes an egress-only Internet gateway.------------ /See:/ 'egressOnlyInternetGateway' smart constructor.-data EgressOnlyInternetGateway = EgressOnlyInternetGateway'-    { _eoigEgressOnlyInternetGatewayId :: !(Maybe Text)-    , _eoigAttachments                 :: !(Maybe [InternetGatewayAttachment])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EgressOnlyInternetGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eoigEgressOnlyInternetGatewayId' - The ID of the egress-only Internet gateway.------ * 'eoigAttachments' - Information about the attachment of the egress-only Internet gateway.-egressOnlyInternetGateway-    :: EgressOnlyInternetGateway-egressOnlyInternetGateway =-    EgressOnlyInternetGateway'-    { _eoigEgressOnlyInternetGatewayId = Nothing-    , _eoigAttachments = Nothing-    }---- | The ID of the egress-only Internet gateway.-eoigEgressOnlyInternetGatewayId :: Lens' EgressOnlyInternetGateway (Maybe Text)-eoigEgressOnlyInternetGatewayId = lens _eoigEgressOnlyInternetGatewayId (\ s a -> s{_eoigEgressOnlyInternetGatewayId = a});---- | Information about the attachment of the egress-only Internet gateway.-eoigAttachments :: Lens' EgressOnlyInternetGateway [InternetGatewayAttachment]-eoigAttachments = lens _eoigAttachments (\ s a -> s{_eoigAttachments = a}) . _Default . _Coerce;--instance FromXML EgressOnlyInternetGateway where-        parseXML x-          = EgressOnlyInternetGateway' <$>-              (x .@? "egressOnlyInternetGatewayId") <*>-                (x .@? "attachmentSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable EgressOnlyInternetGateway--instance NFData EgressOnlyInternetGateway---- | Describes a Spot fleet event.------------ /See:/ 'eventInformation' smart constructor.-data EventInformation = EventInformation'-    { _eiInstanceId       :: !(Maybe Text)-    , _eiEventDescription :: !(Maybe Text)-    , _eiEventSubType     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'EventInformation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eiInstanceId' - The ID of the instance. This information is available only for @instanceChange@ events.------ * 'eiEventDescription' - The description of the event.------ * 'eiEventSubType' - The event. The following are the @error@ events.     * @iamFleetRoleInvalid@ - The Spot fleet did not have the required permissions either to launch or terminate an instance.     * @launchSpecTemporarilyBlacklisted@ - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.     * @spotFleetRequestConfigurationInvalid@ - The configuration is not valid. For more information, see the description of the event.     * @spotInstanceCountLimitExceeded@ - You've reached the limit on the number of Spot instances that you can launch. The following are the @fleetRequestChange@ events.     * @active@ - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot instances.     * @cancelled@ - The Spot fleet is canceled and has no running Spot instances. The Spot fleet will be deleted two days after its instances were terminated.     * @cancelled_running@ - The Spot fleet is canceled and will not launch additional Spot instances, but its existing Spot instances continue to run until they are interrupted or terminated.     * @cancelled_terminating@ - The Spot fleet is canceled and its Spot instances are terminating.     * @expired@ - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with @TerminateInstancesWithExpiration@ set.     * @modify_in_progress@ - A request to modify the Spot fleet request was accepted and is in progress.     * @modify_successful@ - The Spot fleet request was modified.     * @price_update@ - The bid price for a launch configuration was adjusted because it was too high. This change is permanent.     * @submitted@ - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot instances. The following are the @instanceChange@ events.     * @launched@ - A bid was fulfilled and a new instance was launched.     * @terminated@ - An instance was terminated by the user.-eventInformation-    :: EventInformation-eventInformation =-    EventInformation'-    { _eiInstanceId = Nothing-    , _eiEventDescription = Nothing-    , _eiEventSubType = Nothing-    }---- | The ID of the instance. This information is available only for @instanceChange@ events.-eiInstanceId :: Lens' EventInformation (Maybe Text)-eiInstanceId = lens _eiInstanceId (\ s a -> s{_eiInstanceId = a});---- | The description of the event.-eiEventDescription :: Lens' EventInformation (Maybe Text)-eiEventDescription = lens _eiEventDescription (\ s a -> s{_eiEventDescription = a});---- | The event. The following are the @error@ events.     * @iamFleetRoleInvalid@ - The Spot fleet did not have the required permissions either to launch or terminate an instance.     * @launchSpecTemporarilyBlacklisted@ - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.     * @spotFleetRequestConfigurationInvalid@ - The configuration is not valid. For more information, see the description of the event.     * @spotInstanceCountLimitExceeded@ - You've reached the limit on the number of Spot instances that you can launch. The following are the @fleetRequestChange@ events.     * @active@ - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot instances.     * @cancelled@ - The Spot fleet is canceled and has no running Spot instances. The Spot fleet will be deleted two days after its instances were terminated.     * @cancelled_running@ - The Spot fleet is canceled and will not launch additional Spot instances, but its existing Spot instances continue to run until they are interrupted or terminated.     * @cancelled_terminating@ - The Spot fleet is canceled and its Spot instances are terminating.     * @expired@ - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with @TerminateInstancesWithExpiration@ set.     * @modify_in_progress@ - A request to modify the Spot fleet request was accepted and is in progress.     * @modify_successful@ - The Spot fleet request was modified.     * @price_update@ - The bid price for a launch configuration was adjusted because it was too high. This change is permanent.     * @submitted@ - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot instances. The following are the @instanceChange@ events.     * @launched@ - A bid was fulfilled and a new instance was launched.     * @terminated@ - An instance was terminated by the user.-eiEventSubType :: Lens' EventInformation (Maybe Text)-eiEventSubType = lens _eiEventSubType (\ s a -> s{_eiEventSubType = a});--instance FromXML EventInformation where-        parseXML x-          = EventInformation' <$>-              (x .@? "instanceId") <*> (x .@? "eventDescription")-                <*> (x .@? "eventSubType")--instance Hashable EventInformation--instance NFData EventInformation---- | Describes an instance export task.------------ /See:/ 'exportTask' smart constructor.-data ExportTask = ExportTask'-    { _etDescription           :: !Text-    , _etExportTaskId          :: !Text-    , _etExportToS3Task        :: !ExportToS3Task-    , _etInstanceExportDetails :: !InstanceExportDetails-    , _etState                 :: !ExportTaskState-    , _etStatusMessage         :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ExportTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'etDescription' - A description of the resource being exported.------ * 'etExportTaskId' - The ID of the export task.------ * 'etExportToS3Task' - Information about the export task.------ * 'etInstanceExportDetails' - Information about the instance to export.------ * 'etState' - The state of the export task.------ * 'etStatusMessage' - The status message related to the export task.-exportTask-    :: Text -- ^ 'etDescription'-    -> Text -- ^ 'etExportTaskId'-    -> ExportToS3Task -- ^ 'etExportToS3Task'-    -> InstanceExportDetails -- ^ 'etInstanceExportDetails'-    -> ExportTaskState -- ^ 'etState'-    -> Text -- ^ 'etStatusMessage'-    -> ExportTask-exportTask pDescription_ pExportTaskId_ pExportToS3Task_ pInstanceExportDetails_ pState_ pStatusMessage_ =-    ExportTask'-    { _etDescription = pDescription_-    , _etExportTaskId = pExportTaskId_-    , _etExportToS3Task = pExportToS3Task_-    , _etInstanceExportDetails = pInstanceExportDetails_-    , _etState = pState_-    , _etStatusMessage = pStatusMessage_-    }---- | A description of the resource being exported.-etDescription :: Lens' ExportTask Text-etDescription = lens _etDescription (\ s a -> s{_etDescription = a});---- | The ID of the export task.-etExportTaskId :: Lens' ExportTask Text-etExportTaskId = lens _etExportTaskId (\ s a -> s{_etExportTaskId = a});---- | Information about the export task.-etExportToS3Task :: Lens' ExportTask ExportToS3Task-etExportToS3Task = lens _etExportToS3Task (\ s a -> s{_etExportToS3Task = a});---- | Information about the instance to export.-etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails-etInstanceExportDetails = lens _etInstanceExportDetails (\ s a -> s{_etInstanceExportDetails = a});---- | The state of the export task.-etState :: Lens' ExportTask ExportTaskState-etState = lens _etState (\ s a -> s{_etState = a});---- | The status message related to the export task.-etStatusMessage :: Lens' ExportTask Text-etStatusMessage = lens _etStatusMessage (\ s a -> s{_etStatusMessage = a});--instance FromXML ExportTask where-        parseXML x-          = ExportTask' <$>-              (x .@ "description") <*> (x .@ "exportTaskId") <*>-                (x .@ "exportToS3")-                <*> (x .@ "instanceExport")-                <*> (x .@ "state")-                <*> (x .@ "statusMessage")--instance Hashable ExportTask--instance NFData ExportTask---- | Describes the format and location for an instance export task.------------ /See:/ 'exportToS3Task' smart constructor.-data ExportToS3Task = ExportToS3Task'-    { _etstS3Key           :: !(Maybe Text)-    , _etstContainerFormat :: !(Maybe ContainerFormat)-    , _etstS3Bucket        :: !(Maybe Text)-    , _etstDiskImageFormat :: !(Maybe DiskImageFormat)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ExportToS3Task' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'etstS3Key' - The encryption key for your S3 bucket.------ * 'etstContainerFormat' - The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.------ * 'etstS3Bucket' - The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .------ * 'etstDiskImageFormat' - The format for the exported image.-exportToS3Task-    :: ExportToS3Task-exportToS3Task =-    ExportToS3Task'-    { _etstS3Key = Nothing-    , _etstContainerFormat = Nothing-    , _etstS3Bucket = Nothing-    , _etstDiskImageFormat = Nothing-    }---- | The encryption key for your S3 bucket.-etstS3Key :: Lens' ExportToS3Task (Maybe Text)-etstS3Key = lens _etstS3Key (\ s a -> s{_etstS3Key = a});---- | 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)-etstContainerFormat = lens _etstContainerFormat (\ s a -> s{_etstContainerFormat = a});---- | The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .-etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)-etstS3Bucket = lens _etstS3Bucket (\ s a -> s{_etstS3Bucket = a});---- | The format for the exported image.-etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)-etstDiskImageFormat = lens _etstDiskImageFormat (\ s a -> s{_etstDiskImageFormat = a});--instance FromXML ExportToS3Task where-        parseXML x-          = ExportToS3Task' <$>-              (x .@? "s3Key") <*> (x .@? "containerFormat") <*>-                (x .@? "s3Bucket")-                <*> (x .@? "diskImageFormat")--instance Hashable ExportToS3Task--instance NFData ExportToS3Task---- | Describes an instance export task.------------ /See:/ 'exportToS3TaskSpecification' smart constructor.-data ExportToS3TaskSpecification = ExportToS3TaskSpecification'-    { _etstsContainerFormat :: !(Maybe ContainerFormat)-    , _etstsS3Prefix        :: !(Maybe Text)-    , _etstsS3Bucket        :: !(Maybe Text)-    , _etstsDiskImageFormat :: !(Maybe DiskImageFormat)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ExportToS3TaskSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'etstsContainerFormat' - The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.------ * 'etstsS3Prefix' - The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.------ * 'etstsS3Bucket' - The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .------ * 'etstsDiskImageFormat' - The format for the exported image.-exportToS3TaskSpecification-    :: ExportToS3TaskSpecification-exportToS3TaskSpecification =-    ExportToS3TaskSpecification'-    { _etstsContainerFormat = Nothing-    , _etstsS3Prefix = Nothing-    , _etstsS3Bucket = Nothing-    , _etstsDiskImageFormat = Nothing-    }---- | 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)-etstsContainerFormat = lens _etstsContainerFormat (\ s a -> s{_etstsContainerFormat = a});---- | The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.-etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsS3Prefix = lens _etstsS3Prefix (\ s a -> s{_etstsS3Prefix = a});---- | The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .-etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsS3Bucket = lens _etstsS3Bucket (\ s a -> s{_etstsS3Bucket = a});---- | The format for the exported image.-etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)-etstsDiskImageFormat = lens _etstsDiskImageFormat (\ s a -> s{_etstsDiskImageFormat = a});--instance Hashable ExportToS3TaskSpecification--instance NFData ExportToS3TaskSpecification--instance ToQuery ExportToS3TaskSpecification where-        toQuery ExportToS3TaskSpecification'{..}-          = mconcat-              ["ContainerFormat" =: _etstsContainerFormat,-               "S3Prefix" =: _etstsS3Prefix,-               "S3Bucket" =: _etstsS3Bucket,-               "DiskImageFormat" =: _etstsDiskImageFormat]---- | A filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria, such as tags, attributes, or IDs.------------ /See:/ 'filter'' smart constructor.-data Filter = Filter'-    { _fValues :: !(Maybe [Text])-    , _fName   :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Filter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fValues' - One or more filter values. Filter values are case-sensitive.------ * 'fName' - The name of the filter. Filter names are case-sensitive.-filter'-    :: Text -- ^ 'fName'-    -> Filter-filter' pName_ =-    Filter'-    { _fValues = Nothing-    , _fName = pName_-    }---- | One or more filter values. Filter values are case-sensitive.-fValues :: Lens' Filter [Text]-fValues = lens _fValues (\ s a -> s{_fValues = a}) . _Default . _Coerce;---- | The name of the filter. Filter names are case-sensitive.-fName :: Lens' Filter Text-fName = lens _fName (\ s a -> s{_fName = a});--instance Hashable Filter--instance NFData Filter--instance ToQuery Filter where-        toQuery Filter'{..}-          = mconcat-              [toQuery (toQueryList "Value" <$> _fValues),-               "Name" =: _fName]---- | Describes a flow log.------------ /See:/ 'flowLog' smart constructor.-data FlowLog = FlowLog'-    { _flCreationTime             :: !(Maybe ISO8601)-    , _flResourceId               :: !(Maybe Text)-    , _flFlowLogStatus            :: !(Maybe Text)-    , _flTrafficType              :: !(Maybe TrafficType)-    , _flDeliverLogsStatus        :: !(Maybe Text)-    , _flDeliverLogsErrorMessage  :: !(Maybe Text)-    , _flLogGroupName             :: !(Maybe Text)-    , _flDeliverLogsPermissionARN :: !(Maybe Text)-    , _flFlowLogId                :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'FlowLog' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'flCreationTime' - The date and time the flow log was created.------ * 'flResourceId' - The ID of the resource on which the flow log was created.------ * 'flFlowLogStatus' - The status of the flow log (@ACTIVE@ ).------ * 'flTrafficType' - The type of traffic captured for the flow log.------ * 'flDeliverLogsStatus' - The status of the logs delivery (@SUCCESS@ | @FAILED@ ).------ * 'flDeliverLogsErrorMessage' - Information about the error that occurred. @Rate limited@ 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. @Access error@ indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. @Unknown error@ indicates an internal error.------ * 'flLogGroupName' - The name of the flow log group.------ * 'flDeliverLogsPermissionARN' - The ARN of the IAM role that posts logs to CloudWatch Logs.------ * 'flFlowLogId' - The flow log ID.-flowLog-    :: FlowLog-flowLog =-    FlowLog'-    { _flCreationTime = Nothing-    , _flResourceId = Nothing-    , _flFlowLogStatus = Nothing-    , _flTrafficType = Nothing-    , _flDeliverLogsStatus = Nothing-    , _flDeliverLogsErrorMessage = Nothing-    , _flLogGroupName = Nothing-    , _flDeliverLogsPermissionARN = Nothing-    , _flFlowLogId = Nothing-    }---- | The date and time the flow log was created.-flCreationTime :: Lens' FlowLog (Maybe UTCTime)-flCreationTime = lens _flCreationTime (\ s a -> s{_flCreationTime = a}) . mapping _Time;---- | The ID of the resource on which the flow log was created.-flResourceId :: Lens' FlowLog (Maybe Text)-flResourceId = lens _flResourceId (\ s a -> s{_flResourceId = a});---- | The status of the flow log (@ACTIVE@ ).-flFlowLogStatus :: Lens' FlowLog (Maybe Text)-flFlowLogStatus = lens _flFlowLogStatus (\ s a -> s{_flFlowLogStatus = a});---- | The type of traffic captured for the flow log.-flTrafficType :: Lens' FlowLog (Maybe TrafficType)-flTrafficType = lens _flTrafficType (\ s a -> s{_flTrafficType = a});---- | The status of the logs delivery (@SUCCESS@ | @FAILED@ ).-flDeliverLogsStatus :: Lens' FlowLog (Maybe Text)-flDeliverLogsStatus = lens _flDeliverLogsStatus (\ s a -> s{_flDeliverLogsStatus = a});---- | Information about the error that occurred. @Rate limited@ 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. @Access error@ indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. @Unknown error@ indicates an internal error.-flDeliverLogsErrorMessage :: Lens' FlowLog (Maybe Text)-flDeliverLogsErrorMessage = lens _flDeliverLogsErrorMessage (\ s a -> s{_flDeliverLogsErrorMessage = a});---- | The name of the flow log group.-flLogGroupName :: Lens' FlowLog (Maybe Text)-flLogGroupName = lens _flLogGroupName (\ s a -> s{_flLogGroupName = a});---- | The ARN of the IAM role that posts logs to CloudWatch Logs.-flDeliverLogsPermissionARN :: Lens' FlowLog (Maybe Text)-flDeliverLogsPermissionARN = lens _flDeliverLogsPermissionARN (\ s a -> s{_flDeliverLogsPermissionARN = a});---- | The flow log ID.-flFlowLogId :: Lens' FlowLog (Maybe Text)-flFlowLogId = lens _flFlowLogId (\ s a -> s{_flFlowLogId = a});--instance FromXML FlowLog where-        parseXML x-          = FlowLog' <$>-              (x .@? "creationTime") <*> (x .@? "resourceId") <*>-                (x .@? "flowLogStatus")-                <*> (x .@? "trafficType")-                <*> (x .@? "deliverLogsStatus")-                <*> (x .@? "deliverLogsErrorMessage")-                <*> (x .@? "logGroupName")-                <*> (x .@? "deliverLogsPermissionArn")-                <*> (x .@? "flowLogId")--instance Hashable FlowLog--instance NFData FlowLog---- | Describes a security group.------------ /See:/ 'groupIdentifier' smart constructor.-data GroupIdentifier = GroupIdentifier'-    { _giGroupId   :: !(Maybe Text)-    , _giGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'GroupIdentifier' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'giGroupId' - The ID of the security group.------ * 'giGroupName' - The name of the security group.-groupIdentifier-    :: GroupIdentifier-groupIdentifier =-    GroupIdentifier'-    { _giGroupId = Nothing-    , _giGroupName = Nothing-    }---- | The ID of the security group.-giGroupId :: Lens' GroupIdentifier (Maybe Text)-giGroupId = lens _giGroupId (\ s a -> s{_giGroupId = a});---- | The name of the security group.-giGroupName :: Lens' GroupIdentifier (Maybe Text)-giGroupName = lens _giGroupName (\ s a -> s{_giGroupName = a});--instance FromXML GroupIdentifier where-        parseXML x-          = GroupIdentifier' <$>-              (x .@? "groupId") <*> (x .@? "groupName")--instance Hashable GroupIdentifier--instance NFData GroupIdentifier--instance ToQuery GroupIdentifier where-        toQuery GroupIdentifier'{..}-          = mconcat-              ["GroupId" =: _giGroupId,-               "GroupName" =: _giGroupName]---- | Describes an event in the history of the Spot fleet request.------------ /See:/ 'historyRecord' smart constructor.-data HistoryRecord = HistoryRecord'-    { _hrTimestamp        :: !ISO8601-    , _hrEventType        :: !EventType-    , _hrEventInformation :: !EventInformation-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HistoryRecord' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hrTimestamp' - The date and time of the event, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).------ * 'hrEventType' - The event type.     * @error@ - Indicates an error with the Spot fleet request.     * @fleetRequestChange@ - Indicates a change in the status or configuration of the Spot fleet request.     * @instanceChange@ - Indicates that an instance was launched or terminated.------ * 'hrEventInformation' - Information about the event.-historyRecord-    :: UTCTime -- ^ 'hrTimestamp'-    -> EventType -- ^ 'hrEventType'-    -> EventInformation -- ^ 'hrEventInformation'-    -> HistoryRecord-historyRecord pTimestamp_ pEventType_ pEventInformation_ =-    HistoryRecord'-    { _hrTimestamp = _Time # pTimestamp_-    , _hrEventType = pEventType_-    , _hrEventInformation = pEventInformation_-    }---- | The date and time of the event, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).-hrTimestamp :: Lens' HistoryRecord UTCTime-hrTimestamp = lens _hrTimestamp (\ s a -> s{_hrTimestamp = a}) . _Time;---- | The event type.     * @error@ - Indicates an error with the Spot fleet request.     * @fleetRequestChange@ - Indicates a change in the status or configuration of the Spot fleet request.     * @instanceChange@ - Indicates that an instance was launched or terminated.-hrEventType :: Lens' HistoryRecord EventType-hrEventType = lens _hrEventType (\ s a -> s{_hrEventType = a});---- | Information about the event.-hrEventInformation :: Lens' HistoryRecord EventInformation-hrEventInformation = lens _hrEventInformation (\ s a -> s{_hrEventInformation = a});--instance FromXML HistoryRecord where-        parseXML x-          = HistoryRecord' <$>-              (x .@ "timestamp") <*> (x .@ "eventType") <*>-                (x .@ "eventInformation")--instance Hashable HistoryRecord--instance NFData HistoryRecord---- | Describes the properties of the Dedicated Host.------------ /See:/ 'host' smart constructor.-data Host = Host'-    { _hState             :: !(Maybe AllocationState)-    , _hClientToken       :: !(Maybe Text)-    , _hHostId            :: !(Maybe Text)-    , _hAvailableCapacity :: !(Maybe AvailableCapacity)-    , _hHostReservationId :: !(Maybe Text)-    , _hHostProperties    :: !(Maybe HostProperties)-    , _hAvailabilityZone  :: !(Maybe Text)-    , _hInstances         :: !(Maybe [HostInstance])-    , _hAutoPlacement     :: !(Maybe AutoPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Host' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hState' - The Dedicated Host's state.------ * 'hClientToken' - Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/ .------ * 'hHostId' - The ID of the Dedicated Host.------ * 'hAvailableCapacity' - The number of new instances that can be launched onto the Dedicated Host.------ * 'hHostReservationId' - The reservation ID of the Dedicated Host. This returns a @null@ response if the Dedicated Host doesn't have an associated reservation.------ * 'hHostProperties' - The hardware specifications of the Dedicated Host.------ * 'hAvailabilityZone' - The Availability Zone of the Dedicated Host.------ * 'hInstances' - The IDs and instance type that are currently running on the Dedicated Host.------ * 'hAutoPlacement' - Whether auto-placement is on or off.-host-    :: Host-host =-    Host'-    { _hState = Nothing-    , _hClientToken = Nothing-    , _hHostId = Nothing-    , _hAvailableCapacity = Nothing-    , _hHostReservationId = Nothing-    , _hHostProperties = Nothing-    , _hAvailabilityZone = Nothing-    , _hInstances = Nothing-    , _hAutoPlacement = Nothing-    }---- | The Dedicated Host's state.-hState :: Lens' Host (Maybe AllocationState)-hState = lens _hState (\ s a -> s{_hState = a});---- | Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/ .-hClientToken :: Lens' Host (Maybe Text)-hClientToken = lens _hClientToken (\ s a -> s{_hClientToken = a});---- | The ID of the Dedicated Host.-hHostId :: Lens' Host (Maybe Text)-hHostId = lens _hHostId (\ s a -> s{_hHostId = a});---- | The number of new instances that can be launched onto the Dedicated Host.-hAvailableCapacity :: Lens' Host (Maybe AvailableCapacity)-hAvailableCapacity = lens _hAvailableCapacity (\ s a -> s{_hAvailableCapacity = a});---- | The reservation ID of the Dedicated Host. This returns a @null@ response if the Dedicated Host doesn't have an associated reservation.-hHostReservationId :: Lens' Host (Maybe Text)-hHostReservationId = lens _hHostReservationId (\ s a -> s{_hHostReservationId = a});---- | The hardware specifications of the Dedicated Host.-hHostProperties :: Lens' Host (Maybe HostProperties)-hHostProperties = lens _hHostProperties (\ s a -> s{_hHostProperties = a});---- | The Availability Zone of the Dedicated Host.-hAvailabilityZone :: Lens' Host (Maybe Text)-hAvailabilityZone = lens _hAvailabilityZone (\ s a -> s{_hAvailabilityZone = a});---- | The IDs and instance type that are currently running on the Dedicated Host.-hInstances :: Lens' Host [HostInstance]-hInstances = lens _hInstances (\ s a -> s{_hInstances = a}) . _Default . _Coerce;---- | Whether auto-placement is on or off.-hAutoPlacement :: Lens' Host (Maybe AutoPlacement)-hAutoPlacement = lens _hAutoPlacement (\ s a -> s{_hAutoPlacement = a});--instance FromXML Host where-        parseXML x-          = Host' <$>-              (x .@? "state") <*> (x .@? "clientToken") <*>-                (x .@? "hostId")-                <*> (x .@? "availableCapacity")-                <*> (x .@? "hostReservationId")-                <*> (x .@? "hostProperties")-                <*> (x .@? "availabilityZone")-                <*>-                (x .@? "instances" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "autoPlacement")--instance Hashable Host--instance NFData Host---- | Describes an instance running on a Dedicated Host.------------ /See:/ 'hostInstance' smart constructor.-data HostInstance = HostInstance'-    { _hiInstanceId   :: !(Maybe Text)-    , _hiInstanceType :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hiInstanceId' - the IDs of instances that are running on the Dedicated Host.------ * 'hiInstanceType' - The instance type size (for example, @m3.medium@ ) of the running instance.-hostInstance-    :: HostInstance-hostInstance =-    HostInstance'-    { _hiInstanceId = Nothing-    , _hiInstanceType = Nothing-    }---- | the IDs of instances that are running on the Dedicated Host.-hiInstanceId :: Lens' HostInstance (Maybe Text)-hiInstanceId = lens _hiInstanceId (\ s a -> s{_hiInstanceId = a});---- | The instance type size (for example, @m3.medium@ ) of the running instance.-hiInstanceType :: Lens' HostInstance (Maybe Text)-hiInstanceType = lens _hiInstanceType (\ s a -> s{_hiInstanceType = a});--instance FromXML HostInstance where-        parseXML x-          = HostInstance' <$>-              (x .@? "instanceId") <*> (x .@? "instanceType")--instance Hashable HostInstance--instance NFData HostInstance---- | Details about the Dedicated Host Reservation offering.------------ /See:/ 'hostOffering' smart constructor.-data HostOffering = HostOffering'-    { _hoInstanceFamily :: !(Maybe Text)-    , _hoCurrencyCode   :: !(Maybe CurrencyCodeValues)-    , _hoHourlyPrice    :: !(Maybe Text)-    , _hoUpfrontPrice   :: !(Maybe Text)-    , _hoOfferingId     :: !(Maybe Text)-    , _hoDuration       :: !(Maybe Int)-    , _hoPaymentOption  :: !(Maybe PaymentOption)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostOffering' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hoInstanceFamily' - The instance family of the offering.------ * 'hoCurrencyCode' - The currency of the offering.------ * 'hoHourlyPrice' - The hourly price of the offering.------ * 'hoUpfrontPrice' - The upfront price of the offering. Does not apply to No Upfront offerings.------ * 'hoOfferingId' - The ID of the offering.------ * 'hoDuration' - The duration of the offering (in seconds).------ * 'hoPaymentOption' - The available payment option.-hostOffering-    :: HostOffering-hostOffering =-    HostOffering'-    { _hoInstanceFamily = Nothing-    , _hoCurrencyCode = Nothing-    , _hoHourlyPrice = Nothing-    , _hoUpfrontPrice = Nothing-    , _hoOfferingId = Nothing-    , _hoDuration = Nothing-    , _hoPaymentOption = Nothing-    }---- | The instance family of the offering.-hoInstanceFamily :: Lens' HostOffering (Maybe Text)-hoInstanceFamily = lens _hoInstanceFamily (\ s a -> s{_hoInstanceFamily = a});---- | The currency of the offering.-hoCurrencyCode :: Lens' HostOffering (Maybe CurrencyCodeValues)-hoCurrencyCode = lens _hoCurrencyCode (\ s a -> s{_hoCurrencyCode = a});---- | The hourly price of the offering.-hoHourlyPrice :: Lens' HostOffering (Maybe Text)-hoHourlyPrice = lens _hoHourlyPrice (\ s a -> s{_hoHourlyPrice = a});---- | The upfront price of the offering. Does not apply to No Upfront offerings.-hoUpfrontPrice :: Lens' HostOffering (Maybe Text)-hoUpfrontPrice = lens _hoUpfrontPrice (\ s a -> s{_hoUpfrontPrice = a});---- | The ID of the offering.-hoOfferingId :: Lens' HostOffering (Maybe Text)-hoOfferingId = lens _hoOfferingId (\ s a -> s{_hoOfferingId = a});---- | The duration of the offering (in seconds).-hoDuration :: Lens' HostOffering (Maybe Int)-hoDuration = lens _hoDuration (\ s a -> s{_hoDuration = a});---- | The available payment option.-hoPaymentOption :: Lens' HostOffering (Maybe PaymentOption)-hoPaymentOption = lens _hoPaymentOption (\ s a -> s{_hoPaymentOption = a});--instance FromXML HostOffering where-        parseXML x-          = HostOffering' <$>-              (x .@? "instanceFamily") <*> (x .@? "currencyCode")-                <*> (x .@? "hourlyPrice")-                <*> (x .@? "upfrontPrice")-                <*> (x .@? "offeringId")-                <*> (x .@? "duration")-                <*> (x .@? "paymentOption")--instance Hashable HostOffering--instance NFData HostOffering---- | Describes properties of a Dedicated Host.------------ /See:/ 'hostProperties' smart constructor.-data HostProperties = HostProperties'-    { _hpInstanceType :: !(Maybe Text)-    , _hpTotalVCPUs   :: !(Maybe Int)-    , _hpCores        :: !(Maybe Int)-    , _hpSockets      :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostProperties' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hpInstanceType' - The instance type size that the Dedicated Host supports (for example, @m3.medium@ ).------ * 'hpTotalVCPUs' - The number of vCPUs on the Dedicated Host.------ * 'hpCores' - The number of cores on the Dedicated Host.------ * 'hpSockets' - The number of sockets on the Dedicated Host.-hostProperties-    :: HostProperties-hostProperties =-    HostProperties'-    { _hpInstanceType = Nothing-    , _hpTotalVCPUs = Nothing-    , _hpCores = Nothing-    , _hpSockets = Nothing-    }---- | The instance type size that the Dedicated Host supports (for example, @m3.medium@ ).-hpInstanceType :: Lens' HostProperties (Maybe Text)-hpInstanceType = lens _hpInstanceType (\ s a -> s{_hpInstanceType = a});---- | The number of vCPUs on the Dedicated Host.-hpTotalVCPUs :: Lens' HostProperties (Maybe Int)-hpTotalVCPUs = lens _hpTotalVCPUs (\ s a -> s{_hpTotalVCPUs = a});---- | The number of cores on the Dedicated Host.-hpCores :: Lens' HostProperties (Maybe Int)-hpCores = lens _hpCores (\ s a -> s{_hpCores = a});---- | The number of sockets on the Dedicated Host.-hpSockets :: Lens' HostProperties (Maybe Int)-hpSockets = lens _hpSockets (\ s a -> s{_hpSockets = a});--instance FromXML HostProperties where-        parseXML x-          = HostProperties' <$>-              (x .@? "instanceType") <*> (x .@? "totalVCpus") <*>-                (x .@? "cores")-                <*> (x .@? "sockets")--instance Hashable HostProperties--instance NFData HostProperties---- | Details about the Dedicated Host Reservation and associated Dedicated Hosts.------------ /See:/ 'hostReservation' smart constructor.-data HostReservation = HostReservation'-    { _hrState             :: !(Maybe ReservationState)-    , _hrInstanceFamily    :: !(Maybe Text)-    , _hrCurrencyCode      :: !(Maybe CurrencyCodeValues)-    , _hrHostReservationId :: !(Maybe Text)-    , _hrStart             :: !(Maybe ISO8601)-    , _hrHourlyPrice       :: !(Maybe Text)-    , _hrCount             :: !(Maybe Int)-    , _hrUpfrontPrice      :: !(Maybe Text)-    , _hrEnd               :: !(Maybe ISO8601)-    , _hrHostIdSet         :: !(Maybe [Text])-    , _hrOfferingId        :: !(Maybe Text)-    , _hrDuration          :: !(Maybe Int)-    , _hrPaymentOption     :: !(Maybe PaymentOption)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostReservation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hrState' - The state of the reservation.------ * 'hrInstanceFamily' - 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.------ * 'hrCurrencyCode' - The currency in which the @upfrontPrice@ and @hourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .------ * 'hrHostReservationId' - The ID of the reservation that specifies the associated Dedicated Hosts.------ * 'hrStart' - The date and time that the reservation started.------ * 'hrHourlyPrice' - The hourly price of the reservation.------ * 'hrCount' - The number of Dedicated Hosts the reservation is associated with.------ * 'hrUpfrontPrice' - The upfront price of the reservation.------ * 'hrEnd' - The date and time that the reservation ends.------ * 'hrHostIdSet' - The IDs of the Dedicated Hosts associated with the reservation.------ * 'hrOfferingId' - The ID of the reservation. This remains the same regardless of which Dedicated Hosts are associated with it.------ * 'hrDuration' - The length of the reservation's term, specified in seconds. Can be @31536000 (1 year)@ | @94608000 (3 years)@ .------ * 'hrPaymentOption' - The payment option selected for this reservation.-hostReservation-    :: HostReservation-hostReservation =-    HostReservation'-    { _hrState = Nothing-    , _hrInstanceFamily = Nothing-    , _hrCurrencyCode = Nothing-    , _hrHostReservationId = Nothing-    , _hrStart = Nothing-    , _hrHourlyPrice = Nothing-    , _hrCount = Nothing-    , _hrUpfrontPrice = Nothing-    , _hrEnd = Nothing-    , _hrHostIdSet = Nothing-    , _hrOfferingId = Nothing-    , _hrDuration = Nothing-    , _hrPaymentOption = Nothing-    }---- | The state of the reservation.-hrState :: Lens' HostReservation (Maybe ReservationState)-hrState = lens _hrState (\ s a -> s{_hrState = 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.-hrInstanceFamily :: Lens' HostReservation (Maybe Text)-hrInstanceFamily = lens _hrInstanceFamily (\ s a -> s{_hrInstanceFamily = a});---- | The currency in which the @upfrontPrice@ and @hourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .-hrCurrencyCode :: Lens' HostReservation (Maybe CurrencyCodeValues)-hrCurrencyCode = lens _hrCurrencyCode (\ s a -> s{_hrCurrencyCode = a});---- | The ID of the reservation that specifies the associated Dedicated Hosts.-hrHostReservationId :: Lens' HostReservation (Maybe Text)-hrHostReservationId = lens _hrHostReservationId (\ s a -> s{_hrHostReservationId = a});---- | The date and time that the reservation started.-hrStart :: Lens' HostReservation (Maybe UTCTime)-hrStart = lens _hrStart (\ s a -> s{_hrStart = a}) . mapping _Time;---- | The hourly price of the reservation.-hrHourlyPrice :: Lens' HostReservation (Maybe Text)-hrHourlyPrice = lens _hrHourlyPrice (\ s a -> s{_hrHourlyPrice = a});---- | The number of Dedicated Hosts the reservation is associated with.-hrCount :: Lens' HostReservation (Maybe Int)-hrCount = lens _hrCount (\ s a -> s{_hrCount = a});---- | The upfront price of the reservation.-hrUpfrontPrice :: Lens' HostReservation (Maybe Text)-hrUpfrontPrice = lens _hrUpfrontPrice (\ s a -> s{_hrUpfrontPrice = a});---- | The date and time that the reservation ends.-hrEnd :: Lens' HostReservation (Maybe UTCTime)-hrEnd = lens _hrEnd (\ s a -> s{_hrEnd = a}) . mapping _Time;---- | The IDs of the Dedicated Hosts associated with the reservation.-hrHostIdSet :: Lens' HostReservation [Text]-hrHostIdSet = lens _hrHostIdSet (\ s a -> s{_hrHostIdSet = a}) . _Default . _Coerce;---- | The ID of the reservation. This remains the same regardless of which Dedicated Hosts are associated with it.-hrOfferingId :: Lens' HostReservation (Maybe Text)-hrOfferingId = lens _hrOfferingId (\ s a -> s{_hrOfferingId = a});---- | The length of the reservation's term, specified in seconds. Can be @31536000 (1 year)@ | @94608000 (3 years)@ .-hrDuration :: Lens' HostReservation (Maybe Int)-hrDuration = lens _hrDuration (\ s a -> s{_hrDuration = a});---- | The payment option selected for this reservation.-hrPaymentOption :: Lens' HostReservation (Maybe PaymentOption)-hrPaymentOption = lens _hrPaymentOption (\ s a -> s{_hrPaymentOption = a});--instance FromXML HostReservation where-        parseXML x-          = HostReservation' <$>-              (x .@? "state") <*> (x .@? "instanceFamily") <*>-                (x .@? "currencyCode")-                <*> (x .@? "hostReservationId")-                <*> (x .@? "start")-                <*> (x .@? "hourlyPrice")-                <*> (x .@? "count")-                <*> (x .@? "upfrontPrice")-                <*> (x .@? "end")-                <*>-                (x .@? "hostIdSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "offeringId")-                <*> (x .@? "duration")-                <*> (x .@? "paymentOption")--instance Hashable HostReservation--instance NFData HostReservation---- | Describes an IAM instance profile.------------ /See:/ 'iamInstanceProfile' smart constructor.-data IAMInstanceProfile = IAMInstanceProfile'-    { _iapARN :: !(Maybe Text)-    , _iapId  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IAMInstanceProfile' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iapARN' - The Amazon Resource Name (ARN) of the instance profile.------ * 'iapId' - The ID of the instance profile.-iamInstanceProfile-    :: IAMInstanceProfile-iamInstanceProfile =-    IAMInstanceProfile'-    { _iapARN = Nothing-    , _iapId = Nothing-    }---- | The Amazon Resource Name (ARN) of the instance profile.-iapARN :: Lens' IAMInstanceProfile (Maybe Text)-iapARN = lens _iapARN (\ s a -> s{_iapARN = a});---- | The ID of the instance profile.-iapId :: Lens' IAMInstanceProfile (Maybe Text)-iapId = lens _iapId (\ s a -> s{_iapId = a});--instance FromXML IAMInstanceProfile where-        parseXML x-          = IAMInstanceProfile' <$>-              (x .@? "arn") <*> (x .@? "id")--instance Hashable IAMInstanceProfile--instance NFData IAMInstanceProfile---- | Describes an IAM instance profile.------------ /See:/ 'iamInstanceProfileSpecification' smart constructor.-data IAMInstanceProfileSpecification = IAMInstanceProfileSpecification'-    { _iapsARN  :: !(Maybe Text)-    , _iapsName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IAMInstanceProfileSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iapsARN' - The Amazon Resource Name (ARN) of the instance profile.------ * 'iapsName' - The name of the instance profile.-iamInstanceProfileSpecification-    :: IAMInstanceProfileSpecification-iamInstanceProfileSpecification =-    IAMInstanceProfileSpecification'-    { _iapsARN = Nothing-    , _iapsName = Nothing-    }---- | The Amazon Resource Name (ARN) of the instance profile.-iapsARN :: Lens' IAMInstanceProfileSpecification (Maybe Text)-iapsARN = lens _iapsARN (\ s a -> s{_iapsARN = a});---- | The name of the instance profile.-iapsName :: Lens' IAMInstanceProfileSpecification (Maybe Text)-iapsName = lens _iapsName (\ s a -> s{_iapsName = a});--instance FromXML IAMInstanceProfileSpecification-         where-        parseXML x-          = IAMInstanceProfileSpecification' <$>-              (x .@? "arn") <*> (x .@? "name")--instance Hashable IAMInstanceProfileSpecification--instance NFData IAMInstanceProfileSpecification--instance ToQuery IAMInstanceProfileSpecification-         where-        toQuery IAMInstanceProfileSpecification'{..}-          = mconcat ["Arn" =: _iapsARN, "Name" =: _iapsName]---- | Describes the ICMP type and code.------------ /See:/ 'icmpTypeCode' smart constructor.-data ICMPTypeCode = ICMPTypeCode'-    { _itcCode :: !(Maybe Int)-    , _itcType :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ICMPTypeCode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'itcCode' - The ICMP code. A value of -1 means all codes for the specified ICMP type.------ * 'itcType' - The ICMP type. A value of -1 means all types.-icmpTypeCode-    :: ICMPTypeCode-icmpTypeCode =-    ICMPTypeCode'-    { _itcCode = Nothing-    , _itcType = Nothing-    }---- | The ICMP code. A value of -1 means all codes for the specified ICMP type.-itcCode :: Lens' ICMPTypeCode (Maybe Int)-itcCode = lens _itcCode (\ s a -> s{_itcCode = a});---- | The ICMP type. A value of -1 means all types.-itcType :: Lens' ICMPTypeCode (Maybe Int)-itcType = lens _itcType (\ s a -> s{_itcType = a});--instance FromXML ICMPTypeCode where-        parseXML x-          = ICMPTypeCode' <$> (x .@? "code") <*> (x .@? "type")--instance Hashable ICMPTypeCode--instance NFData ICMPTypeCode--instance ToQuery ICMPTypeCode where-        toQuery ICMPTypeCode'{..}-          = mconcat ["Code" =: _itcCode, "Type" =: _itcType]---- | Describes a security group rule.------------ /See:/ 'ipPermission' smart constructor.-data IPPermission = IPPermission'-    { _ipFromPort         :: !(Maybe Int)-    , _ipUserIdGroupPairs :: !(Maybe [UserIdGroupPair])-    , _ipPrefixListIds    :: !(Maybe [PrefixListId])-    , _ipToPort           :: !(Maybe Int)-    , _ipIPv6Ranges       :: !(Maybe [IPv6Range])-    , _ipIPRanges         :: !(Maybe [IPRange])-    , _ipIPProtocol       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ipFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of @-1@ indicates all ICMP/ICMPv6 types.------ * 'ipUserIdGroupPairs' - One or more security group and AWS account ID pairs.------ * 'ipPrefixListIds' - (Valid for 'AuthorizeSecurityGroupEgress' , 'RevokeSecurityGroupEgress' and 'DescribeSecurityGroups' only) One or more prefix list IDs for an AWS service. In an 'AuthorizeSecurityGroupEgress' request, this is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.------ * 'ipToPort' - The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of @-1@ indicates all ICMP/ICMPv6 codes for the specified ICMP type.------ * 'ipIPv6Ranges' - [EC2-VPC only] One or more IPv6 ranges.------ * 'ipIPRanges' - One or more IPv4 ranges.------ * 'ipIPProtocol' - The IP protocol name (@tcp@ , @udp@ , @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers> ).  [EC2-VPC only] Use @-1@ to specify all protocols. When authorizing security group rules, specifying @-1@ or a protocol number other than @tcp@ , @udp@ , @icmp@ , or @58@ (ICMPv6) allows traffic on all ports, regardless of any port range you specify. For @tcp@ , @udp@ , and @icmp@ , you must specify a port range. For @58@ (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed when authorizing rules.-ipPermission-    :: Text -- ^ 'ipIPProtocol'-    -> IPPermission-ipPermission pIPProtocol_ =-    IPPermission'-    { _ipFromPort = Nothing-    , _ipUserIdGroupPairs = Nothing-    , _ipPrefixListIds = Nothing-    , _ipToPort = Nothing-    , _ipIPv6Ranges = Nothing-    , _ipIPRanges = Nothing-    , _ipIPProtocol = pIPProtocol_-    }---- | The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of @-1@ indicates all ICMP/ICMPv6 types.-ipFromPort :: Lens' IPPermission (Maybe Int)-ipFromPort = lens _ipFromPort (\ s a -> s{_ipFromPort = a});---- | One or more security group and AWS account ID pairs.-ipUserIdGroupPairs :: Lens' IPPermission [UserIdGroupPair]-ipUserIdGroupPairs = lens _ipUserIdGroupPairs (\ s a -> s{_ipUserIdGroupPairs = a}) . _Default . _Coerce;---- | (Valid for 'AuthorizeSecurityGroupEgress' , 'RevokeSecurityGroupEgress' and 'DescribeSecurityGroups' only) One or more prefix list IDs for an AWS service. In an 'AuthorizeSecurityGroupEgress' 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]-ipPrefixListIds = lens _ipPrefixListIds (\ s a -> s{_ipPrefixListIds = a}) . _Default . _Coerce;---- | The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of @-1@ indicates all ICMP/ICMPv6 codes for the specified ICMP type.-ipToPort :: Lens' IPPermission (Maybe Int)-ipToPort = lens _ipToPort (\ s a -> s{_ipToPort = a});---- | [EC2-VPC only] One or more IPv6 ranges.-ipIPv6Ranges :: Lens' IPPermission [IPv6Range]-ipIPv6Ranges = lens _ipIPv6Ranges (\ s a -> s{_ipIPv6Ranges = a}) . _Default . _Coerce;---- | One or more IPv4 ranges.-ipIPRanges :: Lens' IPPermission [IPRange]-ipIPRanges = lens _ipIPRanges (\ s a -> s{_ipIPRanges = a}) . _Default . _Coerce;---- | The IP protocol name (@tcp@ , @udp@ , @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers> ).  [EC2-VPC only] Use @-1@ to specify all protocols. When authorizing security group rules, specifying @-1@ or a protocol number other than @tcp@ , @udp@ , @icmp@ , or @58@ (ICMPv6) allows traffic on all ports, regardless of any port range you specify. For @tcp@ , @udp@ , and @icmp@ , you must specify a port range. For @58@ (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-ipIPProtocol = lens _ipIPProtocol (\ s a -> s{_ipIPProtocol = a});--instance FromXML IPPermission where-        parseXML x-          = IPPermission' <$>-              (x .@? "fromPort") <*>-                (x .@? "groups" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "prefixListIds" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "toPort")-                <*>-                (x .@? "ipv6Ranges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "ipRanges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "ipProtocol")--instance Hashable IPPermission--instance NFData IPPermission--instance ToQuery IPPermission where-        toQuery IPPermission'{..}-          = mconcat-              ["FromPort" =: _ipFromPort,-               toQuery-                 (toQueryList "Groups" <$> _ipUserIdGroupPairs),-               toQuery-                 (toQueryList "PrefixListIds" <$> _ipPrefixListIds),-               "ToPort" =: _ipToPort,-               toQuery (toQueryList "Ipv6Ranges" <$> _ipIPv6Ranges),-               toQuery (toQueryList "IpRanges" <$> _ipIPRanges),-               "IpProtocol" =: _ipIPProtocol]---- | Describes an IPv4 range.------------ /See:/ 'ipRange' smart constructor.-newtype IPRange = IPRange'-    { _irCidrIP :: Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'irCidrIP' - 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.-ipRange-    :: Text -- ^ 'irCidrIP'-    -> IPRange-ipRange pCidrIP_ =-    IPRange'-    { _irCidrIP = pCidrIP_-    }---- | The IPv4 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv4 address, use the /32 prefix.-irCidrIP :: Lens' IPRange Text-irCidrIP = lens _irCidrIP (\ s a -> s{_irCidrIP = a});--instance FromXML IPRange where-        parseXML x = IPRange' <$> (x .@ "cidrIp")--instance Hashable IPRange--instance NFData IPRange--instance ToQuery IPRange where-        toQuery IPRange'{..}-          = mconcat ["CidrIp" =: _irCidrIP]---- | Describes an IPv6 CIDR block.------------ /See:/ 'ipv6CidrBlock' smart constructor.-newtype IPv6CidrBlock = IPv6CidrBlock'-    { _icbIPv6CidrBlock :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPv6CidrBlock' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icbIPv6CidrBlock' - The IPv6 CIDR block.-ipv6CidrBlock-    :: IPv6CidrBlock-ipv6CidrBlock =-    IPv6CidrBlock'-    { _icbIPv6CidrBlock = Nothing-    }---- | The IPv6 CIDR block.-icbIPv6CidrBlock :: Lens' IPv6CidrBlock (Maybe Text)-icbIPv6CidrBlock = lens _icbIPv6CidrBlock (\ s a -> s{_icbIPv6CidrBlock = a});--instance FromXML IPv6CidrBlock where-        parseXML x-          = IPv6CidrBlock' <$> (x .@? "ipv6CidrBlock")--instance Hashable IPv6CidrBlock--instance NFData IPv6CidrBlock---- | [EC2-VPC only] Describes an IPv6 range.------------ /See:/ 'ipv6Range' smart constructor.-newtype IPv6Range = IPv6Range'-    { _irCidrIPv6 :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPv6Range' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'irCidrIPv6' - 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.-ipv6Range-    :: IPv6Range-ipv6Range =-    IPv6Range'-    { _irCidrIPv6 = Nothing-    }---- | The IPv6 CIDR range. You can either specify a CIDR range or a source security group, not both. To specify a single IPv6 address, use the /128 prefix.-irCidrIPv6 :: Lens' IPv6Range (Maybe Text)-irCidrIPv6 = lens _irCidrIPv6 (\ s a -> s{_irCidrIPv6 = a});--instance FromXML IPv6Range where-        parseXML x = IPv6Range' <$> (x .@? "cidrIpv6")--instance Hashable IPv6Range--instance NFData IPv6Range--instance ToQuery IPv6Range where-        toQuery IPv6Range'{..}-          = mconcat ["CidrIpv6" =: _irCidrIPv6]---- | Describes the ID format for a resource.------------ /See:/ 'idFormat' smart constructor.-data IdFormat = IdFormat'-    { _ifUseLongIds :: !(Maybe Bool)-    , _ifDeadline   :: !(Maybe ISO8601)-    , _ifResource   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IdFormat' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ifUseLongIds' - Indicates whether longer IDs (17-character IDs) are enabled for the resource.------ * 'ifDeadline' - 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.------ * 'ifResource' - The type of resource.-idFormat-    :: IdFormat-idFormat =-    IdFormat'-    { _ifUseLongIds = Nothing-    , _ifDeadline = Nothing-    , _ifResource = Nothing-    }---- | Indicates whether longer IDs (17-character IDs) are enabled for the resource.-ifUseLongIds :: Lens' IdFormat (Maybe Bool)-ifUseLongIds = lens _ifUseLongIds (\ s a -> s{_ifUseLongIds = 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.-ifDeadline :: Lens' IdFormat (Maybe UTCTime)-ifDeadline = lens _ifDeadline (\ s a -> s{_ifDeadline = a}) . mapping _Time;---- | The type of resource.-ifResource :: Lens' IdFormat (Maybe Text)-ifResource = lens _ifResource (\ s a -> s{_ifResource = a});--instance FromXML IdFormat where-        parseXML x-          = IdFormat' <$>-              (x .@? "useLongIds") <*> (x .@? "deadline") <*>-                (x .@? "resource")--instance Hashable IdFormat--instance NFData IdFormat---- | Describes an image.------------ /See:/ 'image' smart constructor.-data Image = Image'-    { _iPlatform            :: !(Maybe PlatformValues)-    , _iEnaSupport          :: !(Maybe Bool)-    , _iImageOwnerAlias     :: !(Maybe Text)-    , _iRAMDiskId           :: !(Maybe Text)-    , _iKernelId            :: !(Maybe Text)-    , _iRootDeviceName      :: !(Maybe Text)-    , _iSRIOVNetSupport     :: !(Maybe Text)-    , _iName                :: !(Maybe Text)-    , _iCreationDate        :: !(Maybe Text)-    , _iProductCodes        :: !(Maybe [ProductCode])-    , _iStateReason         :: !(Maybe StateReason)-    , _iDescription         :: !(Maybe Text)-    , _iBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _iTags                :: !(Maybe [Tag])-    , _iImageId             :: !Text-    , _iImageLocation       :: !Text-    , _iState               :: !ImageState-    , _iOwnerId             :: !Text-    , _iPublic              :: !Bool-    , _iArchitecture        :: !ArchitectureValues-    , _iImageType           :: !ImageTypeValues-    , _iRootDeviceType      :: !DeviceType-    , _iVirtualizationType  :: !VirtualizationType-    , _iHypervisor          :: !HypervisorType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Image' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iPlatform' - The value is @Windows@ for Windows AMIs; otherwise blank.------ * 'iEnaSupport' - Specifies whether enhanced networking with ENA is enabled.------ * 'iImageOwnerAlias' - The AWS account alias (for example, @amazon@ , @self@ ) or the AWS account ID of the AMI owner.------ * 'iRAMDiskId' - The RAM disk associated with the image, if any. Only applicable for machine images.------ * 'iKernelId' - The kernel associated with the image, if any. Only applicable for machine images.------ * 'iRootDeviceName' - The device name of the root device (for example, @/dev/sda1@ or @/dev/xvda@ ).------ * 'iSRIOVNetSupport' - Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.------ * 'iName' - The name of the AMI that was provided during image creation.------ * 'iCreationDate' - The date and time the image was created.------ * 'iProductCodes' - Any product codes associated with the AMI.------ * 'iStateReason' - The reason for the state change.------ * 'iDescription' - The description of the AMI that was provided during image creation.------ * 'iBlockDeviceMappings' - Any block device mapping entries.------ * 'iTags' - Any tags assigned to the image.------ * 'iImageId' - The ID of the AMI.------ * 'iImageLocation' - The location of the AMI.------ * 'iState' - The current state of the AMI. If the state is @available@ , the image is successfully registered and can be used to launch an instance.------ * 'iOwnerId' - The AWS account ID of the image owner.------ * 'iPublic' - Indicates whether the image has public launch permissions. The value is @true@ if this image has public launch permissions or @false@ if it has only implicit and explicit launch permissions.------ * 'iArchitecture' - The architecture of the image.------ * 'iImageType' - The type of image.------ * 'iRootDeviceType' - The type of root device used by the AMI. The AMI can use an EBS volume or an instance store volume.------ * 'iVirtualizationType' - The type of virtualization of the AMI.------ * 'iHypervisor' - The hypervisor type of the image.-image-    :: Text -- ^ 'iImageId'-    -> Text -- ^ 'iImageLocation'-    -> ImageState -- ^ 'iState'-    -> Text -- ^ 'iOwnerId'-    -> Bool -- ^ 'iPublic'-    -> ArchitectureValues -- ^ 'iArchitecture'-    -> ImageTypeValues -- ^ 'iImageType'-    -> DeviceType -- ^ 'iRootDeviceType'-    -> VirtualizationType -- ^ 'iVirtualizationType'-    -> HypervisorType -- ^ 'iHypervisor'-    -> Image-image pImageId_ pImageLocation_ pState_ pOwnerId_ pPublic_ pArchitecture_ pImageType_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ =-    Image'-    { _iPlatform = Nothing-    , _iEnaSupport = Nothing-    , _iImageOwnerAlias = Nothing-    , _iRAMDiskId = Nothing-    , _iKernelId = Nothing-    , _iRootDeviceName = Nothing-    , _iSRIOVNetSupport = Nothing-    , _iName = Nothing-    , _iCreationDate = Nothing-    , _iProductCodes = Nothing-    , _iStateReason = Nothing-    , _iDescription = Nothing-    , _iBlockDeviceMappings = Nothing-    , _iTags = Nothing-    , _iImageId = pImageId_-    , _iImageLocation = pImageLocation_-    , _iState = pState_-    , _iOwnerId = pOwnerId_-    , _iPublic = pPublic_-    , _iArchitecture = pArchitecture_-    , _iImageType = pImageType_-    , _iRootDeviceType = pRootDeviceType_-    , _iVirtualizationType = pVirtualizationType_-    , _iHypervisor = pHypervisor_-    }---- | The value is @Windows@ for Windows AMIs; otherwise blank.-iPlatform :: Lens' Image (Maybe PlatformValues)-iPlatform = lens _iPlatform (\ s a -> s{_iPlatform = a});---- | Specifies whether enhanced networking with ENA is enabled.-iEnaSupport :: Lens' Image (Maybe Bool)-iEnaSupport = lens _iEnaSupport (\ s a -> s{_iEnaSupport = a});---- | The AWS account alias (for example, @amazon@ , @self@ ) or the AWS account ID of the AMI owner.-iImageOwnerAlias :: Lens' Image (Maybe Text)-iImageOwnerAlias = lens _iImageOwnerAlias (\ s a -> s{_iImageOwnerAlias = a});---- | The RAM disk associated with the image, if any. Only applicable for machine images.-iRAMDiskId :: Lens' Image (Maybe Text)-iRAMDiskId = lens _iRAMDiskId (\ s a -> s{_iRAMDiskId = a});---- | The kernel associated with the image, if any. Only applicable for machine images.-iKernelId :: Lens' Image (Maybe Text)-iKernelId = lens _iKernelId (\ s a -> s{_iKernelId = a});---- | The device name of the root device (for example, @/dev/sda1@ or @/dev/xvda@ ).-iRootDeviceName :: Lens' Image (Maybe Text)-iRootDeviceName = lens _iRootDeviceName (\ s a -> s{_iRootDeviceName = a});---- | Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.-iSRIOVNetSupport :: Lens' Image (Maybe Text)-iSRIOVNetSupport = lens _iSRIOVNetSupport (\ s a -> s{_iSRIOVNetSupport = a});---- | The name of the AMI that was provided during image creation.-iName :: Lens' Image (Maybe Text)-iName = lens _iName (\ s a -> s{_iName = a});---- | The date and time the image was created.-iCreationDate :: Lens' Image (Maybe Text)-iCreationDate = lens _iCreationDate (\ s a -> s{_iCreationDate = a});---- | Any product codes associated with the AMI.-iProductCodes :: Lens' Image [ProductCode]-iProductCodes = lens _iProductCodes (\ s a -> s{_iProductCodes = a}) . _Default . _Coerce;---- | The reason for the state change.-iStateReason :: Lens' Image (Maybe StateReason)-iStateReason = lens _iStateReason (\ s a -> s{_iStateReason = a});---- | The description of the AMI that was provided during image creation.-iDescription :: Lens' Image (Maybe Text)-iDescription = lens _iDescription (\ s a -> s{_iDescription = a});---- | Any block device mapping entries.-iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]-iBlockDeviceMappings = lens _iBlockDeviceMappings (\ s a -> s{_iBlockDeviceMappings = a}) . _Default . _Coerce;---- | Any tags assigned to the image.-iTags :: Lens' Image [Tag]-iTags = lens _iTags (\ s a -> s{_iTags = a}) . _Default . _Coerce;---- | The ID of the AMI.-iImageId :: Lens' Image Text-iImageId = lens _iImageId (\ s a -> s{_iImageId = a});---- | The location of the AMI.-iImageLocation :: Lens' Image Text-iImageLocation = lens _iImageLocation (\ s a -> s{_iImageLocation = a});---- | The current state of the AMI. If the state is @available@ , the image is successfully registered and can be used to launch an instance.-iState :: Lens' Image ImageState-iState = lens _iState (\ s a -> s{_iState = a});---- | The AWS account ID of the image owner.-iOwnerId :: Lens' Image Text-iOwnerId = lens _iOwnerId (\ s a -> s{_iOwnerId = a});---- | Indicates whether the image has public launch permissions. The value is @true@ if this image has public launch permissions or @false@ if it has only implicit and explicit launch permissions.-iPublic :: Lens' Image Bool-iPublic = lens _iPublic (\ s a -> s{_iPublic = a});---- | The architecture of the image.-iArchitecture :: Lens' Image ArchitectureValues-iArchitecture = lens _iArchitecture (\ s a -> s{_iArchitecture = a});---- | The type of image.-iImageType :: Lens' Image ImageTypeValues-iImageType = lens _iImageType (\ s a -> s{_iImageType = a});---- | 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-iRootDeviceType = lens _iRootDeviceType (\ s a -> s{_iRootDeviceType = a});---- | The type of virtualization of the AMI.-iVirtualizationType :: Lens' Image VirtualizationType-iVirtualizationType = lens _iVirtualizationType (\ s a -> s{_iVirtualizationType = a});---- | The hypervisor type of the image.-iHypervisor :: Lens' Image HypervisorType-iHypervisor = lens _iHypervisor (\ s a -> s{_iHypervisor = a});--instance FromXML Image where-        parseXML x-          = Image' <$>-              (x .@? "platform") <*> (x .@? "enaSupport") <*>-                (x .@? "imageOwnerAlias")-                <*> (x .@? "ramdiskId")-                <*> (x .@? "kernelId")-                <*> (x .@? "rootDeviceName")-                <*> (x .@? "sriovNetSupport")-                <*> (x .@? "name")-                <*> (x .@? "creationDate")-                <*>-                (x .@? "productCodes" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "stateReason")-                <*> (x .@? "description")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "imageId")-                <*> (x .@ "imageLocation")-                <*> (x .@ "imageState")-                <*> (x .@ "imageOwnerId")-                <*> (x .@ "isPublic")-                <*> (x .@ "architecture")-                <*> (x .@ "imageType")-                <*> (x .@ "rootDeviceType")-                <*> (x .@ "virtualizationType")-                <*> (x .@ "hypervisor")--instance Hashable Image--instance NFData Image---- | Describes the disk container object for an import image task.------------ /See:/ 'imageDiskContainer' smart constructor.-data ImageDiskContainer = ImageDiskContainer'-    { _idcFormat      :: !(Maybe Text)-    , _idcURL         :: !(Maybe Text)-    , _idcDeviceName  :: !(Maybe Text)-    , _idcUserBucket  :: !(Maybe UserBucket)-    , _idcDescription :: !(Maybe Text)-    , _idcSnapshotId  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImageDiskContainer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'idcFormat' - The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@------ * 'idcURL' - The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)------ * 'idcDeviceName' - The block device mapping for the disk.------ * 'idcUserBucket' - The S3 bucket for the disk image.------ * 'idcDescription' - The description of the disk image.------ * 'idcSnapshotId' - The ID of the EBS snapshot to be used for importing the snapshot.-imageDiskContainer-    :: ImageDiskContainer-imageDiskContainer =-    ImageDiskContainer'-    { _idcFormat = Nothing-    , _idcURL = Nothing-    , _idcDeviceName = Nothing-    , _idcUserBucket = Nothing-    , _idcDescription = Nothing-    , _idcSnapshotId = Nothing-    }---- | The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@-idcFormat :: Lens' ImageDiskContainer (Maybe Text)-idcFormat = lens _idcFormat (\ s a -> s{_idcFormat = a});---- | The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)-idcURL :: Lens' ImageDiskContainer (Maybe Text)-idcURL = lens _idcURL (\ s a -> s{_idcURL = a});---- | The block device mapping for the disk.-idcDeviceName :: Lens' ImageDiskContainer (Maybe Text)-idcDeviceName = lens _idcDeviceName (\ s a -> s{_idcDeviceName = a});---- | The S3 bucket for the disk image.-idcUserBucket :: Lens' ImageDiskContainer (Maybe UserBucket)-idcUserBucket = lens _idcUserBucket (\ s a -> s{_idcUserBucket = a});---- | The description of the disk image.-idcDescription :: Lens' ImageDiskContainer (Maybe Text)-idcDescription = lens _idcDescription (\ s a -> s{_idcDescription = a});---- | The ID of the EBS snapshot to be used for importing the snapshot.-idcSnapshotId :: Lens' ImageDiskContainer (Maybe Text)-idcSnapshotId = lens _idcSnapshotId (\ s a -> s{_idcSnapshotId = a});--instance Hashable ImageDiskContainer--instance NFData ImageDiskContainer--instance ToQuery ImageDiskContainer where-        toQuery ImageDiskContainer'{..}-          = mconcat-              ["Format" =: _idcFormat, "Url" =: _idcURL,-               "DeviceName" =: _idcDeviceName,-               "UserBucket" =: _idcUserBucket,-               "Description" =: _idcDescription,-               "SnapshotId" =: _idcSnapshotId]---- | Describes an import image task.------------ /See:/ 'importImageTask' smart constructor.-data ImportImageTask = ImportImageTask'-    { _iitStatus          :: !(Maybe Text)-    , _iitHypervisor      :: !(Maybe Text)-    , _iitPlatform        :: !(Maybe Text)-    , _iitProgress        :: !(Maybe Text)-    , _iitLicenseType     :: !(Maybe Text)-    , _iitSnapshotDetails :: !(Maybe [SnapshotDetail])-    , _iitStatusMessage   :: !(Maybe Text)-    , _iitImageId         :: !(Maybe Text)-    , _iitImportTaskId    :: !(Maybe Text)-    , _iitArchitecture    :: !(Maybe Text)-    , _iitDescription     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportImageTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iitStatus' - A brief status for the import image task.------ * 'iitHypervisor' - The target hypervisor for the import task. Valid values: @xen@------ * 'iitPlatform' - The description string for the import image task.------ * 'iitProgress' - The percentage of progress of the import image task.------ * 'iitLicenseType' - The license type of the virtual machine.------ * 'iitSnapshotDetails' - Information about the snapshots.------ * 'iitStatusMessage' - A descriptive status message for the import image task.------ * 'iitImageId' - The ID of the Amazon Machine Image (AMI) of the imported virtual machine.------ * 'iitImportTaskId' - The ID of the import image task.------ * 'iitArchitecture' - The architecture of the virtual machine. Valid values: @i386@ | @x86_64@------ * 'iitDescription' - A description of the import task.-importImageTask-    :: ImportImageTask-importImageTask =-    ImportImageTask'-    { _iitStatus = Nothing-    , _iitHypervisor = Nothing-    , _iitPlatform = Nothing-    , _iitProgress = Nothing-    , _iitLicenseType = Nothing-    , _iitSnapshotDetails = Nothing-    , _iitStatusMessage = Nothing-    , _iitImageId = Nothing-    , _iitImportTaskId = Nothing-    , _iitArchitecture = Nothing-    , _iitDescription = Nothing-    }---- | A brief status for the import image task.-iitStatus :: Lens' ImportImageTask (Maybe Text)-iitStatus = lens _iitStatus (\ s a -> s{_iitStatus = a});---- | The target hypervisor for the import task. Valid values: @xen@-iitHypervisor :: Lens' ImportImageTask (Maybe Text)-iitHypervisor = lens _iitHypervisor (\ s a -> s{_iitHypervisor = a});---- | The description string for the import image task.-iitPlatform :: Lens' ImportImageTask (Maybe Text)-iitPlatform = lens _iitPlatform (\ s a -> s{_iitPlatform = a});---- | The percentage of progress of the import image task.-iitProgress :: Lens' ImportImageTask (Maybe Text)-iitProgress = lens _iitProgress (\ s a -> s{_iitProgress = a});---- | The license type of the virtual machine.-iitLicenseType :: Lens' ImportImageTask (Maybe Text)-iitLicenseType = lens _iitLicenseType (\ s a -> s{_iitLicenseType = a});---- | Information about the snapshots.-iitSnapshotDetails :: Lens' ImportImageTask [SnapshotDetail]-iitSnapshotDetails = lens _iitSnapshotDetails (\ s a -> s{_iitSnapshotDetails = a}) . _Default . _Coerce;---- | A descriptive status message for the import image task.-iitStatusMessage :: Lens' ImportImageTask (Maybe Text)-iitStatusMessage = lens _iitStatusMessage (\ s a -> s{_iitStatusMessage = a});---- | The ID of the Amazon Machine Image (AMI) of the imported virtual machine.-iitImageId :: Lens' ImportImageTask (Maybe Text)-iitImageId = lens _iitImageId (\ s a -> s{_iitImageId = a});---- | The ID of the import image task.-iitImportTaskId :: Lens' ImportImageTask (Maybe Text)-iitImportTaskId = lens _iitImportTaskId (\ s a -> s{_iitImportTaskId = a});---- | The architecture of the virtual machine. Valid values: @i386@ | @x86_64@-iitArchitecture :: Lens' ImportImageTask (Maybe Text)-iitArchitecture = lens _iitArchitecture (\ s a -> s{_iitArchitecture = a});---- | A description of the import task.-iitDescription :: Lens' ImportImageTask (Maybe Text)-iitDescription = lens _iitDescription (\ s a -> s{_iitDescription = a});--instance FromXML ImportImageTask where-        parseXML x-          = ImportImageTask' <$>-              (x .@? "status") <*> (x .@? "hypervisor") <*>-                (x .@? "platform")-                <*> (x .@? "progress")-                <*> (x .@? "licenseType")-                <*>-                (x .@? "snapshotDetailSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "statusMessage")-                <*> (x .@? "imageId")-                <*> (x .@? "importTaskId")-                <*> (x .@? "architecture")-                <*> (x .@? "description")--instance Hashable ImportImageTask--instance NFData ImportImageTask---- | Describes the launch specification for VM import.------------ /See:/ 'importInstanceLaunchSpecification' smart constructor.-data ImportInstanceLaunchSpecification = ImportInstanceLaunchSpecification'-    { _iilsAdditionalInfo                    :: !(Maybe Text)-    , _iilsGroupNames                        :: !(Maybe [Text])-    , _iilsSubnetId                          :: !(Maybe Text)-    , _iilsInstanceType                      :: !(Maybe InstanceType)-    , _iilsGroupIds                          :: !(Maybe [Text])-    , _iilsUserData                          :: !(Maybe UserData)-    , _iilsMonitoring                        :: !(Maybe Bool)-    , _iilsPrivateIPAddress                  :: !(Maybe Text)-    , _iilsInstanceInitiatedShutdownBehavior :: !(Maybe ShutdownBehavior)-    , _iilsArchitecture                      :: !(Maybe ArchitectureValues)-    , _iilsPlacement                         :: !(Maybe Placement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportInstanceLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iilsAdditionalInfo' - Reserved.------ * 'iilsGroupNames' - One or more security group names.------ * 'iilsSubnetId' - [EC2-VPC] The ID of the subnet in which to launch the instance.------ * 'iilsInstanceType' - The instance type. For more information about the instance types that you can import, see <http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#vmimport-instance-types Instance Types> in the VM Import/Export User Guide.------ * 'iilsGroupIds' - One or more security group IDs.------ * 'iilsUserData' - The user data to make available to the instance. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.------ * 'iilsMonitoring' - Indicates whether monitoring is enabled.------ * 'iilsPrivateIPAddress' - [EC2-VPC] An available IP address from the IP address range of the subnet.------ * 'iilsInstanceInitiatedShutdownBehavior' - Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).------ * 'iilsArchitecture' - The architecture of the instance.------ * 'iilsPlacement' - The placement information for the instance.-importInstanceLaunchSpecification-    :: ImportInstanceLaunchSpecification-importInstanceLaunchSpecification =-    ImportInstanceLaunchSpecification'-    { _iilsAdditionalInfo = Nothing-    , _iilsGroupNames = Nothing-    , _iilsSubnetId = Nothing-    , _iilsInstanceType = Nothing-    , _iilsGroupIds = Nothing-    , _iilsUserData = Nothing-    , _iilsMonitoring = Nothing-    , _iilsPrivateIPAddress = Nothing-    , _iilsInstanceInitiatedShutdownBehavior = Nothing-    , _iilsArchitecture = Nothing-    , _iilsPlacement = Nothing-    }---- | Reserved.-iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsAdditionalInfo = lens _iilsAdditionalInfo (\ s a -> s{_iilsAdditionalInfo = a});---- | One or more security group names.-iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]-iilsGroupNames = lens _iilsGroupNames (\ s a -> s{_iilsGroupNames = a}) . _Default . _Coerce;---- | [EC2-VPC] The ID of the subnet in which to launch the instance.-iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsSubnetId = lens _iilsSubnetId (\ s a -> s{_iilsSubnetId = a});---- | The instance type. For more information about the instance types that you can import, see <http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#vmimport-instance-types Instance Types> in the VM Import/Export User Guide.-iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)-iilsInstanceType = lens _iilsInstanceType (\ s a -> s{_iilsInstanceType = a});---- | One or more security group IDs.-iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]-iilsGroupIds = lens _iilsGroupIds (\ s a -> s{_iilsGroupIds = a}) . _Default . _Coerce;---- | The user data to make available to the instance. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.-iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)-iilsUserData = lens _iilsUserData (\ s a -> s{_iilsUserData = a});---- | Indicates whether monitoring is enabled.-iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)-iilsMonitoring = lens _iilsMonitoring (\ s a -> s{_iilsMonitoring = a});---- | [EC2-VPC] An available IP address from the IP address range of the subnet.-iilsPrivateIPAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsPrivateIPAddress = lens _iilsPrivateIPAddress (\ s a -> s{_iilsPrivateIPAddress = a});---- | 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)-iilsInstanceInitiatedShutdownBehavior = lens _iilsInstanceInitiatedShutdownBehavior (\ s a -> s{_iilsInstanceInitiatedShutdownBehavior = a});---- | The architecture of the instance.-iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)-iilsArchitecture = lens _iilsArchitecture (\ s a -> s{_iilsArchitecture = a});---- | The placement information for the instance.-iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)-iilsPlacement = lens _iilsPlacement (\ s a -> s{_iilsPlacement = a});--instance Hashable ImportInstanceLaunchSpecification--instance NFData ImportInstanceLaunchSpecification--instance ToQuery ImportInstanceLaunchSpecification-         where-        toQuery ImportInstanceLaunchSpecification'{..}-          = mconcat-              ["AdditionalInfo" =: _iilsAdditionalInfo,-               toQuery-                 (toQueryList "GroupName" <$> _iilsGroupNames),-               "SubnetId" =: _iilsSubnetId,-               "InstanceType" =: _iilsInstanceType,-               toQuery (toQueryList "GroupId" <$> _iilsGroupIds),-               "UserData" =: _iilsUserData,-               "Monitoring" =: _iilsMonitoring,-               "PrivateIpAddress" =: _iilsPrivateIPAddress,-               "InstanceInitiatedShutdownBehavior" =:-                 _iilsInstanceInitiatedShutdownBehavior,-               "Architecture" =: _iilsArchitecture,-               "Placement" =: _iilsPlacement]---- | Describes an import instance task.------------ /See:/ 'importInstanceTaskDetails' smart constructor.-data ImportInstanceTaskDetails = ImportInstanceTaskDetails'-    { _iitdInstanceId  :: !(Maybe Text)-    , _iitdPlatform    :: !(Maybe PlatformValues)-    , _iitdDescription :: !(Maybe Text)-    , _iitdVolumes     :: ![ImportInstanceVolumeDetailItem]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportInstanceTaskDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iitdInstanceId' - The ID of the instance.------ * 'iitdPlatform' - The instance operating system.------ * 'iitdDescription' - A description of the task.------ * 'iitdVolumes' - One or more volumes.-importInstanceTaskDetails-    :: ImportInstanceTaskDetails-importInstanceTaskDetails =-    ImportInstanceTaskDetails'-    { _iitdInstanceId = Nothing-    , _iitdPlatform = Nothing-    , _iitdDescription = Nothing-    , _iitdVolumes = mempty-    }---- | The ID of the instance.-iitdInstanceId :: Lens' ImportInstanceTaskDetails (Maybe Text)-iitdInstanceId = lens _iitdInstanceId (\ s a -> s{_iitdInstanceId = a});---- | The instance operating system.-iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)-iitdPlatform = lens _iitdPlatform (\ s a -> s{_iitdPlatform = a});---- | A description of the task.-iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)-iitdDescription = lens _iitdDescription (\ s a -> s{_iitdDescription = a});---- | One or more volumes.-iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]-iitdVolumes = lens _iitdVolumes (\ s a -> s{_iitdVolumes = a}) . _Coerce;--instance FromXML ImportInstanceTaskDetails where-        parseXML x-          = ImportInstanceTaskDetails' <$>-              (x .@? "instanceId") <*> (x .@? "platform") <*>-                (x .@? "description")-                <*>-                (x .@? "volumes" .!@ mempty >>= parseXMLList "item")--instance Hashable ImportInstanceTaskDetails--instance NFData ImportInstanceTaskDetails---- | Describes an import volume task.------------ /See:/ 'importInstanceVolumeDetailItem' smart constructor.-data ImportInstanceVolumeDetailItem = ImportInstanceVolumeDetailItem'-    { _iivdiStatusMessage    :: !(Maybe Text)-    , _iivdiDescription      :: !(Maybe Text)-    , _iivdiBytesConverted   :: !Integer-    , _iivdiAvailabilityZone :: !Text-    , _iivdiImage            :: !DiskImageDescription-    , _iivdiVolume           :: !DiskImageVolumeDescription-    , _iivdiStatus           :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportInstanceVolumeDetailItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iivdiStatusMessage' - The status information or errors related to the disk image.------ * 'iivdiDescription' - A description of the task.------ * 'iivdiBytesConverted' - The number of bytes converted so far.------ * 'iivdiAvailabilityZone' - The Availability Zone where the resulting instance will reside.------ * 'iivdiImage' - The image.------ * 'iivdiVolume' - The volume.------ * 'iivdiStatus' - The status of the import of this particular disk image.-importInstanceVolumeDetailItem-    :: Integer -- ^ 'iivdiBytesConverted'-    -> Text -- ^ 'iivdiAvailabilityZone'-    -> DiskImageDescription -- ^ 'iivdiImage'-    -> DiskImageVolumeDescription -- ^ 'iivdiVolume'-    -> Text -- ^ 'iivdiStatus'-    -> ImportInstanceVolumeDetailItem-importInstanceVolumeDetailItem pBytesConverted_ pAvailabilityZone_ pImage_ pVolume_ pStatus_ =-    ImportInstanceVolumeDetailItem'-    { _iivdiStatusMessage = Nothing-    , _iivdiDescription = Nothing-    , _iivdiBytesConverted = pBytesConverted_-    , _iivdiAvailabilityZone = pAvailabilityZone_-    , _iivdiImage = pImage_-    , _iivdiVolume = pVolume_-    , _iivdiStatus = pStatus_-    }---- | The status information or errors related to the disk image.-iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)-iivdiStatusMessage = lens _iivdiStatusMessage (\ s a -> s{_iivdiStatusMessage = a});---- | A description of the task.-iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)-iivdiDescription = lens _iivdiDescription (\ s a -> s{_iivdiDescription = a});---- | The number of bytes converted so far.-iivdiBytesConverted :: Lens' ImportInstanceVolumeDetailItem Integer-iivdiBytesConverted = lens _iivdiBytesConverted (\ s a -> s{_iivdiBytesConverted = a});---- | The Availability Zone where the resulting instance will reside.-iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text-iivdiAvailabilityZone = lens _iivdiAvailabilityZone (\ s a -> s{_iivdiAvailabilityZone = a});---- | The image.-iivdiImage :: Lens' ImportInstanceVolumeDetailItem DiskImageDescription-iivdiImage = lens _iivdiImage (\ s a -> s{_iivdiImage = a});---- | The volume.-iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription-iivdiVolume = lens _iivdiVolume (\ s a -> s{_iivdiVolume = a});---- | The status of the import of this particular disk image.-iivdiStatus :: Lens' ImportInstanceVolumeDetailItem Text-iivdiStatus = lens _iivdiStatus (\ s a -> s{_iivdiStatus = a});--instance FromXML ImportInstanceVolumeDetailItem where-        parseXML x-          = ImportInstanceVolumeDetailItem' <$>-              (x .@? "statusMessage") <*> (x .@? "description") <*>-                (x .@ "bytesConverted")-                <*> (x .@ "availabilityZone")-                <*> (x .@ "image")-                <*> (x .@ "volume")-                <*> (x .@ "status")--instance Hashable ImportInstanceVolumeDetailItem--instance NFData ImportInstanceVolumeDetailItem---- | Describes an import snapshot task.------------ /See:/ 'importSnapshotTask' smart constructor.-data ImportSnapshotTask = ImportSnapshotTask'-    { _istSnapshotTaskDetail :: !(Maybe SnapshotTaskDetail)-    , _istImportTaskId       :: !(Maybe Text)-    , _istDescription        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportSnapshotTask' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'istSnapshotTaskDetail' - Describes an import snapshot task.------ * 'istImportTaskId' - The ID of the import snapshot task.------ * 'istDescription' - A description of the import snapshot task.-importSnapshotTask-    :: ImportSnapshotTask-importSnapshotTask =-    ImportSnapshotTask'-    { _istSnapshotTaskDetail = Nothing-    , _istImportTaskId = Nothing-    , _istDescription = Nothing-    }---- | Describes an import snapshot task.-istSnapshotTaskDetail :: Lens' ImportSnapshotTask (Maybe SnapshotTaskDetail)-istSnapshotTaskDetail = lens _istSnapshotTaskDetail (\ s a -> s{_istSnapshotTaskDetail = a});---- | The ID of the import snapshot task.-istImportTaskId :: Lens' ImportSnapshotTask (Maybe Text)-istImportTaskId = lens _istImportTaskId (\ s a -> s{_istImportTaskId = a});---- | A description of the import snapshot task.-istDescription :: Lens' ImportSnapshotTask (Maybe Text)-istDescription = lens _istDescription (\ s a -> s{_istDescription = a});--instance FromXML ImportSnapshotTask where-        parseXML x-          = ImportSnapshotTask' <$>-              (x .@? "snapshotTaskDetail") <*>-                (x .@? "importTaskId")-                <*> (x .@? "description")--instance Hashable ImportSnapshotTask--instance NFData ImportSnapshotTask---- | Describes an import volume task.------------ /See:/ 'importVolumeTaskDetails' smart constructor.-data ImportVolumeTaskDetails = ImportVolumeTaskDetails'-    { _ivtdDescription      :: !(Maybe Text)-    , _ivtdBytesConverted   :: !Integer-    , _ivtdAvailabilityZone :: !Text-    , _ivtdImage            :: !DiskImageDescription-    , _ivtdVolume           :: !DiskImageVolumeDescription-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ImportVolumeTaskDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ivtdDescription' - The description you provided when starting the import volume task.------ * 'ivtdBytesConverted' - The number of bytes converted so far.------ * 'ivtdAvailabilityZone' - The Availability Zone where the resulting volume will reside.------ * 'ivtdImage' - The image.------ * 'ivtdVolume' - The volume.-importVolumeTaskDetails-    :: Integer -- ^ 'ivtdBytesConverted'-    -> Text -- ^ 'ivtdAvailabilityZone'-    -> DiskImageDescription -- ^ 'ivtdImage'-    -> DiskImageVolumeDescription -- ^ 'ivtdVolume'-    -> ImportVolumeTaskDetails-importVolumeTaskDetails pBytesConverted_ pAvailabilityZone_ pImage_ pVolume_ =-    ImportVolumeTaskDetails'-    { _ivtdDescription = Nothing-    , _ivtdBytesConverted = pBytesConverted_-    , _ivtdAvailabilityZone = pAvailabilityZone_-    , _ivtdImage = pImage_-    , _ivtdVolume = pVolume_-    }---- | The description you provided when starting the import volume task.-ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)-ivtdDescription = lens _ivtdDescription (\ s a -> s{_ivtdDescription = a});---- | The number of bytes converted so far.-ivtdBytesConverted :: Lens' ImportVolumeTaskDetails Integer-ivtdBytesConverted = lens _ivtdBytesConverted (\ s a -> s{_ivtdBytesConverted = a});---- | The Availability Zone where the resulting volume will reside.-ivtdAvailabilityZone :: Lens' ImportVolumeTaskDetails Text-ivtdAvailabilityZone = lens _ivtdAvailabilityZone (\ s a -> s{_ivtdAvailabilityZone = a});---- | The image.-ivtdImage :: Lens' ImportVolumeTaskDetails DiskImageDescription-ivtdImage = lens _ivtdImage (\ s a -> s{_ivtdImage = a});---- | The volume.-ivtdVolume :: Lens' ImportVolumeTaskDetails DiskImageVolumeDescription-ivtdVolume = lens _ivtdVolume (\ s a -> s{_ivtdVolume = a});--instance FromXML ImportVolumeTaskDetails where-        parseXML x-          = ImportVolumeTaskDetails' <$>-              (x .@? "description") <*> (x .@ "bytesConverted") <*>-                (x .@ "availabilityZone")-                <*> (x .@ "image")-                <*> (x .@ "volume")--instance Hashable ImportVolumeTaskDetails--instance NFData ImportVolumeTaskDetails---- | Describes an instance.------------ /See:/ 'instance'' smart constructor.-data Instance = Instance'-    { _insPublicDNSName         :: !(Maybe Text)-    , _insPlatform              :: !(Maybe PlatformValues)-    , _insSecurityGroups        :: !(Maybe [GroupIdentifier])-    , _insClientToken           :: !(Maybe Text)-    , _insEnaSupport            :: !(Maybe Bool)-    , _insSourceDestCheck       :: !(Maybe Bool)-    , _insVPCId                 :: !(Maybe Text)-    , _insKeyName               :: !(Maybe Text)-    , _insNetworkInterfaces     :: !(Maybe [InstanceNetworkInterface])-    , _insRAMDiskId             :: !(Maybe Text)-    , _insSubnetId              :: !(Maybe Text)-    , _insKernelId              :: !(Maybe Text)-    , _insRootDeviceName        :: !(Maybe Text)-    , _insSRIOVNetSupport       :: !(Maybe Text)-    , _insEBSOptimized          :: !(Maybe Bool)-    , _insStateTransitionReason :: !(Maybe Text)-    , _insInstanceLifecycle     :: !(Maybe InstanceLifecycleType)-    , _insIAMInstanceProfile    :: !(Maybe IAMInstanceProfile)-    , _insPrivateIPAddress      :: !(Maybe Text)-    , _insProductCodes          :: !(Maybe [ProductCode])-    , _insSpotInstanceRequestId :: !(Maybe Text)-    , _insPrivateDNSName        :: !(Maybe Text)-    , _insStateReason           :: !(Maybe StateReason)-    , _insBlockDeviceMappings   :: !(Maybe [InstanceBlockDeviceMapping])-    , _insPublicIPAddress       :: !(Maybe Text)-    , _insTags                  :: !(Maybe [Tag])-    , _insInstanceId            :: !Text-    , _insImageId               :: !Text-    , _insAMILaunchIndex        :: !Int-    , _insInstanceType          :: !InstanceType-    , _insLaunchTime            :: !ISO8601-    , _insPlacement             :: !Placement-    , _insMonitoring            :: !Monitoring-    , _insArchitecture          :: !ArchitectureValues-    , _insRootDeviceType        :: !DeviceType-    , _insVirtualizationType    :: !VirtualizationType-    , _insHypervisor            :: !HypervisorType-    , _insState                 :: !InstanceState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Instance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'insPublicDNSName' - (IPv4 only) The public DNS name assigned to the instance. This name is not available until the instance enters the @running@ state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.------ * 'insPlatform' - The value is @Windows@ for Windows instances; otherwise blank.------ * 'insSecurityGroups' - One or more security groups for the instance.------ * 'insClientToken' - The idempotency token you provided when you launched the instance, if applicable.------ * 'insEnaSupport' - Specifies whether enhanced networking with ENA is enabled.------ * 'insSourceDestCheck' - Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the instance to perform NAT. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances> in the /Amazon Virtual Private Cloud User Guide/ .------ * 'insVPCId' - [EC2-VPC] The ID of the VPC in which the instance is running.------ * 'insKeyName' - The name of the key pair, if this instance was launched with an associated key pair.------ * 'insNetworkInterfaces' - [EC2-VPC] One or more network interfaces for the instance.------ * 'insRAMDiskId' - The RAM disk associated with this instance, if applicable.------ * 'insSubnetId' - [EC2-VPC] The ID of the subnet in which the instance is running.------ * 'insKernelId' - The kernel associated with this instance, if applicable.------ * 'insRootDeviceName' - The root device name (for example, @/dev/sda1@ or @/dev/xvda@ ).------ * 'insSRIOVNetSupport' - Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.------ * 'insEBSOptimized' - Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.------ * 'insStateTransitionReason' - The reason for the most recent state transition. This might be an empty string.------ * 'insInstanceLifecycle' - Indicates whether this is a Spot instance or a Scheduled Instance.------ * 'insIAMInstanceProfile' - The IAM instance profile associated with the instance, if applicable.------ * 'insPrivateIPAddress' - The private IPv4 address assigned to the instance.------ * 'insProductCodes' - The product codes attached to this instance, if applicable.------ * 'insSpotInstanceRequestId' - If the request is a Spot instance request, the ID of the request.------ * 'insPrivateDNSName' - (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 @running@ state.  [EC2-VPC] The Amazon-provided DNS server will resolve Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.------ * 'insStateReason' - The reason for the most recent state transition.------ * 'insBlockDeviceMappings' - Any block device mapping entries for the instance.------ * 'insPublicIPAddress' - The public IPv4 address assigned to the instance, if applicable.------ * 'insTags' - Any tags assigned to the instance.------ * 'insInstanceId' - The ID of the instance.------ * 'insImageId' - The ID of the AMI used to launch the instance.------ * 'insAMILaunchIndex' - The AMI launch index, which can be used to find this instance in the launch group.------ * 'insInstanceType' - The instance type.------ * 'insLaunchTime' - The time the instance was launched.------ * 'insPlacement' - The location where the instance launched, if applicable.------ * 'insMonitoring' - The monitoring for the instance.------ * 'insArchitecture' - The architecture of the image.------ * 'insRootDeviceType' - The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.------ * 'insVirtualizationType' - The virtualization type of the instance.------ * 'insHypervisor' - The hypervisor type of the instance.------ * 'insState' - The current state of the instance.-instance'-    :: Text -- ^ 'insInstanceId'-    -> Text -- ^ 'insImageId'-    -> Int -- ^ 'insAMILaunchIndex'-    -> InstanceType -- ^ 'insInstanceType'-    -> UTCTime -- ^ 'insLaunchTime'-    -> Placement -- ^ 'insPlacement'-    -> Monitoring -- ^ 'insMonitoring'-    -> ArchitectureValues -- ^ 'insArchitecture'-    -> DeviceType -- ^ 'insRootDeviceType'-    -> VirtualizationType -- ^ 'insVirtualizationType'-    -> HypervisorType -- ^ 'insHypervisor'-    -> InstanceState -- ^ 'insState'-    -> Instance-instance' pInstanceId_ pImageId_ pAMILaunchIndex_ pInstanceType_ pLaunchTime_ pPlacement_ pMonitoring_ pArchitecture_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ pState_ =-    Instance'-    { _insPublicDNSName = Nothing-    , _insPlatform = Nothing-    , _insSecurityGroups = Nothing-    , _insClientToken = Nothing-    , _insEnaSupport = Nothing-    , _insSourceDestCheck = Nothing-    , _insVPCId = Nothing-    , _insKeyName = Nothing-    , _insNetworkInterfaces = Nothing-    , _insRAMDiskId = Nothing-    , _insSubnetId = Nothing-    , _insKernelId = Nothing-    , _insRootDeviceName = Nothing-    , _insSRIOVNetSupport = Nothing-    , _insEBSOptimized = Nothing-    , _insStateTransitionReason = Nothing-    , _insInstanceLifecycle = Nothing-    , _insIAMInstanceProfile = Nothing-    , _insPrivateIPAddress = Nothing-    , _insProductCodes = Nothing-    , _insSpotInstanceRequestId = Nothing-    , _insPrivateDNSName = Nothing-    , _insStateReason = Nothing-    , _insBlockDeviceMappings = Nothing-    , _insPublicIPAddress = Nothing-    , _insTags = Nothing-    , _insInstanceId = pInstanceId_-    , _insImageId = pImageId_-    , _insAMILaunchIndex = pAMILaunchIndex_-    , _insInstanceType = pInstanceType_-    , _insLaunchTime = _Time # pLaunchTime_-    , _insPlacement = pPlacement_-    , _insMonitoring = pMonitoring_-    , _insArchitecture = pArchitecture_-    , _insRootDeviceType = pRootDeviceType_-    , _insVirtualizationType = pVirtualizationType_-    , _insHypervisor = pHypervisor_-    , _insState = pState_-    }---- | (IPv4 only) The public DNS name assigned to the instance. This name is not available until the instance enters the @running@ state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.-insPublicDNSName :: Lens' Instance (Maybe Text)-insPublicDNSName = lens _insPublicDNSName (\ s a -> s{_insPublicDNSName = a});---- | The value is @Windows@ for Windows instances; otherwise blank.-insPlatform :: Lens' Instance (Maybe PlatformValues)-insPlatform = lens _insPlatform (\ s a -> s{_insPlatform = a});---- | One or more security groups for the instance.-insSecurityGroups :: Lens' Instance [GroupIdentifier]-insSecurityGroups = lens _insSecurityGroups (\ s a -> s{_insSecurityGroups = a}) . _Default . _Coerce;---- | The idempotency token you provided when you launched the instance, if applicable.-insClientToken :: Lens' Instance (Maybe Text)-insClientToken = lens _insClientToken (\ s a -> s{_insClientToken = a});---- | Specifies whether enhanced networking with ENA is enabled.-insEnaSupport :: Lens' Instance (Maybe Bool)-insEnaSupport = lens _insEnaSupport (\ s a -> s{_insEnaSupport = a});---- | Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of @true@ means checking is enabled, and @false@ means checking is disabled. The value must be @false@ for the instance to perform NAT. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances> in the /Amazon Virtual Private Cloud User Guide/ .-insSourceDestCheck :: Lens' Instance (Maybe Bool)-insSourceDestCheck = lens _insSourceDestCheck (\ s a -> s{_insSourceDestCheck = a});---- | [EC2-VPC] The ID of the VPC in which the instance is running.-insVPCId :: Lens' Instance (Maybe Text)-insVPCId = lens _insVPCId (\ s a -> s{_insVPCId = a});---- | The name of the key pair, if this instance was launched with an associated key pair.-insKeyName :: Lens' Instance (Maybe Text)-insKeyName = lens _insKeyName (\ s a -> s{_insKeyName = a});---- | [EC2-VPC] One or more network interfaces for the instance.-insNetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]-insNetworkInterfaces = lens _insNetworkInterfaces (\ s a -> s{_insNetworkInterfaces = a}) . _Default . _Coerce;---- | The RAM disk associated with this instance, if applicable.-insRAMDiskId :: Lens' Instance (Maybe Text)-insRAMDiskId = lens _insRAMDiskId (\ s a -> s{_insRAMDiskId = a});---- | [EC2-VPC] The ID of the subnet in which the instance is running.-insSubnetId :: Lens' Instance (Maybe Text)-insSubnetId = lens _insSubnetId (\ s a -> s{_insSubnetId = a});---- | The kernel associated with this instance, if applicable.-insKernelId :: Lens' Instance (Maybe Text)-insKernelId = lens _insKernelId (\ s a -> s{_insKernelId = a});---- | The root device name (for example, @/dev/sda1@ or @/dev/xvda@ ).-insRootDeviceName :: Lens' Instance (Maybe Text)-insRootDeviceName = lens _insRootDeviceName (\ s a -> s{_insRootDeviceName = a});---- | Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.-insSRIOVNetSupport :: Lens' Instance (Maybe Text)-insSRIOVNetSupport = lens _insSRIOVNetSupport (\ s a -> s{_insSRIOVNetSupport = a});---- | Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal 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)-insEBSOptimized = lens _insEBSOptimized (\ s a -> s{_insEBSOptimized = a});---- | The reason for the most recent state transition. This might be an empty string.-insStateTransitionReason :: Lens' Instance (Maybe Text)-insStateTransitionReason = lens _insStateTransitionReason (\ s a -> s{_insStateTransitionReason = a});---- | Indicates whether this is a Spot instance or a Scheduled Instance.-insInstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)-insInstanceLifecycle = lens _insInstanceLifecycle (\ s a -> s{_insInstanceLifecycle = a});---- | The IAM instance profile associated with the instance, if applicable.-insIAMInstanceProfile :: Lens' Instance (Maybe IAMInstanceProfile)-insIAMInstanceProfile = lens _insIAMInstanceProfile (\ s a -> s{_insIAMInstanceProfile = a});---- | The private IPv4 address assigned to the instance.-insPrivateIPAddress :: Lens' Instance (Maybe Text)-insPrivateIPAddress = lens _insPrivateIPAddress (\ s a -> s{_insPrivateIPAddress = a});---- | The product codes attached to this instance, if applicable.-insProductCodes :: Lens' Instance [ProductCode]-insProductCodes = lens _insProductCodes (\ s a -> s{_insProductCodes = a}) . _Default . _Coerce;---- | If the request is a Spot instance request, the ID of the request.-insSpotInstanceRequestId :: Lens' Instance (Maybe Text)-insSpotInstanceRequestId = lens _insSpotInstanceRequestId (\ s a -> s{_insSpotInstanceRequestId = 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 @running@ state.  [EC2-VPC] The Amazon-provided DNS server will resolve Amazon-provided private DNS hostnames if you've enabled DNS resolution and DNS hostnames in your VPC. If you are not using the Amazon-provided DNS server in your VPC, your custom domain name servers must resolve the hostname as appropriate.-insPrivateDNSName :: Lens' Instance (Maybe Text)-insPrivateDNSName = lens _insPrivateDNSName (\ s a -> s{_insPrivateDNSName = a});---- | The reason for the most recent state transition.-insStateReason :: Lens' Instance (Maybe StateReason)-insStateReason = lens _insStateReason (\ s a -> s{_insStateReason = a});---- | Any block device mapping entries for the instance.-insBlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]-insBlockDeviceMappings = lens _insBlockDeviceMappings (\ s a -> s{_insBlockDeviceMappings = a}) . _Default . _Coerce;---- | The public IPv4 address assigned to the instance, if applicable.-insPublicIPAddress :: Lens' Instance (Maybe Text)-insPublicIPAddress = lens _insPublicIPAddress (\ s a -> s{_insPublicIPAddress = a});---- | Any tags assigned to the instance.-insTags :: Lens' Instance [Tag]-insTags = lens _insTags (\ s a -> s{_insTags = a}) . _Default . _Coerce;---- | The ID of the instance.-insInstanceId :: Lens' Instance Text-insInstanceId = lens _insInstanceId (\ s a -> s{_insInstanceId = a});---- | The ID of the AMI used to launch the instance.-insImageId :: Lens' Instance Text-insImageId = lens _insImageId (\ s a -> s{_insImageId = a});---- | The AMI launch index, which can be used to find this instance in the launch group.-insAMILaunchIndex :: Lens' Instance Int-insAMILaunchIndex = lens _insAMILaunchIndex (\ s a -> s{_insAMILaunchIndex = a});---- | The instance type.-insInstanceType :: Lens' Instance InstanceType-insInstanceType = lens _insInstanceType (\ s a -> s{_insInstanceType = a});---- | The time the instance was launched.-insLaunchTime :: Lens' Instance UTCTime-insLaunchTime = lens _insLaunchTime (\ s a -> s{_insLaunchTime = a}) . _Time;---- | The location where the instance launched, if applicable.-insPlacement :: Lens' Instance Placement-insPlacement = lens _insPlacement (\ s a -> s{_insPlacement = a});---- | The monitoring for the instance.-insMonitoring :: Lens' Instance Monitoring-insMonitoring = lens _insMonitoring (\ s a -> s{_insMonitoring = a});---- | The architecture of the image.-insArchitecture :: Lens' Instance ArchitectureValues-insArchitecture = lens _insArchitecture (\ s a -> s{_insArchitecture = a});---- | The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.-insRootDeviceType :: Lens' Instance DeviceType-insRootDeviceType = lens _insRootDeviceType (\ s a -> s{_insRootDeviceType = a});---- | The virtualization type of the instance.-insVirtualizationType :: Lens' Instance VirtualizationType-insVirtualizationType = lens _insVirtualizationType (\ s a -> s{_insVirtualizationType = a});---- | The hypervisor type of the instance.-insHypervisor :: Lens' Instance HypervisorType-insHypervisor = lens _insHypervisor (\ s a -> s{_insHypervisor = a});---- | The current state of the instance.-insState :: Lens' Instance InstanceState-insState = lens _insState (\ s a -> s{_insState = a});--instance FromXML Instance where-        parseXML x-          = Instance' <$>-              (x .@? "dnsName") <*> (x .@? "platform") <*>-                (x .@? "groupSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "clientToken")-                <*> (x .@? "enaSupport")-                <*> (x .@? "sourceDestCheck")-                <*> (x .@? "vpcId")-                <*> (x .@? "keyName")-                <*>-                (x .@? "networkInterfaceSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ramdiskId")-                <*> (x .@? "subnetId")-                <*> (x .@? "kernelId")-                <*> (x .@? "rootDeviceName")-                <*> (x .@? "sriovNetSupport")-                <*> (x .@? "ebsOptimized")-                <*> (x .@? "reason")-                <*> (x .@? "instanceLifecycle")-                <*> (x .@? "iamInstanceProfile")-                <*> (x .@? "privateIpAddress")-                <*>-                (x .@? "productCodes" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "spotInstanceRequestId")-                <*> (x .@? "privateDnsName")-                <*> (x .@? "stateReason")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ipAddress")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "instanceId")-                <*> (x .@ "imageId")-                <*> (x .@ "amiLaunchIndex")-                <*> (x .@ "instanceType")-                <*> (x .@ "launchTime")-                <*> (x .@ "placement")-                <*> (x .@ "monitoring")-                <*> (x .@ "architecture")-                <*> (x .@ "rootDeviceType")-                <*> (x .@ "virtualizationType")-                <*> (x .@ "hypervisor")-                <*> (x .@ "instanceState")--instance Hashable Instance--instance NFData Instance---- | Describes a block device mapping.------------ /See:/ 'instanceBlockDeviceMapping' smart constructor.-data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping'-    { _ibdmEBS        :: !(Maybe EBSInstanceBlockDevice)-    , _ibdmDeviceName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceBlockDeviceMapping' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ibdmEBS' - Parameters used to automatically set up EBS volumes when the instance is launched.------ * 'ibdmDeviceName' - The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-instanceBlockDeviceMapping-    :: InstanceBlockDeviceMapping-instanceBlockDeviceMapping =-    InstanceBlockDeviceMapping'-    { _ibdmEBS = Nothing-    , _ibdmDeviceName = Nothing-    }---- | Parameters used to automatically set up EBS volumes when the instance is launched.-ibdmEBS :: Lens' InstanceBlockDeviceMapping (Maybe EBSInstanceBlockDevice)-ibdmEBS = lens _ibdmEBS (\ s a -> s{_ibdmEBS = a});---- | The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)-ibdmDeviceName = lens _ibdmDeviceName (\ s a -> s{_ibdmDeviceName = a});--instance FromXML InstanceBlockDeviceMapping where-        parseXML x-          = InstanceBlockDeviceMapping' <$>-              (x .@? "ebs") <*> (x .@? "deviceName")--instance Hashable InstanceBlockDeviceMapping--instance NFData InstanceBlockDeviceMapping---- | Describes a block device mapping entry.------------ /See:/ 'instanceBlockDeviceMappingSpecification' smart constructor.-data InstanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification'-    { _ibdmsVirtualName :: !(Maybe Text)-    , _ibdmsNoDevice    :: !(Maybe Text)-    , _ibdmsEBS         :: !(Maybe EBSInstanceBlockDeviceSpecification)-    , _ibdmsDeviceName  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceBlockDeviceMappingSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ibdmsVirtualName' - The virtual device name.------ * 'ibdmsNoDevice' - suppress the specified device included in the block device mapping.------ * 'ibdmsEBS' - Parameters used to automatically set up EBS volumes when the instance is launched.------ * 'ibdmsDeviceName' - The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-instanceBlockDeviceMappingSpecification-    :: InstanceBlockDeviceMappingSpecification-instanceBlockDeviceMappingSpecification =-    InstanceBlockDeviceMappingSpecification'-    { _ibdmsVirtualName = Nothing-    , _ibdmsNoDevice = Nothing-    , _ibdmsEBS = Nothing-    , _ibdmsDeviceName = Nothing-    }---- | The virtual device name.-ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsVirtualName = lens _ibdmsVirtualName (\ s a -> s{_ibdmsVirtualName = a});---- | suppress the specified device included in the block device mapping.-ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsNoDevice = lens _ibdmsNoDevice (\ s a -> s{_ibdmsNoDevice = a});---- | Parameters used to automatically set up EBS volumes when the instance is launched.-ibdmsEBS :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EBSInstanceBlockDeviceSpecification)-ibdmsEBS = lens _ibdmsEBS (\ s a -> s{_ibdmsEBS = a});---- | The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsDeviceName = lens _ibdmsDeviceName (\ s a -> s{_ibdmsDeviceName = a});--instance Hashable-         InstanceBlockDeviceMappingSpecification--instance NFData-         InstanceBlockDeviceMappingSpecification--instance ToQuery-         InstanceBlockDeviceMappingSpecification where-        toQuery InstanceBlockDeviceMappingSpecification'{..}-          = mconcat-              ["VirtualName" =: _ibdmsVirtualName,-               "NoDevice" =: _ibdmsNoDevice, "Ebs" =: _ibdmsEBS,-               "DeviceName" =: _ibdmsDeviceName]---- | Information about the instance type that the Dedicated Host supports.------------ /See:/ 'instanceCapacity' smart constructor.-data InstanceCapacity = InstanceCapacity'-    { _icAvailableCapacity :: !(Maybe Int)-    , _icInstanceType      :: !(Maybe Text)-    , _icTotalCapacity     :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceCapacity' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icAvailableCapacity' - The number of instances that can still be launched onto the Dedicated Host.------ * 'icInstanceType' - The instance type size supported by the Dedicated Host.------ * 'icTotalCapacity' - The total number of instances that can be launched onto the Dedicated Host.-instanceCapacity-    :: InstanceCapacity-instanceCapacity =-    InstanceCapacity'-    { _icAvailableCapacity = Nothing-    , _icInstanceType = Nothing-    , _icTotalCapacity = Nothing-    }---- | The number of instances that can still be launched onto the Dedicated Host.-icAvailableCapacity :: Lens' InstanceCapacity (Maybe Int)-icAvailableCapacity = lens _icAvailableCapacity (\ s a -> s{_icAvailableCapacity = a});---- | The instance type size supported by the Dedicated Host.-icInstanceType :: Lens' InstanceCapacity (Maybe Text)-icInstanceType = lens _icInstanceType (\ s a -> s{_icInstanceType = a});---- | The total number of instances that can be launched onto the Dedicated Host.-icTotalCapacity :: Lens' InstanceCapacity (Maybe Int)-icTotalCapacity = lens _icTotalCapacity (\ s a -> s{_icTotalCapacity = a});--instance FromXML InstanceCapacity where-        parseXML x-          = InstanceCapacity' <$>-              (x .@? "availableCapacity") <*>-                (x .@? "instanceType")-                <*> (x .@? "totalCapacity")--instance Hashable InstanceCapacity--instance NFData InstanceCapacity---- | Describes a Reserved Instance listing state.------------ /See:/ 'instanceCount' smart constructor.-data InstanceCount = InstanceCount'-    { _icState         :: !(Maybe ListingState)-    , _icInstanceCount :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceCount' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'icState' - The states of the listed Reserved Instances.------ * 'icInstanceCount' - The number of listed Reserved Instances in the state specified by the @state@ .-instanceCount-    :: InstanceCount-instanceCount =-    InstanceCount'-    { _icState = Nothing-    , _icInstanceCount = Nothing-    }---- | The states of the listed Reserved Instances.-icState :: Lens' InstanceCount (Maybe ListingState)-icState = lens _icState (\ s a -> s{_icState = a});---- | The number of listed Reserved Instances in the state specified by the @state@ .-icInstanceCount :: Lens' InstanceCount (Maybe Int)-icInstanceCount = lens _icInstanceCount (\ s a -> s{_icInstanceCount = a});--instance FromXML InstanceCount where-        parseXML x-          = InstanceCount' <$>-              (x .@? "state") <*> (x .@? "instanceCount")--instance Hashable InstanceCount--instance NFData InstanceCount---- | Describes an instance to export.------------ /See:/ 'instanceExportDetails' smart constructor.-data InstanceExportDetails = InstanceExportDetails'-    { _iedTargetEnvironment :: !(Maybe ExportEnvironment)-    , _iedInstanceId        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceExportDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iedTargetEnvironment' - The target virtualization environment.------ * 'iedInstanceId' - The ID of the resource being exported.-instanceExportDetails-    :: InstanceExportDetails-instanceExportDetails =-    InstanceExportDetails'-    { _iedTargetEnvironment = Nothing-    , _iedInstanceId = Nothing-    }---- | The target virtualization environment.-iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)-iedTargetEnvironment = lens _iedTargetEnvironment (\ s a -> s{_iedTargetEnvironment = a});---- | The ID of the resource being exported.-iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)-iedInstanceId = lens _iedInstanceId (\ s a -> s{_iedInstanceId = a});--instance FromXML InstanceExportDetails where-        parseXML x-          = InstanceExportDetails' <$>-              (x .@? "targetEnvironment") <*> (x .@? "instanceId")--instance Hashable InstanceExportDetails--instance NFData InstanceExportDetails---- | Describes an IPv6 address.------------ /See:/ 'instanceIPv6Address' smart constructor.-newtype InstanceIPv6Address = InstanceIPv6Address'-    { _iiaIPv6Address :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceIPv6Address' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iiaIPv6Address' - The IPv6 address.-instanceIPv6Address-    :: InstanceIPv6Address-instanceIPv6Address =-    InstanceIPv6Address'-    { _iiaIPv6Address = Nothing-    }---- | The IPv6 address.-iiaIPv6Address :: Lens' InstanceIPv6Address (Maybe Text)-iiaIPv6Address = lens _iiaIPv6Address (\ s a -> s{_iiaIPv6Address = a});--instance FromXML InstanceIPv6Address where-        parseXML x-          = InstanceIPv6Address' <$> (x .@? "ipv6Address")--instance Hashable InstanceIPv6Address--instance NFData InstanceIPv6Address--instance ToQuery InstanceIPv6Address where-        toQuery InstanceIPv6Address'{..}-          = mconcat ["Ipv6Address" =: _iiaIPv6Address]---- | Describes the monitoring of an instance.------------ /See:/ 'instanceMonitoring' smart constructor.-data InstanceMonitoring = InstanceMonitoring'-    { _imInstanceId :: !(Maybe Text)-    , _imMonitoring :: !(Maybe Monitoring)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceMonitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'imInstanceId' - The ID of the instance.------ * 'imMonitoring' - The monitoring for the instance.-instanceMonitoring-    :: InstanceMonitoring-instanceMonitoring =-    InstanceMonitoring'-    { _imInstanceId = Nothing-    , _imMonitoring = Nothing-    }---- | The ID of the instance.-imInstanceId :: Lens' InstanceMonitoring (Maybe Text)-imInstanceId = lens _imInstanceId (\ s a -> s{_imInstanceId = a});---- | The monitoring for the instance.-imMonitoring :: Lens' InstanceMonitoring (Maybe Monitoring)-imMonitoring = lens _imMonitoring (\ s a -> s{_imMonitoring = a});--instance FromXML InstanceMonitoring where-        parseXML x-          = InstanceMonitoring' <$>-              (x .@? "instanceId") <*> (x .@? "monitoring")--instance Hashable InstanceMonitoring--instance NFData InstanceMonitoring---- | Describes a network interface.------------ /See:/ 'instanceNetworkInterface' smart constructor.-data InstanceNetworkInterface = InstanceNetworkInterface'-    { _iniGroups             :: !(Maybe [GroupIdentifier])-    , _iniStatus             :: !(Maybe NetworkInterfaceStatus)-    , _iniPrivateIPAddresses :: !(Maybe [InstancePrivateIPAddress])-    , _iniSourceDestCheck    :: !(Maybe Bool)-    , _iniVPCId              :: !(Maybe Text)-    , _iniNetworkInterfaceId :: !(Maybe Text)-    , _iniSubnetId           :: !(Maybe Text)-    , _iniMACAddress         :: !(Maybe Text)-    , _iniAttachment         :: !(Maybe InstanceNetworkInterfaceAttachment)-    , _iniOwnerId            :: !(Maybe Text)-    , _iniPrivateIPAddress   :: !(Maybe Text)-    , _iniPrivateDNSName     :: !(Maybe Text)-    , _iniDescription        :: !(Maybe Text)-    , _iniAssociation        :: !(Maybe InstanceNetworkInterfaceAssociation)-    , _iniIPv6Addresses      :: !(Maybe [InstanceIPv6Address])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterface' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iniGroups' - One or more security groups.------ * 'iniStatus' - The status of the network interface.------ * 'iniPrivateIPAddresses' - One or more private IPv4 addresses associated with the network interface.------ * 'iniSourceDestCheck' - Indicates whether to validate network traffic to or from this network interface.------ * 'iniVPCId' - The ID of the VPC.------ * 'iniNetworkInterfaceId' - The ID of the network interface.------ * 'iniSubnetId' - The ID of the subnet.------ * 'iniMACAddress' - The MAC address.------ * 'iniAttachment' - The network interface attachment.------ * 'iniOwnerId' - The ID of the AWS account that created the network interface.------ * 'iniPrivateIPAddress' - The IPv4 address of the network interface within the subnet.------ * 'iniPrivateDNSName' - The private DNS name.------ * 'iniDescription' - The description.------ * 'iniAssociation' - The association information for an Elastic IPv4 associated with the network interface.------ * 'iniIPv6Addresses' - One or more IPv6 addresses associated with the network interface.-instanceNetworkInterface-    :: InstanceNetworkInterface-instanceNetworkInterface =-    InstanceNetworkInterface'-    { _iniGroups = Nothing-    , _iniStatus = Nothing-    , _iniPrivateIPAddresses = Nothing-    , _iniSourceDestCheck = Nothing-    , _iniVPCId = Nothing-    , _iniNetworkInterfaceId = Nothing-    , _iniSubnetId = Nothing-    , _iniMACAddress = Nothing-    , _iniAttachment = Nothing-    , _iniOwnerId = Nothing-    , _iniPrivateIPAddress = Nothing-    , _iniPrivateDNSName = Nothing-    , _iniDescription = Nothing-    , _iniAssociation = Nothing-    , _iniIPv6Addresses = Nothing-    }---- | One or more security groups.-iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]-iniGroups = lens _iniGroups (\ s a -> s{_iniGroups = a}) . _Default . _Coerce;---- | The status of the network interface.-iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)-iniStatus = lens _iniStatus (\ s a -> s{_iniStatus = a});---- | One or more private IPv4 addresses associated with the network interface.-iniPrivateIPAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIPAddress]-iniPrivateIPAddresses = lens _iniPrivateIPAddresses (\ s a -> s{_iniPrivateIPAddresses = a}) . _Default . _Coerce;---- | Indicates whether to validate network traffic to or from this network interface.-iniSourceDestCheck :: Lens' InstanceNetworkInterface (Maybe Bool)-iniSourceDestCheck = lens _iniSourceDestCheck (\ s a -> s{_iniSourceDestCheck = a});---- | The ID of the VPC.-iniVPCId :: Lens' InstanceNetworkInterface (Maybe Text)-iniVPCId = lens _iniVPCId (\ s a -> s{_iniVPCId = a});---- | The ID of the network interface.-iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)-iniNetworkInterfaceId = lens _iniNetworkInterfaceId (\ s a -> s{_iniNetworkInterfaceId = a});---- | The ID of the subnet.-iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)-iniSubnetId = lens _iniSubnetId (\ s a -> s{_iniSubnetId = a});---- | The MAC address.-iniMACAddress :: Lens' InstanceNetworkInterface (Maybe Text)-iniMACAddress = lens _iniMACAddress (\ s a -> s{_iniMACAddress = a});---- | The network interface attachment.-iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)-iniAttachment = lens _iniAttachment (\ s a -> s{_iniAttachment = a});---- | The ID of the AWS account that created the network interface.-iniOwnerId :: Lens' InstanceNetworkInterface (Maybe Text)-iniOwnerId = lens _iniOwnerId (\ s a -> s{_iniOwnerId = a});---- | The IPv4 address of the network interface within the subnet.-iniPrivateIPAddress :: Lens' InstanceNetworkInterface (Maybe Text)-iniPrivateIPAddress = lens _iniPrivateIPAddress (\ s a -> s{_iniPrivateIPAddress = a});---- | The private DNS name.-iniPrivateDNSName :: Lens' InstanceNetworkInterface (Maybe Text)-iniPrivateDNSName = lens _iniPrivateDNSName (\ s a -> s{_iniPrivateDNSName = a});---- | The description.-iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)-iniDescription = lens _iniDescription (\ s a -> s{_iniDescription = a});---- | The association information for an Elastic IPv4 associated with the network interface.-iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)-iniAssociation = lens _iniAssociation (\ s a -> s{_iniAssociation = a});---- | One or more IPv6 addresses associated with the network interface.-iniIPv6Addresses :: Lens' InstanceNetworkInterface [InstanceIPv6Address]-iniIPv6Addresses = lens _iniIPv6Addresses (\ s a -> s{_iniIPv6Addresses = a}) . _Default . _Coerce;--instance FromXML InstanceNetworkInterface where-        parseXML x-          = InstanceNetworkInterface' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "status")-                <*>-                (x .@? "privateIpAddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "sourceDestCheck")-                <*> (x .@? "vpcId")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "subnetId")-                <*> (x .@? "macAddress")-                <*> (x .@? "attachment")-                <*> (x .@? "ownerId")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "privateDnsName")-                <*> (x .@? "description")-                <*> (x .@? "association")-                <*>-                (x .@? "ipv6AddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable InstanceNetworkInterface--instance NFData InstanceNetworkInterface---- | Describes association information for an Elastic IP address (IPv4).------------ /See:/ 'instanceNetworkInterfaceAssociation' smart constructor.-data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation'-    { _iniaPublicDNSName :: !(Maybe Text)-    , _iniaIPOwnerId     :: !(Maybe Text)-    , _iniaPublicIP      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterfaceAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iniaPublicDNSName' - The public DNS name.------ * 'iniaIPOwnerId' - The ID of the owner of the Elastic IP address.------ * 'iniaPublicIP' - The public IP address or Elastic IP address bound to the network interface.-instanceNetworkInterfaceAssociation-    :: InstanceNetworkInterfaceAssociation-instanceNetworkInterfaceAssociation =-    InstanceNetworkInterfaceAssociation'-    { _iniaPublicDNSName = Nothing-    , _iniaIPOwnerId = Nothing-    , _iniaPublicIP = Nothing-    }---- | The public DNS name.-iniaPublicDNSName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaPublicDNSName = lens _iniaPublicDNSName (\ s a -> s{_iniaPublicDNSName = a});---- | The ID of the owner of the Elastic IP address.-iniaIPOwnerId :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaIPOwnerId = lens _iniaIPOwnerId (\ s a -> s{_iniaIPOwnerId = a});---- | The public IP address or Elastic IP address bound to the network interface.-iniaPublicIP :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaPublicIP = lens _iniaPublicIP (\ s a -> s{_iniaPublicIP = a});--instance FromXML InstanceNetworkInterfaceAssociation-         where-        parseXML x-          = InstanceNetworkInterfaceAssociation' <$>-              (x .@? "publicDnsName") <*> (x .@? "ipOwnerId") <*>-                (x .@? "publicIp")--instance Hashable InstanceNetworkInterfaceAssociation--instance NFData InstanceNetworkInterfaceAssociation---- | Describes a network interface attachment.------------ /See:/ 'instanceNetworkInterfaceAttachment' smart constructor.-data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment'-    { _iniaStatus              :: !(Maybe AttachmentStatus)-    , _iniaDeleteOnTermination :: !(Maybe Bool)-    , _iniaAttachmentId        :: !(Maybe Text)-    , _iniaAttachTime          :: !(Maybe ISO8601)-    , _iniaDeviceIndex         :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterfaceAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iniaStatus' - The attachment state.------ * 'iniaDeleteOnTermination' - Indicates whether the network interface is deleted when the instance is terminated.------ * 'iniaAttachmentId' - The ID of the network interface attachment.------ * 'iniaAttachTime' - The time stamp when the attachment initiated.------ * 'iniaDeviceIndex' - The index of the device on the instance for the network interface attachment.-instanceNetworkInterfaceAttachment-    :: InstanceNetworkInterfaceAttachment-instanceNetworkInterfaceAttachment =-    InstanceNetworkInterfaceAttachment'-    { _iniaStatus = Nothing-    , _iniaDeleteOnTermination = Nothing-    , _iniaAttachmentId = Nothing-    , _iniaAttachTime = Nothing-    , _iniaDeviceIndex = Nothing-    }---- | The attachment state.-iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)-iniaStatus = lens _iniaStatus (\ s a -> s{_iniaStatus = a});---- | Indicates whether the network interface is deleted when the instance is terminated.-iniaDeleteOnTermination :: Lens' InstanceNetworkInterfaceAttachment (Maybe Bool)-iniaDeleteOnTermination = lens _iniaDeleteOnTermination (\ s a -> s{_iniaDeleteOnTermination = a});---- | The ID of the network interface attachment.-iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)-iniaAttachmentId = lens _iniaAttachmentId (\ s a -> s{_iniaAttachmentId = a});---- | The time stamp when the attachment initiated.-iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)-iniaAttachTime = lens _iniaAttachTime (\ s a -> s{_iniaAttachTime = a}) . mapping _Time;---- | The index of the device on the instance for the network interface attachment.-iniaDeviceIndex :: Lens' InstanceNetworkInterfaceAttachment (Maybe Int)-iniaDeviceIndex = lens _iniaDeviceIndex (\ s a -> s{_iniaDeviceIndex = a});--instance FromXML InstanceNetworkInterfaceAttachment-         where-        parseXML x-          = InstanceNetworkInterfaceAttachment' <$>-              (x .@? "status") <*> (x .@? "deleteOnTermination")-                <*> (x .@? "attachmentId")-                <*> (x .@? "attachTime")-                <*> (x .@? "deviceIndex")--instance Hashable InstanceNetworkInterfaceAttachment--instance NFData InstanceNetworkInterfaceAttachment---- | Describes a network interface.------------ /See:/ 'instanceNetworkInterfaceSpecification' smart constructor.-data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification'-    { _inisGroups                         :: !(Maybe [Text])-    , _inisPrivateIPAddresses             :: !(Maybe [PrivateIPAddressSpecification])-    , _inisDeleteOnTermination            :: !(Maybe Bool)-    , _inisAssociatePublicIPAddress       :: !(Maybe Bool)-    , _inisNetworkInterfaceId             :: !(Maybe Text)-    , _inisSubnetId                       :: !(Maybe Text)-    , _inisIPv6AddressCount               :: !(Maybe Int)-    , _inisPrivateIPAddress               :: !(Maybe Text)-    , _inisSecondaryPrivateIPAddressCount :: !(Maybe Int)-    , _inisDescription                    :: !(Maybe Text)-    , _inisDeviceIndex                    :: !(Maybe Int)-    , _inisIPv6Addresses                  :: !(Maybe [InstanceIPv6Address])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceNetworkInterfaceSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'inisGroups' - The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.------ * 'inisPrivateIPAddresses' - 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 'RunInstances' request.------ * 'inisDeleteOnTermination' - If set to @true@ , the interface is deleted when the instance is terminated. You can specify @true@ only if creating a new network interface when launching an instance.------ * 'inisAssociatePublicIPAddress' - 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 @true@ .------ * 'inisNetworkInterfaceId' - The ID of the network interface.------ * 'inisSubnetId' - The ID of the subnet associated with the network string. Applies only if creating a network interface when launching an instance.------ * 'inisIPv6AddressCount' - 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.------ * 'inisPrivateIPAddress' - 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 'RunInstances' request.------ * 'inisSecondaryPrivateIPAddressCount' - 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 'RunInstances' request.------ * 'inisDescription' - The description of the network interface. Applies only if creating a network interface when launching an instance.------ * 'inisDeviceIndex' - The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a 'RunInstances' request, you must provide the device index.------ * 'inisIPv6Addresses' - 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.-instanceNetworkInterfaceSpecification-    :: InstanceNetworkInterfaceSpecification-instanceNetworkInterfaceSpecification =-    InstanceNetworkInterfaceSpecification'-    { _inisGroups = Nothing-    , _inisPrivateIPAddresses = Nothing-    , _inisDeleteOnTermination = Nothing-    , _inisAssociatePublicIPAddress = Nothing-    , _inisNetworkInterfaceId = Nothing-    , _inisSubnetId = Nothing-    , _inisIPv6AddressCount = Nothing-    , _inisPrivateIPAddress = Nothing-    , _inisSecondaryPrivateIPAddressCount = Nothing-    , _inisDescription = Nothing-    , _inisDeviceIndex = Nothing-    , _inisIPv6Addresses = Nothing-    }---- | 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]-inisGroups = lens _inisGroups (\ s a -> s{_inisGroups = a}) . _Default . _Coerce;---- | 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 'RunInstances' request.-inisPrivateIPAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]-inisPrivateIPAddresses = lens _inisPrivateIPAddresses (\ s a -> s{_inisPrivateIPAddresses = a}) . _Default . _Coerce;---- | If set to @true@ , the interface is deleted when the instance is terminated. You can specify @true@ only if creating a new network interface when launching an instance.-inisDeleteOnTermination :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)-inisDeleteOnTermination = lens _inisDeleteOnTermination (\ s a -> s{_inisDeleteOnTermination = 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 @true@ .-inisAssociatePublicIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)-inisAssociatePublicIPAddress = lens _inisAssociatePublicIPAddress (\ s a -> s{_inisAssociatePublicIPAddress = a});---- | The ID of the network interface.-inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisNetworkInterfaceId = lens _inisNetworkInterfaceId (\ s a -> s{_inisNetworkInterfaceId = a});---- | 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)-inisSubnetId = lens _inisSubnetId (\ s a -> s{_inisSubnetId = 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.-inisIPv6AddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)-inisIPv6AddressCount = lens _inisIPv6AddressCount (\ s a -> s{_inisIPv6AddressCount = 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 'RunInstances' request.-inisPrivateIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisPrivateIPAddress = lens _inisPrivateIPAddress (\ s a -> s{_inisPrivateIPAddress = 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 'RunInstances' request.-inisSecondaryPrivateIPAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)-inisSecondaryPrivateIPAddressCount = lens _inisSecondaryPrivateIPAddressCount (\ s a -> s{_inisSecondaryPrivateIPAddressCount = a});---- | The description of the network interface. Applies only if creating a network interface when launching an instance.-inisDescription :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisDescription = lens _inisDescription (\ s a -> s{_inisDescription = a});---- | The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a 'RunInstances' request, you must provide the device index.-inisDeviceIndex :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)-inisDeviceIndex = lens _inisDeviceIndex (\ s a -> s{_inisDeviceIndex = 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.-inisIPv6Addresses :: Lens' InstanceNetworkInterfaceSpecification [InstanceIPv6Address]-inisIPv6Addresses = lens _inisIPv6Addresses (\ s a -> s{_inisIPv6Addresses = a}) . _Default . _Coerce;--instance FromXML-         InstanceNetworkInterfaceSpecification where-        parseXML x-          = InstanceNetworkInterfaceSpecification' <$>-              (x .@? "SecurityGroupId" .!@ mempty >>=-                 may (parseXMLList "SecurityGroupId"))-                <*>-                (x .@? "privateIpAddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "deleteOnTermination")-                <*> (x .@? "associatePublicIpAddress")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "subnetId")-                <*> (x .@? "ipv6AddressCount")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "secondaryPrivateIpAddressCount")-                <*> (x .@? "description")-                <*> (x .@? "deviceIndex")-                <*>-                (x .@? "ipv6AddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable-         InstanceNetworkInterfaceSpecification--instance NFData InstanceNetworkInterfaceSpecification--instance ToQuery-         InstanceNetworkInterfaceSpecification where-        toQuery InstanceNetworkInterfaceSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "SecurityGroupId" <$> _inisGroups),-               toQuery-                 (toQueryList "PrivateIpAddresses" <$>-                    _inisPrivateIPAddresses),-               "DeleteOnTermination" =: _inisDeleteOnTermination,-               "AssociatePublicIpAddress" =:-                 _inisAssociatePublicIPAddress,-               "NetworkInterfaceId" =: _inisNetworkInterfaceId,-               "SubnetId" =: _inisSubnetId,-               "Ipv6AddressCount" =: _inisIPv6AddressCount,-               "PrivateIpAddress" =: _inisPrivateIPAddress,-               "SecondaryPrivateIpAddressCount" =:-                 _inisSecondaryPrivateIPAddressCount,-               "Description" =: _inisDescription,-               "DeviceIndex" =: _inisDeviceIndex,-               toQuery-                 (toQueryList "Ipv6Addresses" <$> _inisIPv6Addresses)]---- | Describes a private IPv4 address.------------ /See:/ 'instancePrivateIPAddress' smart constructor.-data InstancePrivateIPAddress = InstancePrivateIPAddress'-    { _ipiaPrimary          :: !(Maybe Bool)-    , _ipiaPrivateIPAddress :: !(Maybe Text)-    , _ipiaPrivateDNSName   :: !(Maybe Text)-    , _ipiaAssociation      :: !(Maybe InstanceNetworkInterfaceAssociation)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstancePrivateIPAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ipiaPrimary' - Indicates whether this IPv4 address is the primary private IP address of the network interface.------ * 'ipiaPrivateIPAddress' - The private IPv4 address of the network interface.------ * 'ipiaPrivateDNSName' - The private IPv4 DNS name.------ * 'ipiaAssociation' - The association information for an Elastic IP address for the network interface.-instancePrivateIPAddress-    :: InstancePrivateIPAddress-instancePrivateIPAddress =-    InstancePrivateIPAddress'-    { _ipiaPrimary = Nothing-    , _ipiaPrivateIPAddress = Nothing-    , _ipiaPrivateDNSName = Nothing-    , _ipiaAssociation = Nothing-    }---- | Indicates whether this IPv4 address is the primary private IP address of the network interface.-ipiaPrimary :: Lens' InstancePrivateIPAddress (Maybe Bool)-ipiaPrimary = lens _ipiaPrimary (\ s a -> s{_ipiaPrimary = a});---- | The private IPv4 address of the network interface.-ipiaPrivateIPAddress :: Lens' InstancePrivateIPAddress (Maybe Text)-ipiaPrivateIPAddress = lens _ipiaPrivateIPAddress (\ s a -> s{_ipiaPrivateIPAddress = a});---- | The private IPv4 DNS name.-ipiaPrivateDNSName :: Lens' InstancePrivateIPAddress (Maybe Text)-ipiaPrivateDNSName = lens _ipiaPrivateDNSName (\ s a -> s{_ipiaPrivateDNSName = a});---- | The association information for an Elastic IP address for the network interface.-ipiaAssociation :: Lens' InstancePrivateIPAddress (Maybe InstanceNetworkInterfaceAssociation)-ipiaAssociation = lens _ipiaAssociation (\ s a -> s{_ipiaAssociation = a});--instance FromXML InstancePrivateIPAddress where-        parseXML x-          = InstancePrivateIPAddress' <$>-              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>-                (x .@? "privateDnsName")-                <*> (x .@? "association")--instance Hashable InstancePrivateIPAddress--instance NFData InstancePrivateIPAddress---- | Describes the current state of an instance.------------ /See:/ 'instanceState' smart constructor.-data InstanceState = InstanceState'-    { _isName :: !InstanceStateName-    , _isCode :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceState' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isName' - The current state of the instance.------ * 'isCode' - The low byte represents the state. The high byte is an opaque internal value and should be ignored.     * @0@ : @pending@      * @16@ : @running@      * @32@ : @shutting-down@      * @48@ : @terminated@      * @64@ : @stopping@      * @80@ : @stopped@-instanceState-    :: InstanceStateName -- ^ 'isName'-    -> Int -- ^ 'isCode'-    -> InstanceState-instanceState pName_ pCode_ =-    InstanceState'-    { _isName = pName_-    , _isCode = pCode_-    }---- | The current state of the instance.-isName :: Lens' InstanceState InstanceStateName-isName = lens _isName (\ s a -> s{_isName = a});---- | The low byte represents the state. The high byte is an opaque internal value and should be ignored.     * @0@ : @pending@      * @16@ : @running@      * @32@ : @shutting-down@      * @48@ : @terminated@      * @64@ : @stopping@      * @80@ : @stopped@-isCode :: Lens' InstanceState Int-isCode = lens _isCode (\ s a -> s{_isCode = a});--instance FromXML InstanceState where-        parseXML x-          = InstanceState' <$> (x .@ "name") <*> (x .@ "code")--instance Hashable InstanceState--instance NFData InstanceState---- | Describes an instance state change.------------ /See:/ 'instanceStateChange' smart constructor.-data InstanceStateChange = InstanceStateChange'-    { _iscInstanceId    :: !(Maybe Text)-    , _iscCurrentState  :: !(Maybe InstanceState)-    , _iscPreviousState :: !(Maybe InstanceState)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStateChange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iscInstanceId' - The ID of the instance.------ * 'iscCurrentState' - The current state of the instance.------ * 'iscPreviousState' - The previous state of the instance.-instanceStateChange-    :: InstanceStateChange-instanceStateChange =-    InstanceStateChange'-    { _iscInstanceId = Nothing-    , _iscCurrentState = Nothing-    , _iscPreviousState = Nothing-    }---- | The ID of the instance.-iscInstanceId :: Lens' InstanceStateChange (Maybe Text)-iscInstanceId = lens _iscInstanceId (\ s a -> s{_iscInstanceId = a});---- | The current state of the instance.-iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)-iscCurrentState = lens _iscCurrentState (\ s a -> s{_iscCurrentState = a});---- | The previous state of the instance.-iscPreviousState :: Lens' InstanceStateChange (Maybe InstanceState)-iscPreviousState = lens _iscPreviousState (\ s a -> s{_iscPreviousState = a});--instance FromXML InstanceStateChange where-        parseXML x-          = InstanceStateChange' <$>-              (x .@? "instanceId") <*> (x .@? "currentState") <*>-                (x .@? "previousState")--instance Hashable InstanceStateChange--instance NFData InstanceStateChange---- | Describes the status of an instance.------------ /See:/ 'instanceStatus' smart constructor.-data InstanceStatus = InstanceStatus'-    { _isInstanceId       :: !(Maybe Text)-    , _isSystemStatus     :: !(Maybe InstanceStatusSummary)-    , _isEvents           :: !(Maybe [InstanceStatusEvent])-    , _isAvailabilityZone :: !(Maybe Text)-    , _isInstanceStatus   :: !(Maybe InstanceStatusSummary)-    , _isInstanceState    :: !(Maybe InstanceState)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isInstanceId' - The ID of the instance.------ * 'isSystemStatus' - Reports impaired functionality that stems from issues related to the systems that support an instance, such as hardware failures and network connectivity problems.------ * 'isEvents' - Any scheduled events associated with the instance.------ * 'isAvailabilityZone' - The Availability Zone of the instance.------ * 'isInstanceStatus' - Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.------ * 'isInstanceState' - The intended state of the instance. 'DescribeInstanceStatus' requires that an instance be in the @running@ state.-instanceStatus-    :: InstanceStatus-instanceStatus =-    InstanceStatus'-    { _isInstanceId = Nothing-    , _isSystemStatus = Nothing-    , _isEvents = Nothing-    , _isAvailabilityZone = Nothing-    , _isInstanceStatus = Nothing-    , _isInstanceState = Nothing-    }---- | The ID of the instance.-isInstanceId :: Lens' InstanceStatus (Maybe Text)-isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});---- | 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)-isSystemStatus = lens _isSystemStatus (\ s a -> s{_isSystemStatus = a});---- | Any scheduled events associated with the instance.-isEvents :: Lens' InstanceStatus [InstanceStatusEvent]-isEvents = lens _isEvents (\ s a -> s{_isEvents = a}) . _Default . _Coerce;---- | The Availability Zone of the instance.-isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)-isAvailabilityZone = lens _isAvailabilityZone (\ s a -> s{_isAvailabilityZone = a});---- | Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.-isInstanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)-isInstanceStatus = lens _isInstanceStatus (\ s a -> s{_isInstanceStatus = a});---- | The intended state of the instance. 'DescribeInstanceStatus' requires that an instance be in the @running@ state.-isInstanceState :: Lens' InstanceStatus (Maybe InstanceState)-isInstanceState = lens _isInstanceState (\ s a -> s{_isInstanceState = a});--instance FromXML InstanceStatus where-        parseXML x-          = InstanceStatus' <$>-              (x .@? "instanceId") <*> (x .@? "systemStatus") <*>-                (x .@? "eventsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "availabilityZone")-                <*> (x .@? "instanceStatus")-                <*> (x .@? "instanceState")--instance Hashable InstanceStatus--instance NFData InstanceStatus---- | Describes the instance status.------------ /See:/ 'instanceStatusDetails' smart constructor.-data InstanceStatusDetails = InstanceStatusDetails'-    { _isdStatus        :: !(Maybe StatusType)-    , _isdImpairedSince :: !(Maybe ISO8601)-    , _isdName          :: !(Maybe StatusName)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatusDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isdStatus' - The status.------ * 'isdImpairedSince' - The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched.------ * 'isdName' - The type of instance status.-instanceStatusDetails-    :: InstanceStatusDetails-instanceStatusDetails =-    InstanceStatusDetails'-    { _isdStatus = Nothing-    , _isdImpairedSince = Nothing-    , _isdName = Nothing-    }---- | The status.-isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)-isdStatus = lens _isdStatus (\ s a -> s{_isdStatus = 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.-isdImpairedSince :: Lens' InstanceStatusDetails (Maybe UTCTime)-isdImpairedSince = lens _isdImpairedSince (\ s a -> s{_isdImpairedSince = a}) . mapping _Time;---- | The type of instance status.-isdName :: Lens' InstanceStatusDetails (Maybe StatusName)-isdName = lens _isdName (\ s a -> s{_isdName = a});--instance FromXML InstanceStatusDetails where-        parseXML x-          = InstanceStatusDetails' <$>-              (x .@? "status") <*> (x .@? "impairedSince") <*>-                (x .@? "name")--instance Hashable InstanceStatusDetails--instance NFData InstanceStatusDetails---- | Describes a scheduled event for an instance.------------ /See:/ 'instanceStatusEvent' smart constructor.-data InstanceStatusEvent = InstanceStatusEvent'-    { _iseNotBefore   :: !(Maybe ISO8601)-    , _iseCode        :: !(Maybe EventCode)-    , _iseDescription :: !(Maybe Text)-    , _iseNotAfter    :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatusEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iseNotBefore' - The earliest scheduled start time for the event.------ * 'iseCode' - The event code.------ * 'iseDescription' - 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].------ * 'iseNotAfter' - The latest scheduled end time for the event.-instanceStatusEvent-    :: InstanceStatusEvent-instanceStatusEvent =-    InstanceStatusEvent'-    { _iseNotBefore = Nothing-    , _iseCode = Nothing-    , _iseDescription = Nothing-    , _iseNotAfter = Nothing-    }---- | The earliest scheduled start time for the event.-iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)-iseNotBefore = lens _iseNotBefore (\ s a -> s{_iseNotBefore = a}) . mapping _Time;---- | The event code.-iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)-iseCode = lens _iseCode (\ s a -> s{_iseCode = 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].-iseDescription :: Lens' InstanceStatusEvent (Maybe Text)-iseDescription = lens _iseDescription (\ s a -> s{_iseDescription = a});---- | The latest scheduled end time for the event.-iseNotAfter :: Lens' InstanceStatusEvent (Maybe UTCTime)-iseNotAfter = lens _iseNotAfter (\ s a -> s{_iseNotAfter = a}) . mapping _Time;--instance FromXML InstanceStatusEvent where-        parseXML x-          = InstanceStatusEvent' <$>-              (x .@? "notBefore") <*> (x .@? "code") <*>-                (x .@? "description")-                <*> (x .@? "notAfter")--instance Hashable InstanceStatusEvent--instance NFData InstanceStatusEvent---- | Describes the status of an instance.------------ /See:/ 'instanceStatusSummary' smart constructor.-data InstanceStatusSummary = InstanceStatusSummary'-    { _issDetails :: !(Maybe [InstanceStatusDetails])-    , _issStatus  :: !SummaryStatus-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InstanceStatusSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'issDetails' - The system instance health or application instance health.------ * 'issStatus' - The status.-instanceStatusSummary-    :: SummaryStatus -- ^ 'issStatus'-    -> InstanceStatusSummary-instanceStatusSummary pStatus_ =-    InstanceStatusSummary'-    { _issDetails = Nothing-    , _issStatus = pStatus_-    }---- | The system instance health or application instance health.-issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]-issDetails = lens _issDetails (\ s a -> s{_issDetails = a}) . _Default . _Coerce;---- | The status.-issStatus :: Lens' InstanceStatusSummary SummaryStatus-issStatus = lens _issStatus (\ s a -> s{_issStatus = a});--instance FromXML InstanceStatusSummary where-        parseXML x-          = InstanceStatusSummary' <$>-              (x .@? "details" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@ "status")--instance Hashable InstanceStatusSummary--instance NFData InstanceStatusSummary---- | Describes an Internet gateway.------------ /See:/ 'internetGateway' smart constructor.-data InternetGateway = InternetGateway'-    { _igAttachments       :: !(Maybe [InternetGatewayAttachment])-    , _igTags              :: !(Maybe [Tag])-    , _igInternetGatewayId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InternetGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'igAttachments' - Any VPCs attached to the Internet gateway.------ * 'igTags' - Any tags assigned to the Internet gateway.------ * 'igInternetGatewayId' - The ID of the Internet gateway.-internetGateway-    :: Text -- ^ 'igInternetGatewayId'-    -> InternetGateway-internetGateway pInternetGatewayId_ =-    InternetGateway'-    { _igAttachments = Nothing-    , _igTags = Nothing-    , _igInternetGatewayId = pInternetGatewayId_-    }---- | Any VPCs attached to the Internet gateway.-igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]-igAttachments = lens _igAttachments (\ s a -> s{_igAttachments = a}) . _Default . _Coerce;---- | Any tags assigned to the Internet gateway.-igTags :: Lens' InternetGateway [Tag]-igTags = lens _igTags (\ s a -> s{_igTags = a}) . _Default . _Coerce;---- | The ID of the Internet gateway.-igInternetGatewayId :: Lens' InternetGateway Text-igInternetGatewayId = lens _igInternetGatewayId (\ s a -> s{_igInternetGatewayId = a});--instance FromXML InternetGateway where-        parseXML x-          = InternetGateway' <$>-              (x .@? "attachmentSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "internetGatewayId")--instance Hashable InternetGateway--instance NFData InternetGateway---- | Describes the attachment of a VPC to an Internet gateway or an egress-only Internet gateway.------------ /See:/ 'internetGatewayAttachment' smart constructor.-data InternetGatewayAttachment = InternetGatewayAttachment'-    { _igaState :: !AttachmentStatus-    , _igaVPCId :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'InternetGatewayAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'igaState' - The current state of the attachment.------ * 'igaVPCId' - The ID of the VPC.-internetGatewayAttachment-    :: AttachmentStatus -- ^ 'igaState'-    -> Text -- ^ 'igaVPCId'-    -> InternetGatewayAttachment-internetGatewayAttachment pState_ pVPCId_ =-    InternetGatewayAttachment'-    { _igaState = pState_-    , _igaVPCId = pVPCId_-    }---- | The current state of the attachment.-igaState :: Lens' InternetGatewayAttachment AttachmentStatus-igaState = lens _igaState (\ s a -> s{_igaState = a});---- | The ID of the VPC.-igaVPCId :: Lens' InternetGatewayAttachment Text-igaVPCId = lens _igaVPCId (\ s a -> s{_igaVPCId = a});--instance FromXML InternetGatewayAttachment where-        parseXML x-          = InternetGatewayAttachment' <$>-              (x .@ "state") <*> (x .@ "vpcId")--instance Hashable InternetGatewayAttachment--instance NFData InternetGatewayAttachment---- | Describes a key pair.------------ /See:/ 'keyPairInfo' smart constructor.-data KeyPairInfo = KeyPairInfo'-    { _kpiKeyFingerprint :: !(Maybe Text)-    , _kpiKeyName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'KeyPairInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'kpiKeyFingerprint' - If you used 'CreateKeyPair' to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used 'ImportKeyPair' to provide AWS the public key, this is the MD5 public key fingerprint as specified in section 4 of RFC4716.------ * 'kpiKeyName' - The name of the key pair.-keyPairInfo-    :: KeyPairInfo-keyPairInfo =-    KeyPairInfo'-    { _kpiKeyFingerprint = Nothing-    , _kpiKeyName = Nothing-    }---- | If you used 'CreateKeyPair' to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used 'ImportKeyPair' 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)-kpiKeyFingerprint = lens _kpiKeyFingerprint (\ s a -> s{_kpiKeyFingerprint = a});---- | The name of the key pair.-kpiKeyName :: Lens' KeyPairInfo (Maybe Text)-kpiKeyName = lens _kpiKeyName (\ s a -> s{_kpiKeyName = a});--instance FromXML KeyPairInfo where-        parseXML x-          = KeyPairInfo' <$>-              (x .@? "keyFingerprint") <*> (x .@? "keyName")--instance Hashable KeyPairInfo--instance NFData KeyPairInfo---- | Describes a launch permission.------------ /See:/ 'launchPermission' smart constructor.-data LaunchPermission = LaunchPermission'-    { _lpGroup  :: !(Maybe PermissionGroup)-    , _lpUserId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LaunchPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lpGroup' - The name of the group.------ * 'lpUserId' - The AWS account ID.-launchPermission-    :: LaunchPermission-launchPermission =-    LaunchPermission'-    { _lpGroup = Nothing-    , _lpUserId = Nothing-    }---- | The name of the group.-lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)-lpGroup = lens _lpGroup (\ s a -> s{_lpGroup = a});---- | The AWS account ID.-lpUserId :: Lens' LaunchPermission (Maybe Text)-lpUserId = lens _lpUserId (\ s a -> s{_lpUserId = a});--instance FromXML LaunchPermission where-        parseXML x-          = LaunchPermission' <$>-              (x .@? "group") <*> (x .@? "userId")--instance Hashable LaunchPermission--instance NFData LaunchPermission--instance ToQuery LaunchPermission where-        toQuery LaunchPermission'{..}-          = mconcat-              ["Group" =: _lpGroup, "UserId" =: _lpUserId]---- | Describes a launch permission modification.------------ /See:/ 'launchPermissionModifications' smart constructor.-data LaunchPermissionModifications = LaunchPermissionModifications'-    { _lpmRemove :: !(Maybe [LaunchPermission])-    , _lpmAdd    :: !(Maybe [LaunchPermission])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LaunchPermissionModifications' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lpmRemove' - The AWS account ID to remove from the list of launch permissions for the AMI.------ * 'lpmAdd' - The AWS account ID to add to the list of launch permissions for the AMI.-launchPermissionModifications-    :: LaunchPermissionModifications-launchPermissionModifications =-    LaunchPermissionModifications'-    { _lpmRemove = Nothing-    , _lpmAdd = Nothing-    }---- | The AWS account ID to remove from the list of launch permissions for the AMI.-lpmRemove :: Lens' LaunchPermissionModifications [LaunchPermission]-lpmRemove = lens _lpmRemove (\ s a -> s{_lpmRemove = a}) . _Default . _Coerce;---- | The AWS account ID to add to the list of launch permissions for the AMI.-lpmAdd :: Lens' LaunchPermissionModifications [LaunchPermission]-lpmAdd = lens _lpmAdd (\ s a -> s{_lpmAdd = a}) . _Default . _Coerce;--instance Hashable LaunchPermissionModifications--instance NFData LaunchPermissionModifications--instance ToQuery LaunchPermissionModifications where-        toQuery LaunchPermissionModifications'{..}-          = mconcat-              [toQuery (toQueryList "Remove" <$> _lpmRemove),-               toQuery (toQueryList "Add" <$> _lpmAdd)]---- | Describes the launch specification for an instance.------------ /See:/ 'launchSpecification' smart constructor.-data LaunchSpecification = LaunchSpecification'-    { _lsSecurityGroups      :: !(Maybe [GroupIdentifier])-    , _lsKeyName             :: !(Maybe Text)-    , _lsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _lsRAMDiskId           :: !(Maybe Text)-    , _lsSubnetId            :: !(Maybe Text)-    , _lsKernelId            :: !(Maybe Text)-    , _lsInstanceType        :: !(Maybe InstanceType)-    , _lsEBSOptimized        :: !(Maybe Bool)-    , _lsUserData            :: !(Maybe Text)-    , _lsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)-    , _lsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)-    , _lsImageId             :: !(Maybe Text)-    , _lsAddressingType      :: !(Maybe Text)-    , _lsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _lsPlacement           :: !(Maybe SpotPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lsSecurityGroups' - 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.------ * 'lsKeyName' - The name of the key pair.------ * 'lsNetworkInterfaces' - One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.------ * 'lsRAMDiskId' - The ID of the RAM disk.------ * 'lsSubnetId' - The ID of the subnet in which to launch the instance.------ * 'lsKernelId' - The ID of the kernel.------ * 'lsInstanceType' - The instance type.------ * 'lsEBSOptimized' - Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@------ * 'lsUserData' - The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.------ * 'lsMonitoring' - Undocumented member.------ * 'lsIAMInstanceProfile' - The IAM instance profile.------ * 'lsImageId' - The ID of the AMI.------ * 'lsAddressingType' - Deprecated.------ * 'lsBlockDeviceMappings' - One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.------ * 'lsPlacement' - The placement information for the instance.-launchSpecification-    :: LaunchSpecification-launchSpecification =-    LaunchSpecification'-    { _lsSecurityGroups = Nothing-    , _lsKeyName = Nothing-    , _lsNetworkInterfaces = Nothing-    , _lsRAMDiskId = Nothing-    , _lsSubnetId = Nothing-    , _lsKernelId = Nothing-    , _lsInstanceType = Nothing-    , _lsEBSOptimized = Nothing-    , _lsUserData = Nothing-    , _lsMonitoring = Nothing-    , _lsIAMInstanceProfile = Nothing-    , _lsImageId = Nothing-    , _lsAddressingType = Nothing-    , _lsBlockDeviceMappings = Nothing-    , _lsPlacement = Nothing-    }---- | 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]-lsSecurityGroups = lens _lsSecurityGroups (\ s a -> s{_lsSecurityGroups = a}) . _Default . _Coerce;---- | The name of the key pair.-lsKeyName :: Lens' LaunchSpecification (Maybe Text)-lsKeyName = lens _lsKeyName (\ s a -> s{_lsKeyName = 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.-lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]-lsNetworkInterfaces = lens _lsNetworkInterfaces (\ s a -> s{_lsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-lsRAMDiskId :: Lens' LaunchSpecification (Maybe Text)-lsRAMDiskId = lens _lsRAMDiskId (\ s a -> s{_lsRAMDiskId = a});---- | The ID of the subnet in which to launch the instance.-lsSubnetId :: Lens' LaunchSpecification (Maybe Text)-lsSubnetId = lens _lsSubnetId (\ s a -> s{_lsSubnetId = a});---- | The ID of the kernel.-lsKernelId :: Lens' LaunchSpecification (Maybe Text)-lsKernelId = lens _lsKernelId (\ s a -> s{_lsKernelId = a});---- | The instance type.-lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)-lsInstanceType = lens _lsInstanceType (\ s a -> s{_lsInstanceType = a});---- | Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@-lsEBSOptimized :: Lens' LaunchSpecification (Maybe Bool)-lsEBSOptimized = lens _lsEBSOptimized (\ s a -> s{_lsEBSOptimized = a});---- | The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.-lsUserData :: Lens' LaunchSpecification (Maybe Text)-lsUserData = lens _lsUserData (\ s a -> s{_lsUserData = a});---- | Undocumented member.-lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)-lsMonitoring = lens _lsMonitoring (\ s a -> s{_lsMonitoring = a});---- | The IAM instance profile.-lsIAMInstanceProfile :: Lens' LaunchSpecification (Maybe IAMInstanceProfileSpecification)-lsIAMInstanceProfile = lens _lsIAMInstanceProfile (\ s a -> s{_lsIAMInstanceProfile = a});---- | The ID of the AMI.-lsImageId :: Lens' LaunchSpecification (Maybe Text)-lsImageId = lens _lsImageId (\ s a -> s{_lsImageId = a});---- | Deprecated.-lsAddressingType :: Lens' LaunchSpecification (Maybe Text)-lsAddressingType = lens _lsAddressingType (\ s a -> s{_lsAddressingType = a});---- | One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.-lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]-lsBlockDeviceMappings = lens _lsBlockDeviceMappings (\ s a -> s{_lsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information for the instance.-lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)-lsPlacement = lens _lsPlacement (\ s a -> s{_lsPlacement = a});--instance FromXML LaunchSpecification where-        parseXML x-          = LaunchSpecification' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "keyName")-                <*>-                (x .@? "networkInterfaceSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ramdiskId")-                <*> (x .@? "subnetId")-                <*> (x .@? "kernelId")-                <*> (x .@? "instanceType")-                <*> (x .@? "ebsOptimized")-                <*> (x .@? "userData")-                <*> (x .@? "monitoring")-                <*> (x .@? "iamInstanceProfile")-                <*> (x .@? "imageId")-                <*> (x .@? "addressingType")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "placement")--instance Hashable LaunchSpecification--instance NFData LaunchSpecification---- | Describes the monitoring of an instance.------------ /See:/ 'monitoring' smart constructor.-newtype Monitoring = Monitoring'-    { _mState :: Maybe MonitoringState-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Monitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mState' - Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.-monitoring-    :: Monitoring-monitoring =-    Monitoring'-    { _mState = Nothing-    }---- | Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.-mState :: Lens' Monitoring (Maybe MonitoringState)-mState = lens _mState (\ s a -> s{_mState = a});--instance FromXML Monitoring where-        parseXML x = Monitoring' <$> (x .@? "state")--instance Hashable Monitoring--instance NFData Monitoring---- | Describes the status of a moving Elastic IP address.------------ /See:/ 'movingAddressStatus' smart constructor.-data MovingAddressStatus = MovingAddressStatus'-    { _masMoveStatus :: !(Maybe MoveStatus)-    , _masPublicIP   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'MovingAddressStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'masMoveStatus' - The status of the Elastic IP address that's being moved to the EC2-VPC platform, or restored to the EC2-Classic platform.------ * 'masPublicIP' - The Elastic IP address.-movingAddressStatus-    :: MovingAddressStatus-movingAddressStatus =-    MovingAddressStatus'-    { _masMoveStatus = Nothing-    , _masPublicIP = Nothing-    }---- | 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)-masMoveStatus = lens _masMoveStatus (\ s a -> s{_masMoveStatus = a});---- | The Elastic IP address.-masPublicIP :: Lens' MovingAddressStatus (Maybe Text)-masPublicIP = lens _masPublicIP (\ s a -> s{_masPublicIP = a});--instance FromXML MovingAddressStatus where-        parseXML x-          = MovingAddressStatus' <$>-              (x .@? "moveStatus") <*> (x .@? "publicIp")--instance Hashable MovingAddressStatus--instance NFData MovingAddressStatus---- | Describes a NAT gateway.------------ /See:/ 'natGateway' smart constructor.-data NatGateway = NatGateway'-    { _ngState                :: !(Maybe NatGatewayState)-    , _ngFailureCode          :: !(Maybe Text)-    , _ngVPCId                :: !(Maybe Text)-    , _ngFailureMessage       :: !(Maybe Text)-    , _ngNatGatewayId         :: !(Maybe Text)-    , _ngSubnetId             :: !(Maybe Text)-    , _ngDeleteTime           :: !(Maybe ISO8601)-    , _ngProvisionedBandwidth :: !(Maybe ProvisionedBandwidth)-    , _ngNatGatewayAddresses  :: !(Maybe [NatGatewayAddress])-    , _ngCreateTime           :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NatGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngState' - The state of the NAT gateway.     * @pending@ : The NAT gateway is being created and is not ready to process traffic.     * @failed@ : The NAT gateway could not be created. Check the @failureCode@ and @failureMessage@ fields for the reason.     * @available@ : 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.     * @deleting@ : The NAT gateway is in the process of being terminated and may still be processing traffic.     * @deleted@ : The NAT gateway has been terminated and is no longer processing traffic.------ * 'ngFailureCode' - If the NAT gateway could not be created, specifies the error code for the failure. (@InsufficientFreeAddressesInSubnet@ | @Gateway.NotAttached@ | @InvalidAllocationID.NotFound@ | @Resource.AlreadyAssociated@ | @InternalError@ | @InvalidSubnetID.NotFound@ )------ * 'ngVPCId' - The ID of the VPC in which the NAT gateway is located.------ * 'ngFailureMessage' - 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."------ * 'ngNatGatewayId' - The ID of the NAT gateway.------ * 'ngSubnetId' - The ID of the subnet in which the NAT gateway is located.------ * 'ngDeleteTime' - The date and time the NAT gateway was deleted, if applicable.------ * 'ngProvisionedBandwidth' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .------ * 'ngNatGatewayAddresses' - Information about the IP addresses and network interface associated with the NAT gateway.------ * 'ngCreateTime' - The date and time the NAT gateway was created.-natGateway-    :: NatGateway-natGateway =-    NatGateway'-    { _ngState = Nothing-    , _ngFailureCode = Nothing-    , _ngVPCId = Nothing-    , _ngFailureMessage = Nothing-    , _ngNatGatewayId = Nothing-    , _ngSubnetId = Nothing-    , _ngDeleteTime = Nothing-    , _ngProvisionedBandwidth = Nothing-    , _ngNatGatewayAddresses = Nothing-    , _ngCreateTime = Nothing-    }---- | The state of the NAT gateway.     * @pending@ : The NAT gateway is being created and is not ready to process traffic.     * @failed@ : The NAT gateway could not be created. Check the @failureCode@ and @failureMessage@ fields for the reason.     * @available@ : 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.     * @deleting@ : The NAT gateway is in the process of being terminated and may still be processing traffic.     * @deleted@ : The NAT gateway has been terminated and is no longer processing traffic.-ngState :: Lens' NatGateway (Maybe NatGatewayState)-ngState = lens _ngState (\ s a -> s{_ngState = a});---- | If the NAT gateway could not be created, specifies the error code for the failure. (@InsufficientFreeAddressesInSubnet@ | @Gateway.NotAttached@ | @InvalidAllocationID.NotFound@ | @Resource.AlreadyAssociated@ | @InternalError@ | @InvalidSubnetID.NotFound@ )-ngFailureCode :: Lens' NatGateway (Maybe Text)-ngFailureCode = lens _ngFailureCode (\ s a -> s{_ngFailureCode = a});---- | The ID of the VPC in which the NAT gateway is located.-ngVPCId :: Lens' NatGateway (Maybe Text)-ngVPCId = lens _ngVPCId (\ s a -> s{_ngVPCId = 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."-ngFailureMessage :: Lens' NatGateway (Maybe Text)-ngFailureMessage = lens _ngFailureMessage (\ s a -> s{_ngFailureMessage = a});---- | The ID of the NAT gateway.-ngNatGatewayId :: Lens' NatGateway (Maybe Text)-ngNatGatewayId = lens _ngNatGatewayId (\ s a -> s{_ngNatGatewayId = a});---- | The ID of the subnet in which the NAT gateway is located.-ngSubnetId :: Lens' NatGateway (Maybe Text)-ngSubnetId = lens _ngSubnetId (\ s a -> s{_ngSubnetId = a});---- | The date and time the NAT gateway was deleted, if applicable.-ngDeleteTime :: Lens' NatGateway (Maybe UTCTime)-ngDeleteTime = lens _ngDeleteTime (\ s a -> s{_ngDeleteTime = a}) . mapping _Time;---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-ngProvisionedBandwidth :: Lens' NatGateway (Maybe ProvisionedBandwidth)-ngProvisionedBandwidth = lens _ngProvisionedBandwidth (\ s a -> s{_ngProvisionedBandwidth = a});---- | Information about the IP addresses and network interface associated with the NAT gateway.-ngNatGatewayAddresses :: Lens' NatGateway [NatGatewayAddress]-ngNatGatewayAddresses = lens _ngNatGatewayAddresses (\ s a -> s{_ngNatGatewayAddresses = a}) . _Default . _Coerce;---- | The date and time the NAT gateway was created.-ngCreateTime :: Lens' NatGateway (Maybe UTCTime)-ngCreateTime = lens _ngCreateTime (\ s a -> s{_ngCreateTime = a}) . mapping _Time;--instance FromXML NatGateway where-        parseXML x-          = NatGateway' <$>-              (x .@? "state") <*> (x .@? "failureCode") <*>-                (x .@? "vpcId")-                <*> (x .@? "failureMessage")-                <*> (x .@? "natGatewayId")-                <*> (x .@? "subnetId")-                <*> (x .@? "deleteTime")-                <*> (x .@? "provisionedBandwidth")-                <*>-                (x .@? "natGatewayAddressSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "createTime")--instance Hashable NatGateway--instance NFData NatGateway---- | Describes the IP addresses and network interface associated with a NAT gateway.------------ /See:/ 'natGatewayAddress' smart constructor.-data NatGatewayAddress = NatGatewayAddress'-    { _ngaPrivateIP          :: !(Maybe Text)-    , _ngaAllocationId       :: !(Maybe Text)-    , _ngaNetworkInterfaceId :: !(Maybe Text)-    , _ngaPublicIP           :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NatGatewayAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ngaPrivateIP' - The private IP address associated with the Elastic IP address.------ * 'ngaAllocationId' - The allocation ID of the Elastic IP address that's associated with the NAT gateway.------ * 'ngaNetworkInterfaceId' - The ID of the network interface associated with the NAT gateway.------ * 'ngaPublicIP' - The Elastic IP address associated with the NAT gateway.-natGatewayAddress-    :: NatGatewayAddress-natGatewayAddress =-    NatGatewayAddress'-    { _ngaPrivateIP = Nothing-    , _ngaAllocationId = Nothing-    , _ngaNetworkInterfaceId = Nothing-    , _ngaPublicIP = Nothing-    }---- | The private IP address associated with the Elastic IP address.-ngaPrivateIP :: Lens' NatGatewayAddress (Maybe Text)-ngaPrivateIP = lens _ngaPrivateIP (\ s a -> s{_ngaPrivateIP = a});---- | The allocation ID of the Elastic IP address that's associated with the NAT gateway.-ngaAllocationId :: Lens' NatGatewayAddress (Maybe Text)-ngaAllocationId = lens _ngaAllocationId (\ s a -> s{_ngaAllocationId = a});---- | The ID of the network interface associated with the NAT gateway.-ngaNetworkInterfaceId :: Lens' NatGatewayAddress (Maybe Text)-ngaNetworkInterfaceId = lens _ngaNetworkInterfaceId (\ s a -> s{_ngaNetworkInterfaceId = a});---- | The Elastic IP address associated with the NAT gateway.-ngaPublicIP :: Lens' NatGatewayAddress (Maybe Text)-ngaPublicIP = lens _ngaPublicIP (\ s a -> s{_ngaPublicIP = a});--instance FromXML NatGatewayAddress where-        parseXML x-          = NatGatewayAddress' <$>-              (x .@? "privateIp") <*> (x .@? "allocationId") <*>-                (x .@? "networkInterfaceId")-                <*> (x .@? "publicIp")--instance Hashable NatGatewayAddress--instance NFData NatGatewayAddress---- | Describes a network ACL.------------ /See:/ 'networkACL' smart constructor.-data NetworkACL = NetworkACL'-    { _naEntries      :: !(Maybe [NetworkACLEntry])-    , _naNetworkACLId :: !(Maybe Text)-    , _naVPCId        :: !(Maybe Text)-    , _naAssociations :: !(Maybe [NetworkACLAssociation])-    , _naTags         :: !(Maybe [Tag])-    , _naIsDefault    :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkACL' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'naEntries' - One or more entries (rules) in the network ACL.------ * 'naNetworkACLId' - The ID of the network ACL.------ * 'naVPCId' - The ID of the VPC for the network ACL.------ * 'naAssociations' - Any associations between the network ACL and one or more subnets------ * 'naTags' - Any tags assigned to the network ACL.------ * 'naIsDefault' - Indicates whether this is the default network ACL for the VPC.-networkACL-    :: NetworkACL-networkACL =-    NetworkACL'-    { _naEntries = Nothing-    , _naNetworkACLId = Nothing-    , _naVPCId = Nothing-    , _naAssociations = Nothing-    , _naTags = Nothing-    , _naIsDefault = Nothing-    }---- | One or more entries (rules) in the network ACL.-naEntries :: Lens' NetworkACL [NetworkACLEntry]-naEntries = lens _naEntries (\ s a -> s{_naEntries = a}) . _Default . _Coerce;---- | The ID of the network ACL.-naNetworkACLId :: Lens' NetworkACL (Maybe Text)-naNetworkACLId = lens _naNetworkACLId (\ s a -> s{_naNetworkACLId = a});---- | The ID of the VPC for the network ACL.-naVPCId :: Lens' NetworkACL (Maybe Text)-naVPCId = lens _naVPCId (\ s a -> s{_naVPCId = a});---- | Any associations between the network ACL and one or more subnets-naAssociations :: Lens' NetworkACL [NetworkACLAssociation]-naAssociations = lens _naAssociations (\ s a -> s{_naAssociations = a}) . _Default . _Coerce;---- | Any tags assigned to the network ACL.-naTags :: Lens' NetworkACL [Tag]-naTags = lens _naTags (\ s a -> s{_naTags = a}) . _Default . _Coerce;---- | Indicates whether this is the default network ACL for the VPC.-naIsDefault :: Lens' NetworkACL (Maybe Bool)-naIsDefault = lens _naIsDefault (\ s a -> s{_naIsDefault = a});--instance FromXML NetworkACL where-        parseXML x-          = NetworkACL' <$>-              (x .@? "entrySet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "networkAclId")-                <*> (x .@? "vpcId")-                <*>-                (x .@? "associationSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "default")--instance Hashable NetworkACL--instance NFData NetworkACL---- | Describes an association between a network ACL and a subnet.------------ /See:/ 'networkACLAssociation' smart constructor.-data NetworkACLAssociation = NetworkACLAssociation'-    { _naaNetworkACLId            :: !(Maybe Text)-    , _naaSubnetId                :: !(Maybe Text)-    , _naaNetworkACLAssociationId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkACLAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'naaNetworkACLId' - The ID of the network ACL.------ * 'naaSubnetId' - The ID of the subnet.------ * 'naaNetworkACLAssociationId' - The ID of the association between a network ACL and a subnet.-networkACLAssociation-    :: NetworkACLAssociation-networkACLAssociation =-    NetworkACLAssociation'-    { _naaNetworkACLId = Nothing-    , _naaSubnetId = Nothing-    , _naaNetworkACLAssociationId = Nothing-    }---- | The ID of the network ACL.-naaNetworkACLId :: Lens' NetworkACLAssociation (Maybe Text)-naaNetworkACLId = lens _naaNetworkACLId (\ s a -> s{_naaNetworkACLId = a});---- | The ID of the subnet.-naaSubnetId :: Lens' NetworkACLAssociation (Maybe Text)-naaSubnetId = lens _naaSubnetId (\ s a -> s{_naaSubnetId = a});---- | The ID of the association between a network ACL and a subnet.-naaNetworkACLAssociationId :: Lens' NetworkACLAssociation (Maybe Text)-naaNetworkACLAssociationId = lens _naaNetworkACLAssociationId (\ s a -> s{_naaNetworkACLAssociationId = a});--instance FromXML NetworkACLAssociation where-        parseXML x-          = NetworkACLAssociation' <$>-              (x .@? "networkAclId") <*> (x .@? "subnetId") <*>-                (x .@? "networkAclAssociationId")--instance Hashable NetworkACLAssociation--instance NFData NetworkACLAssociation---- | Describes an entry in a network ACL.------------ /See:/ 'networkACLEntry' smart constructor.-data NetworkACLEntry = NetworkACLEntry'-    { _naeIPv6CidrBlock :: !(Maybe Text)-    , _naeICMPTypeCode  :: !(Maybe ICMPTypeCode)-    , _naeRuleNumber    :: !(Maybe Int)-    , _naeRuleAction    :: !(Maybe RuleAction)-    , _naeProtocol      :: !(Maybe Text)-    , _naePortRange     :: !(Maybe PortRange)-    , _naeCidrBlock     :: !(Maybe Text)-    , _naeEgress        :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkACLEntry' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'naeIPv6CidrBlock' - The IPv6 network range to allow or deny, in CIDR notation.------ * 'naeICMPTypeCode' - ICMP protocol: The ICMP type and code.------ * 'naeRuleNumber' - The rule number for the entry. ACL entries are processed in ascending order by rule number.------ * 'naeRuleAction' - Indicates whether to allow or deny the traffic that matches the rule.------ * 'naeProtocol' - The protocol. A value of @-1@ means all protocols.------ * 'naePortRange' - TCP or UDP protocols: The range of ports the rule applies to.------ * 'naeCidrBlock' - The IPv4 network range to allow or deny, in CIDR notation.------ * 'naeEgress' - Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).-networkACLEntry-    :: NetworkACLEntry-networkACLEntry =-    NetworkACLEntry'-    { _naeIPv6CidrBlock = Nothing-    , _naeICMPTypeCode = Nothing-    , _naeRuleNumber = Nothing-    , _naeRuleAction = Nothing-    , _naeProtocol = Nothing-    , _naePortRange = Nothing-    , _naeCidrBlock = Nothing-    , _naeEgress = Nothing-    }---- | The IPv6 network range to allow or deny, in CIDR notation.-naeIPv6CidrBlock :: Lens' NetworkACLEntry (Maybe Text)-naeIPv6CidrBlock = lens _naeIPv6CidrBlock (\ s a -> s{_naeIPv6CidrBlock = a});---- | ICMP protocol: The ICMP type and code.-naeICMPTypeCode :: Lens' NetworkACLEntry (Maybe ICMPTypeCode)-naeICMPTypeCode = lens _naeICMPTypeCode (\ s a -> s{_naeICMPTypeCode = a});---- | The rule number for the entry. ACL entries are processed in ascending order by rule number.-naeRuleNumber :: Lens' NetworkACLEntry (Maybe Int)-naeRuleNumber = lens _naeRuleNumber (\ s a -> s{_naeRuleNumber = a});---- | Indicates whether to allow or deny the traffic that matches the rule.-naeRuleAction :: Lens' NetworkACLEntry (Maybe RuleAction)-naeRuleAction = lens _naeRuleAction (\ s a -> s{_naeRuleAction = a});---- | The protocol. A value of @-1@ means all protocols.-naeProtocol :: Lens' NetworkACLEntry (Maybe Text)-naeProtocol = lens _naeProtocol (\ s a -> s{_naeProtocol = a});---- | TCP or UDP protocols: The range of ports the rule applies to.-naePortRange :: Lens' NetworkACLEntry (Maybe PortRange)-naePortRange = lens _naePortRange (\ s a -> s{_naePortRange = a});---- | The IPv4 network range to allow or deny, in CIDR notation.-naeCidrBlock :: Lens' NetworkACLEntry (Maybe Text)-naeCidrBlock = lens _naeCidrBlock (\ s a -> s{_naeCidrBlock = a});---- | Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).-naeEgress :: Lens' NetworkACLEntry (Maybe Bool)-naeEgress = lens _naeEgress (\ s a -> s{_naeEgress = a});--instance FromXML NetworkACLEntry where-        parseXML x-          = NetworkACLEntry' <$>-              (x .@? "ipv6CidrBlock") <*> (x .@? "icmpTypeCode")-                <*> (x .@? "ruleNumber")-                <*> (x .@? "ruleAction")-                <*> (x .@? "protocol")-                <*> (x .@? "portRange")-                <*> (x .@? "cidrBlock")-                <*> (x .@? "egress")--instance Hashable NetworkACLEntry--instance NFData NetworkACLEntry---- | Describes a network interface.------------ /See:/ 'networkInterface' smart constructor.-data NetworkInterface = NetworkInterface'-    { _niGroups             :: !(Maybe [GroupIdentifier])-    , _niStatus             :: !(Maybe NetworkInterfaceStatus)-    , _niPrivateIPAddresses :: !(Maybe [NetworkInterfacePrivateIPAddress])-    , _niSourceDestCheck    :: !(Maybe Bool)-    , _niInterfaceType      :: !(Maybe NetworkInterfaceType)-    , _niVPCId              :: !(Maybe Text)-    , _niTagSet             :: !(Maybe [Tag])-    , _niRequesterManaged   :: !(Maybe Bool)-    , _niNetworkInterfaceId :: !(Maybe Text)-    , _niSubnetId           :: !(Maybe Text)-    , _niMACAddress         :: !(Maybe Text)-    , _niAttachment         :: !(Maybe NetworkInterfaceAttachment)-    , _niOwnerId            :: !(Maybe Text)-    , _niAvailabilityZone   :: !(Maybe Text)-    , _niPrivateIPAddress   :: !(Maybe Text)-    , _niPrivateDNSName     :: !(Maybe Text)-    , _niRequesterId        :: !(Maybe Text)-    , _niDescription        :: !(Maybe Text)-    , _niAssociation        :: !(Maybe NetworkInterfaceAssociation)-    , _niIPv6Addresses      :: !(Maybe [NetworkInterfaceIPv6Address])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niGroups' - Any security groups for the network interface.------ * 'niStatus' - The status of the network interface.------ * 'niPrivateIPAddresses' - The private IPv4 addresses associated with the network interface.------ * 'niSourceDestCheck' - Indicates whether traffic to or from the instance is validated.------ * 'niInterfaceType' - The type of interface.------ * 'niVPCId' - The ID of the VPC.------ * 'niTagSet' - Any tags assigned to the network interface.------ * 'niRequesterManaged' - Indicates whether the network interface is being managed by AWS.------ * 'niNetworkInterfaceId' - The ID of the network interface.------ * 'niSubnetId' - The ID of the subnet.------ * 'niMACAddress' - The MAC address.------ * 'niAttachment' - The network interface attachment.------ * 'niOwnerId' - The AWS account ID of the owner of the network interface.------ * 'niAvailabilityZone' - The Availability Zone.------ * 'niPrivateIPAddress' - The IPv4 address of the network interface within the subnet.------ * 'niPrivateDNSName' - The private DNS name.------ * 'niRequesterId' - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console or Auto Scaling).------ * 'niDescription' - A description.------ * 'niAssociation' - The association information for an Elastic IP address (IPv4) associated with the network interface.------ * 'niIPv6Addresses' - The IPv6 addresses associated with the network interface.-networkInterface-    :: NetworkInterface-networkInterface =-    NetworkInterface'-    { _niGroups = Nothing-    , _niStatus = Nothing-    , _niPrivateIPAddresses = Nothing-    , _niSourceDestCheck = Nothing-    , _niInterfaceType = Nothing-    , _niVPCId = Nothing-    , _niTagSet = Nothing-    , _niRequesterManaged = Nothing-    , _niNetworkInterfaceId = Nothing-    , _niSubnetId = Nothing-    , _niMACAddress = Nothing-    , _niAttachment = Nothing-    , _niOwnerId = Nothing-    , _niAvailabilityZone = Nothing-    , _niPrivateIPAddress = Nothing-    , _niPrivateDNSName = Nothing-    , _niRequesterId = Nothing-    , _niDescription = Nothing-    , _niAssociation = Nothing-    , _niIPv6Addresses = Nothing-    }---- | Any security groups for the network interface.-niGroups :: Lens' NetworkInterface [GroupIdentifier]-niGroups = lens _niGroups (\ s a -> s{_niGroups = a}) . _Default . _Coerce;---- | The status of the network interface.-niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)-niStatus = lens _niStatus (\ s a -> s{_niStatus = a});---- | The private IPv4 addresses associated with the network interface.-niPrivateIPAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIPAddress]-niPrivateIPAddresses = lens _niPrivateIPAddresses (\ s a -> s{_niPrivateIPAddresses = a}) . _Default . _Coerce;---- | Indicates whether traffic to or from the instance is validated.-niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)-niSourceDestCheck = lens _niSourceDestCheck (\ s a -> s{_niSourceDestCheck = a});---- | The type of interface.-niInterfaceType :: Lens' NetworkInterface (Maybe NetworkInterfaceType)-niInterfaceType = lens _niInterfaceType (\ s a -> s{_niInterfaceType = a});---- | The ID of the VPC.-niVPCId :: Lens' NetworkInterface (Maybe Text)-niVPCId = lens _niVPCId (\ s a -> s{_niVPCId = a});---- | Any tags assigned to the network interface.-niTagSet :: Lens' NetworkInterface [Tag]-niTagSet = lens _niTagSet (\ s a -> s{_niTagSet = a}) . _Default . _Coerce;---- | Indicates whether the network interface is being managed by AWS.-niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)-niRequesterManaged = lens _niRequesterManaged (\ s a -> s{_niRequesterManaged = a});---- | The ID of the network interface.-niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)-niNetworkInterfaceId = lens _niNetworkInterfaceId (\ s a -> s{_niNetworkInterfaceId = a});---- | The ID of the subnet.-niSubnetId :: Lens' NetworkInterface (Maybe Text)-niSubnetId = lens _niSubnetId (\ s a -> s{_niSubnetId = a});---- | The MAC address.-niMACAddress :: Lens' NetworkInterface (Maybe Text)-niMACAddress = lens _niMACAddress (\ s a -> s{_niMACAddress = a});---- | The network interface attachment.-niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)-niAttachment = lens _niAttachment (\ s a -> s{_niAttachment = a});---- | The AWS account ID of the owner of the network interface.-niOwnerId :: Lens' NetworkInterface (Maybe Text)-niOwnerId = lens _niOwnerId (\ s a -> s{_niOwnerId = a});---- | The Availability Zone.-niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)-niAvailabilityZone = lens _niAvailabilityZone (\ s a -> s{_niAvailabilityZone = a});---- | The IPv4 address of the network interface within the subnet.-niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)-niPrivateIPAddress = lens _niPrivateIPAddress (\ s a -> s{_niPrivateIPAddress = a});---- | The private DNS name.-niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)-niPrivateDNSName = lens _niPrivateDNSName (\ s a -> s{_niPrivateDNSName = a});---- | 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)-niRequesterId = lens _niRequesterId (\ s a -> s{_niRequesterId = a});---- | A description.-niDescription :: Lens' NetworkInterface (Maybe Text)-niDescription = lens _niDescription (\ s a -> s{_niDescription = a});---- | The association information for an Elastic IP address (IPv4) associated with the network interface.-niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)-niAssociation = lens _niAssociation (\ s a -> s{_niAssociation = a});---- | The IPv6 addresses associated with the network interface.-niIPv6Addresses :: Lens' NetworkInterface [NetworkInterfaceIPv6Address]-niIPv6Addresses = lens _niIPv6Addresses (\ s a -> s{_niIPv6Addresses = a}) . _Default . _Coerce;--instance FromXML NetworkInterface where-        parseXML x-          = NetworkInterface' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "status")-                <*>-                (x .@? "privateIpAddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "sourceDestCheck")-                <*> (x .@? "interfaceType")-                <*> (x .@? "vpcId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "requesterManaged")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "subnetId")-                <*> (x .@? "macAddress")-                <*> (x .@? "attachment")-                <*> (x .@? "ownerId")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "privateIpAddress")-                <*> (x .@? "privateDnsName")-                <*> (x .@? "requesterId")-                <*> (x .@? "description")-                <*> (x .@? "association")-                <*>-                (x .@? "ipv6AddressesSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable NetworkInterface--instance NFData NetworkInterface---- | Describes association information for an Elastic IP address (IPv4 only).------------ /See:/ 'networkInterfaceAssociation' smart constructor.-data NetworkInterfaceAssociation = NetworkInterfaceAssociation'-    { _niaAssociationId :: !(Maybe Text)-    , _niaPublicDNSName :: !(Maybe Text)-    , _niaAllocationId  :: !(Maybe Text)-    , _niaIPOwnerId     :: !(Maybe Text)-    , _niaPublicIP      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niaAssociationId' - The association ID.------ * 'niaPublicDNSName' - The public DNS name.------ * 'niaAllocationId' - The allocation ID.------ * 'niaIPOwnerId' - The ID of the Elastic IP address owner.------ * 'niaPublicIP' - The address of the Elastic IP address bound to the network interface.-networkInterfaceAssociation-    :: NetworkInterfaceAssociation-networkInterfaceAssociation =-    NetworkInterfaceAssociation'-    { _niaAssociationId = Nothing-    , _niaPublicDNSName = Nothing-    , _niaAllocationId = Nothing-    , _niaIPOwnerId = Nothing-    , _niaPublicIP = Nothing-    }---- | The association ID.-niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaAssociationId = lens _niaAssociationId (\ s a -> s{_niaAssociationId = a});---- | The public DNS name.-niaPublicDNSName :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaPublicDNSName = lens _niaPublicDNSName (\ s a -> s{_niaPublicDNSName = a});---- | The allocation ID.-niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaAllocationId = lens _niaAllocationId (\ s a -> s{_niaAllocationId = a});---- | The ID of the Elastic IP address owner.-niaIPOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaIPOwnerId = lens _niaIPOwnerId (\ s a -> s{_niaIPOwnerId = a});---- | The address of the Elastic IP address bound to the network interface.-niaPublicIP :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaPublicIP = lens _niaPublicIP (\ s a -> s{_niaPublicIP = a});--instance FromXML NetworkInterfaceAssociation where-        parseXML x-          = NetworkInterfaceAssociation' <$>-              (x .@? "associationId") <*> (x .@? "publicDnsName")-                <*> (x .@? "allocationId")-                <*> (x .@? "ipOwnerId")-                <*> (x .@? "publicIp")--instance Hashable NetworkInterfaceAssociation--instance NFData NetworkInterfaceAssociation---- | Describes a network interface attachment.------------ /See:/ 'networkInterfaceAttachment' smart constructor.-data NetworkInterfaceAttachment = NetworkInterfaceAttachment'-    { _niaInstanceId          :: !(Maybe Text)-    , _niaStatus              :: !(Maybe AttachmentStatus)-    , _niaDeleteOnTermination :: !(Maybe Bool)-    , _niaAttachmentId        :: !(Maybe Text)-    , _niaInstanceOwnerId     :: !(Maybe Text)-    , _niaAttachTime          :: !(Maybe ISO8601)-    , _niaDeviceIndex         :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niaInstanceId' - The ID of the instance.------ * 'niaStatus' - The attachment state.------ * 'niaDeleteOnTermination' - Indicates whether the network interface is deleted when the instance is terminated.------ * 'niaAttachmentId' - The ID of the network interface attachment.------ * 'niaInstanceOwnerId' - The AWS account ID of the owner of the instance.------ * 'niaAttachTime' - The timestamp indicating when the attachment initiated.------ * 'niaDeviceIndex' - The device index of the network interface attachment on the instance.-networkInterfaceAttachment-    :: NetworkInterfaceAttachment-networkInterfaceAttachment =-    NetworkInterfaceAttachment'-    { _niaInstanceId = Nothing-    , _niaStatus = Nothing-    , _niaDeleteOnTermination = Nothing-    , _niaAttachmentId = Nothing-    , _niaInstanceOwnerId = Nothing-    , _niaAttachTime = Nothing-    , _niaDeviceIndex = Nothing-    }---- | The ID of the instance.-niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaInstanceId = lens _niaInstanceId (\ s a -> s{_niaInstanceId = a});---- | The attachment state.-niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)-niaStatus = lens _niaStatus (\ s a -> s{_niaStatus = a});---- | Indicates whether the network interface is deleted when the instance is terminated.-niaDeleteOnTermination :: Lens' NetworkInterfaceAttachment (Maybe Bool)-niaDeleteOnTermination = lens _niaDeleteOnTermination (\ s a -> s{_niaDeleteOnTermination = a});---- | The ID of the network interface attachment.-niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaAttachmentId = lens _niaAttachmentId (\ s a -> s{_niaAttachmentId = a});---- | The AWS account ID of the owner of the instance.-niaInstanceOwnerId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaInstanceOwnerId = lens _niaInstanceOwnerId (\ s a -> s{_niaInstanceOwnerId = a});---- | The timestamp indicating when the attachment initiated.-niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)-niaAttachTime = lens _niaAttachTime (\ s a -> s{_niaAttachTime = a}) . mapping _Time;---- | The device index of the network interface attachment on the instance.-niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)-niaDeviceIndex = lens _niaDeviceIndex (\ s a -> s{_niaDeviceIndex = a});--instance FromXML NetworkInterfaceAttachment where-        parseXML x-          = NetworkInterfaceAttachment' <$>-              (x .@? "instanceId") <*> (x .@? "status") <*>-                (x .@? "deleteOnTermination")-                <*> (x .@? "attachmentId")-                <*> (x .@? "instanceOwnerId")-                <*> (x .@? "attachTime")-                <*> (x .@? "deviceIndex")--instance Hashable NetworkInterfaceAttachment--instance NFData NetworkInterfaceAttachment---- | Describes an attachment change.------------ /See:/ 'networkInterfaceAttachmentChanges' smart constructor.-data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges'-    { _niacDeleteOnTermination :: !(Maybe Bool)-    , _niacAttachmentId        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceAttachmentChanges' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niacDeleteOnTermination' - Indicates whether the network interface is deleted when the instance is terminated.------ * 'niacAttachmentId' - The ID of the network interface attachment.-networkInterfaceAttachmentChanges-    :: NetworkInterfaceAttachmentChanges-networkInterfaceAttachmentChanges =-    NetworkInterfaceAttachmentChanges'-    { _niacDeleteOnTermination = Nothing-    , _niacAttachmentId = Nothing-    }---- | Indicates whether the network interface is deleted when the instance is terminated.-niacDeleteOnTermination :: Lens' NetworkInterfaceAttachmentChanges (Maybe Bool)-niacDeleteOnTermination = lens _niacDeleteOnTermination (\ s a -> s{_niacDeleteOnTermination = a});---- | The ID of the network interface attachment.-niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)-niacAttachmentId = lens _niacAttachmentId (\ s a -> s{_niacAttachmentId = a});--instance Hashable NetworkInterfaceAttachmentChanges--instance NFData NetworkInterfaceAttachmentChanges--instance ToQuery NetworkInterfaceAttachmentChanges-         where-        toQuery NetworkInterfaceAttachmentChanges'{..}-          = mconcat-              ["DeleteOnTermination" =: _niacDeleteOnTermination,-               "AttachmentId" =: _niacAttachmentId]---- | Describes an IPv6 address associated with a network interface.------------ /See:/ 'networkInterfaceIPv6Address' smart constructor.-newtype NetworkInterfaceIPv6Address = NetworkInterfaceIPv6Address'-    { _niiaIPv6Address :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfaceIPv6Address' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'niiaIPv6Address' - The IPv6 address.-networkInterfaceIPv6Address-    :: NetworkInterfaceIPv6Address-networkInterfaceIPv6Address =-    NetworkInterfaceIPv6Address'-    { _niiaIPv6Address = Nothing-    }---- | The IPv6 address.-niiaIPv6Address :: Lens' NetworkInterfaceIPv6Address (Maybe Text)-niiaIPv6Address = lens _niiaIPv6Address (\ s a -> s{_niiaIPv6Address = a});--instance FromXML NetworkInterfaceIPv6Address where-        parseXML x-          = NetworkInterfaceIPv6Address' <$>-              (x .@? "ipv6Address")--instance Hashable NetworkInterfaceIPv6Address--instance NFData NetworkInterfaceIPv6Address---- | Describes the private IPv4 address of a network interface.------------ /See:/ 'networkInterfacePrivateIPAddress' smart constructor.-data NetworkInterfacePrivateIPAddress = NetworkInterfacePrivateIPAddress'-    { _nipiaPrimary          :: !(Maybe Bool)-    , _nipiaPrivateIPAddress :: !(Maybe Text)-    , _nipiaPrivateDNSName   :: !(Maybe Text)-    , _nipiaAssociation      :: !(Maybe NetworkInterfaceAssociation)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkInterfacePrivateIPAddress' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nipiaPrimary' - Indicates whether this IPv4 address is the primary private IPv4 address of the network interface.------ * 'nipiaPrivateIPAddress' - The private IPv4 address.------ * 'nipiaPrivateDNSName' - The private DNS name.------ * 'nipiaAssociation' - The association information for an Elastic IP address (IPv4) associated with the network interface.-networkInterfacePrivateIPAddress-    :: NetworkInterfacePrivateIPAddress-networkInterfacePrivateIPAddress =-    NetworkInterfacePrivateIPAddress'-    { _nipiaPrimary = Nothing-    , _nipiaPrivateIPAddress = Nothing-    , _nipiaPrivateDNSName = Nothing-    , _nipiaAssociation = Nothing-    }---- | Indicates whether this IPv4 address is the primary private IPv4 address of the network interface.-nipiaPrimary :: Lens' NetworkInterfacePrivateIPAddress (Maybe Bool)-nipiaPrimary = lens _nipiaPrimary (\ s a -> s{_nipiaPrimary = a});---- | The private IPv4 address.-nipiaPrivateIPAddress :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)-nipiaPrivateIPAddress = lens _nipiaPrivateIPAddress (\ s a -> s{_nipiaPrivateIPAddress = a});---- | The private DNS name.-nipiaPrivateDNSName :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)-nipiaPrivateDNSName = lens _nipiaPrivateDNSName (\ s a -> s{_nipiaPrivateDNSName = a});---- | The association information for an Elastic IP address (IPv4) associated with the network interface.-nipiaAssociation :: Lens' NetworkInterfacePrivateIPAddress (Maybe NetworkInterfaceAssociation)-nipiaAssociation = lens _nipiaAssociation (\ s a -> s{_nipiaAssociation = a});--instance FromXML NetworkInterfacePrivateIPAddress-         where-        parseXML x-          = NetworkInterfacePrivateIPAddress' <$>-              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>-                (x .@? "privateDnsName")-                <*> (x .@? "association")--instance Hashable NetworkInterfacePrivateIPAddress--instance NFData NetworkInterfacePrivateIPAddress---- | /See:/ 'newDHCPConfiguration' smart constructor.-data NewDHCPConfiguration = NewDHCPConfiguration'-    { _ndcValues :: !(Maybe [Text])-    , _ndcKey    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NewDHCPConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ndcValues' - Undocumented member.------ * 'ndcKey' - Undocumented member.-newDHCPConfiguration-    :: NewDHCPConfiguration-newDHCPConfiguration =-    NewDHCPConfiguration'-    { _ndcValues = Nothing-    , _ndcKey = Nothing-    }---- | Undocumented member.-ndcValues :: Lens' NewDHCPConfiguration [Text]-ndcValues = lens _ndcValues (\ s a -> s{_ndcValues = a}) . _Default . _Coerce;---- | Undocumented member.-ndcKey :: Lens' NewDHCPConfiguration (Maybe Text)-ndcKey = lens _ndcKey (\ s a -> s{_ndcKey = a});--instance Hashable NewDHCPConfiguration--instance NFData NewDHCPConfiguration--instance ToQuery NewDHCPConfiguration where-        toQuery NewDHCPConfiguration'{..}-          = mconcat-              [toQuery (toQueryList "Value" <$> _ndcValues),-               "Key" =: _ndcKey]---- | Describes the VPC peering connection options.------------ /See:/ 'peeringConnectionOptions' smart constructor.-data PeeringConnectionOptions = PeeringConnectionOptions'-    { _pcoAllowEgressFromLocalVPCToRemoteClassicLink :: !(Maybe Bool)-    , _pcoAllowEgressFromLocalClassicLinkToRemoteVPC :: !(Maybe Bool)-    , _pcoAllowDNSResolutionFromRemoteVPC            :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PeeringConnectionOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pcoAllowEgressFromLocalVPCToRemoteClassicLink' - 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.------ * 'pcoAllowEgressFromLocalClassicLinkToRemoteVPC' - 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.------ * 'pcoAllowDNSResolutionFromRemoteVPC' - If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.-peeringConnectionOptions-    :: PeeringConnectionOptions-peeringConnectionOptions =-    PeeringConnectionOptions'-    { _pcoAllowEgressFromLocalVPCToRemoteClassicLink = Nothing-    , _pcoAllowEgressFromLocalClassicLinkToRemoteVPC = Nothing-    , _pcoAllowDNSResolutionFromRemoteVPC = Nothing-    }---- | 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)-pcoAllowEgressFromLocalVPCToRemoteClassicLink = lens _pcoAllowEgressFromLocalVPCToRemoteClassicLink (\ s a -> s{_pcoAllowEgressFromLocalVPCToRemoteClassicLink = 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.-pcoAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)-pcoAllowEgressFromLocalClassicLinkToRemoteVPC = lens _pcoAllowEgressFromLocalClassicLinkToRemoteVPC (\ s a -> s{_pcoAllowEgressFromLocalClassicLinkToRemoteVPC = a});---- | If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.-pcoAllowDNSResolutionFromRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)-pcoAllowDNSResolutionFromRemoteVPC = lens _pcoAllowDNSResolutionFromRemoteVPC (\ s a -> s{_pcoAllowDNSResolutionFromRemoteVPC = a});--instance FromXML PeeringConnectionOptions where-        parseXML x-          = PeeringConnectionOptions' <$>-              (x .@? "allowEgressFromLocalVpcToRemoteClassicLink")-                <*>-                (x .@? "allowEgressFromLocalClassicLinkToRemoteVpc")-                <*> (x .@? "allowDnsResolutionFromRemoteVpc")--instance Hashable PeeringConnectionOptions--instance NFData PeeringConnectionOptions---- | The VPC peering connection options.------------ /See:/ 'peeringConnectionOptionsRequest' smart constructor.-data PeeringConnectionOptionsRequest = PeeringConnectionOptionsRequest'-    { _pcorAllowEgressFromLocalVPCToRemoteClassicLink :: !(Maybe Bool)-    , _pcorAllowEgressFromLocalClassicLinkToRemoteVPC :: !(Maybe Bool)-    , _pcorAllowDNSResolutionFromRemoteVPC            :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PeeringConnectionOptionsRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pcorAllowEgressFromLocalVPCToRemoteClassicLink' - 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.------ * 'pcorAllowEgressFromLocalClassicLinkToRemoteVPC' - 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.------ * 'pcorAllowDNSResolutionFromRemoteVPC' - If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.-peeringConnectionOptionsRequest-    :: PeeringConnectionOptionsRequest-peeringConnectionOptionsRequest =-    PeeringConnectionOptionsRequest'-    { _pcorAllowEgressFromLocalVPCToRemoteClassicLink = Nothing-    , _pcorAllowEgressFromLocalClassicLinkToRemoteVPC = Nothing-    , _pcorAllowDNSResolutionFromRemoteVPC = Nothing-    }---- | 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)-pcorAllowEgressFromLocalVPCToRemoteClassicLink = lens _pcorAllowEgressFromLocalVPCToRemoteClassicLink (\ s a -> s{_pcorAllowEgressFromLocalVPCToRemoteClassicLink = 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.-pcorAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)-pcorAllowEgressFromLocalClassicLinkToRemoteVPC = lens _pcorAllowEgressFromLocalClassicLinkToRemoteVPC (\ s a -> s{_pcorAllowEgressFromLocalClassicLinkToRemoteVPC = a});---- | 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)-pcorAllowDNSResolutionFromRemoteVPC = lens _pcorAllowDNSResolutionFromRemoteVPC (\ s a -> s{_pcorAllowDNSResolutionFromRemoteVPC = a});--instance Hashable PeeringConnectionOptionsRequest--instance NFData PeeringConnectionOptionsRequest--instance ToQuery PeeringConnectionOptionsRequest-         where-        toQuery PeeringConnectionOptionsRequest'{..}-          = mconcat-              ["AllowEgressFromLocalVpcToRemoteClassicLink" =:-                 _pcorAllowEgressFromLocalVPCToRemoteClassicLink,-               "AllowEgressFromLocalClassicLinkToRemoteVpc" =:-                 _pcorAllowEgressFromLocalClassicLinkToRemoteVPC,-               "AllowDnsResolutionFromRemoteVpc" =:-                 _pcorAllowDNSResolutionFromRemoteVPC]---- | Describes the placement of an instance.------------ /See:/ 'placement' smart constructor.-data Placement = Placement'-    { _pAffinity         :: !(Maybe Text)-    , _pHostId           :: !(Maybe Text)-    , _pAvailabilityZone :: !(Maybe Text)-    , _pTenancy          :: !(Maybe Tenancy)-    , _pGroupName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Placement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pAffinity' - The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the 'ImportInstance' command.------ * 'pHostId' - The ID of the Dedicted host on which the instance resides. This parameter is not support for the 'ImportInstance' command.------ * 'pAvailabilityZone' - The Availability Zone of the instance.------ * 'pTenancy' - 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. The @host@ tenancy is not supported for the 'ImportInstance' command.------ * 'pGroupName' - The name of the placement group the instance is in (for cluster compute instances).-placement-    :: Placement-placement =-    Placement'-    { _pAffinity = Nothing-    , _pHostId = Nothing-    , _pAvailabilityZone = Nothing-    , _pTenancy = Nothing-    , _pGroupName = Nothing-    }---- | The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the 'ImportInstance' command.-pAffinity :: Lens' Placement (Maybe Text)-pAffinity = lens _pAffinity (\ s a -> s{_pAffinity = a});---- | The ID of the Dedicted host on which the instance resides. This parameter is not support for the 'ImportInstance' command.-pHostId :: Lens' Placement (Maybe Text)-pHostId = lens _pHostId (\ s a -> s{_pHostId = a});---- | The Availability Zone of the instance.-pAvailabilityZone :: Lens' Placement (Maybe Text)-pAvailabilityZone = lens _pAvailabilityZone (\ s a -> s{_pAvailabilityZone = 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. The @host@ tenancy is not supported for the 'ImportInstance' command.-pTenancy :: Lens' Placement (Maybe Tenancy)-pTenancy = lens _pTenancy (\ s a -> s{_pTenancy = a});---- | The name of the placement group the instance is in (for cluster compute instances).-pGroupName :: Lens' Placement (Maybe Text)-pGroupName = lens _pGroupName (\ s a -> s{_pGroupName = a});--instance FromXML Placement where-        parseXML x-          = Placement' <$>-              (x .@? "affinity") <*> (x .@? "hostId") <*>-                (x .@? "availabilityZone")-                <*> (x .@? "tenancy")-                <*> (x .@? "groupName")--instance Hashable Placement--instance NFData Placement--instance ToQuery Placement where-        toQuery Placement'{..}-          = mconcat-              ["Affinity" =: _pAffinity, "HostId" =: _pHostId,-               "AvailabilityZone" =: _pAvailabilityZone,-               "Tenancy" =: _pTenancy, "GroupName" =: _pGroupName]---- | Describes a placement group.------------ /See:/ 'placementGroup' smart constructor.-data PlacementGroup = PlacementGroup'-    { _pgState     :: !(Maybe PlacementGroupState)-    , _pgStrategy  :: !(Maybe PlacementStrategy)-    , _pgGroupName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pgState' - The state of the placement group.------ * 'pgStrategy' - The placement strategy.------ * 'pgGroupName' - The name of the placement group.-placementGroup-    :: PlacementGroup-placementGroup =-    PlacementGroup'-    { _pgState = Nothing-    , _pgStrategy = Nothing-    , _pgGroupName = Nothing-    }---- | The state of the placement group.-pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)-pgState = lens _pgState (\ s a -> s{_pgState = a});---- | The placement strategy.-pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)-pgStrategy = lens _pgStrategy (\ s a -> s{_pgStrategy = a});---- | The name of the placement group.-pgGroupName :: Lens' PlacementGroup (Maybe Text)-pgGroupName = lens _pgGroupName (\ s a -> s{_pgGroupName = a});--instance FromXML PlacementGroup where-        parseXML x-          = PlacementGroup' <$>-              (x .@? "state") <*> (x .@? "strategy") <*>-                (x .@? "groupName")--instance Hashable PlacementGroup--instance NFData PlacementGroup---- | Describes a range of ports.------------ /See:/ 'portRange' smart constructor.-data PortRange = PortRange'-    { _prTo   :: !(Maybe Int)-    , _prFrom :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PortRange' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'prTo' - The last port in the range.------ * 'prFrom' - The first port in the range.-portRange-    :: PortRange-portRange =-    PortRange'-    { _prTo = Nothing-    , _prFrom = Nothing-    }---- | The last port in the range.-prTo :: Lens' PortRange (Maybe Int)-prTo = lens _prTo (\ s a -> s{_prTo = a});---- | The first port in the range.-prFrom :: Lens' PortRange (Maybe Int)-prFrom = lens _prFrom (\ s a -> s{_prFrom = a});--instance FromXML PortRange where-        parseXML x-          = PortRange' <$> (x .@? "to") <*> (x .@? "from")--instance Hashable PortRange--instance NFData PortRange--instance ToQuery PortRange where-        toQuery PortRange'{..}-          = mconcat ["To" =: _prTo, "From" =: _prFrom]---- | Describes prefixes for AWS services.------------ /See:/ 'prefixList' smart constructor.-data PrefixList = PrefixList'-    { _plCidrs          :: !(Maybe [Text])-    , _plPrefixListId   :: !(Maybe Text)-    , _plPrefixListName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PrefixList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'plCidrs' - The IP address range of the AWS service.------ * 'plPrefixListId' - The ID of the prefix.------ * 'plPrefixListName' - The name of the prefix.-prefixList-    :: PrefixList-prefixList =-    PrefixList'-    { _plCidrs = Nothing-    , _plPrefixListId = Nothing-    , _plPrefixListName = Nothing-    }---- | The IP address range of the AWS service.-plCidrs :: Lens' PrefixList [Text]-plCidrs = lens _plCidrs (\ s a -> s{_plCidrs = a}) . _Default . _Coerce;---- | The ID of the prefix.-plPrefixListId :: Lens' PrefixList (Maybe Text)-plPrefixListId = lens _plPrefixListId (\ s a -> s{_plPrefixListId = a});---- | The name of the prefix.-plPrefixListName :: Lens' PrefixList (Maybe Text)-plPrefixListName = lens _plPrefixListName (\ s a -> s{_plPrefixListName = a});--instance FromXML PrefixList where-        parseXML x-          = PrefixList' <$>-              (x .@? "cidrSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "prefixListId")-                <*> (x .@? "prefixListName")--instance Hashable PrefixList--instance NFData PrefixList---- | The ID of the prefix.------------ /See:/ 'prefixListId' smart constructor.-newtype PrefixListId = PrefixListId'-    { _pliPrefixListId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PrefixListId' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pliPrefixListId' - The ID of the prefix.-prefixListId-    :: PrefixListId-prefixListId =-    PrefixListId'-    { _pliPrefixListId = Nothing-    }---- | The ID of the prefix.-pliPrefixListId :: Lens' PrefixListId (Maybe Text)-pliPrefixListId = lens _pliPrefixListId (\ s a -> s{_pliPrefixListId = a});--instance FromXML PrefixListId where-        parseXML x = PrefixListId' <$> (x .@? "prefixListId")--instance Hashable PrefixListId--instance NFData PrefixListId--instance ToQuery PrefixListId where-        toQuery PrefixListId'{..}-          = mconcat ["PrefixListId" =: _pliPrefixListId]---- | Describes the price for a Reserved Instance.------------ /See:/ 'priceSchedule' smart constructor.-data PriceSchedule = PriceSchedule'-    { _psCurrencyCode :: !(Maybe CurrencyCodeValues)-    , _psTerm         :: !(Maybe Integer)-    , _psActive       :: !(Maybe Bool)-    , _psPrice        :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PriceSchedule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'psCurrencyCode' - The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .------ * 'psTerm' - The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.------ * 'psActive' - 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.------ * 'psPrice' - The fixed price for the term.-priceSchedule-    :: PriceSchedule-priceSchedule =-    PriceSchedule'-    { _psCurrencyCode = Nothing-    , _psTerm = Nothing-    , _psActive = Nothing-    , _psPrice = Nothing-    }---- | The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .-psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)-psCurrencyCode = lens _psCurrencyCode (\ s a -> s{_psCurrencyCode = a});---- | 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)-psTerm = lens _psTerm (\ s a -> s{_psTerm = 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.-psActive :: Lens' PriceSchedule (Maybe Bool)-psActive = lens _psActive (\ s a -> s{_psActive = a});---- | The fixed price for the term.-psPrice :: Lens' PriceSchedule (Maybe Double)-psPrice = lens _psPrice (\ s a -> s{_psPrice = a});--instance FromXML PriceSchedule where-        parseXML x-          = PriceSchedule' <$>-              (x .@? "currencyCode") <*> (x .@? "term") <*>-                (x .@? "active")-                <*> (x .@? "price")--instance Hashable PriceSchedule--instance NFData PriceSchedule---- | Describes the price for a Reserved Instance.------------ /See:/ 'priceScheduleSpecification' smart constructor.-data PriceScheduleSpecification = PriceScheduleSpecification'-    { _pssCurrencyCode :: !(Maybe CurrencyCodeValues)-    , _pssTerm         :: !(Maybe Integer)-    , _pssPrice        :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PriceScheduleSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pssCurrencyCode' - The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .------ * 'pssTerm' - The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.------ * 'pssPrice' - The fixed price for the term.-priceScheduleSpecification-    :: PriceScheduleSpecification-priceScheduleSpecification =-    PriceScheduleSpecification'-    { _pssCurrencyCode = Nothing-    , _pssTerm = Nothing-    , _pssPrice = Nothing-    }---- | The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .-pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)-pssCurrencyCode = lens _pssCurrencyCode (\ s a -> s{_pssCurrencyCode = a});---- | 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)-pssTerm = lens _pssTerm (\ s a -> s{_pssTerm = a});---- | The fixed price for the term.-pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)-pssPrice = lens _pssPrice (\ s a -> s{_pssPrice = a});--instance Hashable PriceScheduleSpecification--instance NFData PriceScheduleSpecification--instance ToQuery PriceScheduleSpecification where-        toQuery PriceScheduleSpecification'{..}-          = mconcat-              ["CurrencyCode" =: _pssCurrencyCode,-               "Term" =: _pssTerm, "Price" =: _pssPrice]---- | Describes a Reserved Instance offering.------------ /See:/ 'pricingDetail' smart constructor.-data PricingDetail = PricingDetail'-    { _pdCount :: !(Maybe Int)-    , _pdPrice :: !(Maybe Double)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PricingDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pdCount' - The number of reservations available for the price.------ * 'pdPrice' - The price per instance.-pricingDetail-    :: PricingDetail-pricingDetail =-    PricingDetail'-    { _pdCount = Nothing-    , _pdPrice = Nothing-    }---- | The number of reservations available for the price.-pdCount :: Lens' PricingDetail (Maybe Int)-pdCount = lens _pdCount (\ s a -> s{_pdCount = a});---- | The price per instance.-pdPrice :: Lens' PricingDetail (Maybe Double)-pdPrice = lens _pdPrice (\ s a -> s{_pdPrice = a});--instance FromXML PricingDetail where-        parseXML x-          = PricingDetail' <$>-              (x .@? "count") <*> (x .@? "price")--instance Hashable PricingDetail--instance NFData PricingDetail---- | Describes a secondary private IPv4 address for a network interface.------------ /See:/ 'privateIPAddressSpecification' smart constructor.-data PrivateIPAddressSpecification = PrivateIPAddressSpecification'-    { _piasPrimary          :: !(Maybe Bool)-    , _piasPrivateIPAddress :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PrivateIPAddressSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'piasPrimary' - Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary.------ * 'piasPrivateIPAddress' - The private IPv4 addresses.-privateIPAddressSpecification-    :: Text -- ^ 'piasPrivateIPAddress'-    -> PrivateIPAddressSpecification-privateIPAddressSpecification pPrivateIPAddress_ =-    PrivateIPAddressSpecification'-    { _piasPrimary = Nothing-    , _piasPrivateIPAddress = pPrivateIPAddress_-    }---- | 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)-piasPrimary = lens _piasPrimary (\ s a -> s{_piasPrimary = a});---- | The private IPv4 addresses.-piasPrivateIPAddress :: Lens' PrivateIPAddressSpecification Text-piasPrivateIPAddress = lens _piasPrivateIPAddress (\ s a -> s{_piasPrivateIPAddress = a});--instance FromXML PrivateIPAddressSpecification where-        parseXML x-          = PrivateIPAddressSpecification' <$>-              (x .@? "primary") <*> (x .@ "privateIpAddress")--instance Hashable PrivateIPAddressSpecification--instance NFData PrivateIPAddressSpecification--instance ToQuery PrivateIPAddressSpecification where-        toQuery PrivateIPAddressSpecification'{..}-          = mconcat-              ["Primary" =: _piasPrimary,-               "PrivateIpAddress" =: _piasPrivateIPAddress]---- | Describes a product code.------------ /See:/ 'productCode' smart constructor.-data ProductCode = ProductCode'-    { _pcProductCodeType :: !(Maybe ProductCodeValues)-    , _pcProductCodeId   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ProductCode' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pcProductCodeType' - The type of product code.------ * 'pcProductCodeId' - The product code.-productCode-    :: ProductCode-productCode =-    ProductCode'-    { _pcProductCodeType = Nothing-    , _pcProductCodeId = Nothing-    }---- | The type of product code.-pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)-pcProductCodeType = lens _pcProductCodeType (\ s a -> s{_pcProductCodeType = a});---- | The product code.-pcProductCodeId :: Lens' ProductCode (Maybe Text)-pcProductCodeId = lens _pcProductCodeId (\ s a -> s{_pcProductCodeId = a});--instance FromXML ProductCode where-        parseXML x-          = ProductCode' <$>-              (x .@? "type") <*> (x .@? "productCode")--instance Hashable ProductCode--instance NFData ProductCode---- | Describes a virtual private gateway propagating route.------------ /See:/ 'propagatingVGW' smart constructor.-newtype PropagatingVGW = PropagatingVGW'-    { _pvGatewayId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PropagatingVGW' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pvGatewayId' - The ID of the virtual private gateway (VGW).-propagatingVGW-    :: PropagatingVGW-propagatingVGW =-    PropagatingVGW'-    { _pvGatewayId = Nothing-    }---- | The ID of the virtual private gateway (VGW).-pvGatewayId :: Lens' PropagatingVGW (Maybe Text)-pvGatewayId = lens _pvGatewayId (\ s a -> s{_pvGatewayId = a});--instance FromXML PropagatingVGW where-        parseXML x = PropagatingVGW' <$> (x .@? "gatewayId")--instance Hashable PropagatingVGW--instance NFData PropagatingVGW---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .------------ /See:/ 'provisionedBandwidth' smart constructor.-data ProvisionedBandwidth = ProvisionedBandwidth'-    { _pbStatus        :: !(Maybe Text)-    , _pbRequested     :: !(Maybe Text)-    , _pbProvisioned   :: !(Maybe Text)-    , _pbRequestTime   :: !(Maybe ISO8601)-    , _pbProvisionTime :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ProvisionedBandwidth' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pbStatus' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .------ * 'pbRequested' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .------ * 'pbProvisioned' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .------ * 'pbRequestTime' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .------ * 'pbProvisionTime' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-provisionedBandwidth-    :: ProvisionedBandwidth-provisionedBandwidth =-    ProvisionedBandwidth'-    { _pbStatus = Nothing-    , _pbRequested = Nothing-    , _pbProvisioned = Nothing-    , _pbRequestTime = Nothing-    , _pbProvisionTime = Nothing-    }---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-pbStatus :: Lens' ProvisionedBandwidth (Maybe Text)-pbStatus = lens _pbStatus (\ s a -> s{_pbStatus = a});---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-pbRequested :: Lens' ProvisionedBandwidth (Maybe Text)-pbRequested = lens _pbRequested (\ s a -> s{_pbRequested = a});---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-pbProvisioned :: Lens' ProvisionedBandwidth (Maybe Text)-pbProvisioned = lens _pbProvisioned (\ s a -> s{_pbProvisioned = a});---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-pbRequestTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)-pbRequestTime = lens _pbRequestTime (\ s a -> s{_pbRequestTime = a}) . mapping _Time;---- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .-pbProvisionTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)-pbProvisionTime = lens _pbProvisionTime (\ s a -> s{_pbProvisionTime = a}) . mapping _Time;--instance FromXML ProvisionedBandwidth where-        parseXML x-          = ProvisionedBandwidth' <$>-              (x .@? "status") <*> (x .@? "requested") <*>-                (x .@? "provisioned")-                <*> (x .@? "requestTime")-                <*> (x .@? "provisionTime")--instance Hashable ProvisionedBandwidth--instance NFData ProvisionedBandwidth---- | Describes the result of the purchase.------------ /See:/ 'purchase' smart constructor.-data Purchase = Purchase'-    { _pInstanceFamily    :: !(Maybe Text)-    , _pCurrencyCode      :: !(Maybe CurrencyCodeValues)-    , _pHostReservationId :: !(Maybe Text)-    , _pHourlyPrice       :: !(Maybe Text)-    , _pUpfrontPrice      :: !(Maybe Text)-    , _pHostIdSet         :: !(Maybe [Text])-    , _pDuration          :: !(Maybe Int)-    , _pPaymentOption     :: !(Maybe PaymentOption)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Purchase' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pInstanceFamily' - The instance family on the Dedicated Host that the reservation can be associated with.------ * 'pCurrencyCode' - The currency in which the @UpfrontPrice@ and @HourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .------ * 'pHostReservationId' - The ID of the reservation.------ * 'pHourlyPrice' - The hourly price of the reservation per hour.------ * 'pUpfrontPrice' - The upfront price of the reservation.------ * 'pHostIdSet' - The IDs of the Dedicated Hosts associated with the reservation.------ * 'pDuration' - The duration of the reservation's term in seconds.------ * 'pPaymentOption' - The payment option for the reservation.-purchase-    :: Purchase-purchase =-    Purchase'-    { _pInstanceFamily = Nothing-    , _pCurrencyCode = Nothing-    , _pHostReservationId = Nothing-    , _pHourlyPrice = Nothing-    , _pUpfrontPrice = Nothing-    , _pHostIdSet = Nothing-    , _pDuration = Nothing-    , _pPaymentOption = Nothing-    }---- | The instance family on the Dedicated Host that the reservation can be associated with.-pInstanceFamily :: Lens' Purchase (Maybe Text)-pInstanceFamily = lens _pInstanceFamily (\ s a -> s{_pInstanceFamily = a});---- | The currency in which the @UpfrontPrice@ and @HourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .-pCurrencyCode :: Lens' Purchase (Maybe CurrencyCodeValues)-pCurrencyCode = lens _pCurrencyCode (\ s a -> s{_pCurrencyCode = a});---- | The ID of the reservation.-pHostReservationId :: Lens' Purchase (Maybe Text)-pHostReservationId = lens _pHostReservationId (\ s a -> s{_pHostReservationId = a});---- | The hourly price of the reservation per hour.-pHourlyPrice :: Lens' Purchase (Maybe Text)-pHourlyPrice = lens _pHourlyPrice (\ s a -> s{_pHourlyPrice = a});---- | The upfront price of the reservation.-pUpfrontPrice :: Lens' Purchase (Maybe Text)-pUpfrontPrice = lens _pUpfrontPrice (\ s a -> s{_pUpfrontPrice = a});---- | The IDs of the Dedicated Hosts associated with the reservation.-pHostIdSet :: Lens' Purchase [Text]-pHostIdSet = lens _pHostIdSet (\ s a -> s{_pHostIdSet = a}) . _Default . _Coerce;---- | The duration of the reservation's term in seconds.-pDuration :: Lens' Purchase (Maybe Int)-pDuration = lens _pDuration (\ s a -> s{_pDuration = a});---- | The payment option for the reservation.-pPaymentOption :: Lens' Purchase (Maybe PaymentOption)-pPaymentOption = lens _pPaymentOption (\ s a -> s{_pPaymentOption = a});--instance FromXML Purchase where-        parseXML x-          = Purchase' <$>-              (x .@? "instanceFamily") <*> (x .@? "currencyCode")-                <*> (x .@? "hostReservationId")-                <*> (x .@? "hourlyPrice")-                <*> (x .@? "upfrontPrice")-                <*>-                (x .@? "hostIdSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "duration")-                <*> (x .@? "paymentOption")--instance Hashable Purchase--instance NFData Purchase---- | Describes a request to purchase Scheduled Instances.------------ /See:/ 'purchaseRequest' smart constructor.-data PurchaseRequest = PurchaseRequest'-    { _prPurchaseToken :: !Text-    , _prInstanceCount :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PurchaseRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'prPurchaseToken' - The purchase token.------ * 'prInstanceCount' - The number of instances.-purchaseRequest-    :: Text -- ^ 'prPurchaseToken'-    -> Int -- ^ 'prInstanceCount'-    -> PurchaseRequest-purchaseRequest pPurchaseToken_ pInstanceCount_ =-    PurchaseRequest'-    { _prPurchaseToken = pPurchaseToken_-    , _prInstanceCount = pInstanceCount_-    }---- | The purchase token.-prPurchaseToken :: Lens' PurchaseRequest Text-prPurchaseToken = lens _prPurchaseToken (\ s a -> s{_prPurchaseToken = a});---- | The number of instances.-prInstanceCount :: Lens' PurchaseRequest Int-prInstanceCount = lens _prInstanceCount (\ s a -> s{_prInstanceCount = a});--instance Hashable PurchaseRequest--instance NFData PurchaseRequest--instance ToQuery PurchaseRequest where-        toQuery PurchaseRequest'{..}-          = mconcat-              ["PurchaseToken" =: _prPurchaseToken,-               "InstanceCount" =: _prInstanceCount]---- | Describes a recurring charge.------------ /See:/ 'recurringCharge' smart constructor.-data RecurringCharge = RecurringCharge'-    { _rcAmount    :: !(Maybe Double)-    , _rcFrequency :: !(Maybe RecurringChargeFrequency)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcAmount' - The amount of the recurring charge.------ * 'rcFrequency' - The frequency of the recurring charge.-recurringCharge-    :: RecurringCharge-recurringCharge =-    RecurringCharge'-    { _rcAmount = Nothing-    , _rcFrequency = Nothing-    }---- | The amount of the recurring charge.-rcAmount :: Lens' RecurringCharge (Maybe Double)-rcAmount = lens _rcAmount (\ s a -> s{_rcAmount = a});---- | The frequency of the recurring charge.-rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)-rcFrequency = lens _rcFrequency (\ s a -> s{_rcFrequency = a});--instance FromXML RecurringCharge where-        parseXML x-          = RecurringCharge' <$>-              (x .@? "amount") <*> (x .@? "frequency")--instance Hashable RecurringCharge--instance NFData RecurringCharge---- | Describes a region.------------ /See:/ 'regionInfo' smart constructor.-data RegionInfo = RegionInfo'-    { _riRegionName :: !(Maybe Text)-    , _riEndpoint   :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RegionInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riRegionName' - The name of the region.------ * 'riEndpoint' - The region service endpoint.-regionInfo-    :: RegionInfo-regionInfo =-    RegionInfo'-    { _riRegionName = Nothing-    , _riEndpoint = Nothing-    }---- | The name of the region.-riRegionName :: Lens' RegionInfo (Maybe Text)-riRegionName = lens _riRegionName (\ s a -> s{_riRegionName = a});---- | The region service endpoint.-riEndpoint :: Lens' RegionInfo (Maybe Text)-riEndpoint = lens _riEndpoint (\ s a -> s{_riEndpoint = a});--instance FromXML RegionInfo where-        parseXML x-          = RegionInfo' <$>-              (x .@? "regionName") <*> (x .@? "regionEndpoint")--instance Hashable RegionInfo--instance NFData RegionInfo---- | Describes the launch specification for an instance.------------ /See:/ 'requestSpotLaunchSpecification' smart constructor.-data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification'-    { _rslsSecurityGroupIds    :: !(Maybe [Text])-    , _rslsSecurityGroups      :: !(Maybe [Text])-    , _rslsKeyName             :: !(Maybe Text)-    , _rslsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _rslsRAMDiskId           :: !(Maybe Text)-    , _rslsSubnetId            :: !(Maybe Text)-    , _rslsKernelId            :: !(Maybe Text)-    , _rslsInstanceType        :: !(Maybe InstanceType)-    , _rslsEBSOptimized        :: !(Maybe Bool)-    , _rslsUserData            :: !(Maybe Text)-    , _rslsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)-    , _rslsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)-    , _rslsImageId             :: !(Maybe Text)-    , _rslsAddressingType      :: !(Maybe Text)-    , _rslsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _rslsPlacement           :: !(Maybe SpotPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RequestSpotLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rslsSecurityGroupIds' - Undocumented member.------ * 'rslsSecurityGroups' - Undocumented member.------ * 'rslsKeyName' - The name of the key pair.------ * 'rslsNetworkInterfaces' - One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.------ * 'rslsRAMDiskId' - The ID of the RAM disk.------ * 'rslsSubnetId' - The ID of the subnet in which to launch the instance.------ * 'rslsKernelId' - The ID of the kernel.------ * 'rslsInstanceType' - The instance type.------ * 'rslsEBSOptimized' - Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@------ * 'rslsUserData' - The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.------ * 'rslsMonitoring' - Undocumented member.------ * 'rslsIAMInstanceProfile' - The IAM instance profile.------ * 'rslsImageId' - The ID of the AMI.------ * 'rslsAddressingType' - Deprecated.------ * 'rslsBlockDeviceMappings' - One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.------ * 'rslsPlacement' - The placement information for the instance.-requestSpotLaunchSpecification-    :: RequestSpotLaunchSpecification-requestSpotLaunchSpecification =-    RequestSpotLaunchSpecification'-    { _rslsSecurityGroupIds = Nothing-    , _rslsSecurityGroups = Nothing-    , _rslsKeyName = Nothing-    , _rslsNetworkInterfaces = Nothing-    , _rslsRAMDiskId = Nothing-    , _rslsSubnetId = Nothing-    , _rslsKernelId = Nothing-    , _rslsInstanceType = Nothing-    , _rslsEBSOptimized = Nothing-    , _rslsUserData = Nothing-    , _rslsMonitoring = Nothing-    , _rslsIAMInstanceProfile = Nothing-    , _rslsImageId = Nothing-    , _rslsAddressingType = Nothing-    , _rslsBlockDeviceMappings = Nothing-    , _rslsPlacement = Nothing-    }---- | Undocumented member.-rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]-rslsSecurityGroupIds = lens _rslsSecurityGroupIds (\ s a -> s{_rslsSecurityGroupIds = a}) . _Default . _Coerce;---- | Undocumented member.-rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]-rslsSecurityGroups = lens _rslsSecurityGroups (\ s a -> s{_rslsSecurityGroups = a}) . _Default . _Coerce;---- | The name of the key pair.-rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsKeyName = lens _rslsKeyName (\ s a -> s{_rslsKeyName = 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.-rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]-rslsNetworkInterfaces = lens _rslsNetworkInterfaces (\ s a -> s{_rslsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-rslsRAMDiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsRAMDiskId = lens _rslsRAMDiskId (\ s a -> s{_rslsRAMDiskId = a});---- | The ID of the subnet in which to launch the instance.-rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsSubnetId = lens _rslsSubnetId (\ s a -> s{_rslsSubnetId = a});---- | The ID of the kernel.-rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsKernelId = lens _rslsKernelId (\ s a -> s{_rslsKernelId = a});---- | The instance type.-rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)-rslsInstanceType = lens _rslsInstanceType (\ s a -> s{_rslsInstanceType = a});---- | Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@-rslsEBSOptimized :: Lens' RequestSpotLaunchSpecification (Maybe Bool)-rslsEBSOptimized = lens _rslsEBSOptimized (\ s a -> s{_rslsEBSOptimized = a});---- | The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.-rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsUserData = lens _rslsUserData (\ s a -> s{_rslsUserData = a});---- | Undocumented member.-rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)-rslsMonitoring = lens _rslsMonitoring (\ s a -> s{_rslsMonitoring = a});---- | The IAM instance profile.-rslsIAMInstanceProfile :: Lens' RequestSpotLaunchSpecification (Maybe IAMInstanceProfileSpecification)-rslsIAMInstanceProfile = lens _rslsIAMInstanceProfile (\ s a -> s{_rslsIAMInstanceProfile = a});---- | The ID of the AMI.-rslsImageId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsImageId = lens _rslsImageId (\ s a -> s{_rslsImageId = a});---- | Deprecated.-rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsAddressingType = lens _rslsAddressingType (\ s a -> s{_rslsAddressingType = a});---- | One or more block device mapping entries. Although you can specify encrypted EBS volumes in this block device mapping for your Spot Instances, these volumes are not encrypted.-rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]-rslsBlockDeviceMappings = lens _rslsBlockDeviceMappings (\ s a -> s{_rslsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information for the instance.-rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)-rslsPlacement = lens _rslsPlacement (\ s a -> s{_rslsPlacement = a});--instance Hashable RequestSpotLaunchSpecification--instance NFData RequestSpotLaunchSpecification--instance ToQuery RequestSpotLaunchSpecification where-        toQuery RequestSpotLaunchSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "SecurityGroupId" <$>-                    _rslsSecurityGroupIds),-               toQuery-                 (toQueryList "SecurityGroup" <$>-                    _rslsSecurityGroups),-               "KeyName" =: _rslsKeyName,-               toQuery-                 (toQueryList "NetworkInterface" <$>-                    _rslsNetworkInterfaces),-               "RamdiskId" =: _rslsRAMDiskId,-               "SubnetId" =: _rslsSubnetId,-               "KernelId" =: _rslsKernelId,-               "InstanceType" =: _rslsInstanceType,-               "EbsOptimized" =: _rslsEBSOptimized,-               "UserData" =: _rslsUserData,-               "Monitoring" =: _rslsMonitoring,-               "IamInstanceProfile" =: _rslsIAMInstanceProfile,-               "ImageId" =: _rslsImageId,-               "AddressingType" =: _rslsAddressingType,-               toQuery-                 (toQueryList "BlockDeviceMapping" <$>-                    _rslsBlockDeviceMappings),-               "Placement" =: _rslsPlacement]---- | Describes a reservation.------------ /See:/ 'reservation' smart constructor.-data Reservation = Reservation'-    { _rGroups        :: !(Maybe [GroupIdentifier])-    , _rInstances     :: !(Maybe [Instance])-    , _rRequesterId   :: !(Maybe Text)-    , _rReservationId :: !Text-    , _rOwnerId       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Reservation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rGroups' - [EC2-Classic only] One or more security groups.------ * 'rInstances' - One or more instances.------ * 'rRequesterId' - The ID of the requester that launched the instances on your behalf (for example, AWS Management Console or Auto Scaling).------ * 'rReservationId' - The ID of the reservation.------ * 'rOwnerId' - The ID of the AWS account that owns the reservation.-reservation-    :: Text -- ^ 'rReservationId'-    -> Text -- ^ 'rOwnerId'-    -> Reservation-reservation pReservationId_ pOwnerId_ =-    Reservation'-    { _rGroups = Nothing-    , _rInstances = Nothing-    , _rRequesterId = Nothing-    , _rReservationId = pReservationId_-    , _rOwnerId = pOwnerId_-    }---- | [EC2-Classic only] One or more security groups.-rGroups :: Lens' Reservation [GroupIdentifier]-rGroups = lens _rGroups (\ s a -> s{_rGroups = a}) . _Default . _Coerce;---- | One or more instances.-rInstances :: Lens' Reservation [Instance]-rInstances = lens _rInstances (\ s a -> s{_rInstances = a}) . _Default . _Coerce;---- | 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)-rRequesterId = lens _rRequesterId (\ s a -> s{_rRequesterId = a});---- | The ID of the reservation.-rReservationId :: Lens' Reservation Text-rReservationId = lens _rReservationId (\ s a -> s{_rReservationId = a});---- | The ID of the AWS account that owns the reservation.-rOwnerId :: Lens' Reservation Text-rOwnerId = lens _rOwnerId (\ s a -> s{_rOwnerId = a});--instance FromXML Reservation where-        parseXML x-          = Reservation' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*>-                (x .@? "instancesSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "requesterId")-                <*> (x .@ "reservationId")-                <*> (x .@ "ownerId")--instance Hashable Reservation--instance NFData Reservation---- | The cost associated with the Reserved Instance.------------ /See:/ 'reservationValue' smart constructor.-data ReservationValue = ReservationValue'-    { _rvHourlyPrice           :: !(Maybe Text)-    , _rvRemainingTotalValue   :: !(Maybe Text)-    , _rvRemainingUpfrontValue :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservationValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rvHourlyPrice' - The hourly rate of the reservation.------ * 'rvRemainingTotalValue' - The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).------ * 'rvRemainingUpfrontValue' - The remaining upfront cost of the reservation.-reservationValue-    :: ReservationValue-reservationValue =-    ReservationValue'-    { _rvHourlyPrice = Nothing-    , _rvRemainingTotalValue = Nothing-    , _rvRemainingUpfrontValue = Nothing-    }---- | The hourly rate of the reservation.-rvHourlyPrice :: Lens' ReservationValue (Maybe Text)-rvHourlyPrice = lens _rvHourlyPrice (\ s a -> s{_rvHourlyPrice = a});---- | The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).-rvRemainingTotalValue :: Lens' ReservationValue (Maybe Text)-rvRemainingTotalValue = lens _rvRemainingTotalValue (\ s a -> s{_rvRemainingTotalValue = a});---- | The remaining upfront cost of the reservation.-rvRemainingUpfrontValue :: Lens' ReservationValue (Maybe Text)-rvRemainingUpfrontValue = lens _rvRemainingUpfrontValue (\ s a -> s{_rvRemainingUpfrontValue = a});--instance FromXML ReservationValue where-        parseXML x-          = ReservationValue' <$>-              (x .@? "hourlyPrice") <*>-                (x .@? "remainingTotalValue")-                <*> (x .@? "remainingUpfrontValue")--instance Hashable ReservationValue--instance NFData ReservationValue---- | Describes the limit price of a Reserved Instance offering.------------ /See:/ 'reservedInstanceLimitPrice' smart constructor.-data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice'-    { _rilpAmount       :: !(Maybe Double)-    , _rilpCurrencyCode :: !(Maybe CurrencyCodeValues)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstanceLimitPrice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rilpAmount' - Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).------ * 'rilpCurrencyCode' - The currency in which the @limitPrice@ amount is specified. At this time, the only supported currency is @USD@ .-reservedInstanceLimitPrice-    :: ReservedInstanceLimitPrice-reservedInstanceLimitPrice =-    ReservedInstanceLimitPrice'-    { _rilpAmount = Nothing-    , _rilpCurrencyCode = Nothing-    }---- | Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).-rilpAmount :: Lens' ReservedInstanceLimitPrice (Maybe Double)-rilpAmount = lens _rilpAmount (\ s a -> s{_rilpAmount = a});---- | The currency in which the @limitPrice@ amount is specified. At this time, the only supported currency is @USD@ .-rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)-rilpCurrencyCode = lens _rilpCurrencyCode (\ s a -> s{_rilpCurrencyCode = a});--instance Hashable ReservedInstanceLimitPrice--instance NFData ReservedInstanceLimitPrice--instance ToQuery ReservedInstanceLimitPrice where-        toQuery ReservedInstanceLimitPrice'{..}-          = mconcat-              ["Amount" =: _rilpAmount,-               "CurrencyCode" =: _rilpCurrencyCode]---- | The total value of the Convertible Reserved Instance.------------ /See:/ 'reservedInstanceReservationValue' smart constructor.-data ReservedInstanceReservationValue = ReservedInstanceReservationValue'-    { _rirvReservationValue   :: !(Maybe ReservationValue)-    , _rirvReservedInstanceId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstanceReservationValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rirvReservationValue' - The total value of the Convertible Reserved Instance that you are exchanging.------ * 'rirvReservedInstanceId' - The ID of the Convertible Reserved Instance that you are exchanging.-reservedInstanceReservationValue-    :: ReservedInstanceReservationValue-reservedInstanceReservationValue =-    ReservedInstanceReservationValue'-    { _rirvReservationValue = Nothing-    , _rirvReservedInstanceId = Nothing-    }---- | The total value of the Convertible Reserved Instance that you are exchanging.-rirvReservationValue :: Lens' ReservedInstanceReservationValue (Maybe ReservationValue)-rirvReservationValue = lens _rirvReservationValue (\ s a -> s{_rirvReservationValue = a});---- | The ID of the Convertible Reserved Instance that you are exchanging.-rirvReservedInstanceId :: Lens' ReservedInstanceReservationValue (Maybe Text)-rirvReservedInstanceId = lens _rirvReservedInstanceId (\ s a -> s{_rirvReservedInstanceId = a});--instance FromXML ReservedInstanceReservationValue-         where-        parseXML x-          = ReservedInstanceReservationValue' <$>-              (x .@? "reservationValue") <*>-                (x .@? "reservedInstanceId")--instance Hashable ReservedInstanceReservationValue--instance NFData ReservedInstanceReservationValue---- | Describes a Reserved Instance.------------ /See:/ 'reservedInstances' smart constructor.-data ReservedInstances = ReservedInstances'-    { _riState               :: !(Maybe ReservedInstanceState)-    , _riCurrencyCode        :: !(Maybe CurrencyCodeValues)-    , _riInstanceCount       :: !(Maybe Int)-    , _riProductDescription  :: !(Maybe RIProductDescription)-    , _riStart               :: !(Maybe ISO8601)-    , _riInstanceType        :: !(Maybe InstanceType)-    , _riEnd                 :: !(Maybe ISO8601)-    , _riAvailabilityZone    :: !(Maybe Text)-    , _riScope               :: !(Maybe Scope)-    , _riRecurringCharges    :: !(Maybe [RecurringCharge])-    , _riOfferingType        :: !(Maybe OfferingTypeValues)-    , _riUsagePrice          :: !(Maybe Double)-    , _riFixedPrice          :: !(Maybe Double)-    , _riReservedInstancesId :: !(Maybe Text)-    , _riInstanceTenancy     :: !(Maybe Tenancy)-    , _riOfferingClass       :: !(Maybe OfferingClassType)-    , _riDuration            :: !(Maybe Integer)-    , _riTags                :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstances' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riState' - The state of the Reserved Instance purchase.------ * 'riCurrencyCode' - The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is @USD@ .------ * 'riInstanceCount' - The number of reservations purchased.------ * 'riProductDescription' - The Reserved Instance product platform description.------ * 'riStart' - The date and time the Reserved Instance started.------ * 'riInstanceType' - The instance type on which the Reserved Instance can be used.------ * 'riEnd' - The time when the Reserved Instance expires.------ * 'riAvailabilityZone' - The Availability Zone in which the Reserved Instance can be used.------ * 'riScope' - The scope of the Reserved Instance.------ * 'riRecurringCharges' - The recurring charge tag assigned to the resource.------ * 'riOfferingType' - The Reserved Instance offering type.------ * 'riUsagePrice' - The usage price of the Reserved Instance, per hour.------ * 'riFixedPrice' - The purchase price of the Reserved Instance.------ * 'riReservedInstancesId' - The ID of the Reserved Instance.------ * 'riInstanceTenancy' - The tenancy of the instance.------ * 'riOfferingClass' - The offering class of the Reserved Instance.------ * 'riDuration' - The duration of the Reserved Instance, in seconds.------ * 'riTags' - Any tags assigned to the resource.-reservedInstances-    :: ReservedInstances-reservedInstances =-    ReservedInstances'-    { _riState = Nothing-    , _riCurrencyCode = Nothing-    , _riInstanceCount = Nothing-    , _riProductDescription = Nothing-    , _riStart = Nothing-    , _riInstanceType = Nothing-    , _riEnd = Nothing-    , _riAvailabilityZone = Nothing-    , _riScope = Nothing-    , _riRecurringCharges = Nothing-    , _riOfferingType = Nothing-    , _riUsagePrice = Nothing-    , _riFixedPrice = Nothing-    , _riReservedInstancesId = Nothing-    , _riInstanceTenancy = Nothing-    , _riOfferingClass = Nothing-    , _riDuration = Nothing-    , _riTags = Nothing-    }---- | The state of the Reserved Instance purchase.-riState :: Lens' ReservedInstances (Maybe ReservedInstanceState)-riState = lens _riState (\ s a -> s{_riState = a});---- | The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is @USD@ .-riCurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)-riCurrencyCode = lens _riCurrencyCode (\ s a -> s{_riCurrencyCode = a});---- | The number of reservations purchased.-riInstanceCount :: Lens' ReservedInstances (Maybe Int)-riInstanceCount = lens _riInstanceCount (\ s a -> s{_riInstanceCount = a});---- | The Reserved Instance product platform description.-riProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)-riProductDescription = lens _riProductDescription (\ s a -> s{_riProductDescription = a});---- | The date and time the Reserved Instance started.-riStart :: Lens' ReservedInstances (Maybe UTCTime)-riStart = lens _riStart (\ s a -> s{_riStart = a}) . mapping _Time;---- | The instance type on which the Reserved Instance can be used.-riInstanceType :: Lens' ReservedInstances (Maybe InstanceType)-riInstanceType = lens _riInstanceType (\ s a -> s{_riInstanceType = a});---- | The time when the Reserved Instance expires.-riEnd :: Lens' ReservedInstances (Maybe UTCTime)-riEnd = lens _riEnd (\ s a -> s{_riEnd = a}) . mapping _Time;---- | The Availability Zone in which the Reserved Instance can be used.-riAvailabilityZone :: Lens' ReservedInstances (Maybe Text)-riAvailabilityZone = lens _riAvailabilityZone (\ s a -> s{_riAvailabilityZone = a});---- | The scope of the Reserved Instance.-riScope :: Lens' ReservedInstances (Maybe Scope)-riScope = lens _riScope (\ s a -> s{_riScope = a});---- | The recurring charge tag assigned to the resource.-riRecurringCharges :: Lens' ReservedInstances [RecurringCharge]-riRecurringCharges = lens _riRecurringCharges (\ s a -> s{_riRecurringCharges = a}) . _Default . _Coerce;---- | The Reserved Instance offering type.-riOfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)-riOfferingType = lens _riOfferingType (\ s a -> s{_riOfferingType = a});---- | The usage price of the Reserved Instance, per hour.-riUsagePrice :: Lens' ReservedInstances (Maybe Double)-riUsagePrice = lens _riUsagePrice (\ s a -> s{_riUsagePrice = a});---- | The purchase price of the Reserved Instance.-riFixedPrice :: Lens' ReservedInstances (Maybe Double)-riFixedPrice = lens _riFixedPrice (\ s a -> s{_riFixedPrice = a});---- | The ID of the Reserved Instance.-riReservedInstancesId :: Lens' ReservedInstances (Maybe Text)-riReservedInstancesId = lens _riReservedInstancesId (\ s a -> s{_riReservedInstancesId = a});---- | The tenancy of the instance.-riInstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)-riInstanceTenancy = lens _riInstanceTenancy (\ s a -> s{_riInstanceTenancy = a});---- | The offering class of the Reserved Instance.-riOfferingClass :: Lens' ReservedInstances (Maybe OfferingClassType)-riOfferingClass = lens _riOfferingClass (\ s a -> s{_riOfferingClass = a});---- | The duration of the Reserved Instance, in seconds.-riDuration :: Lens' ReservedInstances (Maybe Integer)-riDuration = lens _riDuration (\ s a -> s{_riDuration = a});---- | Any tags assigned to the resource.-riTags :: Lens' ReservedInstances [Tag]-riTags = lens _riTags (\ s a -> s{_riTags = a}) . _Default . _Coerce;--instance FromXML ReservedInstances where-        parseXML x-          = ReservedInstances' <$>-              (x .@? "state") <*> (x .@? "currencyCode") <*>-                (x .@? "instanceCount")-                <*> (x .@? "productDescription")-                <*> (x .@? "start")-                <*> (x .@? "instanceType")-                <*> (x .@? "end")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "scope")-                <*>-                (x .@? "recurringCharges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "offeringType")-                <*> (x .@? "usagePrice")-                <*> (x .@? "fixedPrice")-                <*> (x .@? "reservedInstancesId")-                <*> (x .@? "instanceTenancy")-                <*> (x .@? "offeringClass")-                <*> (x .@? "duration")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable ReservedInstances--instance NFData ReservedInstances---- | Describes the configuration settings for the modified Reserved Instances.------------ /See:/ 'reservedInstancesConfiguration' smart constructor.-data ReservedInstancesConfiguration = ReservedInstancesConfiguration'-    { _ricPlatform         :: !(Maybe Text)-    , _ricInstanceCount    :: !(Maybe Int)-    , _ricInstanceType     :: !(Maybe InstanceType)-    , _ricAvailabilityZone :: !(Maybe Text)-    , _ricScope            :: !(Maybe Scope)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ricPlatform' - The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.------ * 'ricInstanceCount' - The number of modified Reserved Instances.------ * 'ricInstanceType' - The instance type for the modified Reserved Instances.------ * 'ricAvailabilityZone' - The Availability Zone for the modified Reserved Instances.------ * 'ricScope' - Whether the Reserved Instance is applied to instances in a region or instances in a specific Availability Zone.-reservedInstancesConfiguration-    :: ReservedInstancesConfiguration-reservedInstancesConfiguration =-    ReservedInstancesConfiguration'-    { _ricPlatform = Nothing-    , _ricInstanceCount = Nothing-    , _ricInstanceType = Nothing-    , _ricAvailabilityZone = Nothing-    , _ricScope = Nothing-    }---- | The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.-ricPlatform :: Lens' ReservedInstancesConfiguration (Maybe Text)-ricPlatform = lens _ricPlatform (\ s a -> s{_ricPlatform = a});---- | The number of modified Reserved Instances.-ricInstanceCount :: Lens' ReservedInstancesConfiguration (Maybe Int)-ricInstanceCount = lens _ricInstanceCount (\ s a -> s{_ricInstanceCount = a});---- | The instance type for the modified Reserved Instances.-ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)-ricInstanceType = lens _ricInstanceType (\ s a -> s{_ricInstanceType = a});---- | The Availability Zone for the modified Reserved Instances.-ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)-ricAvailabilityZone = lens _ricAvailabilityZone (\ s a -> s{_ricAvailabilityZone = a});---- | Whether the Reserved Instance is applied to instances in a region or instances in a specific Availability Zone.-ricScope :: Lens' ReservedInstancesConfiguration (Maybe Scope)-ricScope = lens _ricScope (\ s a -> s{_ricScope = a});--instance FromXML ReservedInstancesConfiguration where-        parseXML x-          = ReservedInstancesConfiguration' <$>-              (x .@? "platform") <*> (x .@? "instanceCount") <*>-                (x .@? "instanceType")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "scope")--instance Hashable ReservedInstancesConfiguration--instance NFData ReservedInstancesConfiguration--instance ToQuery ReservedInstancesConfiguration where-        toQuery ReservedInstancesConfiguration'{..}-          = mconcat-              ["Platform" =: _ricPlatform,-               "InstanceCount" =: _ricInstanceCount,-               "InstanceType" =: _ricInstanceType,-               "AvailabilityZone" =: _ricAvailabilityZone,-               "Scope" =: _ricScope]---- | Describes the ID of a Reserved Instance.------------ /See:/ 'reservedInstancesId' smart constructor.-newtype ReservedInstancesId = ReservedInstancesId'-    { _riiReservedInstancesId :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesId' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'riiReservedInstancesId' - The ID of the Reserved Instance.-reservedInstancesId-    :: ReservedInstancesId-reservedInstancesId =-    ReservedInstancesId'-    { _riiReservedInstancesId = Nothing-    }---- | The ID of the Reserved Instance.-riiReservedInstancesId :: Lens' ReservedInstancesId (Maybe Text)-riiReservedInstancesId = lens _riiReservedInstancesId (\ s a -> s{_riiReservedInstancesId = a});--instance FromXML ReservedInstancesId where-        parseXML x-          = ReservedInstancesId' <$>-              (x .@? "reservedInstancesId")--instance Hashable ReservedInstancesId--instance NFData ReservedInstancesId---- | Describes a Reserved Instance listing.------------ /See:/ 'reservedInstancesListing' smart constructor.-data ReservedInstancesListing = ReservedInstancesListing'-    { _rilStatus                     :: !(Maybe ListingStatus)-    , _rilClientToken                :: !(Maybe Text)-    , _rilUpdateDate                 :: !(Maybe ISO8601)-    , _rilCreateDate                 :: !(Maybe ISO8601)-    , _rilPriceSchedules             :: !(Maybe [PriceSchedule])-    , _rilStatusMessage              :: !(Maybe Text)-    , _rilReservedInstancesId        :: !(Maybe Text)-    , _rilTags                       :: !(Maybe [Tag])-    , _rilInstanceCounts             :: !(Maybe [InstanceCount])-    , _rilReservedInstancesListingId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesListing' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rilStatus' - The status of the Reserved Instance listing.------ * 'rilClientToken' - A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .------ * 'rilUpdateDate' - The last modified timestamp of the listing.------ * 'rilCreateDate' - The time the listing was created.------ * 'rilPriceSchedules' - The price of the Reserved Instance listing.------ * 'rilStatusMessage' - The reason for the current status of the Reserved Instance listing. The response can be blank.------ * 'rilReservedInstancesId' - The ID of the Reserved Instance.------ * 'rilTags' - Any tags assigned to the resource.------ * 'rilInstanceCounts' - The number of instances in this state.------ * 'rilReservedInstancesListingId' - The ID of the Reserved Instance listing.-reservedInstancesListing-    :: ReservedInstancesListing-reservedInstancesListing =-    ReservedInstancesListing'-    { _rilStatus = Nothing-    , _rilClientToken = Nothing-    , _rilUpdateDate = Nothing-    , _rilCreateDate = Nothing-    , _rilPriceSchedules = Nothing-    , _rilStatusMessage = Nothing-    , _rilReservedInstancesId = Nothing-    , _rilTags = Nothing-    , _rilInstanceCounts = Nothing-    , _rilReservedInstancesListingId = Nothing-    }---- | The status of the Reserved Instance listing.-rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)-rilStatus = lens _rilStatus (\ s a -> s{_rilStatus = a});---- | A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .-rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)-rilClientToken = lens _rilClientToken (\ s a -> s{_rilClientToken = a});---- | The last modified timestamp of the listing.-rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)-rilUpdateDate = lens _rilUpdateDate (\ s a -> s{_rilUpdateDate = a}) . mapping _Time;---- | The time the listing was created.-rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)-rilCreateDate = lens _rilCreateDate (\ s a -> s{_rilCreateDate = a}) . mapping _Time;---- | The price of the Reserved Instance listing.-rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]-rilPriceSchedules = lens _rilPriceSchedules (\ s a -> s{_rilPriceSchedules = a}) . _Default . _Coerce;---- | The reason for the current status of the Reserved Instance listing. The response can be blank.-rilStatusMessage :: Lens' ReservedInstancesListing (Maybe Text)-rilStatusMessage = lens _rilStatusMessage (\ s a -> s{_rilStatusMessage = a});---- | The ID of the Reserved Instance.-rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)-rilReservedInstancesId = lens _rilReservedInstancesId (\ s a -> s{_rilReservedInstancesId = a});---- | Any tags assigned to the resource.-rilTags :: Lens' ReservedInstancesListing [Tag]-rilTags = lens _rilTags (\ s a -> s{_rilTags = a}) . _Default . _Coerce;---- | The number of instances in this state.-rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]-rilInstanceCounts = lens _rilInstanceCounts (\ s a -> s{_rilInstanceCounts = a}) . _Default . _Coerce;---- | The ID of the Reserved Instance listing.-rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)-rilReservedInstancesListingId = lens _rilReservedInstancesListingId (\ s a -> s{_rilReservedInstancesListingId = a});--instance FromXML ReservedInstancesListing where-        parseXML x-          = ReservedInstancesListing' <$>-              (x .@? "status") <*> (x .@? "clientToken") <*>-                (x .@? "updateDate")-                <*> (x .@? "createDate")-                <*>-                (x .@? "priceSchedules" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "statusMessage")-                <*> (x .@? "reservedInstancesId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "instanceCounts" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "reservedInstancesListingId")--instance Hashable ReservedInstancesListing--instance NFData ReservedInstancesListing---- | Describes a Reserved Instance modification.------------ /See:/ 'reservedInstancesModification' smart constructor.-data ReservedInstancesModification = ReservedInstancesModification'-    { _rimModificationResults             :: !(Maybe [ReservedInstancesModificationResult])-    , _rimStatus                          :: !(Maybe Text)-    , _rimClientToken                     :: !(Maybe Text)-    , _rimUpdateDate                      :: !(Maybe ISO8601)-    , _rimCreateDate                      :: !(Maybe ISO8601)-    , _rimEffectiveDate                   :: !(Maybe ISO8601)-    , _rimStatusMessage                   :: !(Maybe Text)-    , _rimReservedInstancesModificationId :: !(Maybe Text)-    , _rimReservedInstancesIds            :: !(Maybe [ReservedInstancesId])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesModification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rimModificationResults' - Contains target configurations along with their corresponding new Reserved Instance IDs.------ * 'rimStatus' - The status of the Reserved Instances modification request.------ * 'rimClientToken' - A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .------ * 'rimUpdateDate' - The time when the modification request was last updated.------ * 'rimCreateDate' - The time when the modification request was created.------ * 'rimEffectiveDate' - The time for the modification to become effective.------ * 'rimStatusMessage' - The reason for the status.------ * 'rimReservedInstancesModificationId' - A unique ID for the Reserved Instance modification.------ * 'rimReservedInstancesIds' - The IDs of one or more Reserved Instances.-reservedInstancesModification-    :: ReservedInstancesModification-reservedInstancesModification =-    ReservedInstancesModification'-    { _rimModificationResults = Nothing-    , _rimStatus = Nothing-    , _rimClientToken = Nothing-    , _rimUpdateDate = Nothing-    , _rimCreateDate = Nothing-    , _rimEffectiveDate = Nothing-    , _rimStatusMessage = Nothing-    , _rimReservedInstancesModificationId = Nothing-    , _rimReservedInstancesIds = Nothing-    }---- | Contains target configurations along with their corresponding new Reserved Instance IDs.-rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]-rimModificationResults = lens _rimModificationResults (\ s a -> s{_rimModificationResults = a}) . _Default . _Coerce;---- | The status of the Reserved Instances modification request.-rimStatus :: Lens' ReservedInstancesModification (Maybe Text)-rimStatus = lens _rimStatus (\ s a -> s{_rimStatus = a});---- | A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .-rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)-rimClientToken = lens _rimClientToken (\ s a -> s{_rimClientToken = a});---- | The time when the modification request was last updated.-rimUpdateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)-rimUpdateDate = lens _rimUpdateDate (\ s a -> s{_rimUpdateDate = a}) . mapping _Time;---- | The time when the modification request was created.-rimCreateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)-rimCreateDate = lens _rimCreateDate (\ s a -> s{_rimCreateDate = a}) . mapping _Time;---- | The time for the modification to become effective.-rimEffectiveDate :: Lens' ReservedInstancesModification (Maybe UTCTime)-rimEffectiveDate = lens _rimEffectiveDate (\ s a -> s{_rimEffectiveDate = a}) . mapping _Time;---- | The reason for the status.-rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)-rimStatusMessage = lens _rimStatusMessage (\ s a -> s{_rimStatusMessage = a});---- | A unique ID for the Reserved Instance modification.-rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)-rimReservedInstancesModificationId = lens _rimReservedInstancesModificationId (\ s a -> s{_rimReservedInstancesModificationId = a});---- | The IDs of one or more Reserved Instances.-rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]-rimReservedInstancesIds = lens _rimReservedInstancesIds (\ s a -> s{_rimReservedInstancesIds = a}) . _Default . _Coerce;--instance FromXML ReservedInstancesModification where-        parseXML x-          = ReservedInstancesModification' <$>-              (x .@? "modificationResultSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "status")-                <*> (x .@? "clientToken")-                <*> (x .@? "updateDate")-                <*> (x .@? "createDate")-                <*> (x .@? "effectiveDate")-                <*> (x .@? "statusMessage")-                <*> (x .@? "reservedInstancesModificationId")-                <*>-                (x .@? "reservedInstancesSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable ReservedInstancesModification--instance NFData ReservedInstancesModification---- | Describes the modification request/s.------------ /See:/ 'reservedInstancesModificationResult' smart constructor.-data ReservedInstancesModificationResult = ReservedInstancesModificationResult'-    { _rimrReservedInstancesId :: !(Maybe Text)-    , _rimrTargetConfiguration :: !(Maybe ReservedInstancesConfiguration)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesModificationResult' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rimrReservedInstancesId' - 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.------ * 'rimrTargetConfiguration' - The target Reserved Instances configurations supplied as part of the modification request.-reservedInstancesModificationResult-    :: ReservedInstancesModificationResult-reservedInstancesModificationResult =-    ReservedInstancesModificationResult'-    { _rimrReservedInstancesId = Nothing-    , _rimrTargetConfiguration = Nothing-    }---- | 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)-rimrReservedInstancesId = lens _rimrReservedInstancesId (\ s a -> s{_rimrReservedInstancesId = a});---- | The target Reserved Instances configurations supplied as part of the modification request.-rimrTargetConfiguration :: Lens' ReservedInstancesModificationResult (Maybe ReservedInstancesConfiguration)-rimrTargetConfiguration = lens _rimrTargetConfiguration (\ s a -> s{_rimrTargetConfiguration = a});--instance FromXML ReservedInstancesModificationResult-         where-        parseXML x-          = ReservedInstancesModificationResult' <$>-              (x .@? "reservedInstancesId") <*>-                (x .@? "targetConfiguration")--instance Hashable ReservedInstancesModificationResult--instance NFData ReservedInstancesModificationResult---- | Describes a Reserved Instance offering.------------ /See:/ 'reservedInstancesOffering' smart constructor.-data ReservedInstancesOffering = ReservedInstancesOffering'-    { _rioMarketplace                 :: !(Maybe Bool)-    , _rioCurrencyCode                :: !(Maybe CurrencyCodeValues)-    , _rioProductDescription          :: !(Maybe RIProductDescription)-    , _rioInstanceType                :: !(Maybe InstanceType)-    , _rioAvailabilityZone            :: !(Maybe Text)-    , _rioPricingDetails              :: !(Maybe [PricingDetail])-    , _rioScope                       :: !(Maybe Scope)-    , _rioRecurringCharges            :: !(Maybe [RecurringCharge])-    , _rioOfferingType                :: !(Maybe OfferingTypeValues)-    , _rioUsagePrice                  :: !(Maybe Double)-    , _rioFixedPrice                  :: !(Maybe Double)-    , _rioInstanceTenancy             :: !(Maybe Tenancy)-    , _rioReservedInstancesOfferingId :: !(Maybe Text)-    , _rioOfferingClass               :: !(Maybe OfferingClassType)-    , _rioDuration                    :: !(Maybe Integer)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ReservedInstancesOffering' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rioMarketplace' - Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is @true@ .------ * 'rioCurrencyCode' - 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 @USD@ .------ * 'rioProductDescription' - The Reserved Instance product platform description.------ * 'rioInstanceType' - The instance type on which the Reserved Instance can be used.------ * 'rioAvailabilityZone' - The Availability Zone in which the Reserved Instance can be used.------ * 'rioPricingDetails' - The pricing details of the Reserved Instance offering.------ * 'rioScope' - Whether the Reserved Instance is applied to instances in a region or an Availability Zone.------ * 'rioRecurringCharges' - The recurring charge tag assigned to the resource.------ * 'rioOfferingType' - The Reserved Instance offering type.------ * 'rioUsagePrice' - The usage price of the Reserved Instance, per hour.------ * 'rioFixedPrice' - The purchase price of the Reserved Instance.------ * 'rioInstanceTenancy' - The tenancy of the instance.------ * 'rioReservedInstancesOfferingId' - The ID of the Reserved Instance offering. This is the offering ID used in 'GetReservedInstancesExchangeQuote' to confirm that an exchange can be made.------ * 'rioOfferingClass' - If @convertible@ it can be exchanged for Reserved Instances of the same or higher monetary value, with different configurations. If @standard@ , it is not possible to perform an exchange.------ * 'rioDuration' - The duration of the Reserved Instance, in seconds.-reservedInstancesOffering-    :: ReservedInstancesOffering-reservedInstancesOffering =-    ReservedInstancesOffering'-    { _rioMarketplace = Nothing-    , _rioCurrencyCode = Nothing-    , _rioProductDescription = Nothing-    , _rioInstanceType = Nothing-    , _rioAvailabilityZone = Nothing-    , _rioPricingDetails = Nothing-    , _rioScope = Nothing-    , _rioRecurringCharges = Nothing-    , _rioOfferingType = Nothing-    , _rioUsagePrice = Nothing-    , _rioFixedPrice = Nothing-    , _rioInstanceTenancy = Nothing-    , _rioReservedInstancesOfferingId = Nothing-    , _rioOfferingClass = Nothing-    , _rioDuration = Nothing-    }---- | Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is @true@ .-rioMarketplace :: Lens' ReservedInstancesOffering (Maybe Bool)-rioMarketplace = lens _rioMarketplace (\ s a -> s{_rioMarketplace = 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 @USD@ .-rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)-rioCurrencyCode = lens _rioCurrencyCode (\ s a -> s{_rioCurrencyCode = a});---- | The Reserved Instance product platform description.-rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)-rioProductDescription = lens _rioProductDescription (\ s a -> s{_rioProductDescription = a});---- | The instance type on which the Reserved Instance can be used.-rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)-rioInstanceType = lens _rioInstanceType (\ s a -> s{_rioInstanceType = a});---- | The Availability Zone in which the Reserved Instance can be used.-rioAvailabilityZone :: Lens' ReservedInstancesOffering (Maybe Text)-rioAvailabilityZone = lens _rioAvailabilityZone (\ s a -> s{_rioAvailabilityZone = a});---- | The pricing details of the Reserved Instance offering.-rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]-rioPricingDetails = lens _rioPricingDetails (\ s a -> s{_rioPricingDetails = a}) . _Default . _Coerce;---- | Whether the Reserved Instance is applied to instances in a region or an Availability Zone.-rioScope :: Lens' ReservedInstancesOffering (Maybe Scope)-rioScope = lens _rioScope (\ s a -> s{_rioScope = a});---- | The recurring charge tag assigned to the resource.-rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]-rioRecurringCharges = lens _rioRecurringCharges (\ s a -> s{_rioRecurringCharges = a}) . _Default . _Coerce;---- | The Reserved Instance offering type.-rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)-rioOfferingType = lens _rioOfferingType (\ s a -> s{_rioOfferingType = a});---- | The usage price of the Reserved Instance, per hour.-rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)-rioUsagePrice = lens _rioUsagePrice (\ s a -> s{_rioUsagePrice = a});---- | The purchase price of the Reserved Instance.-rioFixedPrice :: Lens' ReservedInstancesOffering (Maybe Double)-rioFixedPrice = lens _rioFixedPrice (\ s a -> s{_rioFixedPrice = a});---- | The tenancy of the instance.-rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)-rioInstanceTenancy = lens _rioInstanceTenancy (\ s a -> s{_rioInstanceTenancy = a});---- | The ID of the Reserved Instance offering. This is the offering ID used in 'GetReservedInstancesExchangeQuote' to confirm that an exchange can be made.-rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)-rioReservedInstancesOfferingId = lens _rioReservedInstancesOfferingId (\ s a -> s{_rioReservedInstancesOfferingId = a});---- | If @convertible@ it can be exchanged for Reserved Instances of the same or higher monetary value, with different configurations. If @standard@ , it is not possible to perform an exchange.-rioOfferingClass :: Lens' ReservedInstancesOffering (Maybe OfferingClassType)-rioOfferingClass = lens _rioOfferingClass (\ s a -> s{_rioOfferingClass = a});---- | The duration of the Reserved Instance, in seconds.-rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)-rioDuration = lens _rioDuration (\ s a -> s{_rioDuration = a});--instance FromXML ReservedInstancesOffering where-        parseXML x-          = ReservedInstancesOffering' <$>-              (x .@? "marketplace") <*> (x .@? "currencyCode") <*>-                (x .@? "productDescription")-                <*> (x .@? "instanceType")-                <*> (x .@? "availabilityZone")-                <*>-                (x .@? "pricingDetailsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "scope")-                <*>-                (x .@? "recurringCharges" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "offeringType")-                <*> (x .@? "usagePrice")-                <*> (x .@? "fixedPrice")-                <*> (x .@? "instanceTenancy")-                <*> (x .@? "reservedInstancesOfferingId")-                <*> (x .@? "offeringClass")-                <*> (x .@? "duration")--instance Hashable ReservedInstancesOffering--instance NFData ReservedInstancesOffering---- | Describes a route in a route table.------------ /See:/ 'route' smart constructor.-data Route = Route'-    { _rVPCPeeringConnectionId      :: !(Maybe Text)-    , _rInstanceId                  :: !(Maybe Text)-    , _rOrigin                      :: !(Maybe RouteOrigin)-    , _rState                       :: !(Maybe RouteState)-    , _rEgressOnlyInternetGatewayId :: !(Maybe Text)-    , _rDestinationIPv6CidrBlock    :: !(Maybe Text)-    , _rNatGatewayId                :: !(Maybe Text)-    , _rNetworkInterfaceId          :: !(Maybe Text)-    , _rGatewayId                   :: !(Maybe Text)-    , _rInstanceOwnerId             :: !(Maybe Text)-    , _rDestinationPrefixListId     :: !(Maybe Text)-    , _rDestinationCidrBlock        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Route' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rVPCPeeringConnectionId' - The ID of the VPC peering connection.------ * 'rInstanceId' - The ID of a NAT instance in your VPC.------ * 'rOrigin' - Describes how the route was created.     * @CreateRouteTable@ - The route was automatically created when the route table was created.     * @CreateRoute@ - The route was manually added to the route table.     * @EnableVgwRoutePropagation@ - The route was propagated by route propagation.------ * 'rState' - The state of the route. The @blackhole@ 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).------ * 'rEgressOnlyInternetGatewayId' - The ID of the egress-only Internet gateway.------ * 'rDestinationIPv6CidrBlock' - The IPv6 CIDR block used for the destination match.------ * 'rNatGatewayId' - The ID of a NAT gateway.------ * 'rNetworkInterfaceId' - The ID of the network interface.------ * 'rGatewayId' - The ID of a gateway attached to your VPC.------ * 'rInstanceOwnerId' - The AWS account ID of the owner of the instance.------ * 'rDestinationPrefixListId' - The prefix of the AWS service.------ * 'rDestinationCidrBlock' - The IPv4 CIDR block used for the destination match.-route-    :: Route-route =-    Route'-    { _rVPCPeeringConnectionId = Nothing-    , _rInstanceId = Nothing-    , _rOrigin = Nothing-    , _rState = Nothing-    , _rEgressOnlyInternetGatewayId = Nothing-    , _rDestinationIPv6CidrBlock = Nothing-    , _rNatGatewayId = Nothing-    , _rNetworkInterfaceId = Nothing-    , _rGatewayId = Nothing-    , _rInstanceOwnerId = Nothing-    , _rDestinationPrefixListId = Nothing-    , _rDestinationCidrBlock = Nothing-    }---- | The ID of the VPC peering connection.-rVPCPeeringConnectionId :: Lens' Route (Maybe Text)-rVPCPeeringConnectionId = lens _rVPCPeeringConnectionId (\ s a -> s{_rVPCPeeringConnectionId = a});---- | The ID of a NAT instance in your VPC.-rInstanceId :: Lens' Route (Maybe Text)-rInstanceId = lens _rInstanceId (\ s a -> s{_rInstanceId = a});---- | Describes how the route was created.     * @CreateRouteTable@ - The route was automatically created when the route table was created.     * @CreateRoute@ - The route was manually added to the route table.     * @EnableVgwRoutePropagation@ - The route was propagated by route propagation.-rOrigin :: Lens' Route (Maybe RouteOrigin)-rOrigin = lens _rOrigin (\ s a -> s{_rOrigin = a});---- | The state of the route. The @blackhole@ 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)-rState = lens _rState (\ s a -> s{_rState = a});---- | The ID of the egress-only Internet gateway.-rEgressOnlyInternetGatewayId :: Lens' Route (Maybe Text)-rEgressOnlyInternetGatewayId = lens _rEgressOnlyInternetGatewayId (\ s a -> s{_rEgressOnlyInternetGatewayId = a});---- | The IPv6 CIDR block used for the destination match.-rDestinationIPv6CidrBlock :: Lens' Route (Maybe Text)-rDestinationIPv6CidrBlock = lens _rDestinationIPv6CidrBlock (\ s a -> s{_rDestinationIPv6CidrBlock = a});---- | The ID of a NAT gateway.-rNatGatewayId :: Lens' Route (Maybe Text)-rNatGatewayId = lens _rNatGatewayId (\ s a -> s{_rNatGatewayId = a});---- | The ID of the network interface.-rNetworkInterfaceId :: Lens' Route (Maybe Text)-rNetworkInterfaceId = lens _rNetworkInterfaceId (\ s a -> s{_rNetworkInterfaceId = a});---- | The ID of a gateway attached to your VPC.-rGatewayId :: Lens' Route (Maybe Text)-rGatewayId = lens _rGatewayId (\ s a -> s{_rGatewayId = a});---- | The AWS account ID of the owner of the instance.-rInstanceOwnerId :: Lens' Route (Maybe Text)-rInstanceOwnerId = lens _rInstanceOwnerId (\ s a -> s{_rInstanceOwnerId = a});---- | The prefix of the AWS service.-rDestinationPrefixListId :: Lens' Route (Maybe Text)-rDestinationPrefixListId = lens _rDestinationPrefixListId (\ s a -> s{_rDestinationPrefixListId = a});---- | The IPv4 CIDR block used for the destination match.-rDestinationCidrBlock :: Lens' Route (Maybe Text)-rDestinationCidrBlock = lens _rDestinationCidrBlock (\ s a -> s{_rDestinationCidrBlock = a});--instance FromXML Route where-        parseXML x-          = Route' <$>-              (x .@? "vpcPeeringConnectionId") <*>-                (x .@? "instanceId")-                <*> (x .@? "origin")-                <*> (x .@? "state")-                <*> (x .@? "egressOnlyInternetGatewayId")-                <*> (x .@? "destinationIpv6CidrBlock")-                <*> (x .@? "natGatewayId")-                <*> (x .@? "networkInterfaceId")-                <*> (x .@? "gatewayId")-                <*> (x .@? "instanceOwnerId")-                <*> (x .@? "destinationPrefixListId")-                <*> (x .@? "destinationCidrBlock")--instance Hashable Route--instance NFData Route---- | Describes a route table.------------ /See:/ 'routeTable' smart constructor.-data RouteTable = RouteTable'-    { _rtRouteTableId    :: !(Maybe Text)-    , _rtRoutes          :: !(Maybe [Route])-    , _rtVPCId           :: !(Maybe Text)-    , _rtPropagatingVGWs :: !(Maybe [PropagatingVGW])-    , _rtAssociations    :: !(Maybe [RouteTableAssociation])-    , _rtTags            :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RouteTable' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rtRouteTableId' - The ID of the route table.------ * 'rtRoutes' - The routes in the route table.------ * 'rtVPCId' - The ID of the VPC.------ * 'rtPropagatingVGWs' - Any virtual private gateway (VGW) propagating routes.------ * 'rtAssociations' - The associations between the route table and one or more subnets.------ * 'rtTags' - Any tags assigned to the route table.-routeTable-    :: RouteTable-routeTable =-    RouteTable'-    { _rtRouteTableId = Nothing-    , _rtRoutes = Nothing-    , _rtVPCId = Nothing-    , _rtPropagatingVGWs = Nothing-    , _rtAssociations = Nothing-    , _rtTags = Nothing-    }---- | The ID of the route table.-rtRouteTableId :: Lens' RouteTable (Maybe Text)-rtRouteTableId = lens _rtRouteTableId (\ s a -> s{_rtRouteTableId = a});---- | The routes in the route table.-rtRoutes :: Lens' RouteTable [Route]-rtRoutes = lens _rtRoutes (\ s a -> s{_rtRoutes = a}) . _Default . _Coerce;---- | The ID of the VPC.-rtVPCId :: Lens' RouteTable (Maybe Text)-rtVPCId = lens _rtVPCId (\ s a -> s{_rtVPCId = a});---- | Any virtual private gateway (VGW) propagating routes.-rtPropagatingVGWs :: Lens' RouteTable [PropagatingVGW]-rtPropagatingVGWs = lens _rtPropagatingVGWs (\ s a -> s{_rtPropagatingVGWs = a}) . _Default . _Coerce;---- | The associations between the route table and one or more subnets.-rtAssociations :: Lens' RouteTable [RouteTableAssociation]-rtAssociations = lens _rtAssociations (\ s a -> s{_rtAssociations = a}) . _Default . _Coerce;---- | Any tags assigned to the route table.-rtTags :: Lens' RouteTable [Tag]-rtTags = lens _rtTags (\ s a -> s{_rtTags = a}) . _Default . _Coerce;--instance FromXML RouteTable where-        parseXML x-          = RouteTable' <$>-              (x .@? "routeTableId") <*>-                (x .@? "routeSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpcId")-                <*>-                (x .@? "propagatingVgwSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "associationSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable RouteTable--instance NFData RouteTable---- | Describes an association between a route table and a subnet.------------ /See:/ 'routeTableAssociation' smart constructor.-data RouteTableAssociation = RouteTableAssociation'-    { _rtaRouteTableId            :: !(Maybe Text)-    , _rtaRouteTableAssociationId :: !(Maybe Text)-    , _rtaMain                    :: !(Maybe Bool)-    , _rtaSubnetId                :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RouteTableAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rtaRouteTableId' - The ID of the route table.------ * 'rtaRouteTableAssociationId' - The ID of the association between a route table and a subnet.------ * 'rtaMain' - Indicates whether this is the main route table.------ * 'rtaSubnetId' - The ID of the subnet. A subnet ID is not returned for an implicit association.-routeTableAssociation-    :: RouteTableAssociation-routeTableAssociation =-    RouteTableAssociation'-    { _rtaRouteTableId = Nothing-    , _rtaRouteTableAssociationId = Nothing-    , _rtaMain = Nothing-    , _rtaSubnetId = Nothing-    }---- | The ID of the route table.-rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)-rtaRouteTableId = lens _rtaRouteTableId (\ s a -> s{_rtaRouteTableId = a});---- | The ID of the association between a route table and a subnet.-rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)-rtaRouteTableAssociationId = lens _rtaRouteTableAssociationId (\ s a -> s{_rtaRouteTableAssociationId = a});---- | Indicates whether this is the main route table.-rtaMain :: Lens' RouteTableAssociation (Maybe Bool)-rtaMain = lens _rtaMain (\ s a -> s{_rtaMain = a});---- | The ID of the subnet. A subnet ID is not returned for an implicit association.-rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)-rtaSubnetId = lens _rtaSubnetId (\ s a -> s{_rtaSubnetId = a});--instance FromXML RouteTableAssociation where-        parseXML x-          = RouteTableAssociation' <$>-              (x .@? "routeTableId") <*>-                (x .@? "routeTableAssociationId")-                <*> (x .@? "main")-                <*> (x .@? "subnetId")--instance Hashable RouteTableAssociation--instance NFData RouteTableAssociation---- | Describes the monitoring of an instance.------------ /See:/ 'runInstancesMonitoringEnabled' smart constructor.-newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled'-    { _rimeEnabled :: Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RunInstancesMonitoringEnabled' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rimeEnabled' - Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.-runInstancesMonitoringEnabled-    :: Bool -- ^ 'rimeEnabled'-    -> RunInstancesMonitoringEnabled-runInstancesMonitoringEnabled pEnabled_ =-    RunInstancesMonitoringEnabled'-    { _rimeEnabled = pEnabled_-    }---- | Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.-rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool-rimeEnabled = lens _rimeEnabled (\ s a -> s{_rimeEnabled = a});--instance FromXML RunInstancesMonitoringEnabled where-        parseXML x-          = RunInstancesMonitoringEnabled' <$> (x .@ "enabled")--instance Hashable RunInstancesMonitoringEnabled--instance NFData RunInstancesMonitoringEnabled--instance ToQuery RunInstancesMonitoringEnabled where-        toQuery RunInstancesMonitoringEnabled'{..}-          = mconcat ["Enabled" =: _rimeEnabled]---- | Describes the storage parameters for S3 and S3 buckets for an instance store-backed AMI.------------ /See:/ 's3Storage' smart constructor.-data S3Storage = S3Storage'-    { _ssPrefix                :: !(Maybe Text)-    , _ssUploadPolicy          :: !(Maybe Base64)-    , _ssBucket                :: !(Maybe Text)-    , _ssUploadPolicySignature :: !(Maybe Text)-    , _ssAWSAccessKeyId        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'S3Storage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ssPrefix' - The beginning of the file name of the AMI.------ * 'ssUploadPolicy' - An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.------ * 'ssBucket' - 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.------ * 'ssUploadPolicySignature' - The signature of the JSON document.------ * 'ssAWSAccessKeyId' - 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 <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html Best Practices for Managing AWS Access Keys> .-s3Storage-    :: S3Storage-s3Storage =-    S3Storage'-    { _ssPrefix = Nothing-    , _ssUploadPolicy = Nothing-    , _ssBucket = Nothing-    , _ssUploadPolicySignature = Nothing-    , _ssAWSAccessKeyId = Nothing-    }---- | The beginning of the file name of the AMI.-ssPrefix :: Lens' S3Storage (Maybe Text)-ssPrefix = lens _ssPrefix (\ s a -> s{_ssPrefix = a});---- | An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.-ssUploadPolicy :: Lens' S3Storage (Maybe ByteString)-ssUploadPolicy = lens _ssUploadPolicy (\ s a -> s{_ssUploadPolicy = a}) . mapping _Base64;---- | 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)-ssBucket = lens _ssBucket (\ s a -> s{_ssBucket = a});---- | The signature of the JSON document.-ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)-ssUploadPolicySignature = lens _ssUploadPolicySignature (\ s a -> s{_ssUploadPolicySignature = 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 <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html Best Practices for Managing AWS Access Keys> .-ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)-ssAWSAccessKeyId = lens _ssAWSAccessKeyId (\ s a -> s{_ssAWSAccessKeyId = a});--instance FromXML S3Storage where-        parseXML x-          = S3Storage' <$>-              (x .@? "prefix") <*> (x .@? "uploadPolicy") <*>-                (x .@? "bucket")-                <*> (x .@? "uploadPolicySignature")-                <*> (x .@? "AWSAccessKeyId")--instance Hashable S3Storage--instance NFData S3Storage--instance ToQuery S3Storage where-        toQuery S3Storage'{..}-          = mconcat-              ["Prefix" =: _ssPrefix,-               "UploadPolicy" =: _ssUploadPolicy,-               "Bucket" =: _ssBucket,-               "UploadPolicySignature" =: _ssUploadPolicySignature,-               "AWSAccessKeyId" =: _ssAWSAccessKeyId]---- | Describes a Scheduled Instance.------------ /See:/ 'scheduledInstance' smart constructor.-data ScheduledInstance = ScheduledInstance'-    { _siPreviousSlotEndTime         :: !(Maybe ISO8601)-    , _siPlatform                    :: !(Maybe Text)-    , _siTermStartDate               :: !(Maybe ISO8601)-    , _siInstanceCount               :: !(Maybe Int)-    , _siScheduledInstanceId         :: !(Maybe Text)-    , _siHourlyPrice                 :: !(Maybe Text)-    , _siCreateDate                  :: !(Maybe ISO8601)-    , _siSlotDurationInHours         :: !(Maybe Int)-    , _siTotalScheduledInstanceHours :: !(Maybe Int)-    , _siInstanceType                :: !(Maybe Text)-    , _siRecurrence                  :: !(Maybe ScheduledInstanceRecurrence)-    , _siAvailabilityZone            :: !(Maybe Text)-    , _siTermEndDate                 :: !(Maybe ISO8601)-    , _siNextSlotStartTime           :: !(Maybe ISO8601)-    , _siNetworkPlatform             :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'siPreviousSlotEndTime' - The time that the previous schedule ended or will end.------ * 'siPlatform' - The platform (@Linux/UNIX@ or @Windows@ ).------ * 'siTermStartDate' - The start date for the Scheduled Instance.------ * 'siInstanceCount' - The number of instances.------ * 'siScheduledInstanceId' - The Scheduled Instance ID.------ * 'siHourlyPrice' - The hourly price for a single instance.------ * 'siCreateDate' - The date when the Scheduled Instance was purchased.------ * 'siSlotDurationInHours' - The number of hours in the schedule.------ * 'siTotalScheduledInstanceHours' - The total number of hours for a single instance for the entire term.------ * 'siInstanceType' - The instance type.------ * 'siRecurrence' - The schedule recurrence.------ * 'siAvailabilityZone' - The Availability Zone.------ * 'siTermEndDate' - The end date for the Scheduled Instance.------ * 'siNextSlotStartTime' - The time for the next schedule to start.------ * 'siNetworkPlatform' - The network platform (@EC2-Classic@ or @EC2-VPC@ ).-scheduledInstance-    :: ScheduledInstance-scheduledInstance =-    ScheduledInstance'-    { _siPreviousSlotEndTime = Nothing-    , _siPlatform = Nothing-    , _siTermStartDate = Nothing-    , _siInstanceCount = Nothing-    , _siScheduledInstanceId = Nothing-    , _siHourlyPrice = Nothing-    , _siCreateDate = Nothing-    , _siSlotDurationInHours = Nothing-    , _siTotalScheduledInstanceHours = Nothing-    , _siInstanceType = Nothing-    , _siRecurrence = Nothing-    , _siAvailabilityZone = Nothing-    , _siTermEndDate = Nothing-    , _siNextSlotStartTime = Nothing-    , _siNetworkPlatform = Nothing-    }---- | The time that the previous schedule ended or will end.-siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)-siPreviousSlotEndTime = lens _siPreviousSlotEndTime (\ s a -> s{_siPreviousSlotEndTime = a}) . mapping _Time;---- | The platform (@Linux/UNIX@ or @Windows@ ).-siPlatform :: Lens' ScheduledInstance (Maybe Text)-siPlatform = lens _siPlatform (\ s a -> s{_siPlatform = a});---- | The start date for the Scheduled Instance.-siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)-siTermStartDate = lens _siTermStartDate (\ s a -> s{_siTermStartDate = a}) . mapping _Time;---- | The number of instances.-siInstanceCount :: Lens' ScheduledInstance (Maybe Int)-siInstanceCount = lens _siInstanceCount (\ s a -> s{_siInstanceCount = a});---- | The Scheduled Instance ID.-siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)-siScheduledInstanceId = lens _siScheduledInstanceId (\ s a -> s{_siScheduledInstanceId = a});---- | The hourly price for a single instance.-siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)-siHourlyPrice = lens _siHourlyPrice (\ s a -> s{_siHourlyPrice = a});---- | The date when the Scheduled Instance was purchased.-siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)-siCreateDate = lens _siCreateDate (\ s a -> s{_siCreateDate = a}) . mapping _Time;---- | The number of hours in the schedule.-siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)-siSlotDurationInHours = lens _siSlotDurationInHours (\ s a -> s{_siSlotDurationInHours = a});---- | The total number of hours for a single instance for the entire term.-siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)-siTotalScheduledInstanceHours = lens _siTotalScheduledInstanceHours (\ s a -> s{_siTotalScheduledInstanceHours = a});---- | The instance type.-siInstanceType :: Lens' ScheduledInstance (Maybe Text)-siInstanceType = lens _siInstanceType (\ s a -> s{_siInstanceType = a});---- | The schedule recurrence.-siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)-siRecurrence = lens _siRecurrence (\ s a -> s{_siRecurrence = a});---- | The Availability Zone.-siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)-siAvailabilityZone = lens _siAvailabilityZone (\ s a -> s{_siAvailabilityZone = a});---- | The end date for the Scheduled Instance.-siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)-siTermEndDate = lens _siTermEndDate (\ s a -> s{_siTermEndDate = a}) . mapping _Time;---- | The time for the next schedule to start.-siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)-siNextSlotStartTime = lens _siNextSlotStartTime (\ s a -> s{_siNextSlotStartTime = a}) . mapping _Time;---- | The network platform (@EC2-Classic@ or @EC2-VPC@ ).-siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)-siNetworkPlatform = lens _siNetworkPlatform (\ s a -> s{_siNetworkPlatform = a});--instance FromXML ScheduledInstance where-        parseXML x-          = ScheduledInstance' <$>-              (x .@? "previousSlotEndTime") <*> (x .@? "platform")-                <*> (x .@? "termStartDate")-                <*> (x .@? "instanceCount")-                <*> (x .@? "scheduledInstanceId")-                <*> (x .@? "hourlyPrice")-                <*> (x .@? "createDate")-                <*> (x .@? "slotDurationInHours")-                <*> (x .@? "totalScheduledInstanceHours")-                <*> (x .@? "instanceType")-                <*> (x .@? "recurrence")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "termEndDate")-                <*> (x .@? "nextSlotStartTime")-                <*> (x .@? "networkPlatform")--instance Hashable ScheduledInstance--instance NFData ScheduledInstance---- | Describes a schedule that is available for your Scheduled Instances.------------ /See:/ 'scheduledInstanceAvailability' smart constructor.-data ScheduledInstanceAvailability = ScheduledInstanceAvailability'-    { _siaMaxTermDurationInDays       :: !(Maybe Int)-    , _siaPlatform                    :: !(Maybe Text)-    , _siaPurchaseToken               :: !(Maybe Text)-    , _siaHourlyPrice                 :: !(Maybe Text)-    , _siaAvailableInstanceCount      :: !(Maybe Int)-    , _siaSlotDurationInHours         :: !(Maybe Int)-    , _siaTotalScheduledInstanceHours :: !(Maybe Int)-    , _siaInstanceType                :: !(Maybe Text)-    , _siaRecurrence                  :: !(Maybe ScheduledInstanceRecurrence)-    , _siaAvailabilityZone            :: !(Maybe Text)-    , _siaMinTermDurationInDays       :: !(Maybe Int)-    , _siaFirstSlotStartTime          :: !(Maybe ISO8601)-    , _siaNetworkPlatform             :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstanceAvailability' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'siaMaxTermDurationInDays' - The maximum term. The only possible value is 365 days.------ * 'siaPlatform' - The platform (@Linux/UNIX@ or @Windows@ ).------ * 'siaPurchaseToken' - The purchase token. This token expires in two hours.------ * 'siaHourlyPrice' - The hourly price for a single instance.------ * 'siaAvailableInstanceCount' - The number of available instances.------ * 'siaSlotDurationInHours' - The number of hours in the schedule.------ * 'siaTotalScheduledInstanceHours' - The total number of hours for a single instance for the entire term.------ * 'siaInstanceType' - The instance type. You can specify one of the C3, C4, M4, or R3 instance types.------ * 'siaRecurrence' - The schedule recurrence.------ * 'siaAvailabilityZone' - The Availability Zone.------ * 'siaMinTermDurationInDays' - The minimum term. The only possible value is 365 days.------ * 'siaFirstSlotStartTime' - The time period for the first schedule to start.------ * 'siaNetworkPlatform' - The network platform (@EC2-Classic@ or @EC2-VPC@ ).-scheduledInstanceAvailability-    :: ScheduledInstanceAvailability-scheduledInstanceAvailability =-    ScheduledInstanceAvailability'-    { _siaMaxTermDurationInDays = Nothing-    , _siaPlatform = Nothing-    , _siaPurchaseToken = Nothing-    , _siaHourlyPrice = Nothing-    , _siaAvailableInstanceCount = Nothing-    , _siaSlotDurationInHours = Nothing-    , _siaTotalScheduledInstanceHours = Nothing-    , _siaInstanceType = Nothing-    , _siaRecurrence = Nothing-    , _siaAvailabilityZone = Nothing-    , _siaMinTermDurationInDays = Nothing-    , _siaFirstSlotStartTime = Nothing-    , _siaNetworkPlatform = Nothing-    }---- | The maximum term. The only possible value is 365 days.-siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)-siaMaxTermDurationInDays = lens _siaMaxTermDurationInDays (\ s a -> s{_siaMaxTermDurationInDays = a});---- | The platform (@Linux/UNIX@ or @Windows@ ).-siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)-siaPlatform = lens _siaPlatform (\ s a -> s{_siaPlatform = a});---- | The purchase token. This token expires in two hours.-siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)-siaPurchaseToken = lens _siaPurchaseToken (\ s a -> s{_siaPurchaseToken = a});---- | The hourly price for a single instance.-siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)-siaHourlyPrice = lens _siaHourlyPrice (\ s a -> s{_siaHourlyPrice = a});---- | The number of available instances.-siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)-siaAvailableInstanceCount = lens _siaAvailableInstanceCount (\ s a -> s{_siaAvailableInstanceCount = a});---- | The number of hours in the schedule.-siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)-siaSlotDurationInHours = lens _siaSlotDurationInHours (\ s a -> s{_siaSlotDurationInHours = a});---- | The total number of hours for a single instance for the entire term.-siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)-siaTotalScheduledInstanceHours = lens _siaTotalScheduledInstanceHours (\ s a -> s{_siaTotalScheduledInstanceHours = a});---- | The instance type. You can specify one of the C3, C4, M4, or R3 instance types.-siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)-siaInstanceType = lens _siaInstanceType (\ s a -> s{_siaInstanceType = a});---- | The schedule recurrence.-siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)-siaRecurrence = lens _siaRecurrence (\ s a -> s{_siaRecurrence = a});---- | The Availability Zone.-siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)-siaAvailabilityZone = lens _siaAvailabilityZone (\ s a -> s{_siaAvailabilityZone = a});---- | The minimum term. The only possible value is 365 days.-siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)-siaMinTermDurationInDays = lens _siaMinTermDurationInDays (\ s a -> s{_siaMinTermDurationInDays = a});---- | The time period for the first schedule to start.-siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)-siaFirstSlotStartTime = lens _siaFirstSlotStartTime (\ s a -> s{_siaFirstSlotStartTime = a}) . mapping _Time;---- | The network platform (@EC2-Classic@ or @EC2-VPC@ ).-siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)-siaNetworkPlatform = lens _siaNetworkPlatform (\ s a -> s{_siaNetworkPlatform = a});--instance FromXML ScheduledInstanceAvailability where-        parseXML x-          = ScheduledInstanceAvailability' <$>-              (x .@? "maxTermDurationInDays") <*>-                (x .@? "platform")-                <*> (x .@? "purchaseToken")-                <*> (x .@? "hourlyPrice")-                <*> (x .@? "availableInstanceCount")-                <*> (x .@? "slotDurationInHours")-                <*> (x .@? "totalScheduledInstanceHours")-                <*> (x .@? "instanceType")-                <*> (x .@? "recurrence")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "minTermDurationInDays")-                <*> (x .@? "firstSlotStartTime")-                <*> (x .@? "networkPlatform")--instance Hashable ScheduledInstanceAvailability--instance NFData ScheduledInstanceAvailability---- | Describes the recurring schedule for a Scheduled Instance.------------ /See:/ 'scheduledInstanceRecurrence' smart constructor.-data ScheduledInstanceRecurrence = ScheduledInstanceRecurrence'-    { _sirFrequency               :: !(Maybe Text)-    , _sirOccurrenceRelativeToEnd :: !(Maybe Bool)-    , _sirOccurrenceUnit          :: !(Maybe Text)-    , _sirInterval                :: !(Maybe Int)-    , _sirOccurrenceDaySet        :: !(Maybe [Int])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstanceRecurrence' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sirFrequency' - The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).------ * 'sirOccurrenceRelativeToEnd' - Indicates whether the occurrence is relative to the end of the specified week or month.------ * 'sirOccurrenceUnit' - The unit for @occurrenceDaySet@ (@DayOfWeek@ or @DayOfMonth@ ).------ * 'sirInterval' - The interval quantity. The interval unit depends on the value of @frequency@ . For example, every 2 weeks or every 2 months.------ * 'sirOccurrenceDaySet' - 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).-scheduledInstanceRecurrence-    :: ScheduledInstanceRecurrence-scheduledInstanceRecurrence =-    ScheduledInstanceRecurrence'-    { _sirFrequency = Nothing-    , _sirOccurrenceRelativeToEnd = Nothing-    , _sirOccurrenceUnit = Nothing-    , _sirInterval = Nothing-    , _sirOccurrenceDaySet = Nothing-    }---- | The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).-sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)-sirFrequency = lens _sirFrequency (\ s a -> s{_sirFrequency = a});---- | Indicates whether the occurrence is relative to the end of the specified week or month.-sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)-sirOccurrenceRelativeToEnd = lens _sirOccurrenceRelativeToEnd (\ s a -> s{_sirOccurrenceRelativeToEnd = a});---- | The unit for @occurrenceDaySet@ (@DayOfWeek@ or @DayOfMonth@ ).-sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)-sirOccurrenceUnit = lens _sirOccurrenceUnit (\ s a -> s{_sirOccurrenceUnit = a});---- | The interval quantity. The interval unit depends on the value of @frequency@ . For example, every 2 weeks or every 2 months.-sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)-sirInterval = lens _sirInterval (\ s a -> s{_sirInterval = 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).-sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]-sirOccurrenceDaySet = lens _sirOccurrenceDaySet (\ s a -> s{_sirOccurrenceDaySet = a}) . _Default . _Coerce;--instance FromXML ScheduledInstanceRecurrence where-        parseXML x-          = ScheduledInstanceRecurrence' <$>-              (x .@? "frequency") <*>-                (x .@? "occurrenceRelativeToEnd")-                <*> (x .@? "occurrenceUnit")-                <*> (x .@? "interval")-                <*>-                (x .@? "occurrenceDaySet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable ScheduledInstanceRecurrence--instance NFData ScheduledInstanceRecurrence---- | Describes the recurring schedule for a Scheduled Instance.------------ /See:/ 'scheduledInstanceRecurrenceRequest' smart constructor.-data ScheduledInstanceRecurrenceRequest = ScheduledInstanceRecurrenceRequest'-    { _sirrFrequency               :: !(Maybe Text)-    , _sirrOccurrenceRelativeToEnd :: !(Maybe Bool)-    , _sirrOccurrenceDays          :: !(Maybe [Int])-    , _sirrOccurrenceUnit          :: !(Maybe Text)-    , _sirrInterval                :: !(Maybe Int)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstanceRecurrenceRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sirrFrequency' - The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).------ * 'sirrOccurrenceRelativeToEnd' - 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.------ * 'sirrOccurrenceDays' - 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.------ * 'sirrOccurrenceUnit' - The unit for @OccurrenceDays@ (@DayOfWeek@ or @DayOfMonth@ ). This value is required for a monthly schedule. You can't specify @DayOfWeek@ with a weekly schedule. You can't specify this value with a daily schedule.------ * 'sirrInterval' - The interval quantity. The interval unit depends on the value of @Frequency@ . For example, every 2 weeks or every 2 months.-scheduledInstanceRecurrenceRequest-    :: ScheduledInstanceRecurrenceRequest-scheduledInstanceRecurrenceRequest =-    ScheduledInstanceRecurrenceRequest'-    { _sirrFrequency = Nothing-    , _sirrOccurrenceRelativeToEnd = Nothing-    , _sirrOccurrenceDays = Nothing-    , _sirrOccurrenceUnit = Nothing-    , _sirrInterval = Nothing-    }---- | The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).-sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)-sirrFrequency = lens _sirrFrequency (\ s a -> s{_sirrFrequency = 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.-sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)-sirrOccurrenceRelativeToEnd = lens _sirrOccurrenceRelativeToEnd (\ s a -> s{_sirrOccurrenceRelativeToEnd = 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.-sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]-sirrOccurrenceDays = lens _sirrOccurrenceDays (\ s a -> s{_sirrOccurrenceDays = a}) . _Default . _Coerce;---- | The unit for @OccurrenceDays@ (@DayOfWeek@ or @DayOfMonth@ ). This value is required for a monthly schedule. You can't specify @DayOfWeek@ with a weekly schedule. You can't specify this value with a daily schedule.-sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)-sirrOccurrenceUnit = lens _sirrOccurrenceUnit (\ s a -> s{_sirrOccurrenceUnit = a});---- | The interval quantity. The interval unit depends on the value of @Frequency@ . For example, every 2 weeks or every 2 months.-sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)-sirrInterval = lens _sirrInterval (\ s a -> s{_sirrInterval = a});--instance Hashable ScheduledInstanceRecurrenceRequest--instance NFData ScheduledInstanceRecurrenceRequest--instance ToQuery ScheduledInstanceRecurrenceRequest-         where-        toQuery ScheduledInstanceRecurrenceRequest'{..}-          = mconcat-              ["Frequency" =: _sirrFrequency,-               "OccurrenceRelativeToEnd" =:-                 _sirrOccurrenceRelativeToEnd,-               toQuery-                 (toQueryList "OccurrenceDay" <$>-                    _sirrOccurrenceDays),-               "OccurrenceUnit" =: _sirrOccurrenceUnit,-               "Interval" =: _sirrInterval]---- | Describes a block device mapping for a Scheduled Instance.------------ /See:/ 'scheduledInstancesBlockDeviceMapping' smart constructor.-data ScheduledInstancesBlockDeviceMapping = ScheduledInstancesBlockDeviceMapping'-    { _sibdmVirtualName :: !(Maybe Text)-    , _sibdmNoDevice    :: !(Maybe Text)-    , _sibdmEBS         :: !(Maybe ScheduledInstancesEBS)-    , _sibdmDeviceName  :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesBlockDeviceMapping' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sibdmVirtualName' - The virtual device name (@ephemeral@ N). Instance store volumes are numbered starting from 0. An instance type with two 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. 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.------ * 'sibdmNoDevice' - Suppresses the specified device included in the block device mapping of the AMI.------ * 'sibdmEBS' - Parameters used to set up EBS volumes automatically when the instance is launched.------ * 'sibdmDeviceName' - The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-scheduledInstancesBlockDeviceMapping-    :: ScheduledInstancesBlockDeviceMapping-scheduledInstancesBlockDeviceMapping =-    ScheduledInstancesBlockDeviceMapping'-    { _sibdmVirtualName = Nothing-    , _sibdmNoDevice = Nothing-    , _sibdmEBS = Nothing-    , _sibdmDeviceName = Nothing-    }---- | The virtual device name (@ephemeral@ N). Instance store volumes are numbered starting from 0. An instance type with two 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. 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)-sibdmVirtualName = lens _sibdmVirtualName (\ s a -> s{_sibdmVirtualName = a});---- | Suppresses the specified device included in the block device mapping of the AMI.-sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)-sibdmNoDevice = lens _sibdmNoDevice (\ s a -> s{_sibdmNoDevice = a});---- | Parameters used to set up EBS volumes automatically when the instance is launched.-sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)-sibdmEBS = lens _sibdmEBS (\ s a -> s{_sibdmEBS = a});---- | The device name exposed to the instance (for example, @/dev/sdh@ or @xvdh@ ).-sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)-sibdmDeviceName = lens _sibdmDeviceName (\ s a -> s{_sibdmDeviceName = a});--instance Hashable-         ScheduledInstancesBlockDeviceMapping--instance NFData ScheduledInstancesBlockDeviceMapping--instance ToQuery ScheduledInstancesBlockDeviceMapping-         where-        toQuery ScheduledInstancesBlockDeviceMapping'{..}-          = mconcat-              ["VirtualName" =: _sibdmVirtualName,-               "NoDevice" =: _sibdmNoDevice, "Ebs" =: _sibdmEBS,-               "DeviceName" =: _sibdmDeviceName]---- | Describes an EBS volume for a Scheduled Instance.------------ /See:/ 'scheduledInstancesEBS' smart constructor.-data ScheduledInstancesEBS = ScheduledInstancesEBS'-    { _sieDeleteOnTermination :: !(Maybe Bool)-    , _sieVolumeSize          :: !(Maybe Int)-    , _sieIOPS                :: !(Maybe Int)-    , _sieEncrypted           :: !(Maybe Bool)-    , _sieVolumeType          :: !(Maybe Text)-    , _sieSnapshotId          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesEBS' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sieDeleteOnTermination' - Indicates whether the volume is deleted on instance termination.------ * 'sieVolumeSize' - 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.------ * 'sieIOPS' - The number of 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 @gp2@ volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about @gp2@ baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.------ * 'sieEncrypted' - Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.------ * 'sieVolumeType' - The volume type. @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, Throughput Optimized HDD for @st1@ , Cold HDD for @sc1@ , or @standard@ for Magnetic. Default: @standard@------ * 'sieSnapshotId' - The ID of the snapshot.-scheduledInstancesEBS-    :: ScheduledInstancesEBS-scheduledInstancesEBS =-    ScheduledInstancesEBS'-    { _sieDeleteOnTermination = Nothing-    , _sieVolumeSize = Nothing-    , _sieIOPS = Nothing-    , _sieEncrypted = Nothing-    , _sieVolumeType = Nothing-    , _sieSnapshotId = Nothing-    }---- | Indicates whether the volume is deleted on instance termination.-sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)-sieDeleteOnTermination = lens _sieDeleteOnTermination (\ s a -> s{_sieDeleteOnTermination = 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.-sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)-sieVolumeSize = lens _sieVolumeSize (\ s a -> s{_sieVolumeSize = a});---- | The number of 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 @gp2@ volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about @gp2@ baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.-sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)-sieIOPS = lens _sieIOPS (\ s a -> s{_sieIOPS = a});---- | Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.-sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)-sieEncrypted = lens _sieEncrypted (\ s a -> s{_sieEncrypted = a});---- | The volume type. @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, Throughput Optimized HDD for @st1@ , Cold HDD for @sc1@ , or @standard@ for Magnetic. Default: @standard@-sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)-sieVolumeType = lens _sieVolumeType (\ s a -> s{_sieVolumeType = a});---- | The ID of the snapshot.-sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)-sieSnapshotId = lens _sieSnapshotId (\ s a -> s{_sieSnapshotId = a});--instance Hashable ScheduledInstancesEBS--instance NFData ScheduledInstancesEBS--instance ToQuery ScheduledInstancesEBS where-        toQuery ScheduledInstancesEBS'{..}-          = mconcat-              ["DeleteOnTermination" =: _sieDeleteOnTermination,-               "VolumeSize" =: _sieVolumeSize, "Iops" =: _sieIOPS,-               "Encrypted" =: _sieEncrypted,-               "VolumeType" =: _sieVolumeType,-               "SnapshotId" =: _sieSnapshotId]---- | Describes an IAM instance profile for a Scheduled Instance.------------ /See:/ 'scheduledInstancesIAMInstanceProfile' smart constructor.-data ScheduledInstancesIAMInstanceProfile = ScheduledInstancesIAMInstanceProfile'-    { _siiapARN  :: !(Maybe Text)-    , _siiapName :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesIAMInstanceProfile' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'siiapARN' - The Amazon Resource Name (ARN).------ * 'siiapName' - The name.-scheduledInstancesIAMInstanceProfile-    :: ScheduledInstancesIAMInstanceProfile-scheduledInstancesIAMInstanceProfile =-    ScheduledInstancesIAMInstanceProfile'-    { _siiapARN = Nothing-    , _siiapName = Nothing-    }---- | The Amazon Resource Name (ARN).-siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)-siiapARN = lens _siiapARN (\ s a -> s{_siiapARN = a});---- | The name.-siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)-siiapName = lens _siiapName (\ s a -> s{_siiapName = a});--instance Hashable-         ScheduledInstancesIAMInstanceProfile--instance NFData ScheduledInstancesIAMInstanceProfile--instance ToQuery ScheduledInstancesIAMInstanceProfile-         where-        toQuery ScheduledInstancesIAMInstanceProfile'{..}-          = mconcat ["Arn" =: _siiapARN, "Name" =: _siiapName]---- | Describes an IPv6 address.------------ /See:/ 'scheduledInstancesIPv6Address' smart constructor.-newtype ScheduledInstancesIPv6Address = ScheduledInstancesIPv6Address'-    { _siiaIPv6Address :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesIPv6Address' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'siiaIPv6Address' - The IPv6 address.-scheduledInstancesIPv6Address-    :: ScheduledInstancesIPv6Address-scheduledInstancesIPv6Address =-    ScheduledInstancesIPv6Address'-    { _siiaIPv6Address = Nothing-    }---- | The IPv6 address.-siiaIPv6Address :: Lens' ScheduledInstancesIPv6Address (Maybe Text)-siiaIPv6Address = lens _siiaIPv6Address (\ s a -> s{_siiaIPv6Address = a});--instance Hashable ScheduledInstancesIPv6Address--instance NFData ScheduledInstancesIPv6Address--instance ToQuery ScheduledInstancesIPv6Address where-        toQuery ScheduledInstancesIPv6Address'{..}-          = mconcat ["Ipv6Address" =: _siiaIPv6Address]---- | 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 @SubnetId@ or @NetworkInterface@ .--------- /See:/ 'scheduledInstancesLaunchSpecification' smart constructor.-data ScheduledInstancesLaunchSpecification = ScheduledInstancesLaunchSpecification'-    { _silsSecurityGroupIds    :: !(Maybe [Text])-    , _silsKeyName             :: !(Maybe Text)-    , _silsNetworkInterfaces   :: !(Maybe [ScheduledInstancesNetworkInterface])-    , _silsRAMDiskId           :: !(Maybe Text)-    , _silsSubnetId            :: !(Maybe Text)-    , _silsKernelId            :: !(Maybe Text)-    , _silsInstanceType        :: !(Maybe Text)-    , _silsEBSOptimized        :: !(Maybe Bool)-    , _silsUserData            :: !(Maybe Text)-    , _silsMonitoring          :: !(Maybe ScheduledInstancesMonitoring)-    , _silsIAMInstanceProfile  :: !(Maybe ScheduledInstancesIAMInstanceProfile)-    , _silsBlockDeviceMappings :: !(Maybe [ScheduledInstancesBlockDeviceMapping])-    , _silsPlacement           :: !(Maybe ScheduledInstancesPlacement)-    , _silsImageId             :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'silsSecurityGroupIds' - The IDs of one or more security groups.------ * 'silsKeyName' - The name of the key pair.------ * 'silsNetworkInterfaces' - One or more network interfaces.------ * 'silsRAMDiskId' - The ID of the RAM disk.------ * 'silsSubnetId' - The ID of the subnet in which to launch the instances.------ * 'silsKernelId' - The ID of the kernel.------ * 'silsInstanceType' - The instance type.------ * 'silsEBSOptimized' - Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@------ * 'silsUserData' - The base64-encoded MIME user data.------ * 'silsMonitoring' - Enable or disable monitoring for the instances.------ * 'silsIAMInstanceProfile' - The IAM instance profile.------ * 'silsBlockDeviceMappings' - One or more block device mapping entries.------ * 'silsPlacement' - The placement information.------ * 'silsImageId' - The ID of the Amazon Machine Image (AMI).-scheduledInstancesLaunchSpecification-    :: Text -- ^ 'silsImageId'-    -> ScheduledInstancesLaunchSpecification-scheduledInstancesLaunchSpecification pImageId_ =-    ScheduledInstancesLaunchSpecification'-    { _silsSecurityGroupIds = Nothing-    , _silsKeyName = Nothing-    , _silsNetworkInterfaces = Nothing-    , _silsRAMDiskId = Nothing-    , _silsSubnetId = Nothing-    , _silsKernelId = Nothing-    , _silsInstanceType = Nothing-    , _silsEBSOptimized = Nothing-    , _silsUserData = Nothing-    , _silsMonitoring = Nothing-    , _silsIAMInstanceProfile = Nothing-    , _silsBlockDeviceMappings = Nothing-    , _silsPlacement = Nothing-    , _silsImageId = pImageId_-    }---- | The IDs of one or more security groups.-silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]-silsSecurityGroupIds = lens _silsSecurityGroupIds (\ s a -> s{_silsSecurityGroupIds = a}) . _Default . _Coerce;---- | The name of the key pair.-silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)-silsKeyName = lens _silsKeyName (\ s a -> s{_silsKeyName = a});---- | One or more network interfaces.-silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]-silsNetworkInterfaces = lens _silsNetworkInterfaces (\ s a -> s{_silsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)-silsRAMDiskId = lens _silsRAMDiskId (\ s a -> s{_silsRAMDiskId = a});---- | The ID of the subnet in which to launch the instances.-silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)-silsSubnetId = lens _silsSubnetId (\ s a -> s{_silsSubnetId = a});---- | The ID of the kernel.-silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)-silsKernelId = lens _silsKernelId (\ s a -> s{_silsKernelId = a});---- | The instance type.-silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)-silsInstanceType = lens _silsInstanceType (\ s a -> s{_silsInstanceType = a});---- | Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@-silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)-silsEBSOptimized = lens _silsEBSOptimized (\ s a -> s{_silsEBSOptimized = a});---- | The base64-encoded MIME user data.-silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)-silsUserData = lens _silsUserData (\ s a -> s{_silsUserData = a});---- | Enable or disable monitoring for the instances.-silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)-silsMonitoring = lens _silsMonitoring (\ s a -> s{_silsMonitoring = a});---- | The IAM instance profile.-silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)-silsIAMInstanceProfile = lens _silsIAMInstanceProfile (\ s a -> s{_silsIAMInstanceProfile = a});---- | One or more block device mapping entries.-silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]-silsBlockDeviceMappings = lens _silsBlockDeviceMappings (\ s a -> s{_silsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information.-silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)-silsPlacement = lens _silsPlacement (\ s a -> s{_silsPlacement = a});---- | The ID of the Amazon Machine Image (AMI).-silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text-silsImageId = lens _silsImageId (\ s a -> s{_silsImageId = a});--instance Hashable-         ScheduledInstancesLaunchSpecification--instance NFData ScheduledInstancesLaunchSpecification--instance ToQuery-         ScheduledInstancesLaunchSpecification where-        toQuery ScheduledInstancesLaunchSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "SecurityGroupId" <$>-                    _silsSecurityGroupIds),-               "KeyName" =: _silsKeyName,-               toQuery-                 (toQueryList "NetworkInterface" <$>-                    _silsNetworkInterfaces),-               "RamdiskId" =: _silsRAMDiskId,-               "SubnetId" =: _silsSubnetId,-               "KernelId" =: _silsKernelId,-               "InstanceType" =: _silsInstanceType,-               "EbsOptimized" =: _silsEBSOptimized,-               "UserData" =: _silsUserData,-               "Monitoring" =: _silsMonitoring,-               "IamInstanceProfile" =: _silsIAMInstanceProfile,-               toQuery-                 (toQueryList "BlockDeviceMapping" <$>-                    _silsBlockDeviceMappings),-               "Placement" =: _silsPlacement,-               "ImageId" =: _silsImageId]---- | Describes whether monitoring is enabled for a Scheduled Instance.------------ /See:/ 'scheduledInstancesMonitoring' smart constructor.-newtype ScheduledInstancesMonitoring = ScheduledInstancesMonitoring'-    { _simEnabled :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesMonitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'simEnabled' - Indicates whether monitoring is enabled.-scheduledInstancesMonitoring-    :: ScheduledInstancesMonitoring-scheduledInstancesMonitoring =-    ScheduledInstancesMonitoring'-    { _simEnabled = Nothing-    }---- | Indicates whether monitoring is enabled.-simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)-simEnabled = lens _simEnabled (\ s a -> s{_simEnabled = a});--instance Hashable ScheduledInstancesMonitoring--instance NFData ScheduledInstancesMonitoring--instance ToQuery ScheduledInstancesMonitoring where-        toQuery ScheduledInstancesMonitoring'{..}-          = mconcat ["Enabled" =: _simEnabled]---- | Describes a network interface for a Scheduled Instance.------------ /See:/ 'scheduledInstancesNetworkInterface' smart constructor.-data ScheduledInstancesNetworkInterface = ScheduledInstancesNetworkInterface'-    { _siniGroups                         :: !(Maybe [Text])-    , _siniDeleteOnTermination            :: !(Maybe Bool)-    , _siniAssociatePublicIPAddress       :: !(Maybe Bool)-    , _siniPrivateIPAddressConfigs        :: !(Maybe [ScheduledInstancesPrivateIPAddressConfig])-    , _siniNetworkInterfaceId             :: !(Maybe Text)-    , _siniSubnetId                       :: !(Maybe Text)-    , _siniIPv6AddressCount               :: !(Maybe Int)-    , _siniPrivateIPAddress               :: !(Maybe Text)-    , _siniSecondaryPrivateIPAddressCount :: !(Maybe Int)-    , _siniDescription                    :: !(Maybe Text)-    , _siniDeviceIndex                    :: !(Maybe Int)-    , _siniIPv6Addresses                  :: !(Maybe [ScheduledInstancesIPv6Address])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesNetworkInterface' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'siniGroups' - The IDs of one or more security groups.------ * 'siniDeleteOnTermination' - Indicates whether to delete the interface when the instance is terminated.------ * 'siniAssociatePublicIPAddress' - 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 @true@ .------ * 'siniPrivateIPAddressConfigs' - The private IPv4 addresses.------ * 'siniNetworkInterfaceId' - The ID of the network interface.------ * 'siniSubnetId' - The ID of the subnet.------ * 'siniIPv6AddressCount' - The number of IPv6 addresses to assign to the network interface. The IPv6 addresses are automatically selected from the subnet range.------ * 'siniPrivateIPAddress' - The IPv4 address of the network interface within the subnet.------ * 'siniSecondaryPrivateIPAddressCount' - The number of secondary private IPv4 addresses.------ * 'siniDescription' - The description.------ * 'siniDeviceIndex' - The index of the device for the network interface attachment.------ * 'siniIPv6Addresses' - One or more specific IPv6 addresses from the subnet range.-scheduledInstancesNetworkInterface-    :: ScheduledInstancesNetworkInterface-scheduledInstancesNetworkInterface =-    ScheduledInstancesNetworkInterface'-    { _siniGroups = Nothing-    , _siniDeleteOnTermination = Nothing-    , _siniAssociatePublicIPAddress = Nothing-    , _siniPrivateIPAddressConfigs = Nothing-    , _siniNetworkInterfaceId = Nothing-    , _siniSubnetId = Nothing-    , _siniIPv6AddressCount = Nothing-    , _siniPrivateIPAddress = Nothing-    , _siniSecondaryPrivateIPAddressCount = Nothing-    , _siniDescription = Nothing-    , _siniDeviceIndex = Nothing-    , _siniIPv6Addresses = Nothing-    }---- | The IDs of one or more security groups.-siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]-siniGroups = lens _siniGroups (\ s a -> s{_siniGroups = a}) . _Default . _Coerce;---- | Indicates whether to delete the interface when the instance is terminated.-siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)-siniDeleteOnTermination = lens _siniDeleteOnTermination (\ s a -> s{_siniDeleteOnTermination = 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 @true@ .-siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)-siniAssociatePublicIPAddress = lens _siniAssociatePublicIPAddress (\ s a -> s{_siniAssociatePublicIPAddress = a});---- | The private IPv4 addresses.-siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]-siniPrivateIPAddressConfigs = lens _siniPrivateIPAddressConfigs (\ s a -> s{_siniPrivateIPAddressConfigs = a}) . _Default . _Coerce;---- | The ID of the network interface.-siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)-siniNetworkInterfaceId = lens _siniNetworkInterfaceId (\ s a -> s{_siniNetworkInterfaceId = a});---- | The ID of the subnet.-siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)-siniSubnetId = lens _siniSubnetId (\ s a -> s{_siniSubnetId = a});---- | 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)-siniIPv6AddressCount = lens _siniIPv6AddressCount (\ s a -> s{_siniIPv6AddressCount = a});---- | The IPv4 address of the network interface within the subnet.-siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)-siniPrivateIPAddress = lens _siniPrivateIPAddress (\ s a -> s{_siniPrivateIPAddress = a});---- | The number of secondary private IPv4 addresses.-siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)-siniSecondaryPrivateIPAddressCount = lens _siniSecondaryPrivateIPAddressCount (\ s a -> s{_siniSecondaryPrivateIPAddressCount = a});---- | The description.-siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)-siniDescription = lens _siniDescription (\ s a -> s{_siniDescription = a});---- | The index of the device for the network interface attachment.-siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)-siniDeviceIndex = lens _siniDeviceIndex (\ s a -> s{_siniDeviceIndex = a});---- | One or more specific IPv6 addresses from the subnet range.-siniIPv6Addresses :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesIPv6Address]-siniIPv6Addresses = lens _siniIPv6Addresses (\ s a -> s{_siniIPv6Addresses = a}) . _Default . _Coerce;--instance Hashable ScheduledInstancesNetworkInterface--instance NFData ScheduledInstancesNetworkInterface--instance ToQuery ScheduledInstancesNetworkInterface-         where-        toQuery ScheduledInstancesNetworkInterface'{..}-          = mconcat-              [toQuery (toQueryList "Group" <$> _siniGroups),-               "DeleteOnTermination" =: _siniDeleteOnTermination,-               "AssociatePublicIpAddress" =:-                 _siniAssociatePublicIPAddress,-               toQuery-                 (toQueryList "PrivateIpAddressConfig" <$>-                    _siniPrivateIPAddressConfigs),-               "NetworkInterfaceId" =: _siniNetworkInterfaceId,-               "SubnetId" =: _siniSubnetId,-               "Ipv6AddressCount" =: _siniIPv6AddressCount,-               "PrivateIpAddress" =: _siniPrivateIPAddress,-               "SecondaryPrivateIpAddressCount" =:-                 _siniSecondaryPrivateIPAddressCount,-               "Description" =: _siniDescription,-               "DeviceIndex" =: _siniDeviceIndex,-               toQuery-                 (toQueryList "Ipv6Address" <$> _siniIPv6Addresses)]---- | Describes the placement for a Scheduled Instance.------------ /See:/ 'scheduledInstancesPlacement' smart constructor.-data ScheduledInstancesPlacement = ScheduledInstancesPlacement'-    { _sipAvailabilityZone :: !(Maybe Text)-    , _sipGroupName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesPlacement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sipAvailabilityZone' - The Availability Zone.------ * 'sipGroupName' - The name of the placement group.-scheduledInstancesPlacement-    :: ScheduledInstancesPlacement-scheduledInstancesPlacement =-    ScheduledInstancesPlacement'-    { _sipAvailabilityZone = Nothing-    , _sipGroupName = Nothing-    }---- | The Availability Zone.-sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)-sipAvailabilityZone = lens _sipAvailabilityZone (\ s a -> s{_sipAvailabilityZone = a});---- | The name of the placement group.-sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)-sipGroupName = lens _sipGroupName (\ s a -> s{_sipGroupName = a});--instance Hashable ScheduledInstancesPlacement--instance NFData ScheduledInstancesPlacement--instance ToQuery ScheduledInstancesPlacement where-        toQuery ScheduledInstancesPlacement'{..}-          = mconcat-              ["AvailabilityZone" =: _sipAvailabilityZone,-               "GroupName" =: _sipGroupName]---- | Describes a private IPv4 address for a Scheduled Instance.------------ /See:/ 'scheduledInstancesPrivateIPAddressConfig' smart constructor.-data ScheduledInstancesPrivateIPAddressConfig = ScheduledInstancesPrivateIPAddressConfig'-    { _sipiacPrimary          :: !(Maybe Bool)-    , _sipiacPrivateIPAddress :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ScheduledInstancesPrivateIPAddressConfig' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sipiacPrimary' - Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.------ * 'sipiacPrivateIPAddress' - The IPv4 address.-scheduledInstancesPrivateIPAddressConfig-    :: ScheduledInstancesPrivateIPAddressConfig-scheduledInstancesPrivateIPAddressConfig =-    ScheduledInstancesPrivateIPAddressConfig'-    { _sipiacPrimary = Nothing-    , _sipiacPrivateIPAddress = Nothing-    }---- | Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.-sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)-sipiacPrimary = lens _sipiacPrimary (\ s a -> s{_sipiacPrimary = a});---- | The IPv4 address.-sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)-sipiacPrivateIPAddress = lens _sipiacPrivateIPAddress (\ s a -> s{_sipiacPrivateIPAddress = a});--instance Hashable-         ScheduledInstancesPrivateIPAddressConfig--instance NFData-         ScheduledInstancesPrivateIPAddressConfig--instance ToQuery-         ScheduledInstancesPrivateIPAddressConfig where-        toQuery ScheduledInstancesPrivateIPAddressConfig'{..}-          = mconcat-              ["Primary" =: _sipiacPrimary,-               "PrivateIpAddress" =: _sipiacPrivateIPAddress]---- | Describes a security group------------ /See:/ 'securityGroup' smart constructor.-data SecurityGroup = SecurityGroup'-    { _sgVPCId               :: !(Maybe Text)-    , _sgIPPermissions       :: !(Maybe [IPPermission])-    , _sgIPPermissionsEgress :: !(Maybe [IPPermission])-    , _sgTags                :: !(Maybe [Tag])-    , _sgOwnerId             :: !Text-    , _sgGroupId             :: !Text-    , _sgGroupName           :: !Text-    , _sgDescription         :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sgVPCId' - [EC2-VPC] The ID of the VPC for the security group.------ * 'sgIPPermissions' - One or more inbound rules associated with the security group.------ * 'sgIPPermissionsEgress' - [EC2-VPC] One or more outbound rules associated with the security group.------ * 'sgTags' - Any tags assigned to the security group.------ * 'sgOwnerId' - The AWS account ID of the owner of the security group.------ * 'sgGroupId' - The ID of the security group.------ * 'sgGroupName' - The name of the security group.------ * 'sgDescription' - A description of the security group.-securityGroup-    :: Text -- ^ 'sgOwnerId'-    -> Text -- ^ 'sgGroupId'-    -> Text -- ^ 'sgGroupName'-    -> Text -- ^ 'sgDescription'-    -> SecurityGroup-securityGroup pOwnerId_ pGroupId_ pGroupName_ pDescription_ =-    SecurityGroup'-    { _sgVPCId = Nothing-    , _sgIPPermissions = Nothing-    , _sgIPPermissionsEgress = Nothing-    , _sgTags = Nothing-    , _sgOwnerId = pOwnerId_-    , _sgGroupId = pGroupId_-    , _sgGroupName = pGroupName_-    , _sgDescription = pDescription_-    }---- | [EC2-VPC] The ID of the VPC for the security group.-sgVPCId :: Lens' SecurityGroup (Maybe Text)-sgVPCId = lens _sgVPCId (\ s a -> s{_sgVPCId = a});---- | One or more inbound rules associated with the security group.-sgIPPermissions :: Lens' SecurityGroup [IPPermission]-sgIPPermissions = lens _sgIPPermissions (\ s a -> s{_sgIPPermissions = a}) . _Default . _Coerce;---- | [EC2-VPC] One or more outbound rules associated with the security group.-sgIPPermissionsEgress :: Lens' SecurityGroup [IPPermission]-sgIPPermissionsEgress = lens _sgIPPermissionsEgress (\ s a -> s{_sgIPPermissionsEgress = a}) . _Default . _Coerce;---- | Any tags assigned to the security group.-sgTags :: Lens' SecurityGroup [Tag]-sgTags = lens _sgTags (\ s a -> s{_sgTags = a}) . _Default . _Coerce;---- | The AWS account ID of the owner of the security group.-sgOwnerId :: Lens' SecurityGroup Text-sgOwnerId = lens _sgOwnerId (\ s a -> s{_sgOwnerId = a});---- | The ID of the security group.-sgGroupId :: Lens' SecurityGroup Text-sgGroupId = lens _sgGroupId (\ s a -> s{_sgGroupId = a});---- | The name of the security group.-sgGroupName :: Lens' SecurityGroup Text-sgGroupName = lens _sgGroupName (\ s a -> s{_sgGroupName = a});---- | A description of the security group.-sgDescription :: Lens' SecurityGroup Text-sgDescription = lens _sgDescription (\ s a -> s{_sgDescription = a});--instance FromXML SecurityGroup where-        parseXML x-          = SecurityGroup' <$>-              (x .@? "vpcId") <*>-                (x .@? "ipPermissions" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "ipPermissionsEgress" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "ownerId")-                <*> (x .@ "groupId")-                <*> (x .@ "groupName")-                <*> (x .@ "groupDescription")--instance Hashable SecurityGroup--instance NFData SecurityGroup---- | Describes a VPC with a security group that references your security group.------------ /See:/ 'securityGroupReference' smart constructor.-data SecurityGroupReference = SecurityGroupReference'-    { _sgrVPCPeeringConnectionId :: !(Maybe Text)-    , _sgrGroupId                :: !Text-    , _sgrReferencingVPCId       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SecurityGroupReference' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sgrVPCPeeringConnectionId' - The ID of the VPC peering connection.------ * 'sgrGroupId' - The ID of your security group.------ * 'sgrReferencingVPCId' - The ID of the VPC with the referencing security group.-securityGroupReference-    :: Text -- ^ 'sgrGroupId'-    -> Text -- ^ 'sgrReferencingVPCId'-    -> SecurityGroupReference-securityGroupReference pGroupId_ pReferencingVPCId_ =-    SecurityGroupReference'-    { _sgrVPCPeeringConnectionId = Nothing-    , _sgrGroupId = pGroupId_-    , _sgrReferencingVPCId = pReferencingVPCId_-    }---- | The ID of the VPC peering connection.-sgrVPCPeeringConnectionId :: Lens' SecurityGroupReference (Maybe Text)-sgrVPCPeeringConnectionId = lens _sgrVPCPeeringConnectionId (\ s a -> s{_sgrVPCPeeringConnectionId = a});---- | The ID of your security group.-sgrGroupId :: Lens' SecurityGroupReference Text-sgrGroupId = lens _sgrGroupId (\ s a -> s{_sgrGroupId = a});---- | The ID of the VPC with the referencing security group.-sgrReferencingVPCId :: Lens' SecurityGroupReference Text-sgrReferencingVPCId = lens _sgrReferencingVPCId (\ s a -> s{_sgrReferencingVPCId = a});--instance FromXML SecurityGroupReference where-        parseXML x-          = SecurityGroupReference' <$>-              (x .@? "vpcPeeringConnectionId") <*> (x .@ "groupId")-                <*> (x .@ "referencingVpcId")--instance Hashable SecurityGroupReference--instance NFData SecurityGroupReference---- | Describes the time period for a Scheduled Instance to start its first schedule. The time period must span less than one day.------------ /See:/ 'slotDateTimeRangeRequest' smart constructor.-data SlotDateTimeRangeRequest = SlotDateTimeRangeRequest'-    { _sdtrrEarliestTime :: !ISO8601-    , _sdtrrLatestTime   :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SlotDateTimeRangeRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdtrrEarliestTime' - The earliest date and time, in UTC, for the Scheduled Instance to start.------ * 'sdtrrLatestTime' - 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.-slotDateTimeRangeRequest-    :: UTCTime -- ^ 'sdtrrEarliestTime'-    -> UTCTime -- ^ 'sdtrrLatestTime'-    -> SlotDateTimeRangeRequest-slotDateTimeRangeRequest pEarliestTime_ pLatestTime_ =-    SlotDateTimeRangeRequest'-    { _sdtrrEarliestTime = _Time # pEarliestTime_-    , _sdtrrLatestTime = _Time # pLatestTime_-    }---- | The earliest date and time, in UTC, for the Scheduled Instance to start.-sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime-sdtrrEarliestTime = lens _sdtrrEarliestTime (\ s a -> s{_sdtrrEarliestTime = a}) . _Time;---- | 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-sdtrrLatestTime = lens _sdtrrLatestTime (\ s a -> s{_sdtrrLatestTime = a}) . _Time;--instance Hashable SlotDateTimeRangeRequest--instance NFData SlotDateTimeRangeRequest--instance ToQuery SlotDateTimeRangeRequest where-        toQuery SlotDateTimeRangeRequest'{..}-          = mconcat-              ["EarliestTime" =: _sdtrrEarliestTime,-               "LatestTime" =: _sdtrrLatestTime]---- | Describes the time period for a Scheduled Instance to start its first schedule.------------ /See:/ 'slotStartTimeRangeRequest' smart constructor.-data SlotStartTimeRangeRequest = SlotStartTimeRangeRequest'-    { _sstrrLatestTime   :: !(Maybe ISO8601)-    , _sstrrEarliestTime :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SlotStartTimeRangeRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sstrrLatestTime' - The latest date and time, in UTC, for the Scheduled Instance to start.------ * 'sstrrEarliestTime' - The earliest date and time, in UTC, for the Scheduled Instance to start.-slotStartTimeRangeRequest-    :: SlotStartTimeRangeRequest-slotStartTimeRangeRequest =-    SlotStartTimeRangeRequest'-    { _sstrrLatestTime = Nothing-    , _sstrrEarliestTime = Nothing-    }---- | The latest date and time, in UTC, for the Scheduled Instance to start.-sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)-sstrrLatestTime = lens _sstrrLatestTime (\ s a -> s{_sstrrLatestTime = a}) . mapping _Time;---- | The earliest date and time, in UTC, for the Scheduled Instance to start.-sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)-sstrrEarliestTime = lens _sstrrEarliestTime (\ s a -> s{_sstrrEarliestTime = a}) . mapping _Time;--instance Hashable SlotStartTimeRangeRequest--instance NFData SlotStartTimeRangeRequest--instance ToQuery SlotStartTimeRangeRequest where-        toQuery SlotStartTimeRangeRequest'{..}-          = mconcat-              ["LatestTime" =: _sstrrLatestTime,-               "EarliestTime" =: _sstrrEarliestTime]---- | Describes a snapshot.------------ /See:/ 'snapshot' smart constructor.-data Snapshot = Snapshot'-    { _sStateMessage        :: !(Maybe Text)-    , _sOwnerAlias          :: !(Maybe Text)-    , _sDataEncryptionKeyId :: !(Maybe Text)-    , _sKMSKeyId            :: !(Maybe Text)-    , _sTags                :: !(Maybe [Tag])-    , _sSnapshotId          :: !Text-    , _sOwnerId             :: !Text-    , _sVolumeId            :: !Text-    , _sVolumeSize          :: !Int-    , _sDescription         :: !Text-    , _sStartTime           :: !ISO8601-    , _sProgress            :: !Text-    , _sState               :: !SnapshotState-    , _sEncrypted           :: !Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Snapshot' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sStateMessage' - 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 'DescribeSnapshots' API operation.------ * 'sOwnerAlias' - Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.------ * 'sDataEncryptionKeyId' - 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 'DescribeSnapshots' API operation.------ * 'sKMSKeyId' - 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.------ * 'sTags' - Any tags assigned to the snapshot.------ * 'sSnapshotId' - The ID of the snapshot. Each snapshot receives a unique identifier when it is created.------ * 'sOwnerId' - The AWS account ID of the EBS snapshot owner.------ * 'sVolumeId' - The ID of the volume that was used to create the snapshot. Snapshots created by the 'CopySnapshot' action have an arbitrary volume ID that should not be used for any purpose.------ * 'sVolumeSize' - The size of the volume, in GiB.------ * 'sDescription' - The description for the snapshot.------ * 'sStartTime' - The time stamp when the snapshot was initiated.------ * 'sProgress' - The progress of the snapshot, as a percentage.------ * 'sState' - The snapshot state.------ * 'sEncrypted' - Indicates whether the snapshot is encrypted.-snapshot-    :: Text -- ^ 'sSnapshotId'-    -> Text -- ^ 'sOwnerId'-    -> Text -- ^ 'sVolumeId'-    -> Int -- ^ 'sVolumeSize'-    -> Text -- ^ 'sDescription'-    -> UTCTime -- ^ 'sStartTime'-    -> Text -- ^ 'sProgress'-    -> SnapshotState -- ^ 'sState'-    -> Bool -- ^ 'sEncrypted'-    -> Snapshot-snapshot pSnapshotId_ pOwnerId_ pVolumeId_ pVolumeSize_ pDescription_ pStartTime_ pProgress_ pState_ pEncrypted_ =-    Snapshot'-    { _sStateMessage = Nothing-    , _sOwnerAlias = Nothing-    , _sDataEncryptionKeyId = Nothing-    , _sKMSKeyId = Nothing-    , _sTags = Nothing-    , _sSnapshotId = pSnapshotId_-    , _sOwnerId = pOwnerId_-    , _sVolumeId = pVolumeId_-    , _sVolumeSize = pVolumeSize_-    , _sDescription = pDescription_-    , _sStartTime = _Time # pStartTime_-    , _sProgress = pProgress_-    , _sState = pState_-    , _sEncrypted = pEncrypted_-    }---- | 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 'DescribeSnapshots' API operation.-sStateMessage :: Lens' Snapshot (Maybe Text)-sStateMessage = lens _sStateMessage (\ s a -> s{_sStateMessage = a});---- | Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) 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)-sOwnerAlias = lens _sOwnerAlias (\ s a -> s{_sOwnerAlias = 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 'DescribeSnapshots' API operation.-sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)-sDataEncryptionKeyId = lens _sDataEncryptionKeyId (\ s a -> s{_sDataEncryptionKeyId = 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.-sKMSKeyId :: Lens' Snapshot (Maybe Text)-sKMSKeyId = lens _sKMSKeyId (\ s a -> s{_sKMSKeyId = a});---- | Any tags assigned to the snapshot.-sTags :: Lens' Snapshot [Tag]-sTags = lens _sTags (\ s a -> s{_sTags = a}) . _Default . _Coerce;---- | The ID of the snapshot. Each snapshot receives a unique identifier when it is created.-sSnapshotId :: Lens' Snapshot Text-sSnapshotId = lens _sSnapshotId (\ s a -> s{_sSnapshotId = a});---- | The AWS account ID of the EBS snapshot owner.-sOwnerId :: Lens' Snapshot Text-sOwnerId = lens _sOwnerId (\ s a -> s{_sOwnerId = a});---- | The ID of the volume that was used to create the snapshot. Snapshots created by the 'CopySnapshot' action have an arbitrary volume ID that should not be used for any purpose.-sVolumeId :: Lens' Snapshot Text-sVolumeId = lens _sVolumeId (\ s a -> s{_sVolumeId = a});---- | The size of the volume, in GiB.-sVolumeSize :: Lens' Snapshot Int-sVolumeSize = lens _sVolumeSize (\ s a -> s{_sVolumeSize = a});---- | The description for the snapshot.-sDescription :: Lens' Snapshot Text-sDescription = lens _sDescription (\ s a -> s{_sDescription = a});---- | The time stamp when the snapshot was initiated.-sStartTime :: Lens' Snapshot UTCTime-sStartTime = lens _sStartTime (\ s a -> s{_sStartTime = a}) . _Time;---- | The progress of the snapshot, as a percentage.-sProgress :: Lens' Snapshot Text-sProgress = lens _sProgress (\ s a -> s{_sProgress = a});---- | The snapshot state.-sState :: Lens' Snapshot SnapshotState-sState = lens _sState (\ s a -> s{_sState = a});---- | Indicates whether the snapshot is encrypted.-sEncrypted :: Lens' Snapshot Bool-sEncrypted = lens _sEncrypted (\ s a -> s{_sEncrypted = a});--instance FromXML Snapshot where-        parseXML x-          = Snapshot' <$>-              (x .@? "statusMessage") <*> (x .@? "ownerAlias") <*>-                (x .@? "dataEncryptionKeyId")-                <*> (x .@? "kmsKeyId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "snapshotId")-                <*> (x .@ "ownerId")-                <*> (x .@ "volumeId")-                <*> (x .@ "volumeSize")-                <*> (x .@ "description")-                <*> (x .@ "startTime")-                <*> (x .@ "progress")-                <*> (x .@ "status")-                <*> (x .@ "encrypted")--instance Hashable Snapshot--instance NFData Snapshot---- | Describes the snapshot created from the imported disk.------------ /See:/ 'snapshotDetail' smart constructor.-data SnapshotDetail = SnapshotDetail'-    { _sdStatus        :: !(Maybe Text)-    , _sdProgress      :: !(Maybe Text)-    , _sdFormat        :: !(Maybe Text)-    , _sdURL           :: !(Maybe Text)-    , _sdDeviceName    :: !(Maybe Text)-    , _sdStatusMessage :: !(Maybe Text)-    , _sdUserBucket    :: !(Maybe UserBucketDetails)-    , _sdDiskImageSize :: !(Maybe Double)-    , _sdDescription   :: !(Maybe Text)-    , _sdSnapshotId    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdStatus' - A brief status of the snapshot creation.------ * 'sdProgress' - The percentage of progress for the task.------ * 'sdFormat' - The format of the disk image from which the snapshot is created.------ * 'sdURL' - The URL used to access the disk image.------ * 'sdDeviceName' - The block device mapping for the snapshot.------ * 'sdStatusMessage' - A detailed status message for the snapshot creation.------ * 'sdUserBucket' - The S3 bucket for the disk image.------ * 'sdDiskImageSize' - The size of the disk in the snapshot, in GiB.------ * 'sdDescription' - A description for the snapshot.------ * 'sdSnapshotId' - The snapshot ID of the disk being imported.-snapshotDetail-    :: SnapshotDetail-snapshotDetail =-    SnapshotDetail'-    { _sdStatus = Nothing-    , _sdProgress = Nothing-    , _sdFormat = Nothing-    , _sdURL = Nothing-    , _sdDeviceName = Nothing-    , _sdStatusMessage = Nothing-    , _sdUserBucket = Nothing-    , _sdDiskImageSize = Nothing-    , _sdDescription = Nothing-    , _sdSnapshotId = Nothing-    }---- | A brief status of the snapshot creation.-sdStatus :: Lens' SnapshotDetail (Maybe Text)-sdStatus = lens _sdStatus (\ s a -> s{_sdStatus = a});---- | The percentage of progress for the task.-sdProgress :: Lens' SnapshotDetail (Maybe Text)-sdProgress = lens _sdProgress (\ s a -> s{_sdProgress = a});---- | The format of the disk image from which the snapshot is created.-sdFormat :: Lens' SnapshotDetail (Maybe Text)-sdFormat = lens _sdFormat (\ s a -> s{_sdFormat = a});---- | The URL used to access the disk image.-sdURL :: Lens' SnapshotDetail (Maybe Text)-sdURL = lens _sdURL (\ s a -> s{_sdURL = a});---- | The block device mapping for the snapshot.-sdDeviceName :: Lens' SnapshotDetail (Maybe Text)-sdDeviceName = lens _sdDeviceName (\ s a -> s{_sdDeviceName = a});---- | A detailed status message for the snapshot creation.-sdStatusMessage :: Lens' SnapshotDetail (Maybe Text)-sdStatusMessage = lens _sdStatusMessage (\ s a -> s{_sdStatusMessage = a});---- | The S3 bucket for the disk image.-sdUserBucket :: Lens' SnapshotDetail (Maybe UserBucketDetails)-sdUserBucket = lens _sdUserBucket (\ s a -> s{_sdUserBucket = a});---- | The size of the disk in the snapshot, in GiB.-sdDiskImageSize :: Lens' SnapshotDetail (Maybe Double)-sdDiskImageSize = lens _sdDiskImageSize (\ s a -> s{_sdDiskImageSize = a});---- | A description for the snapshot.-sdDescription :: Lens' SnapshotDetail (Maybe Text)-sdDescription = lens _sdDescription (\ s a -> s{_sdDescription = a});---- | The snapshot ID of the disk being imported.-sdSnapshotId :: Lens' SnapshotDetail (Maybe Text)-sdSnapshotId = lens _sdSnapshotId (\ s a -> s{_sdSnapshotId = a});--instance FromXML SnapshotDetail where-        parseXML x-          = SnapshotDetail' <$>-              (x .@? "status") <*> (x .@? "progress") <*>-                (x .@? "format")-                <*> (x .@? "url")-                <*> (x .@? "deviceName")-                <*> (x .@? "statusMessage")-                <*> (x .@? "userBucket")-                <*> (x .@? "diskImageSize")-                <*> (x .@? "description")-                <*> (x .@? "snapshotId")--instance Hashable SnapshotDetail--instance NFData SnapshotDetail---- | The disk container object for the import snapshot request.------------ /See:/ 'snapshotDiskContainer' smart constructor.-data SnapshotDiskContainer = SnapshotDiskContainer'-    { _sdcFormat      :: !(Maybe Text)-    , _sdcURL         :: !(Maybe Text)-    , _sdcUserBucket  :: !(Maybe UserBucket)-    , _sdcDescription :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotDiskContainer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdcFormat' - The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@------ * 'sdcURL' - The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).------ * 'sdcUserBucket' - The S3 bucket for the disk image.------ * 'sdcDescription' - The description of the disk image being imported.-snapshotDiskContainer-    :: SnapshotDiskContainer-snapshotDiskContainer =-    SnapshotDiskContainer'-    { _sdcFormat = Nothing-    , _sdcURL = Nothing-    , _sdcUserBucket = Nothing-    , _sdcDescription = Nothing-    }---- | The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@-sdcFormat :: Lens' SnapshotDiskContainer (Maybe Text)-sdcFormat = lens _sdcFormat (\ s a -> s{_sdcFormat = a});---- | The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).-sdcURL :: Lens' SnapshotDiskContainer (Maybe Text)-sdcURL = lens _sdcURL (\ s a -> s{_sdcURL = a});---- | The S3 bucket for the disk image.-sdcUserBucket :: Lens' SnapshotDiskContainer (Maybe UserBucket)-sdcUserBucket = lens _sdcUserBucket (\ s a -> s{_sdcUserBucket = a});---- | The description of the disk image being imported.-sdcDescription :: Lens' SnapshotDiskContainer (Maybe Text)-sdcDescription = lens _sdcDescription (\ s a -> s{_sdcDescription = a});--instance Hashable SnapshotDiskContainer--instance NFData SnapshotDiskContainer--instance ToQuery SnapshotDiskContainer where-        toQuery SnapshotDiskContainer'{..}-          = mconcat-              ["Format" =: _sdcFormat, "Url" =: _sdcURL,-               "UserBucket" =: _sdcUserBucket,-               "Description" =: _sdcDescription]---- | Details about the import snapshot task.------------ /See:/ 'snapshotTaskDetail' smart constructor.-data SnapshotTaskDetail = SnapshotTaskDetail'-    { _stdStatus        :: !(Maybe Text)-    , _stdProgress      :: !(Maybe Text)-    , _stdFormat        :: !(Maybe Text)-    , _stdURL           :: !(Maybe Text)-    , _stdStatusMessage :: !(Maybe Text)-    , _stdUserBucket    :: !(Maybe UserBucketDetails)-    , _stdDiskImageSize :: !(Maybe Double)-    , _stdDescription   :: !(Maybe Text)-    , _stdSnapshotId    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SnapshotTaskDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'stdStatus' - A brief status for the import snapshot task.------ * 'stdProgress' - The percentage of completion for the import snapshot task.------ * 'stdFormat' - The format of the disk image from which the snapshot is created.------ * 'stdURL' - The URL of the disk image from which the snapshot is created.------ * 'stdStatusMessage' - A detailed status message for the import snapshot task.------ * 'stdUserBucket' - The S3 bucket for the disk image.------ * 'stdDiskImageSize' - The size of the disk in the snapshot, in GiB.------ * 'stdDescription' - The description of the snapshot.------ * 'stdSnapshotId' - The snapshot ID of the disk being imported.-snapshotTaskDetail-    :: SnapshotTaskDetail-snapshotTaskDetail =-    SnapshotTaskDetail'-    { _stdStatus = Nothing-    , _stdProgress = Nothing-    , _stdFormat = Nothing-    , _stdURL = Nothing-    , _stdStatusMessage = Nothing-    , _stdUserBucket = Nothing-    , _stdDiskImageSize = Nothing-    , _stdDescription = Nothing-    , _stdSnapshotId = Nothing-    }---- | A brief status for the import snapshot task.-stdStatus :: Lens' SnapshotTaskDetail (Maybe Text)-stdStatus = lens _stdStatus (\ s a -> s{_stdStatus = a});---- | The percentage of completion for the import snapshot task.-stdProgress :: Lens' SnapshotTaskDetail (Maybe Text)-stdProgress = lens _stdProgress (\ s a -> s{_stdProgress = a});---- | The format of the disk image from which the snapshot is created.-stdFormat :: Lens' SnapshotTaskDetail (Maybe Text)-stdFormat = lens _stdFormat (\ s a -> s{_stdFormat = a});---- | The URL of the disk image from which the snapshot is created.-stdURL :: Lens' SnapshotTaskDetail (Maybe Text)-stdURL = lens _stdURL (\ s a -> s{_stdURL = a});---- | A detailed status message for the import snapshot task.-stdStatusMessage :: Lens' SnapshotTaskDetail (Maybe Text)-stdStatusMessage = lens _stdStatusMessage (\ s a -> s{_stdStatusMessage = a});---- | The S3 bucket for the disk image.-stdUserBucket :: Lens' SnapshotTaskDetail (Maybe UserBucketDetails)-stdUserBucket = lens _stdUserBucket (\ s a -> s{_stdUserBucket = a});---- | The size of the disk in the snapshot, in GiB.-stdDiskImageSize :: Lens' SnapshotTaskDetail (Maybe Double)-stdDiskImageSize = lens _stdDiskImageSize (\ s a -> s{_stdDiskImageSize = a});---- | The description of the snapshot.-stdDescription :: Lens' SnapshotTaskDetail (Maybe Text)-stdDescription = lens _stdDescription (\ s a -> s{_stdDescription = a});---- | The snapshot ID of the disk being imported.-stdSnapshotId :: Lens' SnapshotTaskDetail (Maybe Text)-stdSnapshotId = lens _stdSnapshotId (\ s a -> s{_stdSnapshotId = a});--instance FromXML SnapshotTaskDetail where-        parseXML x-          = SnapshotTaskDetail' <$>-              (x .@? "status") <*> (x .@? "progress") <*>-                (x .@? "format")-                <*> (x .@? "url")-                <*> (x .@? "statusMessage")-                <*> (x .@? "userBucket")-                <*> (x .@? "diskImageSize")-                <*> (x .@? "description")-                <*> (x .@? "snapshotId")--instance Hashable SnapshotTaskDetail--instance NFData SnapshotTaskDetail---- | Describes the data feed for a Spot instance.------------ /See:/ 'spotDatafeedSubscription' smart constructor.-data SpotDatafeedSubscription = SpotDatafeedSubscription'-    { _sdsState   :: !(Maybe DatafeedSubscriptionState)-    , _sdsPrefix  :: !(Maybe Text)-    , _sdsBucket  :: !(Maybe Text)-    , _sdsOwnerId :: !(Maybe Text)-    , _sdsFault   :: !(Maybe SpotInstanceStateFault)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotDatafeedSubscription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sdsState' - The state of the Spot instance data feed subscription.------ * 'sdsPrefix' - The prefix that is prepended to data feed files.------ * 'sdsBucket' - The Amazon S3 bucket where the Spot instance data feed is located.------ * 'sdsOwnerId' - The AWS account ID of the account.------ * 'sdsFault' - The fault codes for the Spot instance request, if any.-spotDatafeedSubscription-    :: SpotDatafeedSubscription-spotDatafeedSubscription =-    SpotDatafeedSubscription'-    { _sdsState = Nothing-    , _sdsPrefix = Nothing-    , _sdsBucket = Nothing-    , _sdsOwnerId = Nothing-    , _sdsFault = Nothing-    }---- | The state of the Spot instance data feed subscription.-sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)-sdsState = lens _sdsState (\ s a -> s{_sdsState = a});---- | The prefix that is prepended to data feed files.-sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsPrefix = lens _sdsPrefix (\ s a -> s{_sdsPrefix = a});---- | The Amazon S3 bucket where the Spot instance data feed is located.-sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsBucket = lens _sdsBucket (\ s a -> s{_sdsBucket = a});---- | The AWS account ID of the account.-sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsOwnerId = lens _sdsOwnerId (\ s a -> s{_sdsOwnerId = a});---- | The fault codes for the Spot instance request, if any.-sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)-sdsFault = lens _sdsFault (\ s a -> s{_sdsFault = a});--instance FromXML SpotDatafeedSubscription where-        parseXML x-          = SpotDatafeedSubscription' <$>-              (x .@? "state") <*> (x .@? "prefix") <*>-                (x .@? "bucket")-                <*> (x .@? "ownerId")-                <*> (x .@? "fault")--instance Hashable SpotDatafeedSubscription--instance NFData SpotDatafeedSubscription---- | Describes the launch specification for one or more Spot instances.------------ /See:/ 'spotFleetLaunchSpecification' smart constructor.-data SpotFleetLaunchSpecification = SpotFleetLaunchSpecification'-    { _sflsSecurityGroups      :: !(Maybe [GroupIdentifier])-    , _sflsSpotPrice           :: !(Maybe Text)-    , _sflsWeightedCapacity    :: !(Maybe Double)-    , _sflsKeyName             :: !(Maybe Text)-    , _sflsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])-    , _sflsRAMDiskId           :: !(Maybe Text)-    , _sflsSubnetId            :: !(Maybe Text)-    , _sflsKernelId            :: !(Maybe Text)-    , _sflsInstanceType        :: !(Maybe InstanceType)-    , _sflsEBSOptimized        :: !(Maybe Bool)-    , _sflsUserData            :: !(Maybe Text)-    , _sflsMonitoring          :: !(Maybe SpotFleetMonitoring)-    , _sflsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)-    , _sflsImageId             :: !(Maybe Text)-    , _sflsAddressingType      :: !(Maybe Text)-    , _sflsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])-    , _sflsPlacement           :: !(Maybe SpotPlacement)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetLaunchSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sflsSecurityGroups' - 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.------ * 'sflsSpotPrice' - The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of @WeightedCapacity@ .------ * 'sflsWeightedCapacity' - 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.------ * 'sflsKeyName' - The name of the key pair.------ * 'sflsNetworkInterfaces' - One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.------ * 'sflsRAMDiskId' - The ID of the RAM disk.------ * 'sflsSubnetId' - 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".------ * 'sflsKernelId' - The ID of the kernel.------ * 'sflsInstanceType' - The instance type. Note that T2 and HS1 instance types are not supported.------ * 'sflsEBSOptimized' - Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@------ * 'sflsUserData' - The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.------ * 'sflsMonitoring' - Enable or disable monitoring for the instances.------ * 'sflsIAMInstanceProfile' - The IAM instance profile.------ * 'sflsImageId' - The ID of the AMI.------ * 'sflsAddressingType' - Deprecated.------ * 'sflsBlockDeviceMappings' - One or more block device mapping entries.------ * 'sflsPlacement' - The placement information.-spotFleetLaunchSpecification-    :: SpotFleetLaunchSpecification-spotFleetLaunchSpecification =-    SpotFleetLaunchSpecification'-    { _sflsSecurityGroups = Nothing-    , _sflsSpotPrice = Nothing-    , _sflsWeightedCapacity = Nothing-    , _sflsKeyName = Nothing-    , _sflsNetworkInterfaces = Nothing-    , _sflsRAMDiskId = Nothing-    , _sflsSubnetId = Nothing-    , _sflsKernelId = Nothing-    , _sflsInstanceType = Nothing-    , _sflsEBSOptimized = Nothing-    , _sflsUserData = Nothing-    , _sflsMonitoring = Nothing-    , _sflsIAMInstanceProfile = Nothing-    , _sflsImageId = Nothing-    , _sflsAddressingType = Nothing-    , _sflsBlockDeviceMappings = Nothing-    , _sflsPlacement = Nothing-    }---- | 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]-sflsSecurityGroups = lens _sflsSecurityGroups (\ s a -> s{_sflsSecurityGroups = a}) . _Default . _Coerce;---- | The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of @WeightedCapacity@ .-sflsSpotPrice :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsSpotPrice = lens _sflsSpotPrice (\ s a -> s{_sflsSpotPrice = 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.-sflsWeightedCapacity :: Lens' SpotFleetLaunchSpecification (Maybe Double)-sflsWeightedCapacity = lens _sflsWeightedCapacity (\ s a -> s{_sflsWeightedCapacity = a});---- | The name of the key pair.-sflsKeyName :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsKeyName = lens _sflsKeyName (\ s a -> s{_sflsKeyName = 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.-sflsNetworkInterfaces :: Lens' SpotFleetLaunchSpecification [InstanceNetworkInterfaceSpecification]-sflsNetworkInterfaces = lens _sflsNetworkInterfaces (\ s a -> s{_sflsNetworkInterfaces = a}) . _Default . _Coerce;---- | The ID of the RAM disk.-sflsRAMDiskId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsRAMDiskId = lens _sflsRAMDiskId (\ s a -> s{_sflsRAMDiskId = 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".-sflsSubnetId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsSubnetId = lens _sflsSubnetId (\ s a -> s{_sflsSubnetId = a});---- | The ID of the kernel.-sflsKernelId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsKernelId = lens _sflsKernelId (\ s a -> s{_sflsKernelId = a});---- | The instance type. Note that T2 and HS1 instance types are not supported.-sflsInstanceType :: Lens' SpotFleetLaunchSpecification (Maybe InstanceType)-sflsInstanceType = lens _sflsInstanceType (\ s a -> s{_sflsInstanceType = a});---- | Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@-sflsEBSOptimized :: Lens' SpotFleetLaunchSpecification (Maybe Bool)-sflsEBSOptimized = lens _sflsEBSOptimized (\ s a -> s{_sflsEBSOptimized = a});---- | The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.-sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsUserData = lens _sflsUserData (\ s a -> s{_sflsUserData = a});---- | Enable or disable monitoring for the instances.-sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)-sflsMonitoring = lens _sflsMonitoring (\ s a -> s{_sflsMonitoring = a});---- | The IAM instance profile.-sflsIAMInstanceProfile :: Lens' SpotFleetLaunchSpecification (Maybe IAMInstanceProfileSpecification)-sflsIAMInstanceProfile = lens _sflsIAMInstanceProfile (\ s a -> s{_sflsIAMInstanceProfile = a});---- | The ID of the AMI.-sflsImageId :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsImageId = lens _sflsImageId (\ s a -> s{_sflsImageId = a});---- | Deprecated.-sflsAddressingType :: Lens' SpotFleetLaunchSpecification (Maybe Text)-sflsAddressingType = lens _sflsAddressingType (\ s a -> s{_sflsAddressingType = a});---- | One or more block device mapping entries.-sflsBlockDeviceMappings :: Lens' SpotFleetLaunchSpecification [BlockDeviceMapping]-sflsBlockDeviceMappings = lens _sflsBlockDeviceMappings (\ s a -> s{_sflsBlockDeviceMappings = a}) . _Default . _Coerce;---- | The placement information.-sflsPlacement :: Lens' SpotFleetLaunchSpecification (Maybe SpotPlacement)-sflsPlacement = lens _sflsPlacement (\ s a -> s{_sflsPlacement = a});--instance FromXML SpotFleetLaunchSpecification where-        parseXML x-          = SpotFleetLaunchSpecification' <$>-              (x .@? "groupSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "spotPrice")-                <*> (x .@? "weightedCapacity")-                <*> (x .@? "keyName")-                <*>-                (x .@? "networkInterfaceSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ramdiskId")-                <*> (x .@? "subnetId")-                <*> (x .@? "kernelId")-                <*> (x .@? "instanceType")-                <*> (x .@? "ebsOptimized")-                <*> (x .@? "userData")-                <*> (x .@? "monitoring")-                <*> (x .@? "iamInstanceProfile")-                <*> (x .@? "imageId")-                <*> (x .@? "addressingType")-                <*>-                (x .@? "blockDeviceMapping" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "placement")--instance Hashable SpotFleetLaunchSpecification--instance NFData SpotFleetLaunchSpecification--instance ToQuery SpotFleetLaunchSpecification where-        toQuery SpotFleetLaunchSpecification'{..}-          = mconcat-              [toQuery-                 (toQueryList "GroupSet" <$> _sflsSecurityGroups),-               "SpotPrice" =: _sflsSpotPrice,-               "WeightedCapacity" =: _sflsWeightedCapacity,-               "KeyName" =: _sflsKeyName,-               toQuery-                 (toQueryList "NetworkInterfaceSet" <$>-                    _sflsNetworkInterfaces),-               "RamdiskId" =: _sflsRAMDiskId,-               "SubnetId" =: _sflsSubnetId,-               "KernelId" =: _sflsKernelId,-               "InstanceType" =: _sflsInstanceType,-               "EbsOptimized" =: _sflsEBSOptimized,-               "UserData" =: _sflsUserData,-               "Monitoring" =: _sflsMonitoring,-               "IamInstanceProfile" =: _sflsIAMInstanceProfile,-               "ImageId" =: _sflsImageId,-               "AddressingType" =: _sflsAddressingType,-               toQuery-                 (toQueryList "BlockDeviceMapping" <$>-                    _sflsBlockDeviceMappings),-               "Placement" =: _sflsPlacement]---- | Describes whether monitoring is enabled.------------ /See:/ 'spotFleetMonitoring' smart constructor.-newtype SpotFleetMonitoring = SpotFleetMonitoring'-    { _sfmEnabled :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetMonitoring' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfmEnabled' - Enables monitoring for the instance. Default: @false@-spotFleetMonitoring-    :: SpotFleetMonitoring-spotFleetMonitoring =-    SpotFleetMonitoring'-    { _sfmEnabled = Nothing-    }---- | Enables monitoring for the instance. Default: @false@-sfmEnabled :: Lens' SpotFleetMonitoring (Maybe Bool)-sfmEnabled = lens _sfmEnabled (\ s a -> s{_sfmEnabled = a});--instance FromXML SpotFleetMonitoring where-        parseXML x-          = SpotFleetMonitoring' <$> (x .@? "enabled")--instance Hashable SpotFleetMonitoring--instance NFData SpotFleetMonitoring--instance ToQuery SpotFleetMonitoring where-        toQuery SpotFleetMonitoring'{..}-          = mconcat ["Enabled" =: _sfmEnabled]---- | Describes a Spot fleet request.------------ /See:/ 'spotFleetRequestConfig' smart constructor.-data SpotFleetRequestConfig = SpotFleetRequestConfig'-    { _sfrcActivityStatus         :: !(Maybe ActivityStatus)-    , _sfrcSpotFleetRequestId     :: !Text-    , _sfrcSpotFleetRequestState  :: !BatchState-    , _sfrcSpotFleetRequestConfig :: !SpotFleetRequestConfigData-    , _sfrcCreateTime             :: !ISO8601-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetRequestConfig' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfrcActivityStatus' - The progress of the Spot fleet request. If there is an error, the status is @error@ . After all bids are placed, the status is @pending_fulfillment@ . If the size of the fleet is equal to or greater than its target capacity, the status is @fulfilled@ . If the size of the fleet is decreased, the status is @pending_termination@ while Spot instances are terminating.------ * 'sfrcSpotFleetRequestId' - The ID of the Spot fleet request.------ * 'sfrcSpotFleetRequestState' - The state of the Spot fleet request.------ * 'sfrcSpotFleetRequestConfig' - Information about the configuration of the Spot fleet request.------ * 'sfrcCreateTime' - The creation date and time of the request.-spotFleetRequestConfig-    :: Text -- ^ 'sfrcSpotFleetRequestId'-    -> BatchState -- ^ 'sfrcSpotFleetRequestState'-    -> SpotFleetRequestConfigData -- ^ 'sfrcSpotFleetRequestConfig'-    -> UTCTime -- ^ 'sfrcCreateTime'-    -> SpotFleetRequestConfig-spotFleetRequestConfig pSpotFleetRequestId_ pSpotFleetRequestState_ pSpotFleetRequestConfig_ pCreateTime_ =-    SpotFleetRequestConfig'-    { _sfrcActivityStatus = Nothing-    , _sfrcSpotFleetRequestId = pSpotFleetRequestId_-    , _sfrcSpotFleetRequestState = pSpotFleetRequestState_-    , _sfrcSpotFleetRequestConfig = pSpotFleetRequestConfig_-    , _sfrcCreateTime = _Time # pCreateTime_-    }---- | The progress of the Spot fleet request. If there is an error, the status is @error@ . After all bids are placed, the status is @pending_fulfillment@ . If the size of the fleet is equal to or greater than its target capacity, the status is @fulfilled@ . If the size of the fleet is decreased, the status is @pending_termination@ while Spot instances are terminating.-sfrcActivityStatus :: Lens' SpotFleetRequestConfig (Maybe ActivityStatus)-sfrcActivityStatus = lens _sfrcActivityStatus (\ s a -> s{_sfrcActivityStatus = a});---- | The ID of the Spot fleet request.-sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text-sfrcSpotFleetRequestId = lens _sfrcSpotFleetRequestId (\ s a -> s{_sfrcSpotFleetRequestId = a});---- | The state of the Spot fleet request.-sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState-sfrcSpotFleetRequestState = lens _sfrcSpotFleetRequestState (\ s a -> s{_sfrcSpotFleetRequestState = a});---- | Information about the configuration of the Spot fleet request.-sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData-sfrcSpotFleetRequestConfig = lens _sfrcSpotFleetRequestConfig (\ s a -> s{_sfrcSpotFleetRequestConfig = a});---- | The creation date and time of the request.-sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime-sfrcCreateTime = lens _sfrcCreateTime (\ s a -> s{_sfrcCreateTime = a}) . _Time;--instance FromXML SpotFleetRequestConfig where-        parseXML x-          = SpotFleetRequestConfig' <$>-              (x .@? "activityStatus") <*>-                (x .@ "spotFleetRequestId")-                <*> (x .@ "spotFleetRequestState")-                <*> (x .@ "spotFleetRequestConfig")-                <*> (x .@ "createTime")--instance Hashable SpotFleetRequestConfig--instance NFData SpotFleetRequestConfig---- | Describes the configuration of a Spot fleet request.------------ /See:/ 'spotFleetRequestConfigData' smart constructor.-data SpotFleetRequestConfigData = SpotFleetRequestConfigData'-    { _sfrcdClientToken                      :: !(Maybe Text)-    , _sfrcdExcessCapacityTerminationPolicy  :: !(Maybe ExcessCapacityTerminationPolicy)-    , _sfrcdValidUntil                       :: !(Maybe ISO8601)-    , _sfrcdTerminateInstancesWithExpiration :: !(Maybe Bool)-    , _sfrcdFulfilledCapacity                :: !(Maybe Double)-    , _sfrcdType                             :: !(Maybe FleetType)-    , _sfrcdValidFrom                        :: !(Maybe ISO8601)-    , _sfrcdAllocationStrategy               :: !(Maybe AllocationStrategy)-    , _sfrcdSpotPrice                        :: !Text-    , _sfrcdTargetCapacity                   :: !Int-    , _sfrcdIAMFleetRole                     :: !Text-    , _sfrcdLaunchSpecifications             :: !(List1 SpotFleetLaunchSpecification)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotFleetRequestConfigData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sfrcdClientToken' - A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .------ * 'sfrcdExcessCapacityTerminationPolicy' - 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.------ * 'sfrcdValidUntil' - The end date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). At this point, no new Spot instance requests are placed or enabled to fulfill the request.------ * 'sfrcdTerminateInstancesWithExpiration' - Indicates whether running Spot instances should be terminated when the Spot fleet request expires.------ * 'sfrcdFulfilledCapacity' - The number of units fulfilled by this request compared to the set target capacity.------ * 'sfrcdType' - The type of request. Indicates whether the fleet will only @request@ the target capacity or also attempt to @maintain@ it. When you @request@ a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to @maintain@ a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: @maintain@ .------ * 'sfrcdValidFrom' - The start date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The default is to start fulfilling the request immediately.------ * 'sfrcdAllocationStrategy' - Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is @lowestPrice@ .------ * 'sfrcdSpotPrice' - The bid price per unit hour.------ * 'sfrcdTargetCapacity' - 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.------ * 'sfrcdIAMFleetRole' - Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using 'CancelSpotFleetRequests' or when the Spot fleet request expires, if you set @terminateInstancesWithExpiration@ .------ * 'sfrcdLaunchSpecifications' - Information about the launch specifications for the Spot fleet request.-spotFleetRequestConfigData-    :: Text -- ^ 'sfrcdSpotPrice'-    -> Int -- ^ 'sfrcdTargetCapacity'-    -> Text -- ^ 'sfrcdIAMFleetRole'-    -> NonEmpty SpotFleetLaunchSpecification -- ^ 'sfrcdLaunchSpecifications'-    -> SpotFleetRequestConfigData-spotFleetRequestConfigData pSpotPrice_ pTargetCapacity_ pIAMFleetRole_ pLaunchSpecifications_ =-    SpotFleetRequestConfigData'-    { _sfrcdClientToken = Nothing-    , _sfrcdExcessCapacityTerminationPolicy = Nothing-    , _sfrcdValidUntil = Nothing-    , _sfrcdTerminateInstancesWithExpiration = Nothing-    , _sfrcdFulfilledCapacity = Nothing-    , _sfrcdType = Nothing-    , _sfrcdValidFrom = Nothing-    , _sfrcdAllocationStrategy = Nothing-    , _sfrcdSpotPrice = pSpotPrice_-    , _sfrcdTargetCapacity = pTargetCapacity_-    , _sfrcdIAMFleetRole = pIAMFleetRole_-    , _sfrcdLaunchSpecifications = _List1 # pLaunchSpecifications_-    }---- | A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .-sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)-sfrcdClientToken = lens _sfrcdClientToken (\ s a -> s{_sfrcdClientToken = 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.-sfrcdExcessCapacityTerminationPolicy :: Lens' SpotFleetRequestConfigData (Maybe ExcessCapacityTerminationPolicy)-sfrcdExcessCapacityTerminationPolicy = lens _sfrcdExcessCapacityTerminationPolicy (\ s a -> s{_sfrcdExcessCapacityTerminationPolicy = a});---- | The end date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). At this point, no new Spot instance requests are placed or enabled to fulfill the request.-sfrcdValidUntil :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)-sfrcdValidUntil = lens _sfrcdValidUntil (\ s a -> s{_sfrcdValidUntil = a}) . mapping _Time;---- | Indicates whether running Spot instances should be terminated when the Spot fleet request expires.-sfrcdTerminateInstancesWithExpiration :: Lens' SpotFleetRequestConfigData (Maybe Bool)-sfrcdTerminateInstancesWithExpiration = lens _sfrcdTerminateInstancesWithExpiration (\ s a -> s{_sfrcdTerminateInstancesWithExpiration = a});---- | The number of units fulfilled by this request compared to the set target capacity.-sfrcdFulfilledCapacity :: Lens' SpotFleetRequestConfigData (Maybe Double)-sfrcdFulfilledCapacity = lens _sfrcdFulfilledCapacity (\ s a -> s{_sfrcdFulfilledCapacity = a});---- | The type of request. Indicates whether the fleet will only @request@ the target capacity or also attempt to @maintain@ it. When you @request@ a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to @maintain@ a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: @maintain@ .-sfrcdType :: Lens' SpotFleetRequestConfigData (Maybe FleetType)-sfrcdType = lens _sfrcdType (\ s a -> s{_sfrcdType = a});---- | The start date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The default is to start fulfilling the request immediately.-sfrcdValidFrom :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)-sfrcdValidFrom = lens _sfrcdValidFrom (\ s a -> s{_sfrcdValidFrom = a}) . mapping _Time;---- | Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is @lowestPrice@ .-sfrcdAllocationStrategy :: Lens' SpotFleetRequestConfigData (Maybe AllocationStrategy)-sfrcdAllocationStrategy = lens _sfrcdAllocationStrategy (\ s a -> s{_sfrcdAllocationStrategy = a});---- | The bid price per unit hour.-sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData Text-sfrcdSpotPrice = lens _sfrcdSpotPrice (\ s a -> s{_sfrcdSpotPrice = 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.-sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int-sfrcdTargetCapacity = lens _sfrcdTargetCapacity (\ s a -> s{_sfrcdTargetCapacity = a});---- | Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using 'CancelSpotFleetRequests' or when the Spot fleet request expires, if you set @terminateInstancesWithExpiration@ .-sfrcdIAMFleetRole :: Lens' SpotFleetRequestConfigData Text-sfrcdIAMFleetRole = lens _sfrcdIAMFleetRole (\ s a -> s{_sfrcdIAMFleetRole = a});---- | Information about the launch specifications for the Spot fleet request.-sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData (NonEmpty SpotFleetLaunchSpecification)-sfrcdLaunchSpecifications = lens _sfrcdLaunchSpecifications (\ s a -> s{_sfrcdLaunchSpecifications = a}) . _List1;--instance FromXML SpotFleetRequestConfigData where-        parseXML x-          = SpotFleetRequestConfigData' <$>-              (x .@? "clientToken") <*>-                (x .@? "excessCapacityTerminationPolicy")-                <*> (x .@? "validUntil")-                <*> (x .@? "terminateInstancesWithExpiration")-                <*> (x .@? "fulfilledCapacity")-                <*> (x .@? "type")-                <*> (x .@? "validFrom")-                <*> (x .@? "allocationStrategy")-                <*> (x .@ "spotPrice")-                <*> (x .@ "targetCapacity")-                <*> (x .@ "iamFleetRole")-                <*>-                (x .@? "launchSpecifications" .!@ mempty >>=-                   parseXMLList1 "item")--instance Hashable SpotFleetRequestConfigData--instance NFData SpotFleetRequestConfigData--instance ToQuery SpotFleetRequestConfigData where-        toQuery SpotFleetRequestConfigData'{..}-          = mconcat-              ["ClientToken" =: _sfrcdClientToken,-               "ExcessCapacityTerminationPolicy" =:-                 _sfrcdExcessCapacityTerminationPolicy,-               "ValidUntil" =: _sfrcdValidUntil,-               "TerminateInstancesWithExpiration" =:-                 _sfrcdTerminateInstancesWithExpiration,-               "FulfilledCapacity" =: _sfrcdFulfilledCapacity,-               "Type" =: _sfrcdType, "ValidFrom" =: _sfrcdValidFrom,-               "AllocationStrategy" =: _sfrcdAllocationStrategy,-               "SpotPrice" =: _sfrcdSpotPrice,-               "TargetCapacity" =: _sfrcdTargetCapacity,-               "IamFleetRole" =: _sfrcdIAMFleetRole,-               toQueryList "LaunchSpecifications"-                 _sfrcdLaunchSpecifications]---- | Describes a Spot instance request.------------ /See:/ 'spotInstanceRequest' smart constructor.-data SpotInstanceRequest = SpotInstanceRequest'-    { _sirInstanceId               :: !(Maybe Text)-    , _sirStatus                   :: !(Maybe SpotInstanceStatus)-    , _sirState                    :: !(Maybe SpotInstanceState)-    , _sirActualBlockHourlyPrice   :: !(Maybe Text)-    , _sirBlockDurationMinutes     :: !(Maybe Int)-    , _sirProductDescription       :: !(Maybe RIProductDescription)-    , _sirSpotPrice                :: !(Maybe Text)-    , _sirLaunchSpecification      :: !(Maybe LaunchSpecification)-    , _sirAvailabilityZoneGroup    :: !(Maybe Text)-    , _sirLaunchedAvailabilityZone :: !(Maybe Text)-    , _sirValidUntil               :: !(Maybe ISO8601)-    , _sirLaunchGroup              :: !(Maybe Text)-    , _sirFault                    :: !(Maybe SpotInstanceStateFault)-    , _sirSpotInstanceRequestId    :: !(Maybe Text)-    , _sirType                     :: !(Maybe SpotInstanceType)-    , _sirValidFrom                :: !(Maybe ISO8601)-    , _sirCreateTime               :: !(Maybe ISO8601)-    , _sirTags                     :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotInstanceRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sirInstanceId' - The instance ID, if an instance has been launched to fulfill the Spot instance request.------ * 'sirStatus' - The status code and status message describing the Spot instance request.------ * 'sirState' - The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the /Amazon Elastic Compute Cloud User Guide/ .------ * 'sirActualBlockHourlyPrice' - 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.------ * 'sirBlockDurationMinutes' - The duration for the Spot instance, in minutes.------ * 'sirProductDescription' - The product description associated with the Spot instance.------ * 'sirSpotPrice' - The maximum hourly price (bid) for the Spot instance launched to fulfill the request.------ * 'sirLaunchSpecification' - Additional information for launching instances.------ * 'sirAvailabilityZoneGroup' - 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.------ * 'sirLaunchedAvailabilityZone' - The Availability Zone in which the bid is launched.------ * 'sirValidUntil' - The end date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ 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.------ * 'sirLaunchGroup' - The instance launch group. Launch groups are Spot instances that launch together and terminate together.------ * 'sirFault' - The fault codes for the Spot instance request, if any.------ * 'sirSpotInstanceRequestId' - The ID of the Spot instance request.------ * 'sirType' - The Spot instance request type.------ * 'sirValidFrom' - The start date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The request becomes active at this date and time.------ * 'sirCreateTime' - The date and time when the Spot instance request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).------ * 'sirTags' - Any tags assigned to the resource.-spotInstanceRequest-    :: SpotInstanceRequest-spotInstanceRequest =-    SpotInstanceRequest'-    { _sirInstanceId = Nothing-    , _sirStatus = Nothing-    , _sirState = Nothing-    , _sirActualBlockHourlyPrice = Nothing-    , _sirBlockDurationMinutes = Nothing-    , _sirProductDescription = Nothing-    , _sirSpotPrice = Nothing-    , _sirLaunchSpecification = Nothing-    , _sirAvailabilityZoneGroup = Nothing-    , _sirLaunchedAvailabilityZone = Nothing-    , _sirValidUntil = Nothing-    , _sirLaunchGroup = Nothing-    , _sirFault = Nothing-    , _sirSpotInstanceRequestId = Nothing-    , _sirType = Nothing-    , _sirValidFrom = Nothing-    , _sirCreateTime = Nothing-    , _sirTags = Nothing-    }---- | The instance ID, if an instance has been launched to fulfill the Spot instance request.-sirInstanceId :: Lens' SpotInstanceRequest (Maybe Text)-sirInstanceId = lens _sirInstanceId (\ s a -> s{_sirInstanceId = a});---- | The status code and status message describing the Spot instance request.-sirStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)-sirStatus = lens _sirStatus (\ s a -> s{_sirStatus = a});---- | The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the /Amazon Elastic Compute Cloud User Guide/ .-sirState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)-sirState = lens _sirState (\ s a -> s{_sirState = 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.-sirActualBlockHourlyPrice :: Lens' SpotInstanceRequest (Maybe Text)-sirActualBlockHourlyPrice = lens _sirActualBlockHourlyPrice (\ s a -> s{_sirActualBlockHourlyPrice = a});---- | The duration for the Spot instance, in minutes.-sirBlockDurationMinutes :: Lens' SpotInstanceRequest (Maybe Int)-sirBlockDurationMinutes = lens _sirBlockDurationMinutes (\ s a -> s{_sirBlockDurationMinutes = a});---- | The product description associated with the Spot instance.-sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)-sirProductDescription = lens _sirProductDescription (\ s a -> s{_sirProductDescription = a});---- | The maximum hourly price (bid) for the Spot instance launched to fulfill the request.-sirSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)-sirSpotPrice = lens _sirSpotPrice (\ s a -> s{_sirSpotPrice = a});---- | Additional information for launching instances.-sirLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)-sirLaunchSpecification = lens _sirLaunchSpecification (\ s a -> s{_sirLaunchSpecification = 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.-sirAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)-sirAvailabilityZoneGroup = lens _sirAvailabilityZoneGroup (\ s a -> s{_sirAvailabilityZoneGroup = a});---- | The Availability Zone in which the bid is launched.-sirLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)-sirLaunchedAvailabilityZone = lens _sirLaunchedAvailabilityZone (\ s a -> s{_sirLaunchedAvailabilityZone = a});---- | The end date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached.-sirValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)-sirValidUntil = lens _sirValidUntil (\ s a -> s{_sirValidUntil = a}) . mapping _Time;---- | The instance launch group. Launch groups are Spot instances that launch together and terminate together.-sirLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)-sirLaunchGroup = lens _sirLaunchGroup (\ s a -> s{_sirLaunchGroup = a});---- | The fault codes for the Spot instance request, if any.-sirFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)-sirFault = lens _sirFault (\ s a -> s{_sirFault = a});---- | The ID of the Spot instance request.-sirSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)-sirSpotInstanceRequestId = lens _sirSpotInstanceRequestId (\ s a -> s{_sirSpotInstanceRequestId = a});---- | The Spot instance request type.-sirType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)-sirType = lens _sirType (\ s a -> s{_sirType = a});---- | The start date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The request becomes active at this date and time.-sirValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)-sirValidFrom = lens _sirValidFrom (\ s a -> s{_sirValidFrom = a}) . mapping _Time;---- | The date and time when the Spot instance request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).-sirCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)-sirCreateTime = lens _sirCreateTime (\ s a -> s{_sirCreateTime = a}) . mapping _Time;---- | Any tags assigned to the resource.-sirTags :: Lens' SpotInstanceRequest [Tag]-sirTags = lens _sirTags (\ s a -> s{_sirTags = a}) . _Default . _Coerce;--instance FromXML SpotInstanceRequest where-        parseXML x-          = SpotInstanceRequest' <$>-              (x .@? "instanceId") <*> (x .@? "status") <*>-                (x .@? "state")-                <*> (x .@? "actualBlockHourlyPrice")-                <*> (x .@? "blockDurationMinutes")-                <*> (x .@? "productDescription")-                <*> (x .@? "spotPrice")-                <*> (x .@? "launchSpecification")-                <*> (x .@? "availabilityZoneGroup")-                <*> (x .@? "launchedAvailabilityZone")-                <*> (x .@? "validUntil")-                <*> (x .@? "launchGroup")-                <*> (x .@? "fault")-                <*> (x .@? "spotInstanceRequestId")-                <*> (x .@? "type")-                <*> (x .@? "validFrom")-                <*> (x .@? "createTime")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable SpotInstanceRequest--instance NFData SpotInstanceRequest---- | Describes a Spot instance state change.------------ /See:/ 'spotInstanceStateFault' smart constructor.-data SpotInstanceStateFault = SpotInstanceStateFault'-    { _sisfCode    :: !(Maybe Text)-    , _sisfMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotInstanceStateFault' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sisfCode' - The reason code for the Spot instance state change.------ * 'sisfMessage' - The message for the Spot instance state change.-spotInstanceStateFault-    :: SpotInstanceStateFault-spotInstanceStateFault =-    SpotInstanceStateFault'-    { _sisfCode = Nothing-    , _sisfMessage = Nothing-    }---- | The reason code for the Spot instance state change.-sisfCode :: Lens' SpotInstanceStateFault (Maybe Text)-sisfCode = lens _sisfCode (\ s a -> s{_sisfCode = a});---- | The message for the Spot instance state change.-sisfMessage :: Lens' SpotInstanceStateFault (Maybe Text)-sisfMessage = lens _sisfMessage (\ s a -> s{_sisfMessage = a});--instance FromXML SpotInstanceStateFault where-        parseXML x-          = SpotInstanceStateFault' <$>-              (x .@? "code") <*> (x .@? "message")--instance Hashable SpotInstanceStateFault--instance NFData SpotInstanceStateFault---- | Describes the status of a Spot instance request.------------ /See:/ 'spotInstanceStatus' smart constructor.-data SpotInstanceStatus = SpotInstanceStatus'-    { _sisUpdateTime :: !(Maybe ISO8601)-    , _sisCode       :: !(Maybe Text)-    , _sisMessage    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotInstanceStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sisUpdateTime' - The date and time of the most recent status update, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).------ * 'sisCode' - The status code. For a list of status codes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html#spot-instance-bid-status-understand Spot Bid Status Codes> in the /Amazon Elastic Compute Cloud User Guide/ .------ * 'sisMessage' - The description for the status code.-spotInstanceStatus-    :: SpotInstanceStatus-spotInstanceStatus =-    SpotInstanceStatus'-    { _sisUpdateTime = Nothing-    , _sisCode = Nothing-    , _sisMessage = Nothing-    }---- | The date and time of the most recent status update, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).-sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)-sisUpdateTime = lens _sisUpdateTime (\ s a -> s{_sisUpdateTime = a}) . mapping _Time;---- | The status code. For a list of status codes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html#spot-instance-bid-status-understand Spot Bid Status Codes> in the /Amazon Elastic Compute Cloud User Guide/ .-sisCode :: Lens' SpotInstanceStatus (Maybe Text)-sisCode = lens _sisCode (\ s a -> s{_sisCode = a});---- | The description for the status code.-sisMessage :: Lens' SpotInstanceStatus (Maybe Text)-sisMessage = lens _sisMessage (\ s a -> s{_sisMessage = a});--instance FromXML SpotInstanceStatus where-        parseXML x-          = SpotInstanceStatus' <$>-              (x .@? "updateTime") <*> (x .@? "code") <*>-                (x .@? "message")--instance Hashable SpotInstanceStatus--instance NFData SpotInstanceStatus---- | Describes Spot instance placement.------------ /See:/ 'spotPlacement' smart constructor.-data SpotPlacement = SpotPlacement'-    { _spAvailabilityZone :: !(Maybe Text)-    , _spGroupName        :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotPlacement' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'spAvailabilityZone' - The Availability Zone. [Spot fleet only] To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b".------ * 'spGroupName' - The name of the placement group (for cluster instances).-spotPlacement-    :: SpotPlacement-spotPlacement =-    SpotPlacement'-    { _spAvailabilityZone = Nothing-    , _spGroupName = Nothing-    }---- | 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)-spAvailabilityZone = lens _spAvailabilityZone (\ s a -> s{_spAvailabilityZone = a});---- | The name of the placement group (for cluster instances).-spGroupName :: Lens' SpotPlacement (Maybe Text)-spGroupName = lens _spGroupName (\ s a -> s{_spGroupName = a});--instance FromXML SpotPlacement where-        parseXML x-          = SpotPlacement' <$>-              (x .@? "availabilityZone") <*> (x .@? "groupName")--instance Hashable SpotPlacement--instance NFData SpotPlacement--instance ToQuery SpotPlacement where-        toQuery SpotPlacement'{..}-          = mconcat-              ["AvailabilityZone" =: _spAvailabilityZone,-               "GroupName" =: _spGroupName]---- | Describes the maximum hourly price (bid) for any Spot instance launched to fulfill the request.------------ /See:/ 'spotPrice' smart constructor.-data SpotPrice = SpotPrice'-    { _sProductDescription :: !(Maybe RIProductDescription)-    , _sSpotPrice          :: !(Maybe Text)-    , _sInstanceType       :: !(Maybe InstanceType)-    , _sAvailabilityZone   :: !(Maybe Text)-    , _sTimestamp          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SpotPrice' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sProductDescription' - A general description of the AMI.------ * 'sSpotPrice' - The maximum price (bid) that you are willing to pay for a Spot instance.------ * 'sInstanceType' - The instance type. Note that T2 and HS1 instance types are not supported.------ * 'sAvailabilityZone' - The Availability Zone.------ * 'sTimestamp' - The date and time the request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).-spotPrice-    :: SpotPrice-spotPrice =-    SpotPrice'-    { _sProductDescription = Nothing-    , _sSpotPrice = Nothing-    , _sInstanceType = Nothing-    , _sAvailabilityZone = Nothing-    , _sTimestamp = Nothing-    }---- | A general description of the AMI.-sProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)-sProductDescription = lens _sProductDescription (\ s a -> s{_sProductDescription = a});---- | The maximum price (bid) that you are willing to pay for a Spot instance.-sSpotPrice :: Lens' SpotPrice (Maybe Text)-sSpotPrice = lens _sSpotPrice (\ s a -> s{_sSpotPrice = a});---- | The instance type. Note that T2 and HS1 instance types are not supported.-sInstanceType :: Lens' SpotPrice (Maybe InstanceType)-sInstanceType = lens _sInstanceType (\ s a -> s{_sInstanceType = a});---- | The Availability Zone.-sAvailabilityZone :: Lens' SpotPrice (Maybe Text)-sAvailabilityZone = lens _sAvailabilityZone (\ s a -> s{_sAvailabilityZone = a});---- | The date and time the request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).-sTimestamp :: Lens' SpotPrice (Maybe UTCTime)-sTimestamp = lens _sTimestamp (\ s a -> s{_sTimestamp = a}) . mapping _Time;--instance FromXML SpotPrice where-        parseXML x-          = SpotPrice' <$>-              (x .@? "productDescription") <*> (x .@? "spotPrice")-                <*> (x .@? "instanceType")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "timestamp")--instance Hashable SpotPrice--instance NFData SpotPrice---- | Describes a stale rule in a security group.------------ /See:/ 'staleIPPermission' smart constructor.-data StaleIPPermission = StaleIPPermission'-    { _sipFromPort         :: !(Maybe Int)-    , _sipUserIdGroupPairs :: !(Maybe [UserIdGroupPair])-    , _sipPrefixListIds    :: !(Maybe [Text])-    , _sipIPProtocol       :: !(Maybe Text)-    , _sipToPort           :: !(Maybe Int)-    , _sipIPRanges         :: !(Maybe [Text])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'StaleIPPermission' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sipFromPort' - The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.------ * 'sipUserIdGroupPairs' - 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.------ * 'sipPrefixListIds' - One or more prefix list IDs for an AWS service. Not applicable for stale security group rules.------ * 'sipIPProtocol' - The IP protocol name (for @tcp@ , @udp@ , and @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers)> .------ * 'sipToPort' - The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.------ * 'sipIPRanges' - One or more IP ranges. Not applicable for stale security group rules.-staleIPPermission-    :: StaleIPPermission-staleIPPermission =-    StaleIPPermission'-    { _sipFromPort = Nothing-    , _sipUserIdGroupPairs = Nothing-    , _sipPrefixListIds = Nothing-    , _sipIPProtocol = Nothing-    , _sipToPort = Nothing-    , _sipIPRanges = Nothing-    }---- | The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.-sipFromPort :: Lens' StaleIPPermission (Maybe Int)-sipFromPort = lens _sipFromPort (\ s a -> s{_sipFromPort = 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.-sipUserIdGroupPairs :: Lens' StaleIPPermission [UserIdGroupPair]-sipUserIdGroupPairs = lens _sipUserIdGroupPairs (\ s a -> s{_sipUserIdGroupPairs = a}) . _Default . _Coerce;---- | One or more prefix list IDs for an AWS service. Not applicable for stale security group rules.-sipPrefixListIds :: Lens' StaleIPPermission [Text]-sipPrefixListIds = lens _sipPrefixListIds (\ s a -> s{_sipPrefixListIds = a}) . _Default . _Coerce;---- | The IP protocol name (for @tcp@ , @udp@ , and @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers)> .-sipIPProtocol :: Lens' StaleIPPermission (Maybe Text)-sipIPProtocol = lens _sipIPProtocol (\ s a -> s{_sipIPProtocol = a});---- | The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.-sipToPort :: Lens' StaleIPPermission (Maybe Int)-sipToPort = lens _sipToPort (\ s a -> s{_sipToPort = a});---- | One or more IP ranges. Not applicable for stale security group rules.-sipIPRanges :: Lens' StaleIPPermission [Text]-sipIPRanges = lens _sipIPRanges (\ s a -> s{_sipIPRanges = a}) . _Default . _Coerce;--instance FromXML StaleIPPermission where-        parseXML x-          = StaleIPPermission' <$>-              (x .@? "fromPort") <*>-                (x .@? "groups" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "prefixListIds" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "ipProtocol")-                <*> (x .@? "toPort")-                <*>-                (x .@? "ipRanges" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable StaleIPPermission--instance NFData StaleIPPermission---- | Describes a stale security group (a security group that contains stale rules).------------ /See:/ 'staleSecurityGroup' smart constructor.-data StaleSecurityGroup = StaleSecurityGroup'-    { _ssgVPCId                    :: !(Maybe Text)-    , _ssgGroupName                :: !(Maybe Text)-    , _ssgStaleIPPermissionsEgress :: !(Maybe [StaleIPPermission])-    , _ssgStaleIPPermissions       :: !(Maybe [StaleIPPermission])-    , _ssgDescription              :: !(Maybe Text)-    , _ssgGroupId                  :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'StaleSecurityGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ssgVPCId' - The ID of the VPC for the security group.------ * 'ssgGroupName' - The name of the security group.------ * 'ssgStaleIPPermissionsEgress' - Information about the stale outbound rules in the security group.------ * 'ssgStaleIPPermissions' - Information about the stale inbound rules in the security group.------ * 'ssgDescription' - The description of the security group.------ * 'ssgGroupId' - The ID of the security group.-staleSecurityGroup-    :: Text -- ^ 'ssgGroupId'-    -> StaleSecurityGroup-staleSecurityGroup pGroupId_ =-    StaleSecurityGroup'-    { _ssgVPCId = Nothing-    , _ssgGroupName = Nothing-    , _ssgStaleIPPermissionsEgress = Nothing-    , _ssgStaleIPPermissions = Nothing-    , _ssgDescription = Nothing-    , _ssgGroupId = pGroupId_-    }---- | The ID of the VPC for the security group.-ssgVPCId :: Lens' StaleSecurityGroup (Maybe Text)-ssgVPCId = lens _ssgVPCId (\ s a -> s{_ssgVPCId = a});---- | The name of the security group.-ssgGroupName :: Lens' StaleSecurityGroup (Maybe Text)-ssgGroupName = lens _ssgGroupName (\ s a -> s{_ssgGroupName = a});---- | Information about the stale outbound rules in the security group.-ssgStaleIPPermissionsEgress :: Lens' StaleSecurityGroup [StaleIPPermission]-ssgStaleIPPermissionsEgress = lens _ssgStaleIPPermissionsEgress (\ s a -> s{_ssgStaleIPPermissionsEgress = a}) . _Default . _Coerce;---- | Information about the stale inbound rules in the security group.-ssgStaleIPPermissions :: Lens' StaleSecurityGroup [StaleIPPermission]-ssgStaleIPPermissions = lens _ssgStaleIPPermissions (\ s a -> s{_ssgStaleIPPermissions = a}) . _Default . _Coerce;---- | The description of the security group.-ssgDescription :: Lens' StaleSecurityGroup (Maybe Text)-ssgDescription = lens _ssgDescription (\ s a -> s{_ssgDescription = a});---- | The ID of the security group.-ssgGroupId :: Lens' StaleSecurityGroup Text-ssgGroupId = lens _ssgGroupId (\ s a -> s{_ssgGroupId = a});--instance FromXML StaleSecurityGroup where-        parseXML x-          = StaleSecurityGroup' <$>-              (x .@? "vpcId") <*> (x .@? "groupName") <*>-                (x .@? "staleIpPermissionsEgress" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "staleIpPermissions" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "description")-                <*> (x .@ "groupId")--instance Hashable StaleSecurityGroup--instance NFData StaleSecurityGroup---- | Describes a state change.------------ /See:/ 'stateReason' smart constructor.-data StateReason = StateReason'-    { _srCode    :: !(Maybe Text)-    , _srMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'StateReason' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'srCode' - The reason code for the state change.------ * 'srMessage' - The message for the state change.     * @Server.SpotInstanceTermination@ : A Spot instance was terminated due to an increase in the market price.     * @Server.InternalError@ : An internal error occurred during instance launch, resulting in termination.     * @Server.InsufficientInstanceCapacity@ : There was insufficient instance capacity to satisfy the launch request.     * @Client.InternalError@ : A client error caused the instance to terminate on launch.     * @Client.InstanceInitiatedShutdown@ : The instance was shut down using the @shutdown -h@ command from the instance.     * @Client.UserInitiatedShutdown@ : The instance was shut down using the Amazon EC2 API.     * @Client.VolumeLimitExceeded@ : The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.     * @Client.InvalidSnapshot.NotFound@ : The specified snapshot was not found.-stateReason-    :: StateReason-stateReason =-    StateReason'-    { _srCode = Nothing-    , _srMessage = Nothing-    }---- | The reason code for the state change.-srCode :: Lens' StateReason (Maybe Text)-srCode = lens _srCode (\ s a -> s{_srCode = a});---- | The message for the state change.     * @Server.SpotInstanceTermination@ : A Spot instance was terminated due to an increase in the market price.     * @Server.InternalError@ : An internal error occurred during instance launch, resulting in termination.     * @Server.InsufficientInstanceCapacity@ : There was insufficient instance capacity to satisfy the launch request.     * @Client.InternalError@ : A client error caused the instance to terminate on launch.     * @Client.InstanceInitiatedShutdown@ : The instance was shut down using the @shutdown -h@ command from the instance.     * @Client.UserInitiatedShutdown@ : The instance was shut down using the Amazon EC2 API.     * @Client.VolumeLimitExceeded@ : The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.     * @Client.InvalidSnapshot.NotFound@ : The specified snapshot was not found.-srMessage :: Lens' StateReason (Maybe Text)-srMessage = lens _srMessage (\ s a -> s{_srMessage = a});--instance FromXML StateReason where-        parseXML x-          = StateReason' <$>-              (x .@? "code") <*> (x .@? "message")--instance Hashable StateReason--instance NFData StateReason---- | Describes the storage location for an instance store-backed AMI.------------ /See:/ 'storage' smart constructor.-newtype Storage = Storage'-    { _sS3 :: Maybe S3Storage-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Storage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sS3' - An Amazon S3 storage location.-storage-    :: Storage-storage =-    Storage'-    { _sS3 = Nothing-    }---- | An Amazon S3 storage location.-sS3 :: Lens' Storage (Maybe S3Storage)-sS3 = lens _sS3 (\ s a -> s{_sS3 = a});--instance FromXML Storage where-        parseXML x = Storage' <$> (x .@? "S3")--instance Hashable Storage--instance NFData Storage--instance ToQuery Storage where-        toQuery Storage'{..} = mconcat ["S3" =: _sS3]---- | Describes a subnet.------------ /See:/ 'subnet' smart constructor.-data Subnet = Subnet'-    { _subIPv6CidrBlockAssociationSet :: !(Maybe [SubnetIPv6CidrBlockAssociation])-    , _subAssignIPv6AddressOnCreation :: !(Maybe Bool)-    , _subMapPublicIPOnLaunch         :: !(Maybe Bool)-    , _subDefaultForAz                :: !(Maybe Bool)-    , _subTags                        :: !(Maybe [Tag])-    , _subAvailabilityZone            :: !Text-    , _subAvailableIPAddressCount     :: !Int-    , _subCidrBlock                   :: !Text-    , _subState                       :: !SubnetState-    , _subSubnetId                    :: !Text-    , _subVPCId                       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Subnet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'subIPv6CidrBlockAssociationSet' - Information about the IPv6 CIDR blocks associated with the subnet.------ * 'subAssignIPv6AddressOnCreation' - Indicates whether a network interface created in this subnet (including a network interface created by 'RunInstances' ) receives an IPv6 address.------ * 'subMapPublicIPOnLaunch' - Indicates whether instances launched in this subnet receive a public IPv4 address.------ * 'subDefaultForAz' - Indicates whether this is the default subnet for the Availability Zone.------ * 'subTags' - Any tags assigned to the subnet.------ * 'subAvailabilityZone' - The Availability Zone of the subnet.------ * 'subAvailableIPAddressCount' - The number of unused private IPv4 addresses in the subnet. Note that the IPv4 addresses for any stopped instances are considered unavailable.------ * 'subCidrBlock' - The IPv4 CIDR block assigned to the subnet.------ * 'subState' - The current state of the subnet.------ * 'subSubnetId' - The ID of the subnet.------ * 'subVPCId' - The ID of the VPC the subnet is in.-subnet-    :: Text -- ^ 'subAvailabilityZone'-    -> Int -- ^ 'subAvailableIPAddressCount'-    -> Text -- ^ 'subCidrBlock'-    -> SubnetState -- ^ 'subState'-    -> Text -- ^ 'subSubnetId'-    -> Text -- ^ 'subVPCId'-    -> Subnet-subnet pAvailabilityZone_ pAvailableIPAddressCount_ pCidrBlock_ pState_ pSubnetId_ pVPCId_ =-    Subnet'-    { _subIPv6CidrBlockAssociationSet = Nothing-    , _subAssignIPv6AddressOnCreation = Nothing-    , _subMapPublicIPOnLaunch = Nothing-    , _subDefaultForAz = Nothing-    , _subTags = Nothing-    , _subAvailabilityZone = pAvailabilityZone_-    , _subAvailableIPAddressCount = pAvailableIPAddressCount_-    , _subCidrBlock = pCidrBlock_-    , _subState = pState_-    , _subSubnetId = pSubnetId_-    , _subVPCId = pVPCId_-    }---- | Information about the IPv6 CIDR blocks associated with the subnet.-subIPv6CidrBlockAssociationSet :: Lens' Subnet [SubnetIPv6CidrBlockAssociation]-subIPv6CidrBlockAssociationSet = lens _subIPv6CidrBlockAssociationSet (\ s a -> s{_subIPv6CidrBlockAssociationSet = a}) . _Default . _Coerce;---- | Indicates whether a network interface created in this subnet (including a network interface created by 'RunInstances' ) receives an IPv6 address.-subAssignIPv6AddressOnCreation :: Lens' Subnet (Maybe Bool)-subAssignIPv6AddressOnCreation = lens _subAssignIPv6AddressOnCreation (\ s a -> s{_subAssignIPv6AddressOnCreation = a});---- | Indicates whether instances launched in this subnet receive a public IPv4 address.-subMapPublicIPOnLaunch :: Lens' Subnet (Maybe Bool)-subMapPublicIPOnLaunch = lens _subMapPublicIPOnLaunch (\ s a -> s{_subMapPublicIPOnLaunch = a});---- | Indicates whether this is the default subnet for the Availability Zone.-subDefaultForAz :: Lens' Subnet (Maybe Bool)-subDefaultForAz = lens _subDefaultForAz (\ s a -> s{_subDefaultForAz = a});---- | Any tags assigned to the subnet.-subTags :: Lens' Subnet [Tag]-subTags = lens _subTags (\ s a -> s{_subTags = a}) . _Default . _Coerce;---- | The Availability Zone of the subnet.-subAvailabilityZone :: Lens' Subnet Text-subAvailabilityZone = lens _subAvailabilityZone (\ s a -> s{_subAvailabilityZone = a});---- | 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-subAvailableIPAddressCount = lens _subAvailableIPAddressCount (\ s a -> s{_subAvailableIPAddressCount = a});---- | The IPv4 CIDR block assigned to the subnet.-subCidrBlock :: Lens' Subnet Text-subCidrBlock = lens _subCidrBlock (\ s a -> s{_subCidrBlock = a});---- | The current state of the subnet.-subState :: Lens' Subnet SubnetState-subState = lens _subState (\ s a -> s{_subState = a});---- | The ID of the subnet.-subSubnetId :: Lens' Subnet Text-subSubnetId = lens _subSubnetId (\ s a -> s{_subSubnetId = a});---- | The ID of the VPC the subnet is in.-subVPCId :: Lens' Subnet Text-subVPCId = lens _subVPCId (\ s a -> s{_subVPCId = a});--instance FromXML Subnet where-        parseXML x-          = Subnet' <$>-              (x .@? "ipv6CidrBlockAssociationSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "assignIpv6AddressOnCreation")-                <*> (x .@? "mapPublicIpOnLaunch")-                <*> (x .@? "defaultForAz")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "availabilityZone")-                <*> (x .@ "availableIpAddressCount")-                <*> (x .@ "cidrBlock")-                <*> (x .@ "state")-                <*> (x .@ "subnetId")-                <*> (x .@ "vpcId")--instance Hashable Subnet--instance NFData Subnet---- | Describes the state of a CIDR block.------------ /See:/ 'subnetCidrBlockState' smart constructor.-data SubnetCidrBlockState = SubnetCidrBlockState'-    { _scbsState         :: !(Maybe SubnetCidrBlockStateCode)-    , _scbsStatusMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SubnetCidrBlockState' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scbsState' - The state of a CIDR block.------ * 'scbsStatusMessage' - A message about the status of the CIDR block, if applicable.-subnetCidrBlockState-    :: SubnetCidrBlockState-subnetCidrBlockState =-    SubnetCidrBlockState'-    { _scbsState = Nothing-    , _scbsStatusMessage = Nothing-    }---- | The state of a CIDR block.-scbsState :: Lens' SubnetCidrBlockState (Maybe SubnetCidrBlockStateCode)-scbsState = lens _scbsState (\ s a -> s{_scbsState = a});---- | A message about the status of the CIDR block, if applicable.-scbsStatusMessage :: Lens' SubnetCidrBlockState (Maybe Text)-scbsStatusMessage = lens _scbsStatusMessage (\ s a -> s{_scbsStatusMessage = a});--instance FromXML SubnetCidrBlockState where-        parseXML x-          = SubnetCidrBlockState' <$>-              (x .@? "state") <*> (x .@? "statusMessage")--instance Hashable SubnetCidrBlockState--instance NFData SubnetCidrBlockState---- | Describes an IPv6 CIDR block associated with a subnet.------------ /See:/ 'subnetIPv6CidrBlockAssociation' smart constructor.-data SubnetIPv6CidrBlockAssociation = SubnetIPv6CidrBlockAssociation'-    { _sicbaAssociationId      :: !(Maybe Text)-    , _sicbaIPv6CidrBlock      :: !(Maybe Text)-    , _sicbaIPv6CidrBlockState :: !(Maybe SubnetCidrBlockState)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SubnetIPv6CidrBlockAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sicbaAssociationId' - The association ID for the CIDR block.------ * 'sicbaIPv6CidrBlock' - The IPv6 CIDR block.------ * 'sicbaIPv6CidrBlockState' - Information about the state of the CIDR block.-subnetIPv6CidrBlockAssociation-    :: SubnetIPv6CidrBlockAssociation-subnetIPv6CidrBlockAssociation =-    SubnetIPv6CidrBlockAssociation'-    { _sicbaAssociationId = Nothing-    , _sicbaIPv6CidrBlock = Nothing-    , _sicbaIPv6CidrBlockState = Nothing-    }---- | The association ID for the CIDR block.-sicbaAssociationId :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)-sicbaAssociationId = lens _sicbaAssociationId (\ s a -> s{_sicbaAssociationId = a});---- | The IPv6 CIDR block.-sicbaIPv6CidrBlock :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)-sicbaIPv6CidrBlock = lens _sicbaIPv6CidrBlock (\ s a -> s{_sicbaIPv6CidrBlock = a});---- | Information about the state of the CIDR block.-sicbaIPv6CidrBlockState :: Lens' SubnetIPv6CidrBlockAssociation (Maybe SubnetCidrBlockState)-sicbaIPv6CidrBlockState = lens _sicbaIPv6CidrBlockState (\ s a -> s{_sicbaIPv6CidrBlockState = a});--instance FromXML SubnetIPv6CidrBlockAssociation where-        parseXML x-          = SubnetIPv6CidrBlockAssociation' <$>-              (x .@? "associationId") <*> (x .@? "ipv6CidrBlock")-                <*> (x .@? "ipv6CidrBlockState")--instance Hashable SubnetIPv6CidrBlockAssociation--instance NFData SubnetIPv6CidrBlockAssociation---- | Describes a tag.------------ /See:/ 'tag' smart constructor.-data Tag = Tag'-    { _tagKey   :: !Text-    , _tagValue :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Tag' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tagKey' - The key of the tag. Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with @aws:@------ * 'tagValue' - The value of the tag. Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.-tag-    :: Text -- ^ 'tagKey'-    -> Text -- ^ 'tagValue'-    -> Tag-tag pKey_ pValue_ =-    Tag'-    { _tagKey = pKey_-    , _tagValue = pValue_-    }---- | The key of the tag. Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with @aws:@-tagKey :: Lens' Tag Text-tagKey = lens _tagKey (\ s a -> s{_tagKey = a});---- | The value of the tag. Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.-tagValue :: Lens' Tag Text-tagValue = lens _tagValue (\ s a -> s{_tagValue = a});--instance FromXML Tag where-        parseXML x = Tag' <$> (x .@ "key") <*> (x .@ "value")--instance Hashable Tag--instance NFData Tag--instance ToQuery Tag where-        toQuery Tag'{..}-          = mconcat ["Key" =: _tagKey, "Value" =: _tagValue]---- | Describes a tag.------------ /See:/ 'tagDescription' smart constructor.-data TagDescription = TagDescription'-    { _tdResourceId   :: !Text-    , _tdResourceType :: !ResourceType-    , _tdKey          :: !Text-    , _tdValue        :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TagDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdResourceId' - The ID of the resource. For example, @ami-1a2b3c4d@ .------ * 'tdResourceType' - The resource type.------ * 'tdKey' - The tag key.------ * 'tdValue' - The tag value.-tagDescription-    :: Text -- ^ 'tdResourceId'-    -> ResourceType -- ^ 'tdResourceType'-    -> Text -- ^ 'tdKey'-    -> Text -- ^ 'tdValue'-    -> TagDescription-tagDescription pResourceId_ pResourceType_ pKey_ pValue_ =-    TagDescription'-    { _tdResourceId = pResourceId_-    , _tdResourceType = pResourceType_-    , _tdKey = pKey_-    , _tdValue = pValue_-    }---- | The ID of the resource. For example, @ami-1a2b3c4d@ .-tdResourceId :: Lens' TagDescription Text-tdResourceId = lens _tdResourceId (\ s a -> s{_tdResourceId = a});---- | The resource type.-tdResourceType :: Lens' TagDescription ResourceType-tdResourceType = lens _tdResourceType (\ s a -> s{_tdResourceType = a});---- | The tag key.-tdKey :: Lens' TagDescription Text-tdKey = lens _tdKey (\ s a -> s{_tdKey = a});---- | The tag value.-tdValue :: Lens' TagDescription Text-tdValue = lens _tdValue (\ s a -> s{_tdValue = a});--instance FromXML TagDescription where-        parseXML x-          = TagDescription' <$>-              (x .@ "resourceId") <*> (x .@ "resourceType") <*>-                (x .@ "key")-                <*> (x .@ "value")--instance Hashable TagDescription--instance NFData TagDescription---- | Information about the Convertible Reserved Instance offering.------------ /See:/ 'targetConfiguration' smart constructor.-data TargetConfiguration = TargetConfiguration'-    { _tcInstanceCount :: !(Maybe Int)-    , _tcOfferingId    :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TargetConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tcInstanceCount' - The number of instances the Convertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request------ * 'tcOfferingId' - The ID of the Convertible Reserved Instance offering.-targetConfiguration-    :: TargetConfiguration-targetConfiguration =-    TargetConfiguration'-    { _tcInstanceCount = Nothing-    , _tcOfferingId = Nothing-    }---- | 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)-tcInstanceCount = lens _tcInstanceCount (\ s a -> s{_tcInstanceCount = a});---- | The ID of the Convertible Reserved Instance offering.-tcOfferingId :: Lens' TargetConfiguration (Maybe Text)-tcOfferingId = lens _tcOfferingId (\ s a -> s{_tcOfferingId = a});--instance FromXML TargetConfiguration where-        parseXML x-          = TargetConfiguration' <$>-              (x .@? "instanceCount") <*> (x .@? "offeringId")--instance Hashable TargetConfiguration--instance NFData TargetConfiguration---- | Details about the target configuration.------------ /See:/ 'targetConfigurationRequest' smart constructor.-data TargetConfigurationRequest = TargetConfigurationRequest'-    { _tcrInstanceCount :: !(Maybe Int)-    , _tcrOfferingId    :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TargetConfigurationRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tcrInstanceCount' - The number of instances the Covertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request------ * 'tcrOfferingId' - The Convertible Reserved Instance offering ID.-targetConfigurationRequest-    :: Text -- ^ 'tcrOfferingId'-    -> TargetConfigurationRequest-targetConfigurationRequest pOfferingId_ =-    TargetConfigurationRequest'-    { _tcrInstanceCount = Nothing-    , _tcrOfferingId = pOfferingId_-    }---- | 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)-tcrInstanceCount = lens _tcrInstanceCount (\ s a -> s{_tcrInstanceCount = a});---- | The Convertible Reserved Instance offering ID.-tcrOfferingId :: Lens' TargetConfigurationRequest Text-tcrOfferingId = lens _tcrOfferingId (\ s a -> s{_tcrOfferingId = a});--instance Hashable TargetConfigurationRequest--instance NFData TargetConfigurationRequest--instance ToQuery TargetConfigurationRequest where-        toQuery TargetConfigurationRequest'{..}-          = mconcat-              ["InstanceCount" =: _tcrInstanceCount,-               "OfferingId" =: _tcrOfferingId]---- | The total value of the new Convertible Reserved Instances.------------ /See:/ 'targetReservationValue' smart constructor.-data TargetReservationValue = TargetReservationValue'-    { _trvReservationValue    :: !(Maybe ReservationValue)-    , _trvTargetConfiguration :: !(Maybe TargetConfiguration)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TargetReservationValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'trvReservationValue' - 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.------ * 'trvTargetConfiguration' - The configuration of the Convertible Reserved Instances that make up the exchange.-targetReservationValue-    :: TargetReservationValue-targetReservationValue =-    TargetReservationValue'-    { _trvReservationValue = Nothing-    , _trvTargetConfiguration = Nothing-    }---- | 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)-trvReservationValue = lens _trvReservationValue (\ s a -> s{_trvReservationValue = a});---- | The configuration of the Convertible Reserved Instances that make up the exchange.-trvTargetConfiguration :: Lens' TargetReservationValue (Maybe TargetConfiguration)-trvTargetConfiguration = lens _trvTargetConfiguration (\ s a -> s{_trvTargetConfiguration = a});--instance FromXML TargetReservationValue where-        parseXML x-          = TargetReservationValue' <$>-              (x .@? "reservationValue") <*>-                (x .@? "targetConfiguration")--instance Hashable TargetReservationValue--instance NFData TargetReservationValue---- | Information about items that were not successfully processed in a batch call.------------ /See:/ 'unsuccessfulItem' smart constructor.-data UnsuccessfulItem = UnsuccessfulItem'-    { _uiResourceId :: !(Maybe Text)-    , _uiError      :: !UnsuccessfulItemError-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UnsuccessfulItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uiResourceId' - The ID of the resource.------ * 'uiError' - Information about the error.-unsuccessfulItem-    :: UnsuccessfulItemError -- ^ 'uiError'-    -> UnsuccessfulItem-unsuccessfulItem pError_ =-    UnsuccessfulItem'-    { _uiResourceId = Nothing-    , _uiError = pError_-    }---- | The ID of the resource.-uiResourceId :: Lens' UnsuccessfulItem (Maybe Text)-uiResourceId = lens _uiResourceId (\ s a -> s{_uiResourceId = a});---- | Information about the error.-uiError :: Lens' UnsuccessfulItem UnsuccessfulItemError-uiError = lens _uiError (\ s a -> s{_uiError = a});--instance FromXML UnsuccessfulItem where-        parseXML x-          = UnsuccessfulItem' <$>-              (x .@? "resourceId") <*> (x .@ "error")--instance Hashable UnsuccessfulItem--instance NFData UnsuccessfulItem---- | Information about the error that occurred. For more information about errors, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html Error Codes> .------------ /See:/ 'unsuccessfulItemError' smart constructor.-data UnsuccessfulItemError = UnsuccessfulItemError'-    { _uieCode    :: !Text-    , _uieMessage :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UnsuccessfulItemError' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uieCode' - The error code.------ * 'uieMessage' - The error message accompanying the error code.-unsuccessfulItemError-    :: Text -- ^ 'uieCode'-    -> Text -- ^ 'uieMessage'-    -> UnsuccessfulItemError-unsuccessfulItemError pCode_ pMessage_ =-    UnsuccessfulItemError'-    { _uieCode = pCode_-    , _uieMessage = pMessage_-    }---- | The error code.-uieCode :: Lens' UnsuccessfulItemError Text-uieCode = lens _uieCode (\ s a -> s{_uieCode = a});---- | The error message accompanying the error code.-uieMessage :: Lens' UnsuccessfulItemError Text-uieMessage = lens _uieMessage (\ s a -> s{_uieMessage = a});--instance FromXML UnsuccessfulItemError where-        parseXML x-          = UnsuccessfulItemError' <$>-              (x .@ "code") <*> (x .@ "message")--instance Hashable UnsuccessfulItemError--instance NFData UnsuccessfulItemError---- | Describes the S3 bucket for the disk image.------------ /See:/ 'userBucket' smart constructor.-data UserBucket = UserBucket'-    { _ubS3Key    :: !(Maybe Text)-    , _ubS3Bucket :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserBucket' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ubS3Key' - The file name of the disk image.------ * 'ubS3Bucket' - The name of the S3 bucket where the disk image is located.-userBucket-    :: UserBucket-userBucket =-    UserBucket'-    { _ubS3Key = Nothing-    , _ubS3Bucket = Nothing-    }---- | The file name of the disk image.-ubS3Key :: Lens' UserBucket (Maybe Text)-ubS3Key = lens _ubS3Key (\ s a -> s{_ubS3Key = a});---- | The name of the S3 bucket where the disk image is located.-ubS3Bucket :: Lens' UserBucket (Maybe Text)-ubS3Bucket = lens _ubS3Bucket (\ s a -> s{_ubS3Bucket = a});--instance Hashable UserBucket--instance NFData UserBucket--instance ToQuery UserBucket where-        toQuery UserBucket'{..}-          = mconcat-              ["S3Key" =: _ubS3Key, "S3Bucket" =: _ubS3Bucket]---- | Describes the S3 bucket for the disk image.------------ /See:/ 'userBucketDetails' smart constructor.-data UserBucketDetails = UserBucketDetails'-    { _ubdS3Key    :: !(Maybe Text)-    , _ubdS3Bucket :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserBucketDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ubdS3Key' - The file name of the disk image.------ * 'ubdS3Bucket' - The S3 bucket from which the disk image was created.-userBucketDetails-    :: UserBucketDetails-userBucketDetails =-    UserBucketDetails'-    { _ubdS3Key = Nothing-    , _ubdS3Bucket = Nothing-    }---- | The file name of the disk image.-ubdS3Key :: Lens' UserBucketDetails (Maybe Text)-ubdS3Key = lens _ubdS3Key (\ s a -> s{_ubdS3Key = a});---- | The S3 bucket from which the disk image was created.-ubdS3Bucket :: Lens' UserBucketDetails (Maybe Text)-ubdS3Bucket = lens _ubdS3Bucket (\ s a -> s{_ubdS3Bucket = a});--instance FromXML UserBucketDetails where-        parseXML x-          = UserBucketDetails' <$>-              (x .@? "s3Key") <*> (x .@? "s3Bucket")--instance Hashable UserBucketDetails--instance NFData UserBucketDetails---- | Describes the user data for an instance.------------ /See:/ 'userData' smart constructor.-newtype UserData = UserData'-    { _udData :: Maybe Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserData' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'udData' - 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.-userData-    :: UserData-userData =-    UserData'-    { _udData = Nothing-    }---- | 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)-udData = lens _udData (\ s a -> s{_udData = a});--instance Hashable UserData--instance NFData UserData--instance ToQuery UserData where-        toQuery UserData'{..} = mconcat ["Data" =: _udData]---- | Describes a security group and AWS account ID pair.------------ /See:/ 'userIdGroupPair' smart constructor.-data UserIdGroupPair = UserIdGroupPair'-    { _uigpVPCPeeringConnectionId :: !(Maybe Text)-    , _uigpVPCId                  :: !(Maybe Text)-    , _uigpUserId                 :: !(Maybe Text)-    , _uigpGroupId                :: !(Maybe Text)-    , _uigpGroupName              :: !(Maybe Text)-    , _uigpPeeringStatus          :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'UserIdGroupPair' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uigpVPCPeeringConnectionId' - The ID of the VPC peering connection, if applicable.------ * 'uigpVPCId' - The ID of the VPC for the referenced security group, if applicable.------ * 'uigpUserId' - The ID of an AWS account. For a referenced security group in another VPC, the account ID of the referenced security group is returned. [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account.------ * 'uigpGroupId' - The ID of the security group.------ * 'uigpGroupName' - 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.------ * 'uigpPeeringStatus' - The status of a VPC peering connection, if applicable.-userIdGroupPair-    :: UserIdGroupPair-userIdGroupPair =-    UserIdGroupPair'-    { _uigpVPCPeeringConnectionId = Nothing-    , _uigpVPCId = Nothing-    , _uigpUserId = Nothing-    , _uigpGroupId = Nothing-    , _uigpGroupName = Nothing-    , _uigpPeeringStatus = Nothing-    }---- | The ID of the VPC peering connection, if applicable.-uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)-uigpVPCPeeringConnectionId = lens _uigpVPCPeeringConnectionId (\ s a -> s{_uigpVPCPeeringConnectionId = a});---- | The ID of the VPC for the referenced security group, if applicable.-uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)-uigpVPCId = lens _uigpVPCId (\ s a -> s{_uigpVPCId = a});---- | The ID of an AWS account. For a referenced security group in another VPC, the account ID of the referenced security group is returned. [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account.-uigpUserId :: Lens' UserIdGroupPair (Maybe Text)-uigpUserId = lens _uigpUserId (\ s a -> s{_uigpUserId = a});---- | The ID of the security group.-uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)-uigpGroupId = lens _uigpGroupId (\ s a -> s{_uigpGroupId = 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.-uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)-uigpGroupName = lens _uigpGroupName (\ s a -> s{_uigpGroupName = a});---- | The status of a VPC peering connection, if applicable.-uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)-uigpPeeringStatus = lens _uigpPeeringStatus (\ s a -> s{_uigpPeeringStatus = a});--instance FromXML UserIdGroupPair where-        parseXML x-          = UserIdGroupPair' <$>-              (x .@? "vpcPeeringConnectionId") <*> (x .@? "vpcId")-                <*> (x .@? "userId")-                <*> (x .@? "groupId")-                <*> (x .@? "groupName")-                <*> (x .@? "peeringStatus")--instance Hashable UserIdGroupPair--instance NFData UserIdGroupPair--instance ToQuery UserIdGroupPair where-        toQuery UserIdGroupPair'{..}-          = mconcat-              ["VpcPeeringConnectionId" =:-                 _uigpVPCPeeringConnectionId,-               "VpcId" =: _uigpVPCId, "UserId" =: _uigpUserId,-               "GroupId" =: _uigpGroupId,-               "GroupName" =: _uigpGroupName,-               "PeeringStatus" =: _uigpPeeringStatus]---- | Describes telemetry for a VPN tunnel.------------ /See:/ 'vgwTelemetry' smart constructor.-data VGWTelemetry = VGWTelemetry'-    { _vtStatus             :: !(Maybe TelemetryStatus)-    , _vtOutsideIPAddress   :: !(Maybe Text)-    , _vtLastStatusChange   :: !(Maybe ISO8601)-    , _vtAcceptedRouteCount :: !(Maybe Int)-    , _vtStatusMessage      :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VGWTelemetry' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vtStatus' - The status of the VPN tunnel.------ * 'vtOutsideIPAddress' - The Internet-routable IP address of the virtual private gateway's outside interface.------ * 'vtLastStatusChange' - The date and time of the last change in status.------ * 'vtAcceptedRouteCount' - The number of accepted routes.------ * 'vtStatusMessage' - If an error occurs, a description of the error.-vgwTelemetry-    :: VGWTelemetry-vgwTelemetry =-    VGWTelemetry'-    { _vtStatus = Nothing-    , _vtOutsideIPAddress = Nothing-    , _vtLastStatusChange = Nothing-    , _vtAcceptedRouteCount = Nothing-    , _vtStatusMessage = Nothing-    }---- | The status of the VPN tunnel.-vtStatus :: Lens' VGWTelemetry (Maybe TelemetryStatus)-vtStatus = lens _vtStatus (\ s a -> s{_vtStatus = a});---- | The Internet-routable IP address of the virtual private gateway's outside interface.-vtOutsideIPAddress :: Lens' VGWTelemetry (Maybe Text)-vtOutsideIPAddress = lens _vtOutsideIPAddress (\ s a -> s{_vtOutsideIPAddress = a});---- | The date and time of the last change in status.-vtLastStatusChange :: Lens' VGWTelemetry (Maybe UTCTime)-vtLastStatusChange = lens _vtLastStatusChange (\ s a -> s{_vtLastStatusChange = a}) . mapping _Time;---- | The number of accepted routes.-vtAcceptedRouteCount :: Lens' VGWTelemetry (Maybe Int)-vtAcceptedRouteCount = lens _vtAcceptedRouteCount (\ s a -> s{_vtAcceptedRouteCount = a});---- | If an error occurs, a description of the error.-vtStatusMessage :: Lens' VGWTelemetry (Maybe Text)-vtStatusMessage = lens _vtStatusMessage (\ s a -> s{_vtStatusMessage = a});--instance FromXML VGWTelemetry where-        parseXML x-          = VGWTelemetry' <$>-              (x .@? "status") <*> (x .@? "outsideIpAddress") <*>-                (x .@? "lastStatusChange")-                <*> (x .@? "acceptedRouteCount")-                <*> (x .@? "statusMessage")--instance Hashable VGWTelemetry--instance NFData VGWTelemetry---- | Describes a VPC.------------ /See:/ 'vpc' smart constructor.-data VPC = VPC'-    { _vpcIPv6CidrBlockAssociationSet :: !(Maybe [VPCIPv6CidrBlockAssociation])-    , _vpcTags                        :: !(Maybe [Tag])-    , _vpcIsDefault                   :: !(Maybe Bool)-    , _vpcCidrBlock                   :: !Text-    , _vpcDHCPOptionsId               :: !Text-    , _vpcInstanceTenancy             :: !Tenancy-    , _vpcState                       :: !VPCState-    , _vpcVPCId                       :: !Text-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPC' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcIPv6CidrBlockAssociationSet' - Information about the IPv6 CIDR blocks associated with the VPC.------ * 'vpcTags' - Any tags assigned to the VPC.------ * 'vpcIsDefault' - Indicates whether the VPC is the default VPC.------ * 'vpcCidrBlock' - The IPv4 CIDR block for the VPC.------ * 'vpcDHCPOptionsId' - The ID of the set of DHCP options you've associated with the VPC (or @default@ if the default options are associated with the VPC).------ * 'vpcInstanceTenancy' - The allowed tenancy of instances launched into the VPC.------ * 'vpcState' - The current state of the VPC.------ * 'vpcVPCId' - The ID of the VPC.-vpc-    :: Text -- ^ 'vpcCidrBlock'-    -> Text -- ^ 'vpcDHCPOptionsId'-    -> Tenancy -- ^ 'vpcInstanceTenancy'-    -> VPCState -- ^ 'vpcState'-    -> Text -- ^ 'vpcVPCId'-    -> VPC-vpc pCidrBlock_ pDHCPOptionsId_ pInstanceTenancy_ pState_ pVPCId_ =-    VPC'-    { _vpcIPv6CidrBlockAssociationSet = Nothing-    , _vpcTags = Nothing-    , _vpcIsDefault = Nothing-    , _vpcCidrBlock = pCidrBlock_-    , _vpcDHCPOptionsId = pDHCPOptionsId_-    , _vpcInstanceTenancy = pInstanceTenancy_-    , _vpcState = pState_-    , _vpcVPCId = pVPCId_-    }---- | Information about the IPv6 CIDR blocks associated with the VPC.-vpcIPv6CidrBlockAssociationSet :: Lens' VPC [VPCIPv6CidrBlockAssociation]-vpcIPv6CidrBlockAssociationSet = lens _vpcIPv6CidrBlockAssociationSet (\ s a -> s{_vpcIPv6CidrBlockAssociationSet = a}) . _Default . _Coerce;---- | Any tags assigned to the VPC.-vpcTags :: Lens' VPC [Tag]-vpcTags = lens _vpcTags (\ s a -> s{_vpcTags = a}) . _Default . _Coerce;---- | Indicates whether the VPC is the default VPC.-vpcIsDefault :: Lens' VPC (Maybe Bool)-vpcIsDefault = lens _vpcIsDefault (\ s a -> s{_vpcIsDefault = a});---- | The IPv4 CIDR block for the VPC.-vpcCidrBlock :: Lens' VPC Text-vpcCidrBlock = lens _vpcCidrBlock (\ s a -> s{_vpcCidrBlock = a});---- | The ID of the set of DHCP options you've associated with the VPC (or @default@ if the default options are associated with the VPC).-vpcDHCPOptionsId :: Lens' VPC Text-vpcDHCPOptionsId = lens _vpcDHCPOptionsId (\ s a -> s{_vpcDHCPOptionsId = a});---- | The allowed tenancy of instances launched into the VPC.-vpcInstanceTenancy :: Lens' VPC Tenancy-vpcInstanceTenancy = lens _vpcInstanceTenancy (\ s a -> s{_vpcInstanceTenancy = a});---- | The current state of the VPC.-vpcState :: Lens' VPC VPCState-vpcState = lens _vpcState (\ s a -> s{_vpcState = a});---- | The ID of the VPC.-vpcVPCId :: Lens' VPC Text-vpcVPCId = lens _vpcVPCId (\ s a -> s{_vpcVPCId = a});--instance FromXML VPC where-        parseXML x-          = VPC' <$>-              (x .@? "ipv6CidrBlockAssociationSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "isDefault")-                <*> (x .@ "cidrBlock")-                <*> (x .@ "dhcpOptionsId")-                <*> (x .@ "instanceTenancy")-                <*> (x .@ "state")-                <*> (x .@ "vpcId")--instance Hashable VPC--instance NFData VPC---- | Describes an attachment between a virtual private gateway and a VPC.------------ /See:/ 'vpcAttachment' smart constructor.-data VPCAttachment = VPCAttachment'-    { _vaState :: !(Maybe AttachmentStatus)-    , _vaVPCId :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vaState' - The current state of the attachment.------ * 'vaVPCId' - The ID of the VPC.-vpcAttachment-    :: VPCAttachment-vpcAttachment =-    VPCAttachment'-    { _vaState = Nothing-    , _vaVPCId = Nothing-    }---- | The current state of the attachment.-vaState :: Lens' VPCAttachment (Maybe AttachmentStatus)-vaState = lens _vaState (\ s a -> s{_vaState = a});---- | The ID of the VPC.-vaVPCId :: Lens' VPCAttachment (Maybe Text)-vaVPCId = lens _vaVPCId (\ s a -> s{_vaVPCId = a});--instance FromXML VPCAttachment where-        parseXML x-          = VPCAttachment' <$>-              (x .@? "state") <*> (x .@? "vpcId")--instance Hashable VPCAttachment--instance NFData VPCAttachment---- | Describes the state of a CIDR block.------------ /See:/ 'vpcCidrBlockState' smart constructor.-data VPCCidrBlockState = VPCCidrBlockState'-    { _vcbsState         :: !(Maybe VPCCidrBlockStateCode)-    , _vcbsStatusMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCCidrBlockState' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcbsState' - The state of the CIDR block.------ * 'vcbsStatusMessage' - A message about the status of the CIDR block, if applicable.-vpcCidrBlockState-    :: VPCCidrBlockState-vpcCidrBlockState =-    VPCCidrBlockState'-    { _vcbsState = Nothing-    , _vcbsStatusMessage = Nothing-    }---- | The state of the CIDR block.-vcbsState :: Lens' VPCCidrBlockState (Maybe VPCCidrBlockStateCode)-vcbsState = lens _vcbsState (\ s a -> s{_vcbsState = a});---- | A message about the status of the CIDR block, if applicable.-vcbsStatusMessage :: Lens' VPCCidrBlockState (Maybe Text)-vcbsStatusMessage = lens _vcbsStatusMessage (\ s a -> s{_vcbsStatusMessage = a});--instance FromXML VPCCidrBlockState where-        parseXML x-          = VPCCidrBlockState' <$>-              (x .@? "state") <*> (x .@? "statusMessage")--instance Hashable VPCCidrBlockState--instance NFData VPCCidrBlockState---- | Describes whether a VPC is enabled for ClassicLink.------------ /See:/ 'vpcClassicLink' smart constructor.-data VPCClassicLink = VPCClassicLink'-    { _vclVPCId              :: !(Maybe Text)-    , _vclTags               :: !(Maybe [Tag])-    , _vclClassicLinkEnabled :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCClassicLink' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vclVPCId' - The ID of the VPC.------ * 'vclTags' - Any tags assigned to the VPC.------ * 'vclClassicLinkEnabled' - Indicates whether the VPC is enabled for ClassicLink.-vpcClassicLink-    :: VPCClassicLink-vpcClassicLink =-    VPCClassicLink'-    { _vclVPCId = Nothing-    , _vclTags = Nothing-    , _vclClassicLinkEnabled = Nothing-    }---- | The ID of the VPC.-vclVPCId :: Lens' VPCClassicLink (Maybe Text)-vclVPCId = lens _vclVPCId (\ s a -> s{_vclVPCId = a});---- | Any tags assigned to the VPC.-vclTags :: Lens' VPCClassicLink [Tag]-vclTags = lens _vclTags (\ s a -> s{_vclTags = a}) . _Default . _Coerce;---- | Indicates whether the VPC is enabled for ClassicLink.-vclClassicLinkEnabled :: Lens' VPCClassicLink (Maybe Bool)-vclClassicLinkEnabled = lens _vclClassicLinkEnabled (\ s a -> s{_vclClassicLinkEnabled = a});--instance FromXML VPCClassicLink where-        parseXML x-          = VPCClassicLink' <$>-              (x .@? "vpcId") <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "classicLinkEnabled")--instance Hashable VPCClassicLink--instance NFData VPCClassicLink---- | Describes a VPC endpoint.------------ /See:/ 'vpcEndpoint' smart constructor.-data VPCEndpoint = VPCEndpoint'-    { _veState             :: !(Maybe State)-    , _vePolicyDocument    :: !(Maybe Text)-    , _veVPCId             :: !(Maybe Text)-    , _veCreationTimestamp :: !(Maybe ISO8601)-    , _veServiceName       :: !(Maybe Text)-    , _veVPCEndpointId     :: !(Maybe Text)-    , _veRouteTableIds     :: !(Maybe [Text])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCEndpoint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'veState' - The state of the VPC endpoint.------ * 'vePolicyDocument' - The policy document associated with the endpoint.------ * 'veVPCId' - The ID of the VPC to which the endpoint is associated.------ * 'veCreationTimestamp' - The date and time the VPC endpoint was created.------ * 'veServiceName' - The name of the AWS service to which the endpoint is associated.------ * 'veVPCEndpointId' - The ID of the VPC endpoint.------ * 'veRouteTableIds' - One or more route tables associated with the endpoint.-vpcEndpoint-    :: VPCEndpoint-vpcEndpoint =-    VPCEndpoint'-    { _veState = Nothing-    , _vePolicyDocument = Nothing-    , _veVPCId = Nothing-    , _veCreationTimestamp = Nothing-    , _veServiceName = Nothing-    , _veVPCEndpointId = Nothing-    , _veRouteTableIds = Nothing-    }---- | The state of the VPC endpoint.-veState :: Lens' VPCEndpoint (Maybe State)-veState = lens _veState (\ s a -> s{_veState = a});---- | The policy document associated with the endpoint.-vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)-vePolicyDocument = lens _vePolicyDocument (\ s a -> s{_vePolicyDocument = a});---- | The ID of the VPC to which the endpoint is associated.-veVPCId :: Lens' VPCEndpoint (Maybe Text)-veVPCId = lens _veVPCId (\ s a -> s{_veVPCId = a});---- | The date and time the VPC endpoint was created.-veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)-veCreationTimestamp = lens _veCreationTimestamp (\ s a -> s{_veCreationTimestamp = a}) . mapping _Time;---- | The name of the AWS service to which the endpoint is associated.-veServiceName :: Lens' VPCEndpoint (Maybe Text)-veServiceName = lens _veServiceName (\ s a -> s{_veServiceName = a});---- | The ID of the VPC endpoint.-veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)-veVPCEndpointId = lens _veVPCEndpointId (\ s a -> s{_veVPCEndpointId = a});---- | One or more route tables associated with the endpoint.-veRouteTableIds :: Lens' VPCEndpoint [Text]-veRouteTableIds = lens _veRouteTableIds (\ s a -> s{_veRouteTableIds = a}) . _Default . _Coerce;--instance FromXML VPCEndpoint where-        parseXML x-          = VPCEndpoint' <$>-              (x .@? "state") <*> (x .@? "policyDocument") <*>-                (x .@? "vpcId")-                <*> (x .@? "creationTimestamp")-                <*> (x .@? "serviceName")-                <*> (x .@? "vpcEndpointId")-                <*>-                (x .@? "routeTableIdSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable VPCEndpoint--instance NFData VPCEndpoint---- | Describes an IPv6 CIDR block associated with a VPC.------------ /See:/ 'vpcIPv6CidrBlockAssociation' smart constructor.-data VPCIPv6CidrBlockAssociation = VPCIPv6CidrBlockAssociation'-    { _vicbaAssociationId      :: !(Maybe Text)-    , _vicbaIPv6CidrBlock      :: !(Maybe Text)-    , _vicbaIPv6CidrBlockState :: !(Maybe VPCCidrBlockState)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCIPv6CidrBlockAssociation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vicbaAssociationId' - The association ID for the IPv6 CIDR block.------ * 'vicbaIPv6CidrBlock' - The IPv6 CIDR block.------ * 'vicbaIPv6CidrBlockState' - Information about the state of the CIDR block.-vpcIPv6CidrBlockAssociation-    :: VPCIPv6CidrBlockAssociation-vpcIPv6CidrBlockAssociation =-    VPCIPv6CidrBlockAssociation'-    { _vicbaAssociationId = Nothing-    , _vicbaIPv6CidrBlock = Nothing-    , _vicbaIPv6CidrBlockState = Nothing-    }---- | The association ID for the IPv6 CIDR block.-vicbaAssociationId :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)-vicbaAssociationId = lens _vicbaAssociationId (\ s a -> s{_vicbaAssociationId = a});---- | The IPv6 CIDR block.-vicbaIPv6CidrBlock :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)-vicbaIPv6CidrBlock = lens _vicbaIPv6CidrBlock (\ s a -> s{_vicbaIPv6CidrBlock = a});---- | Information about the state of the CIDR block.-vicbaIPv6CidrBlockState :: Lens' VPCIPv6CidrBlockAssociation (Maybe VPCCidrBlockState)-vicbaIPv6CidrBlockState = lens _vicbaIPv6CidrBlockState (\ s a -> s{_vicbaIPv6CidrBlockState = a});--instance FromXML VPCIPv6CidrBlockAssociation where-        parseXML x-          = VPCIPv6CidrBlockAssociation' <$>-              (x .@? "associationId") <*> (x .@? "ipv6CidrBlock")-                <*> (x .@? "ipv6CidrBlockState")--instance Hashable VPCIPv6CidrBlockAssociation--instance NFData VPCIPv6CidrBlockAssociation---- | Describes a VPC peering connection.------------ /See:/ 'vpcPeeringConnection' smart constructor.-data VPCPeeringConnection = VPCPeeringConnection'-    { _vpcpcVPCPeeringConnectionId :: !(Maybe Text)-    , _vpcpcStatus                 :: !(Maybe VPCPeeringConnectionStateReason)-    , _vpcpcAccepterVPCInfo        :: !(Maybe VPCPeeringConnectionVPCInfo)-    , _vpcpcRequesterVPCInfo       :: !(Maybe VPCPeeringConnectionVPCInfo)-    , _vpcpcExpirationTime         :: !(Maybe ISO8601)-    , _vpcpcTags                   :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnection' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcpcVPCPeeringConnectionId' - The ID of the VPC peering connection.------ * 'vpcpcStatus' - The status of the VPC peering connection.------ * 'vpcpcAccepterVPCInfo' - Information about the accepter VPC. CIDR block information is not returned when creating a VPC peering connection, or when describing a VPC peering connection that's in the @initiating-request@ or @pending-acceptance@ state.------ * 'vpcpcRequesterVPCInfo' - Information about the requester VPC.------ * 'vpcpcExpirationTime' - The time that an unaccepted VPC peering connection will expire.------ * 'vpcpcTags' - Any tags assigned to the resource.-vpcPeeringConnection-    :: VPCPeeringConnection-vpcPeeringConnection =-    VPCPeeringConnection'-    { _vpcpcVPCPeeringConnectionId = Nothing-    , _vpcpcStatus = Nothing-    , _vpcpcAccepterVPCInfo = Nothing-    , _vpcpcRequesterVPCInfo = Nothing-    , _vpcpcExpirationTime = Nothing-    , _vpcpcTags = Nothing-    }---- | The ID of the VPC peering connection.-vpcpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)-vpcpcVPCPeeringConnectionId = lens _vpcpcVPCPeeringConnectionId (\ s a -> s{_vpcpcVPCPeeringConnectionId = a});---- | The status of the VPC peering connection.-vpcpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStateReason)-vpcpcStatus = lens _vpcpcStatus (\ s a -> s{_vpcpcStatus = a});---- | Information about the accepter VPC. CIDR block information is not returned when creating a VPC peering connection, or when describing a VPC peering connection that's in the @initiating-request@ or @pending-acceptance@ state.-vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)-vpcpcAccepterVPCInfo = lens _vpcpcAccepterVPCInfo (\ s a -> s{_vpcpcAccepterVPCInfo = a});---- | Information about the requester VPC.-vpcpcRequesterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)-vpcpcRequesterVPCInfo = lens _vpcpcRequesterVPCInfo (\ s a -> s{_vpcpcRequesterVPCInfo = a});---- | The time that an unaccepted VPC peering connection will expire.-vpcpcExpirationTime :: Lens' VPCPeeringConnection (Maybe UTCTime)-vpcpcExpirationTime = lens _vpcpcExpirationTime (\ s a -> s{_vpcpcExpirationTime = a}) . mapping _Time;---- | Any tags assigned to the resource.-vpcpcTags :: Lens' VPCPeeringConnection [Tag]-vpcpcTags = lens _vpcpcTags (\ s a -> s{_vpcpcTags = a}) . _Default . _Coerce;--instance FromXML VPCPeeringConnection where-        parseXML x-          = VPCPeeringConnection' <$>-              (x .@? "vpcPeeringConnectionId") <*> (x .@? "status")-                <*> (x .@? "accepterVpcInfo")-                <*> (x .@? "requesterVpcInfo")-                <*> (x .@? "expirationTime")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable VPCPeeringConnection--instance NFData VPCPeeringConnection---- | Describes the VPC peering connection options.------------ /See:/ 'vpcPeeringConnectionOptionsDescription' smart constructor.-data VPCPeeringConnectionOptionsDescription = VPCPeeringConnectionOptionsDescription'-    { _vpcodAllowEgressFromLocalVPCToRemoteClassicLink :: !(Maybe Bool)-    , _vpcodAllowEgressFromLocalClassicLinkToRemoteVPC :: !(Maybe Bool)-    , _vpcodAllowDNSResolutionFromRemoteVPC            :: !(Maybe Bool)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnectionOptionsDescription' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcodAllowEgressFromLocalVPCToRemoteClassicLink' - Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.------ * 'vpcodAllowEgressFromLocalClassicLinkToRemoteVPC' - Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.------ * 'vpcodAllowDNSResolutionFromRemoteVPC' - Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.-vpcPeeringConnectionOptionsDescription-    :: VPCPeeringConnectionOptionsDescription-vpcPeeringConnectionOptionsDescription =-    VPCPeeringConnectionOptionsDescription'-    { _vpcodAllowEgressFromLocalVPCToRemoteClassicLink = Nothing-    , _vpcodAllowEgressFromLocalClassicLinkToRemoteVPC = Nothing-    , _vpcodAllowDNSResolutionFromRemoteVPC = Nothing-    }---- | 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)-vpcodAllowEgressFromLocalVPCToRemoteClassicLink = lens _vpcodAllowEgressFromLocalVPCToRemoteClassicLink (\ s a -> s{_vpcodAllowEgressFromLocalVPCToRemoteClassicLink = a});---- | Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.-vpcodAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)-vpcodAllowEgressFromLocalClassicLinkToRemoteVPC = lens _vpcodAllowEgressFromLocalClassicLinkToRemoteVPC (\ s a -> s{_vpcodAllowEgressFromLocalClassicLinkToRemoteVPC = a});---- | 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)-vpcodAllowDNSResolutionFromRemoteVPC = lens _vpcodAllowDNSResolutionFromRemoteVPC (\ s a -> s{_vpcodAllowDNSResolutionFromRemoteVPC = a});--instance FromXML-         VPCPeeringConnectionOptionsDescription where-        parseXML x-          = VPCPeeringConnectionOptionsDescription' <$>-              (x .@? "allowEgressFromLocalVpcToRemoteClassicLink")-                <*>-                (x .@? "allowEgressFromLocalClassicLinkToRemoteVpc")-                <*> (x .@? "allowDnsResolutionFromRemoteVpc")--instance Hashable-         VPCPeeringConnectionOptionsDescription--instance NFData-         VPCPeeringConnectionOptionsDescription---- | Describes the status of a VPC peering connection.------------ /See:/ 'vpcPeeringConnectionStateReason' smart constructor.-data VPCPeeringConnectionStateReason = VPCPeeringConnectionStateReason'-    { _vpcsrCode    :: !(Maybe VPCPeeringConnectionStateReasonCode)-    , _vpcsrMessage :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnectionStateReason' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcsrCode' - The status of the VPC peering connection.------ * 'vpcsrMessage' - A message that provides more information about the status, if applicable.-vpcPeeringConnectionStateReason-    :: VPCPeeringConnectionStateReason-vpcPeeringConnectionStateReason =-    VPCPeeringConnectionStateReason'-    { _vpcsrCode = Nothing-    , _vpcsrMessage = Nothing-    }---- | The status of the VPC peering connection.-vpcsrCode :: Lens' VPCPeeringConnectionStateReason (Maybe VPCPeeringConnectionStateReasonCode)-vpcsrCode = lens _vpcsrCode (\ s a -> s{_vpcsrCode = a});---- | A message that provides more information about the status, if applicable.-vpcsrMessage :: Lens' VPCPeeringConnectionStateReason (Maybe Text)-vpcsrMessage = lens _vpcsrMessage (\ s a -> s{_vpcsrMessage = a});--instance FromXML VPCPeeringConnectionStateReason-         where-        parseXML x-          = VPCPeeringConnectionStateReason' <$>-              (x .@? "code") <*> (x .@? "message")--instance Hashable VPCPeeringConnectionStateReason--instance NFData VPCPeeringConnectionStateReason---- | Describes a VPC in a VPC peering connection.------------ /See:/ 'vpcPeeringConnectionVPCInfo' smart constructor.-data VPCPeeringConnectionVPCInfo = VPCPeeringConnectionVPCInfo'-    { _vpcviVPCId            :: !(Maybe Text)-    , _vpcviOwnerId          :: !(Maybe Text)-    , _vpcviPeeringOptions   :: !(Maybe VPCPeeringConnectionOptionsDescription)-    , _vpcviCidrBlock        :: !(Maybe Text)-    , _vpcviIPv6CidrBlockSet :: !(Maybe [IPv6CidrBlock])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPCPeeringConnectionVPCInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vpcviVPCId' - The ID of the VPC.------ * 'vpcviOwnerId' - The AWS account ID of the VPC owner.------ * 'vpcviPeeringOptions' - Information about the VPC peering connection options for the accepter or requester VPC.------ * 'vpcviCidrBlock' - The IPv4 CIDR block for the VPC.------ * 'vpcviIPv6CidrBlockSet' - The IPv6 CIDR block for the VPC.-vpcPeeringConnectionVPCInfo-    :: VPCPeeringConnectionVPCInfo-vpcPeeringConnectionVPCInfo =-    VPCPeeringConnectionVPCInfo'-    { _vpcviVPCId = Nothing-    , _vpcviOwnerId = Nothing-    , _vpcviPeeringOptions = Nothing-    , _vpcviCidrBlock = Nothing-    , _vpcviIPv6CidrBlockSet = Nothing-    }---- | The ID of the VPC.-vpcviVPCId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)-vpcviVPCId = lens _vpcviVPCId (\ s a -> s{_vpcviVPCId = a});---- | The AWS account ID of the VPC owner.-vpcviOwnerId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)-vpcviOwnerId = lens _vpcviOwnerId (\ s a -> s{_vpcviOwnerId = a});---- | Information about the VPC peering connection options for the accepter or requester VPC.-vpcviPeeringOptions :: Lens' VPCPeeringConnectionVPCInfo (Maybe VPCPeeringConnectionOptionsDescription)-vpcviPeeringOptions = lens _vpcviPeeringOptions (\ s a -> s{_vpcviPeeringOptions = a});---- | The IPv4 CIDR block for the VPC.-vpcviCidrBlock :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)-vpcviCidrBlock = lens _vpcviCidrBlock (\ s a -> s{_vpcviCidrBlock = a});---- | The IPv6 CIDR block for the VPC.-vpcviIPv6CidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [IPv6CidrBlock]-vpcviIPv6CidrBlockSet = lens _vpcviIPv6CidrBlockSet (\ s a -> s{_vpcviIPv6CidrBlockSet = a}) . _Default . _Coerce;--instance FromXML VPCPeeringConnectionVPCInfo where-        parseXML x-          = VPCPeeringConnectionVPCInfo' <$>-              (x .@? "vpcId") <*> (x .@? "ownerId") <*>-                (x .@? "peeringOptions")-                <*> (x .@? "cidrBlock")-                <*>-                (x .@? "ipv6CidrBlockSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable VPCPeeringConnectionVPCInfo--instance NFData VPCPeeringConnectionVPCInfo---- | Describes a VPN connection.------------ /See:/ 'vpnConnection' smart constructor.-data VPNConnection = VPNConnection'-    { _vcCustomerGatewayConfiguration :: !(Maybe Text)-    , _vcRoutes                       :: !(Maybe [VPNStaticRoute])-    , _vcVPNGatewayId                 :: !(Maybe Text)-    , _vcOptions                      :: !(Maybe VPNConnectionOptions)-    , _vcTags                         :: !(Maybe [Tag])-    , _vcVGWTelemetry                 :: !(Maybe [VGWTelemetry])-    , _vcVPNConnectionId              :: !Text-    , _vcCustomerGatewayId            :: !Text-    , _vcState                        :: !VPNState-    , _vcType                         :: !GatewayType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNConnection' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcCustomerGatewayConfiguration' - The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the 'CreateVpnConnection' response; however, it's present in the 'DescribeVpnConnections' response only if the VPN connection is in the @pending@ or @available@ state.------ * 'vcRoutes' - The static routes associated with the VPN connection.------ * 'vcVPNGatewayId' - The ID of the virtual private gateway at the AWS side of the VPN connection.------ * 'vcOptions' - The VPN connection options.------ * 'vcTags' - Any tags assigned to the VPN connection.------ * 'vcVGWTelemetry' - Information about the VPN tunnel.------ * 'vcVPNConnectionId' - The ID of the VPN connection.------ * 'vcCustomerGatewayId' - The ID of the customer gateway at your end of the VPN connection.------ * 'vcState' - The current state of the VPN connection.------ * 'vcType' - The type of VPN connection.-vpnConnection-    :: Text -- ^ 'vcVPNConnectionId'-    -> Text -- ^ 'vcCustomerGatewayId'-    -> VPNState -- ^ 'vcState'-    -> GatewayType -- ^ 'vcType'-    -> VPNConnection-vpnConnection pVPNConnectionId_ pCustomerGatewayId_ pState_ pType_ =-    VPNConnection'-    { _vcCustomerGatewayConfiguration = Nothing-    , _vcRoutes = Nothing-    , _vcVPNGatewayId = Nothing-    , _vcOptions = Nothing-    , _vcTags = Nothing-    , _vcVGWTelemetry = Nothing-    , _vcVPNConnectionId = pVPNConnectionId_-    , _vcCustomerGatewayId = pCustomerGatewayId_-    , _vcState = pState_-    , _vcType = pType_-    }---- | The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the 'CreateVpnConnection' response; however, it's present in the 'DescribeVpnConnections' response only if the VPN connection is in the @pending@ or @available@ state.-vcCustomerGatewayConfiguration :: Lens' VPNConnection (Maybe Text)-vcCustomerGatewayConfiguration = lens _vcCustomerGatewayConfiguration (\ s a -> s{_vcCustomerGatewayConfiguration = a});---- | The static routes associated with the VPN connection.-vcRoutes :: Lens' VPNConnection [VPNStaticRoute]-vcRoutes = lens _vcRoutes (\ s a -> s{_vcRoutes = a}) . _Default . _Coerce;---- | The ID of the virtual private gateway at the AWS side of the VPN connection.-vcVPNGatewayId :: Lens' VPNConnection (Maybe Text)-vcVPNGatewayId = lens _vcVPNGatewayId (\ s a -> s{_vcVPNGatewayId = a});---- | The VPN connection options.-vcOptions :: Lens' VPNConnection (Maybe VPNConnectionOptions)-vcOptions = lens _vcOptions (\ s a -> s{_vcOptions = a});---- | Any tags assigned to the VPN connection.-vcTags :: Lens' VPNConnection [Tag]-vcTags = lens _vcTags (\ s a -> s{_vcTags = a}) . _Default . _Coerce;---- | Information about the VPN tunnel.-vcVGWTelemetry :: Lens' VPNConnection [VGWTelemetry]-vcVGWTelemetry = lens _vcVGWTelemetry (\ s a -> s{_vcVGWTelemetry = a}) . _Default . _Coerce;---- | The ID of the VPN connection.-vcVPNConnectionId :: Lens' VPNConnection Text-vcVPNConnectionId = lens _vcVPNConnectionId (\ s a -> s{_vcVPNConnectionId = a});---- | The ID of the customer gateway at your end of the VPN connection.-vcCustomerGatewayId :: Lens' VPNConnection Text-vcCustomerGatewayId = lens _vcCustomerGatewayId (\ s a -> s{_vcCustomerGatewayId = a});---- | The current state of the VPN connection.-vcState :: Lens' VPNConnection VPNState-vcState = lens _vcState (\ s a -> s{_vcState = a});---- | The type of VPN connection.-vcType :: Lens' VPNConnection GatewayType-vcType = lens _vcType (\ s a -> s{_vcType = a});--instance FromXML VPNConnection where-        parseXML x-          = VPNConnection' <$>-              (x .@? "customerGatewayConfiguration") <*>-                (x .@? "routes" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpnGatewayId")-                <*> (x .@? "options")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "vgwTelemetry" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "vpnConnectionId")-                <*> (x .@ "customerGatewayId")-                <*> (x .@ "state")-                <*> (x .@ "type")--instance Hashable VPNConnection--instance NFData VPNConnection---- | Describes VPN connection options.------------ /See:/ 'vpnConnectionOptions' smart constructor.-newtype VPNConnectionOptions = VPNConnectionOptions'-    { _vcoStaticRoutesOnly :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNConnectionOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcoStaticRoutesOnly' - Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.-vpnConnectionOptions-    :: VPNConnectionOptions-vpnConnectionOptions =-    VPNConnectionOptions'-    { _vcoStaticRoutesOnly = Nothing-    }---- | 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)-vcoStaticRoutesOnly = lens _vcoStaticRoutesOnly (\ s a -> s{_vcoStaticRoutesOnly = a});--instance FromXML VPNConnectionOptions where-        parseXML x-          = VPNConnectionOptions' <$>-              (x .@? "staticRoutesOnly")--instance Hashable VPNConnectionOptions--instance NFData VPNConnectionOptions---- | Describes VPN connection options.------------ /See:/ 'vpnConnectionOptionsSpecification' smart constructor.-newtype VPNConnectionOptionsSpecification = VPNConnectionOptionsSpecification'-    { _vcosStaticRoutesOnly :: Maybe Bool-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNConnectionOptionsSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vcosStaticRoutesOnly' - Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.-vpnConnectionOptionsSpecification-    :: VPNConnectionOptionsSpecification-vpnConnectionOptionsSpecification =-    VPNConnectionOptionsSpecification'-    { _vcosStaticRoutesOnly = Nothing-    }---- | Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.-vcosStaticRoutesOnly :: Lens' VPNConnectionOptionsSpecification (Maybe Bool)-vcosStaticRoutesOnly = lens _vcosStaticRoutesOnly (\ s a -> s{_vcosStaticRoutesOnly = a});--instance Hashable VPNConnectionOptionsSpecification--instance NFData VPNConnectionOptionsSpecification--instance ToQuery VPNConnectionOptionsSpecification-         where-        toQuery VPNConnectionOptionsSpecification'{..}-          = mconcat-              ["StaticRoutesOnly" =: _vcosStaticRoutesOnly]---- | Describes a virtual private gateway.------------ /See:/ 'vpnGateway' smart constructor.-data VPNGateway = VPNGateway'-    { _vgState            :: !(Maybe VPNState)-    , _vgVPCAttachments   :: !(Maybe [VPCAttachment])-    , _vgVPNGatewayId     :: !(Maybe Text)-    , _vgAvailabilityZone :: !(Maybe Text)-    , _vgType             :: !(Maybe GatewayType)-    , _vgTags             :: !(Maybe [Tag])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNGateway' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vgState' - The current state of the virtual private gateway.------ * 'vgVPCAttachments' - Any VPCs attached to the virtual private gateway.------ * 'vgVPNGatewayId' - The ID of the virtual private gateway.------ * 'vgAvailabilityZone' - The Availability Zone where the virtual private gateway was created, if applicable. This field may be empty or not returned.------ * 'vgType' - The type of VPN connection the virtual private gateway supports.------ * 'vgTags' - Any tags assigned to the virtual private gateway.-vpnGateway-    :: VPNGateway-vpnGateway =-    VPNGateway'-    { _vgState = Nothing-    , _vgVPCAttachments = Nothing-    , _vgVPNGatewayId = Nothing-    , _vgAvailabilityZone = Nothing-    , _vgType = Nothing-    , _vgTags = Nothing-    }---- | The current state of the virtual private gateway.-vgState :: Lens' VPNGateway (Maybe VPNState)-vgState = lens _vgState (\ s a -> s{_vgState = a});---- | Any VPCs attached to the virtual private gateway.-vgVPCAttachments :: Lens' VPNGateway [VPCAttachment]-vgVPCAttachments = lens _vgVPCAttachments (\ s a -> s{_vgVPCAttachments = a}) . _Default . _Coerce;---- | The ID of the virtual private gateway.-vgVPNGatewayId :: Lens' VPNGateway (Maybe Text)-vgVPNGatewayId = lens _vgVPNGatewayId (\ s a -> s{_vgVPNGatewayId = a});---- | 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)-vgAvailabilityZone = lens _vgAvailabilityZone (\ s a -> s{_vgAvailabilityZone = a});---- | The type of VPN connection the virtual private gateway supports.-vgType :: Lens' VPNGateway (Maybe GatewayType)-vgType = lens _vgType (\ s a -> s{_vgType = a});---- | Any tags assigned to the virtual private gateway.-vgTags :: Lens' VPNGateway [Tag]-vgTags = lens _vgTags (\ s a -> s{_vgTags = a}) . _Default . _Coerce;--instance FromXML VPNGateway where-        parseXML x-          = VPNGateway' <$>-              (x .@? "state") <*>-                (x .@? "attachments" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "vpnGatewayId")-                <*> (x .@? "availabilityZone")-                <*> (x .@? "type")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable VPNGateway--instance NFData VPNGateway---- | Describes a static route for a VPN connection.------------ /See:/ 'vpnStaticRoute' smart constructor.-data VPNStaticRoute = VPNStaticRoute'-    { _vsrState                :: !(Maybe VPNState)-    , _vsrSource               :: !(Maybe VPNStaticRouteSource)-    , _vsrDestinationCidrBlock :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VPNStaticRoute' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsrState' - The current state of the static route.------ * 'vsrSource' - Indicates how the routes were provided.------ * 'vsrDestinationCidrBlock' - The CIDR block associated with the local subnet of the customer data center.-vpnStaticRoute-    :: VPNStaticRoute-vpnStaticRoute =-    VPNStaticRoute'-    { _vsrState = Nothing-    , _vsrSource = Nothing-    , _vsrDestinationCidrBlock = Nothing-    }---- | The current state of the static route.-vsrState :: Lens' VPNStaticRoute (Maybe VPNState)-vsrState = lens _vsrState (\ s a -> s{_vsrState = a});---- | Indicates how the routes were provided.-vsrSource :: Lens' VPNStaticRoute (Maybe VPNStaticRouteSource)-vsrSource = lens _vsrSource (\ s a -> s{_vsrSource = a});---- | The CIDR block associated with the local subnet of the customer data center.-vsrDestinationCidrBlock :: Lens' VPNStaticRoute (Maybe Text)-vsrDestinationCidrBlock = lens _vsrDestinationCidrBlock (\ s a -> s{_vsrDestinationCidrBlock = a});--instance FromXML VPNStaticRoute where-        parseXML x-          = VPNStaticRoute' <$>-              (x .@? "state") <*> (x .@? "source") <*>-                (x .@? "destinationCidrBlock")--instance Hashable VPNStaticRoute--instance NFData VPNStaticRoute---- | Describes a volume.------------ /See:/ 'volume' smart constructor.-data Volume = Volume'-    { _vAttachments      :: !(Maybe [VolumeAttachment])-    , _vIOPS             :: !(Maybe Int)-    , _vKMSKeyId         :: !(Maybe Text)-    , _vTags             :: !(Maybe [Tag])-    , _vAvailabilityZone :: !Text-    , _vCreateTime       :: !ISO8601-    , _vEncrypted        :: !Bool-    , _vSize             :: !Int-    , _vSnapshotId       :: !Text-    , _vState            :: !VolumeState-    , _vVolumeId         :: !Text-    , _vVolumeType       :: !VolumeType-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Volume' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vAttachments' - Information about the volume attachments.------ * 'vIOPS' - The number of 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/O credits for bursting. For more information on General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for @gp2@ volumes. 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.------ * 'vKMSKeyId' - 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.------ * 'vTags' - Any tags assigned to the volume.------ * 'vAvailabilityZone' - The Availability Zone for the volume.------ * 'vCreateTime' - The time stamp when volume creation was initiated.------ * 'vEncrypted' - Indicates whether the volume will be encrypted.------ * 'vSize' - The size of the volume, in GiBs.------ * 'vSnapshotId' - The snapshot from which the volume was created, if applicable.------ * 'vState' - The volume state.------ * 'vVolumeId' - The ID of the volume.------ * 'vVolumeType' - The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes.-volume-    :: Text -- ^ 'vAvailabilityZone'-    -> UTCTime -- ^ 'vCreateTime'-    -> Bool -- ^ 'vEncrypted'-    -> Int -- ^ 'vSize'-    -> Text -- ^ 'vSnapshotId'-    -> VolumeState -- ^ 'vState'-    -> Text -- ^ 'vVolumeId'-    -> VolumeType -- ^ 'vVolumeType'-    -> Volume-volume pAvailabilityZone_ pCreateTime_ pEncrypted_ pSize_ pSnapshotId_ pState_ pVolumeId_ pVolumeType_ =-    Volume'-    { _vAttachments = Nothing-    , _vIOPS = Nothing-    , _vKMSKeyId = Nothing-    , _vTags = Nothing-    , _vAvailabilityZone = pAvailabilityZone_-    , _vCreateTime = _Time # pCreateTime_-    , _vEncrypted = pEncrypted_-    , _vSize = pSize_-    , _vSnapshotId = pSnapshotId_-    , _vState = pState_-    , _vVolumeId = pVolumeId_-    , _vVolumeType = pVolumeType_-    }---- | Information about the volume attachments.-vAttachments :: Lens' Volume [VolumeAttachment]-vAttachments = lens _vAttachments (\ s a -> s{_vAttachments = a}) . _Default . _Coerce;---- | The number of 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/O credits for bursting. For more information on General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for @gp2@ volumes. 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.-vIOPS :: Lens' Volume (Maybe Int)-vIOPS = lens _vIOPS (\ s a -> s{_vIOPS = 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.-vKMSKeyId :: Lens' Volume (Maybe Text)-vKMSKeyId = lens _vKMSKeyId (\ s a -> s{_vKMSKeyId = a});---- | Any tags assigned to the volume.-vTags :: Lens' Volume [Tag]-vTags = lens _vTags (\ s a -> s{_vTags = a}) . _Default . _Coerce;---- | The Availability Zone for the volume.-vAvailabilityZone :: Lens' Volume Text-vAvailabilityZone = lens _vAvailabilityZone (\ s a -> s{_vAvailabilityZone = a});---- | The time stamp when volume creation was initiated.-vCreateTime :: Lens' Volume UTCTime-vCreateTime = lens _vCreateTime (\ s a -> s{_vCreateTime = a}) . _Time;---- | Indicates whether the volume will be encrypted.-vEncrypted :: Lens' Volume Bool-vEncrypted = lens _vEncrypted (\ s a -> s{_vEncrypted = a});---- | The size of the volume, in GiBs.-vSize :: Lens' Volume Int-vSize = lens _vSize (\ s a -> s{_vSize = a});---- | The snapshot from which the volume was created, if applicable.-vSnapshotId :: Lens' Volume Text-vSnapshotId = lens _vSnapshotId (\ s a -> s{_vSnapshotId = a});---- | The volume state.-vState :: Lens' Volume VolumeState-vState = lens _vState (\ s a -> s{_vState = a});---- | The ID of the volume.-vVolumeId :: Lens' Volume Text-vVolumeId = lens _vVolumeId (\ s a -> s{_vVolumeId = a});---- | The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes.-vVolumeType :: Lens' Volume VolumeType-vVolumeType = lens _vVolumeType (\ s a -> s{_vVolumeType = a});--instance FromXML Volume where-        parseXML x-          = Volume' <$>-              (x .@? "attachmentSet" .!@ mempty >>=-                 may (parseXMLList "item"))-                <*> (x .@? "iops")-                <*> (x .@? "kmsKeyId")-                <*>-                (x .@? "tagSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@ "availabilityZone")-                <*> (x .@ "createTime")-                <*> (x .@ "encrypted")-                <*> (x .@ "size")-                <*> (x .@ "snapshotId")-                <*> (x .@ "status")-                <*> (x .@ "volumeId")-                <*> (x .@ "volumeType")--instance Hashable Volume--instance NFData Volume---- | Describes volume attachment details.------------ /See:/ 'volumeAttachment' smart constructor.-data VolumeAttachment = VolumeAttachment'-    { _volInstanceId          :: !(Maybe Text)-    , _volDeleteOnTermination :: !(Maybe Bool)-    , _volState               :: !(Maybe VolumeAttachmentState)-    , _volDevice              :: !(Maybe Text)-    , _volVolumeId            :: !(Maybe Text)-    , _volAttachTime          :: !(Maybe ISO8601)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeAttachment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'volInstanceId' - The ID of the instance.------ * 'volDeleteOnTermination' - Indicates whether the EBS volume is deleted on instance termination.------ * 'volState' - The attachment state of the volume.------ * 'volDevice' - The device name.------ * 'volVolumeId' - The ID of the volume.------ * 'volAttachTime' - The time stamp when the attachment initiated.-volumeAttachment-    :: VolumeAttachment-volumeAttachment =-    VolumeAttachment'-    { _volInstanceId = Nothing-    , _volDeleteOnTermination = Nothing-    , _volState = Nothing-    , _volDevice = Nothing-    , _volVolumeId = Nothing-    , _volAttachTime = Nothing-    }---- | The ID of the instance.-volInstanceId :: Lens' VolumeAttachment (Maybe Text)-volInstanceId = lens _volInstanceId (\ s a -> s{_volInstanceId = a});---- | Indicates whether the EBS volume is deleted on instance termination.-volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)-volDeleteOnTermination = lens _volDeleteOnTermination (\ s a -> s{_volDeleteOnTermination = a});---- | The attachment state of the volume.-volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)-volState = lens _volState (\ s a -> s{_volState = a});---- | The device name.-volDevice :: Lens' VolumeAttachment (Maybe Text)-volDevice = lens _volDevice (\ s a -> s{_volDevice = a});---- | The ID of the volume.-volVolumeId :: Lens' VolumeAttachment (Maybe Text)-volVolumeId = lens _volVolumeId (\ s a -> s{_volVolumeId = a});---- | The time stamp when the attachment initiated.-volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)-volAttachTime = lens _volAttachTime (\ s a -> s{_volAttachTime = a}) . mapping _Time;--instance FromXML VolumeAttachment where-        parseXML x-          = VolumeAttachment' <$>-              (x .@? "instanceId") <*>-                (x .@? "deleteOnTermination")-                <*> (x .@? "status")-                <*> (x .@? "device")-                <*> (x .@? "volumeId")-                <*> (x .@? "attachTime")--instance Hashable VolumeAttachment--instance NFData VolumeAttachment---- | Describes an EBS volume.------------ /See:/ 'volumeDetail' smart constructor.-newtype VolumeDetail = VolumeDetail'-    { _vdSize :: Integer-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vdSize' - The size of the volume, in GiB.-volumeDetail-    :: Integer -- ^ 'vdSize'-    -> VolumeDetail-volumeDetail pSize_ =-    VolumeDetail'-    { _vdSize = pSize_-    }---- | The size of the volume, in GiB.-vdSize :: Lens' VolumeDetail Integer-vdSize = lens _vdSize (\ s a -> s{_vdSize = a});--instance Hashable VolumeDetail--instance NFData VolumeDetail--instance ToQuery VolumeDetail where-        toQuery VolumeDetail'{..}-          = mconcat ["Size" =: _vdSize]---- | Describes a volume status operation code.------------ /See:/ 'volumeStatusAction' smart constructor.-data VolumeStatusAction = VolumeStatusAction'-    { _vsaEventType   :: !(Maybe Text)-    , _vsaCode        :: !(Maybe Text)-    , _vsaDescription :: !(Maybe Text)-    , _vsaEventId     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsaEventType' - The event type associated with this operation.------ * 'vsaCode' - The code identifying the operation, for example, @enable-volume-io@ .------ * 'vsaDescription' - A description of the operation.------ * 'vsaEventId' - The ID of the event associated with this operation.-volumeStatusAction-    :: VolumeStatusAction-volumeStatusAction =-    VolumeStatusAction'-    { _vsaEventType = Nothing-    , _vsaCode = Nothing-    , _vsaDescription = Nothing-    , _vsaEventId = Nothing-    }---- | The event type associated with this operation.-vsaEventType :: Lens' VolumeStatusAction (Maybe Text)-vsaEventType = lens _vsaEventType (\ s a -> s{_vsaEventType = a});---- | The code identifying the operation, for example, @enable-volume-io@ .-vsaCode :: Lens' VolumeStatusAction (Maybe Text)-vsaCode = lens _vsaCode (\ s a -> s{_vsaCode = a});---- | A description of the operation.-vsaDescription :: Lens' VolumeStatusAction (Maybe Text)-vsaDescription = lens _vsaDescription (\ s a -> s{_vsaDescription = a});---- | The ID of the event associated with this operation.-vsaEventId :: Lens' VolumeStatusAction (Maybe Text)-vsaEventId = lens _vsaEventId (\ s a -> s{_vsaEventId = a});--instance FromXML VolumeStatusAction where-        parseXML x-          = VolumeStatusAction' <$>-              (x .@? "eventType") <*> (x .@? "code") <*>-                (x .@? "description")-                <*> (x .@? "eventId")--instance Hashable VolumeStatusAction--instance NFData VolumeStatusAction---- | Describes a volume status.------------ /See:/ 'volumeStatusDetails' smart constructor.-data VolumeStatusDetails = VolumeStatusDetails'-    { _vsdStatus :: !(Maybe Text)-    , _vsdName   :: !(Maybe VolumeStatusName)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsdStatus' - The intended status of the volume status.------ * 'vsdName' - The name of the volume status.-volumeStatusDetails-    :: VolumeStatusDetails-volumeStatusDetails =-    VolumeStatusDetails'-    { _vsdStatus = Nothing-    , _vsdName = Nothing-    }---- | The intended status of the volume status.-vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)-vsdStatus = lens _vsdStatus (\ s a -> s{_vsdStatus = a});---- | The name of the volume status.-vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)-vsdName = lens _vsdName (\ s a -> s{_vsdName = a});--instance FromXML VolumeStatusDetails where-        parseXML x-          = VolumeStatusDetails' <$>-              (x .@? "status") <*> (x .@? "name")--instance Hashable VolumeStatusDetails--instance NFData VolumeStatusDetails---- | Describes a volume status event.------------ /See:/ 'volumeStatusEvent' smart constructor.-data VolumeStatusEvent = VolumeStatusEvent'-    { _vseNotBefore   :: !(Maybe ISO8601)-    , _vseEventType   :: !(Maybe Text)-    , _vseDescription :: !(Maybe Text)-    , _vseNotAfter    :: !(Maybe ISO8601)-    , _vseEventId     :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vseNotBefore' - The earliest start time of the event.------ * 'vseEventType' - The type of this event.------ * 'vseDescription' - A description of the event.------ * 'vseNotAfter' - The latest end time of the event.------ * 'vseEventId' - The ID of this event.-volumeStatusEvent-    :: VolumeStatusEvent-volumeStatusEvent =-    VolumeStatusEvent'-    { _vseNotBefore = Nothing-    , _vseEventType = Nothing-    , _vseDescription = Nothing-    , _vseNotAfter = Nothing-    , _vseEventId = Nothing-    }---- | The earliest start time of the event.-vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)-vseNotBefore = lens _vseNotBefore (\ s a -> s{_vseNotBefore = a}) . mapping _Time;---- | The type of this event.-vseEventType :: Lens' VolumeStatusEvent (Maybe Text)-vseEventType = lens _vseEventType (\ s a -> s{_vseEventType = a});---- | A description of the event.-vseDescription :: Lens' VolumeStatusEvent (Maybe Text)-vseDescription = lens _vseDescription (\ s a -> s{_vseDescription = a});---- | The latest end time of the event.-vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)-vseNotAfter = lens _vseNotAfter (\ s a -> s{_vseNotAfter = a}) . mapping _Time;---- | The ID of this event.-vseEventId :: Lens' VolumeStatusEvent (Maybe Text)-vseEventId = lens _vseEventId (\ s a -> s{_vseEventId = a});--instance FromXML VolumeStatusEvent where-        parseXML x-          = VolumeStatusEvent' <$>-              (x .@? "notBefore") <*> (x .@? "eventType") <*>-                (x .@? "description")-                <*> (x .@? "notAfter")-                <*> (x .@? "eventId")--instance Hashable VolumeStatusEvent--instance NFData VolumeStatusEvent---- | Describes the status of a volume.------------ /See:/ 'volumeStatusInfo' smart constructor.-data VolumeStatusInfo = VolumeStatusInfo'-    { _vsiStatus  :: !(Maybe VolumeStatusInfoStatus)-    , _vsiDetails :: !(Maybe [VolumeStatusDetails])-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsiStatus' - The status of the volume.------ * 'vsiDetails' - The details of the volume status.-volumeStatusInfo-    :: VolumeStatusInfo-volumeStatusInfo =-    VolumeStatusInfo'-    { _vsiStatus = Nothing-    , _vsiDetails = Nothing-    }---- | The status of the volume.-vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)-vsiStatus = lens _vsiStatus (\ s a -> s{_vsiStatus = a});---- | The details of the volume status.-vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]-vsiDetails = lens _vsiDetails (\ s a -> s{_vsiDetails = a}) . _Default . _Coerce;--instance FromXML VolumeStatusInfo where-        parseXML x-          = VolumeStatusInfo' <$>-              (x .@? "status") <*>-                (x .@? "details" .!@ mempty >>=-                   may (parseXMLList "item"))--instance Hashable VolumeStatusInfo--instance NFData VolumeStatusInfo---- | Describes the volume status.------------ /See:/ 'volumeStatusItem' smart constructor.-data VolumeStatusItem = VolumeStatusItem'-    { _vsiVolumeStatus     :: !(Maybe VolumeStatusInfo)-    , _vsiActions          :: !(Maybe [VolumeStatusAction])-    , _vsiEvents           :: !(Maybe [VolumeStatusEvent])-    , _vsiAvailabilityZone :: !(Maybe Text)-    , _vsiVolumeId         :: !(Maybe Text)-    } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeStatusItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vsiVolumeStatus' - The volume status.------ * 'vsiActions' - The details of the operation.------ * 'vsiEvents' - A list of events associated with the volume.------ * 'vsiAvailabilityZone' - The Availability Zone of the volume.------ * 'vsiVolumeId' - The volume ID.-volumeStatusItem-    :: VolumeStatusItem-volumeStatusItem =-    VolumeStatusItem'-    { _vsiVolumeStatus = Nothing-    , _vsiActions = Nothing-    , _vsiEvents = Nothing-    , _vsiAvailabilityZone = Nothing-    , _vsiVolumeId = Nothing-    }---- | The volume status.-vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)-vsiVolumeStatus = lens _vsiVolumeStatus (\ s a -> s{_vsiVolumeStatus = a});---- | The details of the operation.-vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]-vsiActions = lens _vsiActions (\ s a -> s{_vsiActions = a}) . _Default . _Coerce;---- | A list of events associated with the volume.-vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]-vsiEvents = lens _vsiEvents (\ s a -> s{_vsiEvents = a}) . _Default . _Coerce;---- | The Availability Zone of the volume.-vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)-vsiAvailabilityZone = lens _vsiAvailabilityZone (\ s a -> s{_vsiAvailabilityZone = a});---- | The volume ID.-vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)-vsiVolumeId = lens _vsiVolumeId (\ s a -> s{_vsiVolumeId = a});--instance FromXML VolumeStatusItem where-        parseXML x-          = VolumeStatusItem' <$>-              (x .@? "volumeStatus") <*>-                (x .@? "actionsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*>-                (x .@? "eventsSet" .!@ mempty >>=-                   may (parseXMLList "item"))-                <*> (x .@? "availabilityZone")-                <*> (x .@? "volumeId")--instance Hashable VolumeStatusItem--instance NFData VolumeStatusItem+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.EC2.Types.Product where++import Network.AWS.EC2.Internal+import Network.AWS.EC2.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | Describes an account attribute.+--+--+--+-- /See:/ 'accountAttribute' smart constructor.+data AccountAttribute = AccountAttribute'+  { _aaAttributeValues :: !(Maybe [AccountAttributeValue])+  , _aaAttributeName   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AccountAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaAttributeValues' - One or more values for the account attribute.+--+-- * 'aaAttributeName' - The name of the account attribute.+accountAttribute+    :: AccountAttribute+accountAttribute =+  AccountAttribute' {_aaAttributeValues = Nothing, _aaAttributeName = Nothing}+++-- | One or more values for the account attribute.+aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]+aaAttributeValues = lens _aaAttributeValues (\ s a -> s{_aaAttributeValues = a}) . _Default . _Coerce;++-- | The name of the account attribute.+aaAttributeName :: Lens' AccountAttribute (Maybe Text)+aaAttributeName = lens _aaAttributeName (\ s a -> s{_aaAttributeName = a});++instance FromXML AccountAttribute where+        parseXML x+          = AccountAttribute' <$>+              (x .@? "attributeValueSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "attributeName")++instance Hashable AccountAttribute where++instance NFData AccountAttribute where++-- | Describes a value of an account attribute.+--+--+--+-- /See:/ 'accountAttributeValue' smart constructor.+newtype AccountAttributeValue = AccountAttributeValue'+  { _aavAttributeValue :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AccountAttributeValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aavAttributeValue' - The value of the attribute.+accountAttributeValue+    :: AccountAttributeValue+accountAttributeValue = AccountAttributeValue' {_aavAttributeValue = Nothing}+++-- | The value of the attribute.+aavAttributeValue :: Lens' AccountAttributeValue (Maybe Text)+aavAttributeValue = lens _aavAttributeValue (\ s a -> s{_aavAttributeValue = a});++instance FromXML AccountAttributeValue where+        parseXML x+          = AccountAttributeValue' <$> (x .@? "attributeValue")++instance Hashable AccountAttributeValue where++instance NFData AccountAttributeValue where++-- | Describes a running instance in a Spot fleet.+--+--+--+-- /See:/ 'activeInstance' smart constructor.+data ActiveInstance = ActiveInstance'+  { _aiInstanceId            :: !(Maybe Text)+  , _aiInstanceHealth        :: !(Maybe InstanceHealthStatus)+  , _aiInstanceType          :: !(Maybe Text)+  , _aiSpotInstanceRequestId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ActiveInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiInstanceId' - The ID of the instance.+--+-- * 'aiInstanceHealth' - The health status of the instance. If the status of either the instance status check or the system status check is @impaired@ , the health status of the instance is @unhealthy@ . Otherwise, the health status is @healthy@ .+--+-- * 'aiInstanceType' - The instance type.+--+-- * 'aiSpotInstanceRequestId' - The ID of the Spot instance request.+activeInstance+    :: ActiveInstance+activeInstance =+  ActiveInstance'+  { _aiInstanceId = Nothing+  , _aiInstanceHealth = Nothing+  , _aiInstanceType = Nothing+  , _aiSpotInstanceRequestId = Nothing+  }+++-- | The ID of the instance.+aiInstanceId :: Lens' ActiveInstance (Maybe Text)+aiInstanceId = lens _aiInstanceId (\ s a -> s{_aiInstanceId = a});++-- | The health status of the instance. If the status of either the instance status check or the system status check is @impaired@ , the health status of the instance is @unhealthy@ . Otherwise, the health status is @healthy@ .+aiInstanceHealth :: Lens' ActiveInstance (Maybe InstanceHealthStatus)+aiInstanceHealth = lens _aiInstanceHealth (\ s a -> s{_aiInstanceHealth = a});++-- | The instance type.+aiInstanceType :: Lens' ActiveInstance (Maybe Text)+aiInstanceType = lens _aiInstanceType (\ s a -> s{_aiInstanceType = a});++-- | The ID of the Spot instance request.+aiSpotInstanceRequestId :: Lens' ActiveInstance (Maybe Text)+aiSpotInstanceRequestId = lens _aiSpotInstanceRequestId (\ s a -> s{_aiSpotInstanceRequestId = a});++instance FromXML ActiveInstance where+        parseXML x+          = ActiveInstance' <$>+              (x .@? "instanceId") <*> (x .@? "instanceHealth") <*>+                (x .@? "instanceType")+                <*> (x .@? "spotInstanceRequestId")++instance Hashable ActiveInstance where++instance NFData ActiveInstance where++-- | Describes an Elastic IP address.+--+--+--+-- /See:/ 'address' smart constructor.+data Address = Address'+  { _aAssociationId           :: !(Maybe Text)+  , _aInstanceId              :: !(Maybe Text)+  , _aNetworkInterfaceOwnerId :: !(Maybe Text)+  , _aAllocationId            :: !(Maybe Text)+  , _aDomain                  :: !(Maybe DomainType)+  , _aNetworkInterfaceId      :: !(Maybe Text)+  , _aPrivateIPAddress        :: !(Maybe Text)+  , _aPublicIP                :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aAssociationId' - The ID representing the association of the address with an instance in a VPC.+--+-- * 'aInstanceId' - The ID of the instance that the address is associated with (if any).+--+-- * 'aNetworkInterfaceOwnerId' - The ID of the AWS account that owns the network interface.+--+-- * 'aAllocationId' - The ID representing the allocation of the address for use with EC2-VPC.+--+-- * 'aDomain' - Indicates whether this Elastic IP address is for use with instances in EC2-Classic (@standard@ ) or instances in a VPC (@vpc@ ).+--+-- * 'aNetworkInterfaceId' - The ID of the network interface.+--+-- * 'aPrivateIPAddress' - The private IP address associated with the Elastic IP address.+--+-- * 'aPublicIP' - The Elastic IP address.+address+    :: Address+address =+  Address'+  { _aAssociationId = Nothing+  , _aInstanceId = Nothing+  , _aNetworkInterfaceOwnerId = Nothing+  , _aAllocationId = Nothing+  , _aDomain = Nothing+  , _aNetworkInterfaceId = Nothing+  , _aPrivateIPAddress = Nothing+  , _aPublicIP = Nothing+  }+++-- | The ID representing the association of the address with an instance in a VPC.+aAssociationId :: Lens' Address (Maybe Text)+aAssociationId = lens _aAssociationId (\ s a -> s{_aAssociationId = a});++-- | The ID of the instance that the address is associated with (if any).+aInstanceId :: Lens' Address (Maybe Text)+aInstanceId = lens _aInstanceId (\ s a -> s{_aInstanceId = a});++-- | The ID of the AWS account that owns the network interface.+aNetworkInterfaceOwnerId :: Lens' Address (Maybe Text)+aNetworkInterfaceOwnerId = lens _aNetworkInterfaceOwnerId (\ s a -> s{_aNetworkInterfaceOwnerId = a});++-- | The ID representing the allocation of the address for use with EC2-VPC.+aAllocationId :: Lens' Address (Maybe Text)+aAllocationId = lens _aAllocationId (\ s a -> s{_aAllocationId = a});++-- | Indicates whether this Elastic IP address is for use with instances in EC2-Classic (@standard@ ) or instances in a VPC (@vpc@ ).+aDomain :: Lens' Address (Maybe DomainType)+aDomain = lens _aDomain (\ s a -> s{_aDomain = a});++-- | The ID of the network interface.+aNetworkInterfaceId :: Lens' Address (Maybe Text)+aNetworkInterfaceId = lens _aNetworkInterfaceId (\ s a -> s{_aNetworkInterfaceId = a});++-- | The private IP address associated with the Elastic IP address.+aPrivateIPAddress :: Lens' Address (Maybe Text)+aPrivateIPAddress = lens _aPrivateIPAddress (\ s a -> s{_aPrivateIPAddress = a});++-- | The Elastic IP address.+aPublicIP :: Lens' Address (Maybe Text)+aPublicIP = lens _aPublicIP (\ s a -> s{_aPublicIP = a});++instance FromXML Address where+        parseXML x+          = Address' <$>+              (x .@? "associationId") <*> (x .@? "instanceId") <*>+                (x .@? "networkInterfaceOwnerId")+                <*> (x .@? "allocationId")+                <*> (x .@? "domain")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "publicIp")++instance Hashable Address where++instance NFData Address where++-- | Describes a value for a resource attribute that is a Boolean value.+--+--+--+-- /See:/ 'attributeBooleanValue' smart constructor.+newtype AttributeBooleanValue = AttributeBooleanValue'+  { _abvValue :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AttributeBooleanValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abvValue' - The attribute value. The valid values are @true@ or @false@ .+attributeBooleanValue+    :: AttributeBooleanValue+attributeBooleanValue = AttributeBooleanValue' {_abvValue = Nothing}+++-- | The attribute value. The valid values are @true@ or @false@ .+abvValue :: Lens' AttributeBooleanValue (Maybe Bool)+abvValue = lens _abvValue (\ s a -> s{_abvValue = a});++instance FromXML AttributeBooleanValue where+        parseXML x+          = AttributeBooleanValue' <$> (x .@? "value")++instance Hashable AttributeBooleanValue where++instance NFData AttributeBooleanValue where++instance ToQuery AttributeBooleanValue where+        toQuery AttributeBooleanValue'{..}+          = mconcat ["Value" =: _abvValue]++-- | Describes a value for a resource attribute that is a String.+--+--+--+-- /See:/ 'attributeValue' smart constructor.+newtype AttributeValue = AttributeValue'+  { _avValue :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AttributeValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'avValue' - The attribute value. Note that the value is case-sensitive.+attributeValue+    :: AttributeValue+attributeValue = AttributeValue' {_avValue = Nothing}+++-- | The attribute value. Note that the value is case-sensitive.+avValue :: Lens' AttributeValue (Maybe Text)+avValue = lens _avValue (\ s a -> s{_avValue = a});++instance FromXML AttributeValue where+        parseXML x = AttributeValue' <$> (x .@? "value")++instance Hashable AttributeValue where++instance NFData AttributeValue where++instance ToQuery AttributeValue where+        toQuery AttributeValue'{..}+          = mconcat ["Value" =: _avValue]++-- | Describes an Availability Zone.+--+--+--+-- /See:/ 'availabilityZone' smart constructor.+data AvailabilityZone = AvailabilityZone'+  { _azState      :: !(Maybe AvailabilityZoneState)+  , _azRegionName :: !(Maybe Text)+  , _azZoneName   :: !(Maybe Text)+  , _azMessages   :: !(Maybe [AvailabilityZoneMessage])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azState' - The state of the Availability Zone.+--+-- * 'azRegionName' - The name of the region.+--+-- * 'azZoneName' - The name of the Availability Zone.+--+-- * 'azMessages' - Any messages about the Availability Zone.+availabilityZone+    :: AvailabilityZone+availabilityZone =+  AvailabilityZone'+  { _azState = Nothing+  , _azRegionName = Nothing+  , _azZoneName = Nothing+  , _azMessages = Nothing+  }+++-- | The state of the Availability Zone.+azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)+azState = lens _azState (\ s a -> s{_azState = a});++-- | The name of the region.+azRegionName :: Lens' AvailabilityZone (Maybe Text)+azRegionName = lens _azRegionName (\ s a -> s{_azRegionName = a});++-- | The name of the Availability Zone.+azZoneName :: Lens' AvailabilityZone (Maybe Text)+azZoneName = lens _azZoneName (\ s a -> s{_azZoneName = a});++-- | Any messages about the Availability Zone.+azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]+azMessages = lens _azMessages (\ s a -> s{_azMessages = a}) . _Default . _Coerce;++instance FromXML AvailabilityZone where+        parseXML x+          = AvailabilityZone' <$>+              (x .@? "zoneState") <*> (x .@? "regionName") <*>+                (x .@? "zoneName")+                <*>+                (x .@? "messageSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable AvailabilityZone where++instance NFData AvailabilityZone where++-- | Describes a message about an Availability Zone.+--+--+--+-- /See:/ 'availabilityZoneMessage' smart constructor.+newtype AvailabilityZoneMessage = AvailabilityZoneMessage'+  { _azmMessage :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AvailabilityZoneMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azmMessage' - The message about the Availability Zone.+availabilityZoneMessage+    :: AvailabilityZoneMessage+availabilityZoneMessage = AvailabilityZoneMessage' {_azmMessage = Nothing}+++-- | The message about the Availability Zone.+azmMessage :: Lens' AvailabilityZoneMessage (Maybe Text)+azmMessage = lens _azmMessage (\ s a -> s{_azmMessage = a});++instance FromXML AvailabilityZoneMessage where+        parseXML x+          = AvailabilityZoneMessage' <$> (x .@? "message")++instance Hashable AvailabilityZoneMessage where++instance NFData AvailabilityZoneMessage where++-- | The capacity information for instances launched onto the Dedicated Host.+--+--+--+-- /See:/ 'availableCapacity' smart constructor.+data AvailableCapacity = AvailableCapacity'+  { _acAvailableInstanceCapacity :: !(Maybe [InstanceCapacity])+  , _acAvailableVCPUs            :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AvailableCapacity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acAvailableInstanceCapacity' - The total number of instances that the Dedicated Host supports.+--+-- * 'acAvailableVCPUs' - The number of vCPUs available on the Dedicated Host.+availableCapacity+    :: AvailableCapacity+availableCapacity =+  AvailableCapacity'+  {_acAvailableInstanceCapacity = Nothing, _acAvailableVCPUs = Nothing}+++-- | The total number of instances that the Dedicated Host supports.+acAvailableInstanceCapacity :: Lens' AvailableCapacity [InstanceCapacity]+acAvailableInstanceCapacity = lens _acAvailableInstanceCapacity (\ s a -> s{_acAvailableInstanceCapacity = a}) . _Default . _Coerce;++-- | The number of vCPUs available on the Dedicated Host.+acAvailableVCPUs :: Lens' AvailableCapacity (Maybe Int)+acAvailableVCPUs = lens _acAvailableVCPUs (\ s a -> s{_acAvailableVCPUs = a});++instance FromXML AvailableCapacity where+        parseXML x+          = AvailableCapacity' <$>+              (x .@? "availableInstanceCapacity" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "availableVCpus")++instance Hashable AvailableCapacity where++instance NFData AvailableCapacity where++-- | /See:/ 'blobAttributeValue' smart constructor.+newtype BlobAttributeValue = BlobAttributeValue'+  { _bavValue :: Maybe Base64+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BlobAttributeValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bavValue' - Undocumented member.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.+blobAttributeValue+    :: BlobAttributeValue+blobAttributeValue = BlobAttributeValue' {_bavValue = Nothing}+++-- | Undocumented member.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.+bavValue :: Lens' BlobAttributeValue (Maybe ByteString)+bavValue = lens _bavValue (\ s a -> s{_bavValue = a}) . mapping _Base64;++instance Hashable BlobAttributeValue where++instance NFData BlobAttributeValue where++instance ToQuery BlobAttributeValue where+        toQuery BlobAttributeValue'{..}+          = mconcat ["Value" =: _bavValue]++-- | Describes a block device mapping.+--+--+--+-- /See:/ 'blockDeviceMapping' smart constructor.+data BlockDeviceMapping = BlockDeviceMapping'+  { _bdmVirtualName :: !(Maybe Text)+  , _bdmNoDevice    :: !(Maybe Text)+  , _bdmEBS         :: !(Maybe EBSBlockDevice)+  , _bdmDeviceName  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BlockDeviceMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bdmVirtualName' - The virtual device name (@ephemeral@ N). 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. 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.+--+-- * 'bdmNoDevice' - Suppresses the specified device included in the block device mapping of the AMI.+--+-- * 'bdmEBS' - Parameters used to automatically set up EBS volumes when the instance is launched.+--+-- * 'bdmDeviceName' - The device name (for example, @/dev/sdh@ or @xvdh@ ).+blockDeviceMapping+    :: Text -- ^ 'bdmDeviceName'+    -> BlockDeviceMapping+blockDeviceMapping pDeviceName_ =+  BlockDeviceMapping'+  { _bdmVirtualName = Nothing+  , _bdmNoDevice = Nothing+  , _bdmEBS = Nothing+  , _bdmDeviceName = pDeviceName_+  }+++-- | The virtual device name (@ephemeral@ N). 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. 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)+bdmVirtualName = lens _bdmVirtualName (\ s a -> s{_bdmVirtualName = a});++-- | Suppresses the specified device included in the block device mapping of the AMI.+bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)+bdmNoDevice = lens _bdmNoDevice (\ s a -> s{_bdmNoDevice = a});++-- | Parameters used to automatically set up EBS volumes when the instance is launched.+bdmEBS :: Lens' BlockDeviceMapping (Maybe EBSBlockDevice)+bdmEBS = lens _bdmEBS (\ s a -> s{_bdmEBS = a});++-- | The device name (for example, @/dev/sdh@ or @xvdh@ ).+bdmDeviceName :: Lens' BlockDeviceMapping Text+bdmDeviceName = lens _bdmDeviceName (\ s a -> s{_bdmDeviceName = a});++instance FromXML BlockDeviceMapping where+        parseXML x+          = BlockDeviceMapping' <$>+              (x .@? "virtualName") <*> (x .@? "noDevice") <*>+                (x .@? "ebs")+                <*> (x .@ "deviceName")++instance Hashable BlockDeviceMapping where++instance NFData BlockDeviceMapping where++instance ToQuery BlockDeviceMapping where+        toQuery BlockDeviceMapping'{..}+          = mconcat+              ["VirtualName" =: _bdmVirtualName,+               "NoDevice" =: _bdmNoDevice, "Ebs" =: _bdmEBS,+               "DeviceName" =: _bdmDeviceName]++-- | Describes a bundle task.+--+--+--+-- /See:/ 'bundleTask' smart constructor.+data BundleTask = BundleTask'+  { _btBundleTaskError :: !(Maybe BundleTaskError)+  , _btBundleId        :: !Text+  , _btInstanceId      :: !Text+  , _btProgress        :: !Text+  , _btStartTime       :: !ISO8601+  , _btState           :: !BundleTaskState+  , _btStorage         :: !Storage+  , _btUpdateTime      :: !ISO8601+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BundleTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'btBundleTaskError' - If the task fails, a description of the error.+--+-- * 'btBundleId' - The ID of the bundle task.+--+-- * 'btInstanceId' - The ID of the instance associated with this bundle task.+--+-- * 'btProgress' - The level of task completion, as a percent (for example, 20%).+--+-- * 'btStartTime' - The time this task started.+--+-- * 'btState' - The state of the task.+--+-- * 'btStorage' - The Amazon S3 storage locations.+--+-- * 'btUpdateTime' - The time of the most recent update for the task.+bundleTask+    :: Text -- ^ 'btBundleId'+    -> Text -- ^ 'btInstanceId'+    -> Text -- ^ 'btProgress'+    -> UTCTime -- ^ 'btStartTime'+    -> BundleTaskState -- ^ 'btState'+    -> Storage -- ^ 'btStorage'+    -> UTCTime -- ^ 'btUpdateTime'+    -> BundleTask+bundleTask pBundleId_ pInstanceId_ pProgress_ pStartTime_ pState_ pStorage_ pUpdateTime_ =+  BundleTask'+  { _btBundleTaskError = Nothing+  , _btBundleId = pBundleId_+  , _btInstanceId = pInstanceId_+  , _btProgress = pProgress_+  , _btStartTime = _Time # pStartTime_+  , _btState = pState_+  , _btStorage = pStorage_+  , _btUpdateTime = _Time # pUpdateTime_+  }+++-- | If the task fails, a description of the error.+btBundleTaskError :: Lens' BundleTask (Maybe BundleTaskError)+btBundleTaskError = lens _btBundleTaskError (\ s a -> s{_btBundleTaskError = a});++-- | The ID of the bundle task.+btBundleId :: Lens' BundleTask Text+btBundleId = lens _btBundleId (\ s a -> s{_btBundleId = a});++-- | The ID of the instance associated with this bundle task.+btInstanceId :: Lens' BundleTask Text+btInstanceId = lens _btInstanceId (\ s a -> s{_btInstanceId = a});++-- | The level of task completion, as a percent (for example, 20%).+btProgress :: Lens' BundleTask Text+btProgress = lens _btProgress (\ s a -> s{_btProgress = a});++-- | The time this task started.+btStartTime :: Lens' BundleTask UTCTime+btStartTime = lens _btStartTime (\ s a -> s{_btStartTime = a}) . _Time;++-- | The state of the task.+btState :: Lens' BundleTask BundleTaskState+btState = lens _btState (\ s a -> s{_btState = a});++-- | The Amazon S3 storage locations.+btStorage :: Lens' BundleTask Storage+btStorage = lens _btStorage (\ s a -> s{_btStorage = a});++-- | The time of the most recent update for the task.+btUpdateTime :: Lens' BundleTask UTCTime+btUpdateTime = lens _btUpdateTime (\ s a -> s{_btUpdateTime = a}) . _Time;++instance FromXML BundleTask where+        parseXML x+          = BundleTask' <$>+              (x .@? "error") <*> (x .@ "bundleId") <*>+                (x .@ "instanceId")+                <*> (x .@ "progress")+                <*> (x .@ "startTime")+                <*> (x .@ "state")+                <*> (x .@ "storage")+                <*> (x .@ "updateTime")++instance Hashable BundleTask where++instance NFData BundleTask where++-- | Describes an error for 'BundleInstance' .+--+--+--+-- /See:/ 'bundleTaskError' smart constructor.+data BundleTaskError = BundleTaskError'+  { _bteCode    :: !(Maybe Text)+  , _bteMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'BundleTaskError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bteCode' - The error code.+--+-- * 'bteMessage' - The error message.+bundleTaskError+    :: BundleTaskError+bundleTaskError = BundleTaskError' {_bteCode = Nothing, _bteMessage = Nothing}+++-- | The error code.+bteCode :: Lens' BundleTaskError (Maybe Text)+bteCode = lens _bteCode (\ s a -> s{_bteCode = a});++-- | The error message.+bteMessage :: Lens' BundleTaskError (Maybe Text)+bteMessage = lens _bteMessage (\ s a -> s{_bteMessage = a});++instance FromXML BundleTaskError where+        parseXML x+          = BundleTaskError' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable BundleTaskError where++instance NFData BundleTaskError where++-- | Describes a Spot fleet error.+--+--+--+-- /See:/ 'cancelSpotFleetRequestsError' smart constructor.+data CancelSpotFleetRequestsError = CancelSpotFleetRequestsError'+  { _csfreCode    :: !CancelBatchErrorCode+  , _csfreMessage :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CancelSpotFleetRequestsError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfreCode' - The error code.+--+-- * 'csfreMessage' - The description for the error code.+cancelSpotFleetRequestsError+    :: CancelBatchErrorCode -- ^ 'csfreCode'+    -> Text -- ^ 'csfreMessage'+    -> CancelSpotFleetRequestsError+cancelSpotFleetRequestsError pCode_ pMessage_ =+  CancelSpotFleetRequestsError' {_csfreCode = pCode_, _csfreMessage = pMessage_}+++-- | The error code.+csfreCode :: Lens' CancelSpotFleetRequestsError CancelBatchErrorCode+csfreCode = lens _csfreCode (\ s a -> s{_csfreCode = a});++-- | The description for the error code.+csfreMessage :: Lens' CancelSpotFleetRequestsError Text+csfreMessage = lens _csfreMessage (\ s a -> s{_csfreMessage = a});++instance FromXML CancelSpotFleetRequestsError where+        parseXML x+          = CancelSpotFleetRequestsError' <$>+              (x .@ "code") <*> (x .@ "message")++instance Hashable CancelSpotFleetRequestsError where++instance NFData CancelSpotFleetRequestsError where++-- | Describes a Spot fleet request that was not successfully canceled.+--+--+--+-- /See:/ 'cancelSpotFleetRequestsErrorItem' smart constructor.+data CancelSpotFleetRequestsErrorItem = CancelSpotFleetRequestsErrorItem'+  { _csfreiError              :: !CancelSpotFleetRequestsError+  , _csfreiSpotFleetRequestId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CancelSpotFleetRequestsErrorItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfreiError' - The error.+--+-- * 'csfreiSpotFleetRequestId' - The ID of the Spot fleet request.+cancelSpotFleetRequestsErrorItem+    :: CancelSpotFleetRequestsError -- ^ 'csfreiError'+    -> Text -- ^ 'csfreiSpotFleetRequestId'+    -> CancelSpotFleetRequestsErrorItem+cancelSpotFleetRequestsErrorItem pError_ pSpotFleetRequestId_ =+  CancelSpotFleetRequestsErrorItem'+  {_csfreiError = pError_, _csfreiSpotFleetRequestId = pSpotFleetRequestId_}+++-- | The error.+csfreiError :: Lens' CancelSpotFleetRequestsErrorItem CancelSpotFleetRequestsError+csfreiError = lens _csfreiError (\ s a -> s{_csfreiError = a});++-- | The ID of the Spot fleet request.+csfreiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsErrorItem Text+csfreiSpotFleetRequestId = lens _csfreiSpotFleetRequestId (\ s a -> s{_csfreiSpotFleetRequestId = a});++instance FromXML CancelSpotFleetRequestsErrorItem+         where+        parseXML x+          = CancelSpotFleetRequestsErrorItem' <$>+              (x .@ "error") <*> (x .@ "spotFleetRequestId")++instance Hashable CancelSpotFleetRequestsErrorItem+         where++instance NFData CancelSpotFleetRequestsErrorItem+         where++-- | Describes a Spot fleet request that was successfully canceled.+--+--+--+-- /See:/ 'cancelSpotFleetRequestsSuccessItem' smart constructor.+data CancelSpotFleetRequestsSuccessItem = CancelSpotFleetRequestsSuccessItem'+  { _csfrsiCurrentSpotFleetRequestState  :: !BatchState+  , _csfrsiPreviousSpotFleetRequestState :: !BatchState+  , _csfrsiSpotFleetRequestId            :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CancelSpotFleetRequestsSuccessItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfrsiCurrentSpotFleetRequestState' - The current state of the Spot fleet request.+--+-- * 'csfrsiPreviousSpotFleetRequestState' - The previous state of the Spot fleet request.+--+-- * 'csfrsiSpotFleetRequestId' - The ID of the Spot fleet request.+cancelSpotFleetRequestsSuccessItem+    :: BatchState -- ^ 'csfrsiCurrentSpotFleetRequestState'+    -> BatchState -- ^ 'csfrsiPreviousSpotFleetRequestState'+    -> Text -- ^ 'csfrsiSpotFleetRequestId'+    -> CancelSpotFleetRequestsSuccessItem+cancelSpotFleetRequestsSuccessItem pCurrentSpotFleetRequestState_ pPreviousSpotFleetRequestState_ pSpotFleetRequestId_ =+  CancelSpotFleetRequestsSuccessItem'+  { _csfrsiCurrentSpotFleetRequestState = pCurrentSpotFleetRequestState_+  , _csfrsiPreviousSpotFleetRequestState = pPreviousSpotFleetRequestState_+  , _csfrsiSpotFleetRequestId = pSpotFleetRequestId_+  }+++-- | The current state of the Spot fleet request.+csfrsiCurrentSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState+csfrsiCurrentSpotFleetRequestState = lens _csfrsiCurrentSpotFleetRequestState (\ s a -> s{_csfrsiCurrentSpotFleetRequestState = a});++-- | The previous state of the Spot fleet request.+csfrsiPreviousSpotFleetRequestState :: Lens' CancelSpotFleetRequestsSuccessItem BatchState+csfrsiPreviousSpotFleetRequestState = lens _csfrsiPreviousSpotFleetRequestState (\ s a -> s{_csfrsiPreviousSpotFleetRequestState = a});++-- | The ID of the Spot fleet request.+csfrsiSpotFleetRequestId :: Lens' CancelSpotFleetRequestsSuccessItem Text+csfrsiSpotFleetRequestId = lens _csfrsiSpotFleetRequestId (\ s a -> s{_csfrsiSpotFleetRequestId = a});++instance FromXML CancelSpotFleetRequestsSuccessItem+         where+        parseXML x+          = CancelSpotFleetRequestsSuccessItem' <$>+              (x .@ "currentSpotFleetRequestState") <*>+                (x .@ "previousSpotFleetRequestState")+                <*> (x .@ "spotFleetRequestId")++instance Hashable CancelSpotFleetRequestsSuccessItem+         where++instance NFData CancelSpotFleetRequestsSuccessItem+         where++-- | Describes a request to cancel a Spot instance.+--+--+--+-- /See:/ 'cancelledSpotInstanceRequest' smart constructor.+data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest'+  { _csirState                 :: !(Maybe CancelSpotInstanceRequestState)+  , _csirSpotInstanceRequestId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CancelledSpotInstanceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csirState' - The state of the Spot instance request.+--+-- * 'csirSpotInstanceRequestId' - The ID of the Spot instance request.+cancelledSpotInstanceRequest+    :: CancelledSpotInstanceRequest+cancelledSpotInstanceRequest =+  CancelledSpotInstanceRequest'+  {_csirState = Nothing, _csirSpotInstanceRequestId = Nothing}+++-- | The state of the Spot instance request.+csirState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)+csirState = lens _csirState (\ s a -> s{_csirState = a});++-- | The ID of the Spot instance request.+csirSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)+csirSpotInstanceRequestId = lens _csirSpotInstanceRequestId (\ s a -> s{_csirSpotInstanceRequestId = a});++instance FromXML CancelledSpotInstanceRequest where+        parseXML x+          = CancelledSpotInstanceRequest' <$>+              (x .@? "state") <*> (x .@? "spotInstanceRequestId")++instance Hashable CancelledSpotInstanceRequest where++instance NFData CancelledSpotInstanceRequest where++-- | Describes an IPv4 CIDR block.+--+--+--+-- /See:/ 'cidrBlock' smart constructor.+newtype CidrBlock = CidrBlock'+  { _cbCidrBlock :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CidrBlock' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbCidrBlock' - The IPv4 CIDR block.+cidrBlock+    :: CidrBlock+cidrBlock = CidrBlock' {_cbCidrBlock = Nothing}+++-- | The IPv4 CIDR block.+cbCidrBlock :: Lens' CidrBlock (Maybe Text)+cbCidrBlock = lens _cbCidrBlock (\ s a -> s{_cbCidrBlock = a});++instance FromXML CidrBlock where+        parseXML x = CidrBlock' <$> (x .@? "cidrBlock")++instance Hashable CidrBlock where++instance NFData CidrBlock where++-- | Describes the ClassicLink DNS support status of a VPC.+--+--+--+-- /See:/ 'classicLinkDNSSupport' smart constructor.+data ClassicLinkDNSSupport = ClassicLinkDNSSupport'+  { _cldsVPCId                   :: !(Maybe Text)+  , _cldsClassicLinkDNSSupported :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClassicLinkDNSSupport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cldsVPCId' - The ID of the VPC.+--+-- * 'cldsClassicLinkDNSSupported' - Indicates whether ClassicLink DNS support is enabled for the VPC.+classicLinkDNSSupport+    :: ClassicLinkDNSSupport+classicLinkDNSSupport =+  ClassicLinkDNSSupport'+  {_cldsVPCId = Nothing, _cldsClassicLinkDNSSupported = Nothing}+++-- | The ID of the VPC.+cldsVPCId :: Lens' ClassicLinkDNSSupport (Maybe Text)+cldsVPCId = lens _cldsVPCId (\ s a -> s{_cldsVPCId = a});++-- | Indicates whether ClassicLink DNS support is enabled for the VPC.+cldsClassicLinkDNSSupported :: Lens' ClassicLinkDNSSupport (Maybe Bool)+cldsClassicLinkDNSSupported = lens _cldsClassicLinkDNSSupported (\ s a -> s{_cldsClassicLinkDNSSupported = a});++instance FromXML ClassicLinkDNSSupport where+        parseXML x+          = ClassicLinkDNSSupport' <$>+              (x .@? "vpcId") <*> (x .@? "classicLinkDnsSupported")++instance Hashable ClassicLinkDNSSupport where++instance NFData ClassicLinkDNSSupport where++-- | Describes a linked EC2-Classic instance.+--+--+--+-- /See:/ 'classicLinkInstance' smart constructor.+data ClassicLinkInstance = ClassicLinkInstance'+  { _cliInstanceId :: !(Maybe Text)+  , _cliGroups     :: !(Maybe [GroupIdentifier])+  , _cliVPCId      :: !(Maybe Text)+  , _cliTags       :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClassicLinkInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cliInstanceId' - The ID of the instance.+--+-- * 'cliGroups' - A list of security groups.+--+-- * 'cliVPCId' - The ID of the VPC.+--+-- * 'cliTags' - Any tags assigned to the instance.+classicLinkInstance+    :: ClassicLinkInstance+classicLinkInstance =+  ClassicLinkInstance'+  { _cliInstanceId = Nothing+  , _cliGroups = Nothing+  , _cliVPCId = Nothing+  , _cliTags = Nothing+  }+++-- | The ID of the instance.+cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)+cliInstanceId = lens _cliInstanceId (\ s a -> s{_cliInstanceId = a});++-- | A list of security groups.+cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]+cliGroups = lens _cliGroups (\ s a -> s{_cliGroups = a}) . _Default . _Coerce;++-- | The ID of the VPC.+cliVPCId :: Lens' ClassicLinkInstance (Maybe Text)+cliVPCId = lens _cliVPCId (\ s a -> s{_cliVPCId = a});++-- | Any tags assigned to the instance.+cliTags :: Lens' ClassicLinkInstance [Tag]+cliTags = lens _cliTags (\ s a -> s{_cliTags = a}) . _Default . _Coerce;++instance FromXML ClassicLinkInstance where+        parseXML x+          = ClassicLinkInstance' <$>+              (x .@? "instanceId") <*>+                (x .@? "groupSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ClassicLinkInstance where++instance NFData ClassicLinkInstance where++-- | Describes a Classic Load Balancer.+--+--+--+-- /See:/ 'classicLoadBalancer' smart constructor.+newtype ClassicLoadBalancer = ClassicLoadBalancer'+  { _clbName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClassicLoadBalancer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clbName' - The name of the load balancer.+classicLoadBalancer+    :: Text -- ^ 'clbName'+    -> ClassicLoadBalancer+classicLoadBalancer pName_ = ClassicLoadBalancer' {_clbName = pName_}+++-- | The name of the load balancer.+clbName :: Lens' ClassicLoadBalancer Text+clbName = lens _clbName (\ s a -> s{_clbName = a});++instance FromXML ClassicLoadBalancer where+        parseXML x = ClassicLoadBalancer' <$> (x .@ "name")++instance Hashable ClassicLoadBalancer where++instance NFData ClassicLoadBalancer where++instance ToQuery ClassicLoadBalancer where+        toQuery ClassicLoadBalancer'{..}+          = mconcat ["Name" =: _clbName]++-- | Describes the Classic Load Balancers to attach to a Spot fleet. Spot fleet registers the running Spot instances with these Classic Load Balancers.+--+--+--+-- /See:/ 'classicLoadBalancersConfig' smart constructor.+newtype ClassicLoadBalancersConfig = ClassicLoadBalancersConfig'+  { _clbcClassicLoadBalancers :: List1 ClassicLoadBalancer+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClassicLoadBalancersConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clbcClassicLoadBalancers' - One or more Classic Load Balancers.+classicLoadBalancersConfig+    :: NonEmpty ClassicLoadBalancer -- ^ 'clbcClassicLoadBalancers'+    -> ClassicLoadBalancersConfig+classicLoadBalancersConfig pClassicLoadBalancers_ =+  ClassicLoadBalancersConfig'+  {_clbcClassicLoadBalancers = _List1 # pClassicLoadBalancers_}+++-- | One or more Classic Load Balancers.+clbcClassicLoadBalancers :: Lens' ClassicLoadBalancersConfig (NonEmpty ClassicLoadBalancer)+clbcClassicLoadBalancers = lens _clbcClassicLoadBalancers (\ s a -> s{_clbcClassicLoadBalancers = a}) . _List1;++instance FromXML ClassicLoadBalancersConfig where+        parseXML x+          = ClassicLoadBalancersConfig' <$>+              (x .@? "classicLoadBalancers" .!@ mempty >>=+                 parseXMLList1 "item")++instance Hashable ClassicLoadBalancersConfig where++instance NFData ClassicLoadBalancersConfig where++instance ToQuery ClassicLoadBalancersConfig where+        toQuery ClassicLoadBalancersConfig'{..}+          = mconcat+              [toQueryList "ClassicLoadBalancers"+                 _clbcClassicLoadBalancers]++-- | Describes the client-specific data.+--+--+--+-- /See:/ 'clientData' smart constructor.+data ClientData = ClientData'+  { _cdUploadStart :: !(Maybe ISO8601)+  , _cdUploadSize  :: !(Maybe Double)+  , _cdUploadEnd   :: !(Maybe ISO8601)+  , _cdComment     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ClientData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdUploadStart' - The time that the disk upload starts.+--+-- * 'cdUploadSize' - The size of the uploaded disk image, in GiB.+--+-- * 'cdUploadEnd' - The time that the disk upload ends.+--+-- * 'cdComment' - A user-defined comment about the disk upload.+clientData+    :: ClientData+clientData =+  ClientData'+  { _cdUploadStart = Nothing+  , _cdUploadSize = Nothing+  , _cdUploadEnd = Nothing+  , _cdComment = Nothing+  }+++-- | The time that the disk upload starts.+cdUploadStart :: Lens' ClientData (Maybe UTCTime)+cdUploadStart = lens _cdUploadStart (\ s a -> s{_cdUploadStart = a}) . mapping _Time;++-- | The size of the uploaded disk image, in GiB.+cdUploadSize :: Lens' ClientData (Maybe Double)+cdUploadSize = lens _cdUploadSize (\ s a -> s{_cdUploadSize = a});++-- | The time that the disk upload ends.+cdUploadEnd :: Lens' ClientData (Maybe UTCTime)+cdUploadEnd = lens _cdUploadEnd (\ s a -> s{_cdUploadEnd = a}) . mapping _Time;++-- | A user-defined comment about the disk upload.+cdComment :: Lens' ClientData (Maybe Text)+cdComment = lens _cdComment (\ s a -> s{_cdComment = a});++instance Hashable ClientData where++instance NFData ClientData where++instance ToQuery ClientData where+        toQuery ClientData'{..}+          = mconcat+              ["UploadStart" =: _cdUploadStart,+               "UploadSize" =: _cdUploadSize,+               "UploadEnd" =: _cdUploadEnd, "Comment" =: _cdComment]++-- | Describes a conversion task.+--+--+--+-- /See:/ 'conversionTask' smart constructor.+data ConversionTask = ConversionTask'+  { _ctImportInstance   :: !(Maybe ImportInstanceTaskDetails)+  , _ctStatusMessage    :: !(Maybe Text)+  , _ctImportVolume     :: !(Maybe ImportVolumeTaskDetails)+  , _ctExpirationTime   :: !(Maybe Text)+  , _ctTags             :: !(Maybe [Tag])+  , _ctConversionTaskId :: !Text+  , _ctState            :: !ConversionTaskState+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ConversionTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctImportInstance' - If the task is for importing an instance, this contains information about the import instance task.+--+-- * 'ctStatusMessage' - The status message related to the conversion task.+--+-- * 'ctImportVolume' - If the task is for importing a volume, this contains information about the import volume task.+--+-- * 'ctExpirationTime' - The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.+--+-- * 'ctTags' - Any tags assigned to the task.+--+-- * 'ctConversionTaskId' - The ID of the conversion task.+--+-- * 'ctState' - The state of the conversion task.+conversionTask+    :: Text -- ^ 'ctConversionTaskId'+    -> ConversionTaskState -- ^ 'ctState'+    -> ConversionTask+conversionTask pConversionTaskId_ pState_ =+  ConversionTask'+  { _ctImportInstance = Nothing+  , _ctStatusMessage = Nothing+  , _ctImportVolume = Nothing+  , _ctExpirationTime = Nothing+  , _ctTags = Nothing+  , _ctConversionTaskId = pConversionTaskId_+  , _ctState = pState_+  }+++-- | If the task is for importing an instance, this contains information about the import instance task.+ctImportInstance :: Lens' ConversionTask (Maybe ImportInstanceTaskDetails)+ctImportInstance = lens _ctImportInstance (\ s a -> s{_ctImportInstance = a});++-- | The status message related to the conversion task.+ctStatusMessage :: Lens' ConversionTask (Maybe Text)+ctStatusMessage = lens _ctStatusMessage (\ s a -> s{_ctStatusMessage = a});++-- | If the task is for importing a volume, this contains information about the import volume task.+ctImportVolume :: Lens' ConversionTask (Maybe ImportVolumeTaskDetails)+ctImportVolume = lens _ctImportVolume (\ s a -> s{_ctImportVolume = a});++-- | 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)+ctExpirationTime = lens _ctExpirationTime (\ s a -> s{_ctExpirationTime = a});++-- | Any tags assigned to the task.+ctTags :: Lens' ConversionTask [Tag]+ctTags = lens _ctTags (\ s a -> s{_ctTags = a}) . _Default . _Coerce;++-- | The ID of the conversion task.+ctConversionTaskId :: Lens' ConversionTask Text+ctConversionTaskId = lens _ctConversionTaskId (\ s a -> s{_ctConversionTaskId = a});++-- | The state of the conversion task.+ctState :: Lens' ConversionTask ConversionTaskState+ctState = lens _ctState (\ s a -> s{_ctState = a});++instance FromXML ConversionTask where+        parseXML x+          = ConversionTask' <$>+              (x .@? "importInstance") <*> (x .@? "statusMessage")+                <*> (x .@? "importVolume")+                <*> (x .@? "expirationTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "conversionTaskId")+                <*> (x .@ "state")++instance Hashable ConversionTask where++instance NFData ConversionTask where++-- | Describes the user or group to be added or removed from the permissions for a volume.+--+--+--+-- /See:/ 'createVolumePermission' smart constructor.+data CreateVolumePermission = CreateVolumePermission'+  { _cvpGroup  :: !(Maybe PermissionGroup)+  , _cvpUserId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateVolumePermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvpGroup' - The specific group that is to be added or removed from a volume's list of create volume permissions.+--+-- * 'cvpUserId' - The specific AWS account ID that is to be added or removed from a volume's list of create volume permissions.+createVolumePermission+    :: CreateVolumePermission+createVolumePermission =+  CreateVolumePermission' {_cvpGroup = Nothing, _cvpUserId = Nothing}+++-- | The specific group that is to be added or removed from a volume's list of create volume permissions.+cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)+cvpGroup = lens _cvpGroup (\ s a -> s{_cvpGroup = a});++-- | 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)+cvpUserId = lens _cvpUserId (\ s a -> s{_cvpUserId = a});++instance FromXML CreateVolumePermission where+        parseXML x+          = CreateVolumePermission' <$>+              (x .@? "group") <*> (x .@? "userId")++instance Hashable CreateVolumePermission where++instance NFData CreateVolumePermission where++instance ToQuery CreateVolumePermission where+        toQuery CreateVolumePermission'{..}+          = mconcat+              ["Group" =: _cvpGroup, "UserId" =: _cvpUserId]++-- | Describes modifications to the permissions for a volume.+--+--+--+-- /See:/ 'createVolumePermissionModifications' smart constructor.+data CreateVolumePermissionModifications = CreateVolumePermissionModifications'+  { _cvpmRemove :: !(Maybe [CreateVolumePermission])+  , _cvpmAdd    :: !(Maybe [CreateVolumePermission])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateVolumePermissionModifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cvpmRemove' - Removes a specific AWS account ID or group from a volume's list of create volume permissions.+--+-- * 'cvpmAdd' - Adds a specific AWS account ID or group to a volume's list of create volume permissions.+createVolumePermissionModifications+    :: CreateVolumePermissionModifications+createVolumePermissionModifications =+  CreateVolumePermissionModifications'+  {_cvpmRemove = Nothing, _cvpmAdd = Nothing}+++-- | Removes a specific AWS account ID or group from a volume's list of create volume permissions.+cvpmRemove :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]+cvpmRemove = lens _cvpmRemove (\ s a -> s{_cvpmRemove = a}) . _Default . _Coerce;++-- | Adds a specific AWS account ID or group to a volume's list of create volume permissions.+cvpmAdd :: Lens' CreateVolumePermissionModifications [CreateVolumePermission]+cvpmAdd = lens _cvpmAdd (\ s a -> s{_cvpmAdd = a}) . _Default . _Coerce;++instance Hashable CreateVolumePermissionModifications+         where++instance NFData CreateVolumePermissionModifications+         where++instance ToQuery CreateVolumePermissionModifications+         where+        toQuery CreateVolumePermissionModifications'{..}+          = mconcat+              [toQuery (toQueryList "Remove" <$> _cvpmRemove),+               toQuery (toQueryList "Add" <$> _cvpmAdd)]++-- | Describes a customer gateway.+--+--+--+-- /See:/ 'customerGateway' smart constructor.+data CustomerGateway = CustomerGateway'+  { _cgTags              :: !(Maybe [Tag])+  , _cgBGPASN            :: !Text+  , _cgCustomerGatewayId :: !Text+  , _cgIPAddress         :: !Text+  , _cgState             :: !Text+  , _cgType              :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CustomerGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgTags' - Any tags assigned to the customer gateway.+--+-- * 'cgBGPASN' - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).+--+-- * 'cgCustomerGatewayId' - The ID of the customer gateway.+--+-- * 'cgIPAddress' - The Internet-routable IP address of the customer gateway's outside interface.+--+-- * 'cgState' - The current state of the customer gateway (@pending | available | deleting | deleted@ ).+--+-- * 'cgType' - The type of VPN connection the customer gateway supports (@ipsec.1@ ).+customerGateway+    :: Text -- ^ 'cgBGPASN'+    -> Text -- ^ 'cgCustomerGatewayId'+    -> Text -- ^ 'cgIPAddress'+    -> Text -- ^ 'cgState'+    -> Text -- ^ 'cgType'+    -> CustomerGateway+customerGateway pBGPASN_ pCustomerGatewayId_ pIPAddress_ pState_ pType_ =+  CustomerGateway'+  { _cgTags = Nothing+  , _cgBGPASN = pBGPASN_+  , _cgCustomerGatewayId = pCustomerGatewayId_+  , _cgIPAddress = pIPAddress_+  , _cgState = pState_+  , _cgType = pType_+  }+++-- | Any tags assigned to the customer gateway.+cgTags :: Lens' CustomerGateway [Tag]+cgTags = lens _cgTags (\ s a -> s{_cgTags = a}) . _Default . _Coerce;++-- | The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).+cgBGPASN :: Lens' CustomerGateway Text+cgBGPASN = lens _cgBGPASN (\ s a -> s{_cgBGPASN = a});++-- | The ID of the customer gateway.+cgCustomerGatewayId :: Lens' CustomerGateway Text+cgCustomerGatewayId = lens _cgCustomerGatewayId (\ s a -> s{_cgCustomerGatewayId = a});++-- | The Internet-routable IP address of the customer gateway's outside interface.+cgIPAddress :: Lens' CustomerGateway Text+cgIPAddress = lens _cgIPAddress (\ s a -> s{_cgIPAddress = a});++-- | The current state of the customer gateway (@pending | available | deleting | deleted@ ).+cgState :: Lens' CustomerGateway Text+cgState = lens _cgState (\ s a -> s{_cgState = a});++-- | The type of VPN connection the customer gateway supports (@ipsec.1@ ).+cgType :: Lens' CustomerGateway Text+cgType = lens _cgType (\ s a -> s{_cgType = a});++instance FromXML CustomerGateway where+        parseXML x+          = CustomerGateway' <$>+              (x .@? "tagSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@ "bgpAsn")+                <*> (x .@ "customerGatewayId")+                <*> (x .@ "ipAddress")+                <*> (x .@ "state")+                <*> (x .@ "type")++instance Hashable CustomerGateway where++instance NFData CustomerGateway where++-- | Describes a DHCP configuration option.+--+--+--+-- /See:/ 'dhcpConfiguration' smart constructor.+data DHCPConfiguration = DHCPConfiguration'+  { _dcValues :: !(Maybe [AttributeValue])+  , _dcKey    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DHCPConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcValues' - One or more values for the DHCP option.+--+-- * 'dcKey' - The name of a DHCP option.+dhcpConfiguration+    :: DHCPConfiguration+dhcpConfiguration = DHCPConfiguration' {_dcValues = Nothing, _dcKey = Nothing}+++-- | One or more values for the DHCP option.+dcValues :: Lens' DHCPConfiguration [AttributeValue]+dcValues = lens _dcValues (\ s a -> s{_dcValues = a}) . _Default . _Coerce;++-- | The name of a DHCP option.+dcKey :: Lens' DHCPConfiguration (Maybe Text)+dcKey = lens _dcKey (\ s a -> s{_dcKey = a});++instance FromXML DHCPConfiguration where+        parseXML x+          = DHCPConfiguration' <$>+              (x .@? "valueSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "key")++instance Hashable DHCPConfiguration where++instance NFData DHCPConfiguration where++-- | Describes a set of DHCP options.+--+--+--+-- /See:/ 'dhcpOptions' smart constructor.+data DHCPOptions = DHCPOptions'+  { _doDHCPConfigurations :: !(Maybe [DHCPConfiguration])+  , _doDHCPOptionsId      :: !(Maybe Text)+  , _doTags               :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DHCPOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'doDHCPConfigurations' - One or more DHCP options in the set.+--+-- * 'doDHCPOptionsId' - The ID of the set of DHCP options.+--+-- * 'doTags' - Any tags assigned to the DHCP options set.+dhcpOptions+    :: DHCPOptions+dhcpOptions =+  DHCPOptions'+  { _doDHCPConfigurations = Nothing+  , _doDHCPOptionsId = Nothing+  , _doTags = Nothing+  }+++-- | One or more DHCP options in the set.+doDHCPConfigurations :: Lens' DHCPOptions [DHCPConfiguration]+doDHCPConfigurations = lens _doDHCPConfigurations (\ s a -> s{_doDHCPConfigurations = a}) . _Default . _Coerce;++-- | The ID of the set of DHCP options.+doDHCPOptionsId :: Lens' DHCPOptions (Maybe Text)+doDHCPOptionsId = lens _doDHCPOptionsId (\ s a -> s{_doDHCPOptionsId = a});++-- | Any tags assigned to the DHCP options set.+doTags :: Lens' DHCPOptions [Tag]+doTags = lens _doTags (\ s a -> s{_doTags = a}) . _Default . _Coerce;++instance FromXML DHCPOptions where+        parseXML x+          = DHCPOptions' <$>+              (x .@? "dhcpConfigurationSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "dhcpOptionsId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable DHCPOptions where++instance NFData DHCPOptions where++-- | Describes a DNS entry.+--+--+--+-- /See:/ 'dnsEntry' smart constructor.+data DNSEntry = DNSEntry'+  { _deHostedZoneId :: !(Maybe Text)+  , _deDNSName      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DNSEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deHostedZoneId' - The ID of the private hosted zone.+--+-- * 'deDNSName' - The DNS name.+dnsEntry+    :: DNSEntry+dnsEntry = DNSEntry' {_deHostedZoneId = Nothing, _deDNSName = Nothing}+++-- | The ID of the private hosted zone.+deHostedZoneId :: Lens' DNSEntry (Maybe Text)+deHostedZoneId = lens _deHostedZoneId (\ s a -> s{_deHostedZoneId = a});++-- | The DNS name.+deDNSName :: Lens' DNSEntry (Maybe Text)+deDNSName = lens _deDNSName (\ s a -> s{_deDNSName = a});++instance FromXML DNSEntry where+        parseXML x+          = DNSEntry' <$>+              (x .@? "hostedZoneId") <*> (x .@? "dnsName")++instance Hashable DNSEntry where++instance NFData DNSEntry where++-- | Describes a disk image.+--+--+--+-- /See:/ 'diskImage' smart constructor.+data DiskImage = DiskImage'+  { _diImage       :: !(Maybe DiskImageDetail)+  , _diVolume      :: !(Maybe VolumeDetail)+  , _diDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DiskImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diImage' - Information about the disk image.+--+-- * 'diVolume' - Information about the volume.+--+-- * 'diDescription' - A description of the disk image.+diskImage+    :: DiskImage+diskImage =+  DiskImage' {_diImage = Nothing, _diVolume = Nothing, _diDescription = Nothing}+++-- | Information about the disk image.+diImage :: Lens' DiskImage (Maybe DiskImageDetail)+diImage = lens _diImage (\ s a -> s{_diImage = a});++-- | Information about the volume.+diVolume :: Lens' DiskImage (Maybe VolumeDetail)+diVolume = lens _diVolume (\ s a -> s{_diVolume = a});++-- | A description of the disk image.+diDescription :: Lens' DiskImage (Maybe Text)+diDescription = lens _diDescription (\ s a -> s{_diDescription = a});++instance Hashable DiskImage where++instance NFData DiskImage where++instance ToQuery DiskImage where+        toQuery DiskImage'{..}+          = mconcat+              ["Image" =: _diImage, "Volume" =: _diVolume,+               "Description" =: _diDescription]++-- | Describes a disk image.+--+--+--+-- /See:/ 'diskImageDescription' smart constructor.+data DiskImageDescription = DiskImageDescription'+  { _dChecksum          :: !(Maybe Text)+  , _dFormat            :: !DiskImageFormat+  , _dImportManifestURL :: !Text+  , _dSize              :: !Integer+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DiskImageDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dChecksum' - The checksum computed for the disk image.+--+-- * 'dFormat' - The disk image format.+--+-- * 'dImportManifestURL' - 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .+--+-- * 'dSize' - The size of the disk image, in GiB.+diskImageDescription+    :: DiskImageFormat -- ^ 'dFormat'+    -> Text -- ^ 'dImportManifestURL'+    -> Integer -- ^ 'dSize'+    -> DiskImageDescription+diskImageDescription pFormat_ pImportManifestURL_ pSize_ =+  DiskImageDescription'+  { _dChecksum = Nothing+  , _dFormat = pFormat_+  , _dImportManifestURL = pImportManifestURL_+  , _dSize = pSize_+  }+++-- | The checksum computed for the disk image.+dChecksum :: Lens' DiskImageDescription (Maybe Text)+dChecksum = lens _dChecksum (\ s a -> s{_dChecksum = a});++-- | The disk image format.+dFormat :: Lens' DiskImageDescription DiskImageFormat+dFormat = lens _dFormat (\ s a -> s{_dFormat = 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .+dImportManifestURL :: Lens' DiskImageDescription Text+dImportManifestURL = lens _dImportManifestURL (\ s a -> s{_dImportManifestURL = a});++-- | The size of the disk image, in GiB.+dSize :: Lens' DiskImageDescription Integer+dSize = lens _dSize (\ s a -> s{_dSize = a});++instance FromXML DiskImageDescription where+        parseXML x+          = DiskImageDescription' <$>+              (x .@? "checksum") <*> (x .@ "format") <*>+                (x .@ "importManifestUrl")+                <*> (x .@ "size")++instance Hashable DiskImageDescription where++instance NFData DiskImageDescription where++-- | Describes a disk image.+--+--+--+-- /See:/ 'diskImageDetail' smart constructor.+data DiskImageDetail = DiskImageDetail'+  { _didBytes             :: !Integer+  , _didFormat            :: !DiskImageFormat+  , _didImportManifestURL :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DiskImageDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'didBytes' - The size of the disk image, in GiB.+--+-- * 'didFormat' - The disk image format.+--+-- * 'didImportManifestURL' - 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .+diskImageDetail+    :: Integer -- ^ 'didBytes'+    -> DiskImageFormat -- ^ 'didFormat'+    -> Text -- ^ 'didImportManifestURL'+    -> DiskImageDetail+diskImageDetail pBytes_ pFormat_ pImportManifestURL_ =+  DiskImageDetail'+  { _didBytes = pBytes_+  , _didFormat = pFormat_+  , _didImportManifestURL = pImportManifestURL_+  }+++-- | The size of the disk image, in GiB.+didBytes :: Lens' DiskImageDetail Integer+didBytes = lens _didBytes (\ s a -> s{_didBytes = a});++-- | The disk image format.+didFormat :: Lens' DiskImageDetail DiskImageFormat+didFormat = lens _didFormat (\ s a -> s{_didFormat = 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 <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic in the /Amazon Simple Storage Service Developer Guide/ . For information about the import manifest referenced by this API action, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html VM Import Manifest> .+didImportManifestURL :: Lens' DiskImageDetail Text+didImportManifestURL = lens _didImportManifestURL (\ s a -> s{_didImportManifestURL = a});++instance Hashable DiskImageDetail where++instance NFData DiskImageDetail where++instance ToQuery DiskImageDetail where+        toQuery DiskImageDetail'{..}+          = mconcat+              ["Bytes" =: _didBytes, "Format" =: _didFormat,+               "ImportManifestUrl" =: _didImportManifestURL]++-- | Describes a disk image volume.+--+--+--+-- /See:/ 'diskImageVolumeDescription' smart constructor.+data DiskImageVolumeDescription = DiskImageVolumeDescription'+  { _divdSize :: !(Maybe Integer)+  , _divdId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DiskImageVolumeDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'divdSize' - The size of the volume, in GiB.+--+-- * 'divdId' - The volume identifier.+diskImageVolumeDescription+    :: Text -- ^ 'divdId'+    -> DiskImageVolumeDescription+diskImageVolumeDescription pId_ =+  DiskImageVolumeDescription' {_divdSize = Nothing, _divdId = pId_}+++-- | The size of the volume, in GiB.+divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)+divdSize = lens _divdSize (\ s a -> s{_divdSize = a});++-- | The volume identifier.+divdId :: Lens' DiskImageVolumeDescription Text+divdId = lens _divdId (\ s a -> s{_divdId = a});++instance FromXML DiskImageVolumeDescription where+        parseXML x+          = DiskImageVolumeDescription' <$>+              (x .@? "size") <*> (x .@ "id")++instance Hashable DiskImageVolumeDescription where++instance NFData DiskImageVolumeDescription where++-- | Describes a block device for an EBS volume.+--+--+--+-- /See:/ 'ebsBlockDevice' smart constructor.+data EBSBlockDevice = EBSBlockDevice'+  { _ebdDeleteOnTermination :: !(Maybe Bool)+  , _ebdVolumeSize          :: !(Maybe Int)+  , _ebdIOPS                :: !(Maybe Int)+  , _ebdEncrypted           :: !(Maybe Bool)+  , _ebdVolumeType          :: !(Maybe VolumeType)+  , _ebdSnapshotId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EBSBlockDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ebdDeleteOnTermination' - Indicates whether the EBS volume is deleted on instance termination.+--+-- * 'ebdVolumeSize' - The size of the volume, in GiB. Constraints: 1-16384 for General Purpose SSD (@gp2@ ), 4-16384 for Provisioned IOPS SSD (@io1@ ), 500-16384 for Throughput Optimized HDD (@st1@ ), 500-16384 for Cold HDD (@sc1@ ), and 1-1024 for Magnetic (@standard@ ) 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.+--+-- * 'ebdIOPS' - The number of 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/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.+--+-- * 'ebdEncrypted' - 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.+--+-- * 'ebdVolumeType' - The volume type: @gp2@ , @io1@ , @st1@ , @sc1@ , or @standard@ . Default: @standard@+--+-- * 'ebdSnapshotId' - The ID of the snapshot.+ebsBlockDevice+    :: EBSBlockDevice+ebsBlockDevice =+  EBSBlockDevice'+  { _ebdDeleteOnTermination = Nothing+  , _ebdVolumeSize = Nothing+  , _ebdIOPS = Nothing+  , _ebdEncrypted = Nothing+  , _ebdVolumeType = Nothing+  , _ebdSnapshotId = Nothing+  }+++-- | Indicates whether the EBS volume is deleted on instance termination.+ebdDeleteOnTermination :: Lens' EBSBlockDevice (Maybe Bool)+ebdDeleteOnTermination = lens _ebdDeleteOnTermination (\ s a -> s{_ebdDeleteOnTermination = a});++-- | The size of the volume, in GiB. Constraints: 1-16384 for General Purpose SSD (@gp2@ ), 4-16384 for Provisioned IOPS SSD (@io1@ ), 500-16384 for Throughput Optimized HDD (@st1@ ), 500-16384 for Cold HDD (@sc1@ ), and 1-1024 for Magnetic (@standard@ ) 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)+ebdVolumeSize = lens _ebdVolumeSize (\ s a -> s{_ebdVolumeSize = a});++-- | The number of 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/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.+ebdIOPS :: Lens' EBSBlockDevice (Maybe Int)+ebdIOPS = lens _ebdIOPS (\ s a -> s{_ebdIOPS = 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.+ebdEncrypted :: Lens' EBSBlockDevice (Maybe Bool)+ebdEncrypted = lens _ebdEncrypted (\ s a -> s{_ebdEncrypted = a});++-- | The volume type: @gp2@ , @io1@ , @st1@ , @sc1@ , or @standard@ . Default: @standard@+ebdVolumeType :: Lens' EBSBlockDevice (Maybe VolumeType)+ebdVolumeType = lens _ebdVolumeType (\ s a -> s{_ebdVolumeType = a});++-- | The ID of the snapshot.+ebdSnapshotId :: Lens' EBSBlockDevice (Maybe Text)+ebdSnapshotId = lens _ebdSnapshotId (\ s a -> s{_ebdSnapshotId = a});++instance FromXML EBSBlockDevice where+        parseXML x+          = EBSBlockDevice' <$>+              (x .@? "deleteOnTermination") <*>+                (x .@? "volumeSize")+                <*> (x .@? "iops")+                <*> (x .@? "encrypted")+                <*> (x .@? "volumeType")+                <*> (x .@? "snapshotId")++instance Hashable EBSBlockDevice where++instance NFData EBSBlockDevice where++instance ToQuery EBSBlockDevice where+        toQuery EBSBlockDevice'{..}+          = mconcat+              ["DeleteOnTermination" =: _ebdDeleteOnTermination,+               "VolumeSize" =: _ebdVolumeSize, "Iops" =: _ebdIOPS,+               "Encrypted" =: _ebdEncrypted,+               "VolumeType" =: _ebdVolumeType,+               "SnapshotId" =: _ebdSnapshotId]++-- | Describes a parameter used to set up an EBS volume in a block device mapping.+--+--+--+-- /See:/ 'ebsInstanceBlockDevice' smart constructor.+data EBSInstanceBlockDevice = EBSInstanceBlockDevice'+  { _eibdStatus              :: !(Maybe AttachmentStatus)+  , _eibdDeleteOnTermination :: !(Maybe Bool)+  , _eibdVolumeId            :: !(Maybe Text)+  , _eibdAttachTime          :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EBSInstanceBlockDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eibdStatus' - The attachment state.+--+-- * 'eibdDeleteOnTermination' - Indicates whether the volume is deleted on instance termination.+--+-- * 'eibdVolumeId' - The ID of the EBS volume.+--+-- * 'eibdAttachTime' - The time stamp when the attachment initiated.+ebsInstanceBlockDevice+    :: EBSInstanceBlockDevice+ebsInstanceBlockDevice =+  EBSInstanceBlockDevice'+  { _eibdStatus = Nothing+  , _eibdDeleteOnTermination = Nothing+  , _eibdVolumeId = Nothing+  , _eibdAttachTime = Nothing+  }+++-- | The attachment state.+eibdStatus :: Lens' EBSInstanceBlockDevice (Maybe AttachmentStatus)+eibdStatus = lens _eibdStatus (\ s a -> s{_eibdStatus = a});++-- | Indicates whether the volume is deleted on instance termination.+eibdDeleteOnTermination :: Lens' EBSInstanceBlockDevice (Maybe Bool)+eibdDeleteOnTermination = lens _eibdDeleteOnTermination (\ s a -> s{_eibdDeleteOnTermination = a});++-- | The ID of the EBS volume.+eibdVolumeId :: Lens' EBSInstanceBlockDevice (Maybe Text)+eibdVolumeId = lens _eibdVolumeId (\ s a -> s{_eibdVolumeId = a});++-- | The time stamp when the attachment initiated.+eibdAttachTime :: Lens' EBSInstanceBlockDevice (Maybe UTCTime)+eibdAttachTime = lens _eibdAttachTime (\ s a -> s{_eibdAttachTime = a}) . mapping _Time;++instance FromXML EBSInstanceBlockDevice where+        parseXML x+          = EBSInstanceBlockDevice' <$>+              (x .@? "status") <*> (x .@? "deleteOnTermination")+                <*> (x .@? "volumeId")+                <*> (x .@? "attachTime")++instance Hashable EBSInstanceBlockDevice where++instance NFData EBSInstanceBlockDevice where++-- | Describes information used to set up an EBS volume specified in a block device mapping.+--+--+--+-- /See:/ 'ebsInstanceBlockDeviceSpecification' smart constructor.+data EBSInstanceBlockDeviceSpecification = EBSInstanceBlockDeviceSpecification'+  { _eibdsDeleteOnTermination :: !(Maybe Bool)+  , _eibdsVolumeId            :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EBSInstanceBlockDeviceSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eibdsDeleteOnTermination' - Indicates whether the volume is deleted on instance termination.+--+-- * 'eibdsVolumeId' - The ID of the EBS volume.+ebsInstanceBlockDeviceSpecification+    :: EBSInstanceBlockDeviceSpecification+ebsInstanceBlockDeviceSpecification =+  EBSInstanceBlockDeviceSpecification'+  {_eibdsDeleteOnTermination = Nothing, _eibdsVolumeId = Nothing}+++-- | Indicates whether the volume is deleted on instance termination.+eibdsDeleteOnTermination :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Bool)+eibdsDeleteOnTermination = lens _eibdsDeleteOnTermination (\ s a -> s{_eibdsDeleteOnTermination = a});++-- | The ID of the EBS volume.+eibdsVolumeId :: Lens' EBSInstanceBlockDeviceSpecification (Maybe Text)+eibdsVolumeId = lens _eibdsVolumeId (\ s a -> s{_eibdsVolumeId = a});++instance Hashable EBSInstanceBlockDeviceSpecification+         where++instance NFData EBSInstanceBlockDeviceSpecification+         where++instance ToQuery EBSInstanceBlockDeviceSpecification+         where+        toQuery EBSInstanceBlockDeviceSpecification'{..}+          = mconcat+              ["DeleteOnTermination" =: _eibdsDeleteOnTermination,+               "VolumeId" =: _eibdsVolumeId]++-- | Describes an egress-only Internet gateway.+--+--+--+-- /See:/ 'egressOnlyInternetGateway' smart constructor.+data EgressOnlyInternetGateway = EgressOnlyInternetGateway'+  { _eoigEgressOnlyInternetGatewayId :: !(Maybe Text)+  , _eoigAttachments                 :: !(Maybe [InternetGatewayAttachment])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EgressOnlyInternetGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eoigEgressOnlyInternetGatewayId' - The ID of the egress-only Internet gateway.+--+-- * 'eoigAttachments' - Information about the attachment of the egress-only Internet gateway.+egressOnlyInternetGateway+    :: EgressOnlyInternetGateway+egressOnlyInternetGateway =+  EgressOnlyInternetGateway'+  {_eoigEgressOnlyInternetGatewayId = Nothing, _eoigAttachments = Nothing}+++-- | The ID of the egress-only Internet gateway.+eoigEgressOnlyInternetGatewayId :: Lens' EgressOnlyInternetGateway (Maybe Text)+eoigEgressOnlyInternetGatewayId = lens _eoigEgressOnlyInternetGatewayId (\ s a -> s{_eoigEgressOnlyInternetGatewayId = a});++-- | Information about the attachment of the egress-only Internet gateway.+eoigAttachments :: Lens' EgressOnlyInternetGateway [InternetGatewayAttachment]+eoigAttachments = lens _eoigAttachments (\ s a -> s{_eoigAttachments = a}) . _Default . _Coerce;++instance FromXML EgressOnlyInternetGateway where+        parseXML x+          = EgressOnlyInternetGateway' <$>+              (x .@? "egressOnlyInternetGatewayId") <*>+                (x .@? "attachmentSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable EgressOnlyInternetGateway where++instance NFData EgressOnlyInternetGateway where++-- | Describes the association between an instance and an Elastic GPU.+--+--+--+-- /See:/ 'elasticGpuAssociation' smart constructor.+data ElasticGpuAssociation = ElasticGpuAssociation'+  { _egaElasticGpuId               :: !(Maybe Text)+  , _egaElasticGpuAssociationId    :: !(Maybe Text)+  , _egaElasticGpuAssociationTime  :: !(Maybe Text)+  , _egaElasticGpuAssociationState :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ElasticGpuAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'egaElasticGpuId' - The ID of the Elastic GPU.+--+-- * 'egaElasticGpuAssociationId' - The ID of the association.+--+-- * 'egaElasticGpuAssociationTime' - The time the Elastic GPU was associated with the instance.+--+-- * 'egaElasticGpuAssociationState' - The state of the association between the instance and the Elastic GPU.+elasticGpuAssociation+    :: ElasticGpuAssociation+elasticGpuAssociation =+  ElasticGpuAssociation'+  { _egaElasticGpuId = Nothing+  , _egaElasticGpuAssociationId = Nothing+  , _egaElasticGpuAssociationTime = Nothing+  , _egaElasticGpuAssociationState = Nothing+  }+++-- | The ID of the Elastic GPU.+egaElasticGpuId :: Lens' ElasticGpuAssociation (Maybe Text)+egaElasticGpuId = lens _egaElasticGpuId (\ s a -> s{_egaElasticGpuId = a});++-- | The ID of the association.+egaElasticGpuAssociationId :: Lens' ElasticGpuAssociation (Maybe Text)+egaElasticGpuAssociationId = lens _egaElasticGpuAssociationId (\ s a -> s{_egaElasticGpuAssociationId = a});++-- | The time the Elastic GPU was associated with the instance.+egaElasticGpuAssociationTime :: Lens' ElasticGpuAssociation (Maybe Text)+egaElasticGpuAssociationTime = lens _egaElasticGpuAssociationTime (\ s a -> s{_egaElasticGpuAssociationTime = a});++-- | The state of the association between the instance and the Elastic GPU.+egaElasticGpuAssociationState :: Lens' ElasticGpuAssociation (Maybe Text)+egaElasticGpuAssociationState = lens _egaElasticGpuAssociationState (\ s a -> s{_egaElasticGpuAssociationState = a});++instance FromXML ElasticGpuAssociation where+        parseXML x+          = ElasticGpuAssociation' <$>+              (x .@? "elasticGpuId") <*>+                (x .@? "elasticGpuAssociationId")+                <*> (x .@? "elasticGpuAssociationTime")+                <*> (x .@? "elasticGpuAssociationState")++instance Hashable ElasticGpuAssociation where++instance NFData ElasticGpuAssociation where++-- | Describes the status of an Elastic GPU.+--+--+--+-- /See:/ 'elasticGpuHealth' smart constructor.+newtype ElasticGpuHealth = ElasticGpuHealth'+  { _eghStatus :: Maybe ElasticGpuStatus+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ElasticGpuHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eghStatus' - The health status.+elasticGpuHealth+    :: ElasticGpuHealth+elasticGpuHealth = ElasticGpuHealth' {_eghStatus = Nothing}+++-- | The health status.+eghStatus :: Lens' ElasticGpuHealth (Maybe ElasticGpuStatus)+eghStatus = lens _eghStatus (\ s a -> s{_eghStatus = a});++instance FromXML ElasticGpuHealth where+        parseXML x = ElasticGpuHealth' <$> (x .@? "status")++instance Hashable ElasticGpuHealth where++instance NFData ElasticGpuHealth where++-- | A specification for an Elastic GPU.+--+--+--+-- /See:/ 'elasticGpuSpecification' smart constructor.+newtype ElasticGpuSpecification = ElasticGpuSpecification'+  { _egsType :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ElasticGpuSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'egsType' - The type of Elastic GPU.+elasticGpuSpecification+    :: Text -- ^ 'egsType'+    -> ElasticGpuSpecification+elasticGpuSpecification pType_ = ElasticGpuSpecification' {_egsType = pType_}+++-- | The type of Elastic GPU.+egsType :: Lens' ElasticGpuSpecification Text+egsType = lens _egsType (\ s a -> s{_egsType = a});++instance Hashable ElasticGpuSpecification where++instance NFData ElasticGpuSpecification where++instance ToQuery ElasticGpuSpecification where+        toQuery ElasticGpuSpecification'{..}+          = mconcat ["Type" =: _egsType]++-- | Describes an Elastic GPU.+--+--+--+-- /See:/ 'elasticGpus' smart constructor.+data ElasticGpus = ElasticGpus'+  { _egInstanceId       :: !(Maybe Text)+  , _egElasticGpuType   :: !(Maybe Text)+  , _egElasticGpuId     :: !(Maybe Text)+  , _egElasticGpuState  :: !(Maybe ElasticGpuState)+  , _egElasticGpuHealth :: !(Maybe ElasticGpuHealth)+  , _egAvailabilityZone :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ElasticGpus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'egInstanceId' - The ID of the instance to which the Elastic GPU is attached.+--+-- * 'egElasticGpuType' - The type of Elastic GPU.+--+-- * 'egElasticGpuId' - The ID of the Elastic GPU.+--+-- * 'egElasticGpuState' - The state of the Elastic GPU.+--+-- * 'egElasticGpuHealth' - The status of the Elastic GPU.+--+-- * 'egAvailabilityZone' - The Availability Zone in the which the Elastic GPU resides.+elasticGpus+    :: ElasticGpus+elasticGpus =+  ElasticGpus'+  { _egInstanceId = Nothing+  , _egElasticGpuType = Nothing+  , _egElasticGpuId = Nothing+  , _egElasticGpuState = Nothing+  , _egElasticGpuHealth = Nothing+  , _egAvailabilityZone = Nothing+  }+++-- | The ID of the instance to which the Elastic GPU is attached.+egInstanceId :: Lens' ElasticGpus (Maybe Text)+egInstanceId = lens _egInstanceId (\ s a -> s{_egInstanceId = a});++-- | The type of Elastic GPU.+egElasticGpuType :: Lens' ElasticGpus (Maybe Text)+egElasticGpuType = lens _egElasticGpuType (\ s a -> s{_egElasticGpuType = a});++-- | The ID of the Elastic GPU.+egElasticGpuId :: Lens' ElasticGpus (Maybe Text)+egElasticGpuId = lens _egElasticGpuId (\ s a -> s{_egElasticGpuId = a});++-- | The state of the Elastic GPU.+egElasticGpuState :: Lens' ElasticGpus (Maybe ElasticGpuState)+egElasticGpuState = lens _egElasticGpuState (\ s a -> s{_egElasticGpuState = a});++-- | The status of the Elastic GPU.+egElasticGpuHealth :: Lens' ElasticGpus (Maybe ElasticGpuHealth)+egElasticGpuHealth = lens _egElasticGpuHealth (\ s a -> s{_egElasticGpuHealth = a});++-- | The Availability Zone in the which the Elastic GPU resides.+egAvailabilityZone :: Lens' ElasticGpus (Maybe Text)+egAvailabilityZone = lens _egAvailabilityZone (\ s a -> s{_egAvailabilityZone = a});++instance FromXML ElasticGpus where+        parseXML x+          = ElasticGpus' <$>+              (x .@? "instanceId") <*> (x .@? "elasticGpuType") <*>+                (x .@? "elasticGpuId")+                <*> (x .@? "elasticGpuState")+                <*> (x .@? "elasticGpuHealth")+                <*> (x .@? "availabilityZone")++instance Hashable ElasticGpus where++instance NFData ElasticGpus where++-- | Describes a Spot fleet event.+--+--+--+-- /See:/ 'eventInformation' smart constructor.+data EventInformation = EventInformation'+  { _eiInstanceId       :: !(Maybe Text)+  , _eiEventDescription :: !(Maybe Text)+  , _eiEventSubType     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EventInformation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eiInstanceId' - The ID of the instance. This information is available only for @instanceChange@ events.+--+-- * 'eiEventDescription' - The description of the event.+--+-- * 'eiEventSubType' - The event. The following are the @error@ events:     * @iamFleetRoleInvalid@ - The Spot fleet did not have the required permissions either to launch or terminate an instance.     * @launchSpecTemporarilyBlacklisted@ - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.     * @spotFleetRequestConfigurationInvalid@ - The configuration is not valid. For more information, see the description of the event.     * @spotInstanceCountLimitExceeded@ - You've reached the limit on the number of Spot instances that you can launch. The following are the @fleetRequestChange@ events:     * @active@ - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot instances.     * @cancelled@ - The Spot fleet is canceled and has no running Spot instances. The Spot fleet will be deleted two days after its instances were terminated.     * @cancelled_running@ - The Spot fleet is canceled and will not launch additional Spot instances, but its existing Spot instances continue to run until they are interrupted or terminated.     * @cancelled_terminating@ - The Spot fleet is canceled and its Spot instances are terminating.     * @expired@ - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with @TerminateInstancesWithExpiration@ set.     * @modify_in_progress@ - A request to modify the Spot fleet request was accepted and is in progress.     * @modify_successful@ - The Spot fleet request was modified.     * @price_update@ - The bid price for a launch configuration was adjusted because it was too high. This change is permanent.     * @submitted@ - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot instances. The following are the @instanceChange@ events:     * @launched@ - A bid was fulfilled and a new instance was launched.     * @terminated@ - An instance was terminated by the user. The following are the @Information@ events:     * @launchSpecUnusable@ - The bid price of a launch specification is not valid because it is below the market price or the market price is above the On-Demand price.     * @fleetProgressHalted@ - The bid price of every launch specification is not valid. A launch specification might become valid if the market price changes.+eventInformation+    :: EventInformation+eventInformation =+  EventInformation'+  { _eiInstanceId = Nothing+  , _eiEventDescription = Nothing+  , _eiEventSubType = Nothing+  }+++-- | The ID of the instance. This information is available only for @instanceChange@ events.+eiInstanceId :: Lens' EventInformation (Maybe Text)+eiInstanceId = lens _eiInstanceId (\ s a -> s{_eiInstanceId = a});++-- | The description of the event.+eiEventDescription :: Lens' EventInformation (Maybe Text)+eiEventDescription = lens _eiEventDescription (\ s a -> s{_eiEventDescription = a});++-- | The event. The following are the @error@ events:     * @iamFleetRoleInvalid@ - The Spot fleet did not have the required permissions either to launch or terminate an instance.     * @launchSpecTemporarilyBlacklisted@ - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.     * @spotFleetRequestConfigurationInvalid@ - The configuration is not valid. For more information, see the description of the event.     * @spotInstanceCountLimitExceeded@ - You've reached the limit on the number of Spot instances that you can launch. The following are the @fleetRequestChange@ events:     * @active@ - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot instances.     * @cancelled@ - The Spot fleet is canceled and has no running Spot instances. The Spot fleet will be deleted two days after its instances were terminated.     * @cancelled_running@ - The Spot fleet is canceled and will not launch additional Spot instances, but its existing Spot instances continue to run until they are interrupted or terminated.     * @cancelled_terminating@ - The Spot fleet is canceled and its Spot instances are terminating.     * @expired@ - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with @TerminateInstancesWithExpiration@ set.     * @modify_in_progress@ - A request to modify the Spot fleet request was accepted and is in progress.     * @modify_successful@ - The Spot fleet request was modified.     * @price_update@ - The bid price for a launch configuration was adjusted because it was too high. This change is permanent.     * @submitted@ - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot instances. The following are the @instanceChange@ events:     * @launched@ - A bid was fulfilled and a new instance was launched.     * @terminated@ - An instance was terminated by the user. The following are the @Information@ events:     * @launchSpecUnusable@ - The bid price of a launch specification is not valid because it is below the market price or the market price is above the On-Demand price.     * @fleetProgressHalted@ - The bid price of every launch specification is not valid. A launch specification might become valid if the market price changes.+eiEventSubType :: Lens' EventInformation (Maybe Text)+eiEventSubType = lens _eiEventSubType (\ s a -> s{_eiEventSubType = a});++instance FromXML EventInformation where+        parseXML x+          = EventInformation' <$>+              (x .@? "instanceId") <*> (x .@? "eventDescription")+                <*> (x .@? "eventSubType")++instance Hashable EventInformation where++instance NFData EventInformation where++-- | Describes an instance export task.+--+--+--+-- /See:/ 'exportTask' smart constructor.+data ExportTask = ExportTask'+  { _etDescription           :: !Text+  , _etExportTaskId          :: !Text+  , _etExportToS3Task        :: !ExportToS3Task+  , _etInstanceExportDetails :: !InstanceExportDetails+  , _etState                 :: !ExportTaskState+  , _etStatusMessage         :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ExportTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etDescription' - A description of the resource being exported.+--+-- * 'etExportTaskId' - The ID of the export task.+--+-- * 'etExportToS3Task' - Information about the export task.+--+-- * 'etInstanceExportDetails' - Information about the instance to export.+--+-- * 'etState' - The state of the export task.+--+-- * 'etStatusMessage' - The status message related to the export task.+exportTask+    :: Text -- ^ 'etDescription'+    -> Text -- ^ 'etExportTaskId'+    -> ExportToS3Task -- ^ 'etExportToS3Task'+    -> InstanceExportDetails -- ^ 'etInstanceExportDetails'+    -> ExportTaskState -- ^ 'etState'+    -> Text -- ^ 'etStatusMessage'+    -> ExportTask+exportTask pDescription_ pExportTaskId_ pExportToS3Task_ pInstanceExportDetails_ pState_ pStatusMessage_ =+  ExportTask'+  { _etDescription = pDescription_+  , _etExportTaskId = pExportTaskId_+  , _etExportToS3Task = pExportToS3Task_+  , _etInstanceExportDetails = pInstanceExportDetails_+  , _etState = pState_+  , _etStatusMessage = pStatusMessage_+  }+++-- | A description of the resource being exported.+etDescription :: Lens' ExportTask Text+etDescription = lens _etDescription (\ s a -> s{_etDescription = a});++-- | The ID of the export task.+etExportTaskId :: Lens' ExportTask Text+etExportTaskId = lens _etExportTaskId (\ s a -> s{_etExportTaskId = a});++-- | Information about the export task.+etExportToS3Task :: Lens' ExportTask ExportToS3Task+etExportToS3Task = lens _etExportToS3Task (\ s a -> s{_etExportToS3Task = a});++-- | Information about the instance to export.+etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails+etInstanceExportDetails = lens _etInstanceExportDetails (\ s a -> s{_etInstanceExportDetails = a});++-- | The state of the export task.+etState :: Lens' ExportTask ExportTaskState+etState = lens _etState (\ s a -> s{_etState = a});++-- | The status message related to the export task.+etStatusMessage :: Lens' ExportTask Text+etStatusMessage = lens _etStatusMessage (\ s a -> s{_etStatusMessage = a});++instance FromXML ExportTask where+        parseXML x+          = ExportTask' <$>+              (x .@ "description") <*> (x .@ "exportTaskId") <*>+                (x .@ "exportToS3")+                <*> (x .@ "instanceExport")+                <*> (x .@ "state")+                <*> (x .@ "statusMessage")++instance Hashable ExportTask where++instance NFData ExportTask where++-- | Describes the format and location for an instance export task.+--+--+--+-- /See:/ 'exportToS3Task' smart constructor.+data ExportToS3Task = ExportToS3Task'+  { _etstS3Key           :: !(Maybe Text)+  , _etstContainerFormat :: !(Maybe ContainerFormat)+  , _etstS3Bucket        :: !(Maybe Text)+  , _etstDiskImageFormat :: !(Maybe DiskImageFormat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ExportToS3Task' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etstS3Key' - The encryption key for your S3 bucket.+--+-- * 'etstContainerFormat' - The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.+--+-- * 'etstS3Bucket' - The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .+--+-- * 'etstDiskImageFormat' - The format for the exported image.+exportToS3Task+    :: ExportToS3Task+exportToS3Task =+  ExportToS3Task'+  { _etstS3Key = Nothing+  , _etstContainerFormat = Nothing+  , _etstS3Bucket = Nothing+  , _etstDiskImageFormat = Nothing+  }+++-- | The encryption key for your S3 bucket.+etstS3Key :: Lens' ExportToS3Task (Maybe Text)+etstS3Key = lens _etstS3Key (\ s a -> s{_etstS3Key = a});++-- | 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)+etstContainerFormat = lens _etstContainerFormat (\ s a -> s{_etstContainerFormat = a});++-- | The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .+etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)+etstS3Bucket = lens _etstS3Bucket (\ s a -> s{_etstS3Bucket = a});++-- | The format for the exported image.+etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)+etstDiskImageFormat = lens _etstDiskImageFormat (\ s a -> s{_etstDiskImageFormat = a});++instance FromXML ExportToS3Task where+        parseXML x+          = ExportToS3Task' <$>+              (x .@? "s3Key") <*> (x .@? "containerFormat") <*>+                (x .@? "s3Bucket")+                <*> (x .@? "diskImageFormat")++instance Hashable ExportToS3Task where++instance NFData ExportToS3Task where++-- | Describes an instance export task.+--+--+--+-- /See:/ 'exportToS3TaskSpecification' smart constructor.+data ExportToS3TaskSpecification = ExportToS3TaskSpecification'+  { _etstsContainerFormat :: !(Maybe ContainerFormat)+  , _etstsS3Prefix        :: !(Maybe Text)+  , _etstsS3Bucket        :: !(Maybe Text)+  , _etstsDiskImageFormat :: !(Maybe DiskImageFormat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ExportToS3TaskSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'etstsContainerFormat' - The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.+--+-- * 'etstsS3Prefix' - The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.+--+-- * 'etstsS3Bucket' - The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .+--+-- * 'etstsDiskImageFormat' - The format for the exported image.+exportToS3TaskSpecification+    :: ExportToS3TaskSpecification+exportToS3TaskSpecification =+  ExportToS3TaskSpecification'+  { _etstsContainerFormat = Nothing+  , _etstsS3Prefix = Nothing+  , _etstsS3Bucket = Nothing+  , _etstsDiskImageFormat = Nothing+  }+++-- | 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)+etstsContainerFormat = lens _etstsContainerFormat (\ s a -> s{_etstsContainerFormat = a});++-- | The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.+etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)+etstsS3Prefix = lens _etstsS3Prefix (\ s a -> s{_etstsS3Prefix = a});++-- | The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account @vm-import-export@amazon.com@ .+etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)+etstsS3Bucket = lens _etstsS3Bucket (\ s a -> s{_etstsS3Bucket = a});++-- | The format for the exported image.+etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)+etstsDiskImageFormat = lens _etstsDiskImageFormat (\ s a -> s{_etstsDiskImageFormat = a});++instance Hashable ExportToS3TaskSpecification where++instance NFData ExportToS3TaskSpecification where++instance ToQuery ExportToS3TaskSpecification where+        toQuery ExportToS3TaskSpecification'{..}+          = mconcat+              ["ContainerFormat" =: _etstsContainerFormat,+               "S3Prefix" =: _etstsS3Prefix,+               "S3Bucket" =: _etstsS3Bucket,+               "DiskImageFormat" =: _etstsDiskImageFormat]++-- | A filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria, such as tags, attributes, or IDs.+--+--+--+-- /See:/ 'filter'' smart constructor.+data Filter = Filter'+  { _fValues :: !(Maybe [Text])+  , _fName   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Filter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fValues' - One or more filter values. Filter values are case-sensitive.+--+-- * 'fName' - The name of the filter. Filter names are case-sensitive.+filter'+    :: Text -- ^ 'fName'+    -> Filter+filter' pName_ = Filter' {_fValues = Nothing, _fName = pName_}+++-- | One or more filter values. Filter values are case-sensitive.+fValues :: Lens' Filter [Text]+fValues = lens _fValues (\ s a -> s{_fValues = a}) . _Default . _Coerce;++-- | The name of the filter. Filter names are case-sensitive.+fName :: Lens' Filter Text+fName = lens _fName (\ s a -> s{_fName = a});++instance Hashable Filter where++instance NFData Filter where++instance ToQuery Filter where+        toQuery Filter'{..}+          = mconcat+              [toQuery (toQueryList "Value" <$> _fValues),+               "Name" =: _fName]++-- | Describes a flow log.+--+--+--+-- /See:/ 'flowLog' smart constructor.+data FlowLog = FlowLog'+  { _flCreationTime             :: !(Maybe ISO8601)+  , _flResourceId               :: !(Maybe Text)+  , _flFlowLogStatus            :: !(Maybe Text)+  , _flTrafficType              :: !(Maybe TrafficType)+  , _flDeliverLogsStatus        :: !(Maybe Text)+  , _flDeliverLogsErrorMessage  :: !(Maybe Text)+  , _flLogGroupName             :: !(Maybe Text)+  , _flDeliverLogsPermissionARN :: !(Maybe Text)+  , _flFlowLogId                :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FlowLog' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flCreationTime' - The date and time the flow log was created.+--+-- * 'flResourceId' - The ID of the resource on which the flow log was created.+--+-- * 'flFlowLogStatus' - The status of the flow log (@ACTIVE@ ).+--+-- * 'flTrafficType' - The type of traffic captured for the flow log.+--+-- * 'flDeliverLogsStatus' - The status of the logs delivery (@SUCCESS@ | @FAILED@ ).+--+-- * 'flDeliverLogsErrorMessage' - Information about the error that occurred. @Rate limited@ 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. @Access error@ indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. @Unknown error@ indicates an internal error.+--+-- * 'flLogGroupName' - The name of the flow log group.+--+-- * 'flDeliverLogsPermissionARN' - The ARN of the IAM role that posts logs to CloudWatch Logs.+--+-- * 'flFlowLogId' - The flow log ID.+flowLog+    :: FlowLog+flowLog =+  FlowLog'+  { _flCreationTime = Nothing+  , _flResourceId = Nothing+  , _flFlowLogStatus = Nothing+  , _flTrafficType = Nothing+  , _flDeliverLogsStatus = Nothing+  , _flDeliverLogsErrorMessage = Nothing+  , _flLogGroupName = Nothing+  , _flDeliverLogsPermissionARN = Nothing+  , _flFlowLogId = Nothing+  }+++-- | The date and time the flow log was created.+flCreationTime :: Lens' FlowLog (Maybe UTCTime)+flCreationTime = lens _flCreationTime (\ s a -> s{_flCreationTime = a}) . mapping _Time;++-- | The ID of the resource on which the flow log was created.+flResourceId :: Lens' FlowLog (Maybe Text)+flResourceId = lens _flResourceId (\ s a -> s{_flResourceId = a});++-- | The status of the flow log (@ACTIVE@ ).+flFlowLogStatus :: Lens' FlowLog (Maybe Text)+flFlowLogStatus = lens _flFlowLogStatus (\ s a -> s{_flFlowLogStatus = a});++-- | The type of traffic captured for the flow log.+flTrafficType :: Lens' FlowLog (Maybe TrafficType)+flTrafficType = lens _flTrafficType (\ s a -> s{_flTrafficType = a});++-- | The status of the logs delivery (@SUCCESS@ | @FAILED@ ).+flDeliverLogsStatus :: Lens' FlowLog (Maybe Text)+flDeliverLogsStatus = lens _flDeliverLogsStatus (\ s a -> s{_flDeliverLogsStatus = a});++-- | Information about the error that occurred. @Rate limited@ 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. @Access error@ indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. @Unknown error@ indicates an internal error.+flDeliverLogsErrorMessage :: Lens' FlowLog (Maybe Text)+flDeliverLogsErrorMessage = lens _flDeliverLogsErrorMessage (\ s a -> s{_flDeliverLogsErrorMessage = a});++-- | The name of the flow log group.+flLogGroupName :: Lens' FlowLog (Maybe Text)+flLogGroupName = lens _flLogGroupName (\ s a -> s{_flLogGroupName = a});++-- | The ARN of the IAM role that posts logs to CloudWatch Logs.+flDeliverLogsPermissionARN :: Lens' FlowLog (Maybe Text)+flDeliverLogsPermissionARN = lens _flDeliverLogsPermissionARN (\ s a -> s{_flDeliverLogsPermissionARN = a});++-- | The flow log ID.+flFlowLogId :: Lens' FlowLog (Maybe Text)+flFlowLogId = lens _flFlowLogId (\ s a -> s{_flFlowLogId = a});++instance FromXML FlowLog where+        parseXML x+          = FlowLog' <$>+              (x .@? "creationTime") <*> (x .@? "resourceId") <*>+                (x .@? "flowLogStatus")+                <*> (x .@? "trafficType")+                <*> (x .@? "deliverLogsStatus")+                <*> (x .@? "deliverLogsErrorMessage")+                <*> (x .@? "logGroupName")+                <*> (x .@? "deliverLogsPermissionArn")+                <*> (x .@? "flowLogId")++instance Hashable FlowLog where++instance NFData FlowLog where++-- | Describes an Amazon FPGA image (AFI).+--+--+--+-- /See:/ 'fpgaImage' smart constructor.+data FpgaImage = FpgaImage'+  { _fiShellVersion      :: !(Maybe Text)+  , _fiPciId             :: !(Maybe PciId)+  , _fiState             :: !(Maybe FpgaImageState)+  , _fiOwnerAlias        :: !(Maybe Text)+  , _fiFpgaImageId       :: !(Maybe Text)+  , _fiOwnerId           :: !(Maybe Text)+  , _fiUpdateTime        :: !(Maybe ISO8601)+  , _fiName              :: !(Maybe Text)+  , _fiProductCodes      :: !(Maybe [ProductCode])+  , _fiDescription       :: !(Maybe Text)+  , _fiCreateTime        :: !(Maybe ISO8601)+  , _fiTags              :: !(Maybe [Tag])+  , _fiPublic            :: !(Maybe Bool)+  , _fiFpgaImageGlobalId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FpgaImage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fiShellVersion' - The version of the AWS Shell that was used to create the bitstream.+--+-- * 'fiPciId' - Information about the PCI bus.+--+-- * 'fiState' - Information about the state of the AFI.+--+-- * 'fiOwnerAlias' - The alias of the AFI owner. Possible values include @self@ , @amazon@ , and @aws-marketplace@ .+--+-- * 'fiFpgaImageId' - The FPGA image identifier (AFI ID).+--+-- * 'fiOwnerId' - The AWS account ID of the AFI owner.+--+-- * 'fiUpdateTime' - The time of the most recent update to the AFI.+--+-- * 'fiName' - The name of the AFI.+--+-- * 'fiProductCodes' - The product codes for the AFI.+--+-- * 'fiDescription' - The description of the AFI.+--+-- * 'fiCreateTime' - The date and time the AFI was created.+--+-- * 'fiTags' - Any tags assigned to the AFI.+--+-- * 'fiPublic' - Indicates whether the AFI is public.+--+-- * 'fiFpgaImageGlobalId' - The global FPGA image identifier (AGFI ID).+fpgaImage+    :: FpgaImage+fpgaImage =+  FpgaImage'+  { _fiShellVersion = Nothing+  , _fiPciId = Nothing+  , _fiState = Nothing+  , _fiOwnerAlias = Nothing+  , _fiFpgaImageId = Nothing+  , _fiOwnerId = Nothing+  , _fiUpdateTime = Nothing+  , _fiName = Nothing+  , _fiProductCodes = Nothing+  , _fiDescription = Nothing+  , _fiCreateTime = Nothing+  , _fiTags = Nothing+  , _fiPublic = Nothing+  , _fiFpgaImageGlobalId = Nothing+  }+++-- | The version of the AWS Shell that was used to create the bitstream.+fiShellVersion :: Lens' FpgaImage (Maybe Text)+fiShellVersion = lens _fiShellVersion (\ s a -> s{_fiShellVersion = a});++-- | Information about the PCI bus.+fiPciId :: Lens' FpgaImage (Maybe PciId)+fiPciId = lens _fiPciId (\ s a -> s{_fiPciId = a});++-- | Information about the state of the AFI.+fiState :: Lens' FpgaImage (Maybe FpgaImageState)+fiState = lens _fiState (\ s a -> s{_fiState = a});++-- | The alias of the AFI owner. Possible values include @self@ , @amazon@ , and @aws-marketplace@ .+fiOwnerAlias :: Lens' FpgaImage (Maybe Text)+fiOwnerAlias = lens _fiOwnerAlias (\ s a -> s{_fiOwnerAlias = a});++-- | The FPGA image identifier (AFI ID).+fiFpgaImageId :: Lens' FpgaImage (Maybe Text)+fiFpgaImageId = lens _fiFpgaImageId (\ s a -> s{_fiFpgaImageId = a});++-- | The AWS account ID of the AFI owner.+fiOwnerId :: Lens' FpgaImage (Maybe Text)+fiOwnerId = lens _fiOwnerId (\ s a -> s{_fiOwnerId = a});++-- | The time of the most recent update to the AFI.+fiUpdateTime :: Lens' FpgaImage (Maybe UTCTime)+fiUpdateTime = lens _fiUpdateTime (\ s a -> s{_fiUpdateTime = a}) . mapping _Time;++-- | The name of the AFI.+fiName :: Lens' FpgaImage (Maybe Text)+fiName = lens _fiName (\ s a -> s{_fiName = a});++-- | The product codes for the AFI.+fiProductCodes :: Lens' FpgaImage [ProductCode]+fiProductCodes = lens _fiProductCodes (\ s a -> s{_fiProductCodes = a}) . _Default . _Coerce;++-- | The description of the AFI.+fiDescription :: Lens' FpgaImage (Maybe Text)+fiDescription = lens _fiDescription (\ s a -> s{_fiDescription = a});++-- | The date and time the AFI was created.+fiCreateTime :: Lens' FpgaImage (Maybe UTCTime)+fiCreateTime = lens _fiCreateTime (\ s a -> s{_fiCreateTime = a}) . mapping _Time;++-- | Any tags assigned to the AFI.+fiTags :: Lens' FpgaImage [Tag]+fiTags = lens _fiTags (\ s a -> s{_fiTags = a}) . _Default . _Coerce;++-- | Indicates whether the AFI is public.+fiPublic :: Lens' FpgaImage (Maybe Bool)+fiPublic = lens _fiPublic (\ s a -> s{_fiPublic = a});++-- | The global FPGA image identifier (AGFI ID).+fiFpgaImageGlobalId :: Lens' FpgaImage (Maybe Text)+fiFpgaImageGlobalId = lens _fiFpgaImageGlobalId (\ s a -> s{_fiFpgaImageGlobalId = a});++instance FromXML FpgaImage where+        parseXML x+          = FpgaImage' <$>+              (x .@? "shellVersion") <*> (x .@? "pciId") <*>+                (x .@? "state")+                <*> (x .@? "ownerAlias")+                <*> (x .@? "fpgaImageId")+                <*> (x .@? "ownerId")+                <*> (x .@? "updateTime")+                <*> (x .@? "name")+                <*>+                (x .@? "productCodes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "description")+                <*> (x .@? "createTime")+                <*>+                (x .@? "tags" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "public")+                <*> (x .@? "fpgaImageGlobalId")++instance Hashable FpgaImage where++instance NFData FpgaImage where++-- | Describes an Amazon FPGA image (AFI) attribute.+--+--+--+-- /See:/ 'fpgaImageAttribute' smart constructor.+data FpgaImageAttribute = FpgaImageAttribute'+  { _fiaFpgaImageId     :: !(Maybe Text)+  , _fiaName            :: !(Maybe Text)+  , _fiaProductCodes    :: !(Maybe [ProductCode])+  , _fiaDescription     :: !(Maybe Text)+  , _fiaLoadPermissions :: !(Maybe [LoadPermission])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FpgaImageAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fiaFpgaImageId' - The ID of the AFI.+--+-- * 'fiaName' - The name of the AFI.+--+-- * 'fiaProductCodes' - One or more product codes.+--+-- * 'fiaDescription' - The description of the AFI.+--+-- * 'fiaLoadPermissions' - One or more load permissions.+fpgaImageAttribute+    :: FpgaImageAttribute+fpgaImageAttribute =+  FpgaImageAttribute'+  { _fiaFpgaImageId = Nothing+  , _fiaName = Nothing+  , _fiaProductCodes = Nothing+  , _fiaDescription = Nothing+  , _fiaLoadPermissions = Nothing+  }+++-- | The ID of the AFI.+fiaFpgaImageId :: Lens' FpgaImageAttribute (Maybe Text)+fiaFpgaImageId = lens _fiaFpgaImageId (\ s a -> s{_fiaFpgaImageId = a});++-- | The name of the AFI.+fiaName :: Lens' FpgaImageAttribute (Maybe Text)+fiaName = lens _fiaName (\ s a -> s{_fiaName = a});++-- | One or more product codes.+fiaProductCodes :: Lens' FpgaImageAttribute [ProductCode]+fiaProductCodes = lens _fiaProductCodes (\ s a -> s{_fiaProductCodes = a}) . _Default . _Coerce;++-- | The description of the AFI.+fiaDescription :: Lens' FpgaImageAttribute (Maybe Text)+fiaDescription = lens _fiaDescription (\ s a -> s{_fiaDescription = a});++-- | One or more load permissions.+fiaLoadPermissions :: Lens' FpgaImageAttribute [LoadPermission]+fiaLoadPermissions = lens _fiaLoadPermissions (\ s a -> s{_fiaLoadPermissions = a}) . _Default . _Coerce;++instance FromXML FpgaImageAttribute where+        parseXML x+          = FpgaImageAttribute' <$>+              (x .@? "fpgaImageId") <*> (x .@? "name") <*>+                (x .@? "productCodes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "description")+                <*>+                (x .@? "loadPermissions" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable FpgaImageAttribute where++instance NFData FpgaImageAttribute where++-- | Describes the state of the bitstream generation process for an Amazon FPGA image (AFI).+--+--+--+-- /See:/ 'fpgaImageState' smart constructor.+data FpgaImageState = FpgaImageState'+  { _fisCode    :: !(Maybe FpgaImageStateCode)+  , _fisMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FpgaImageState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fisCode' - The state. The following are the possible values:     * @pending@ - AFI bitstream generation is in progress.     * @available@ - The AFI is available for use.     * @failed@ - AFI bitstream generation failed.     * @unavailable@ - The AFI is no longer available for use.+--+-- * 'fisMessage' - If the state is @failed@ , this is the error message.+fpgaImageState+    :: FpgaImageState+fpgaImageState = FpgaImageState' {_fisCode = Nothing, _fisMessage = Nothing}+++-- | The state. The following are the possible values:     * @pending@ - AFI bitstream generation is in progress.     * @available@ - The AFI is available for use.     * @failed@ - AFI bitstream generation failed.     * @unavailable@ - The AFI is no longer available for use.+fisCode :: Lens' FpgaImageState (Maybe FpgaImageStateCode)+fisCode = lens _fisCode (\ s a -> s{_fisCode = a});++-- | If the state is @failed@ , this is the error message.+fisMessage :: Lens' FpgaImageState (Maybe Text)+fisMessage = lens _fisMessage (\ s a -> s{_fisMessage = a});++instance FromXML FpgaImageState where+        parseXML x+          = FpgaImageState' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable FpgaImageState where++instance NFData FpgaImageState where++-- | Describes a security group.+--+--+--+-- /See:/ 'groupIdentifier' smart constructor.+data GroupIdentifier = GroupIdentifier'+  { _giGroupId   :: !(Maybe Text)+  , _giGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GroupIdentifier' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'giGroupId' - The ID of the security group.+--+-- * 'giGroupName' - The name of the security group.+groupIdentifier+    :: GroupIdentifier+groupIdentifier =+  GroupIdentifier' {_giGroupId = Nothing, _giGroupName = Nothing}+++-- | The ID of the security group.+giGroupId :: Lens' GroupIdentifier (Maybe Text)+giGroupId = lens _giGroupId (\ s a -> s{_giGroupId = a});++-- | The name of the security group.+giGroupName :: Lens' GroupIdentifier (Maybe Text)+giGroupName = lens _giGroupName (\ s a -> s{_giGroupName = a});++instance FromXML GroupIdentifier where+        parseXML x+          = GroupIdentifier' <$>+              (x .@? "groupId") <*> (x .@? "groupName")++instance Hashable GroupIdentifier where++instance NFData GroupIdentifier where++instance ToQuery GroupIdentifier where+        toQuery GroupIdentifier'{..}+          = mconcat+              ["GroupId" =: _giGroupId,+               "GroupName" =: _giGroupName]++-- | Describes an event in the history of the Spot fleet request.+--+--+--+-- /See:/ 'historyRecord' smart constructor.+data HistoryRecord = HistoryRecord'+  { _hrEventInformation :: !EventInformation+  , _hrEventType        :: !EventType+  , _hrTimestamp        :: !ISO8601+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HistoryRecord' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrEventInformation' - Information about the event.+--+-- * 'hrEventType' - The event type.     * @error@ - An error with the Spot fleet request.     * @fleetRequestChange@ - A change in the status or configuration of the Spot fleet request.     * @instanceChange@ - An instance was launched or terminated.     * @Information@ - An informational event.+--+-- * 'hrTimestamp' - The date and time of the event, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+historyRecord+    :: EventInformation -- ^ 'hrEventInformation'+    -> EventType -- ^ 'hrEventType'+    -> UTCTime -- ^ 'hrTimestamp'+    -> HistoryRecord+historyRecord pEventInformation_ pEventType_ pTimestamp_ =+  HistoryRecord'+  { _hrEventInformation = pEventInformation_+  , _hrEventType = pEventType_+  , _hrTimestamp = _Time # pTimestamp_+  }+++-- | Information about the event.+hrEventInformation :: Lens' HistoryRecord EventInformation+hrEventInformation = lens _hrEventInformation (\ s a -> s{_hrEventInformation = a});++-- | The event type.     * @error@ - An error with the Spot fleet request.     * @fleetRequestChange@ - A change in the status or configuration of the Spot fleet request.     * @instanceChange@ - An instance was launched or terminated.     * @Information@ - An informational event.+hrEventType :: Lens' HistoryRecord EventType+hrEventType = lens _hrEventType (\ s a -> s{_hrEventType = a});++-- | The date and time of the event, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+hrTimestamp :: Lens' HistoryRecord UTCTime+hrTimestamp = lens _hrTimestamp (\ s a -> s{_hrTimestamp = a}) . _Time;++instance FromXML HistoryRecord where+        parseXML x+          = HistoryRecord' <$>+              (x .@ "eventInformation") <*> (x .@ "eventType") <*>+                (x .@ "timestamp")++instance Hashable HistoryRecord where++instance NFData HistoryRecord where++-- | Describes the properties of the Dedicated Host.+--+--+--+-- /See:/ 'host' smart constructor.+data Host = Host'+  { _hState             :: !(Maybe AllocationState)+  , _hClientToken       :: !(Maybe Text)+  , _hHostId            :: !(Maybe Text)+  , _hAvailableCapacity :: !(Maybe AvailableCapacity)+  , _hHostReservationId :: !(Maybe Text)+  , _hHostProperties    :: !(Maybe HostProperties)+  , _hAvailabilityZone  :: !(Maybe Text)+  , _hInstances         :: !(Maybe [HostInstance])+  , _hAutoPlacement     :: !(Maybe AutoPlacement)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Host' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hState' - The Dedicated Host's state.+--+-- * 'hClientToken' - Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/ .+--+-- * 'hHostId' - The ID of the Dedicated Host.+--+-- * 'hAvailableCapacity' - The number of new instances that can be launched onto the Dedicated Host.+--+-- * 'hHostReservationId' - The reservation ID of the Dedicated Host. This returns a @null@ response if the Dedicated Host doesn't have an associated reservation.+--+-- * 'hHostProperties' - The hardware specifications of the Dedicated Host.+--+-- * 'hAvailabilityZone' - The Availability Zone of the Dedicated Host.+--+-- * 'hInstances' - The IDs and instance type that are currently running on the Dedicated Host.+--+-- * 'hAutoPlacement' - Whether auto-placement is on or off.+host+    :: Host+host =+  Host'+  { _hState = Nothing+  , _hClientToken = Nothing+  , _hHostId = Nothing+  , _hAvailableCapacity = Nothing+  , _hHostReservationId = Nothing+  , _hHostProperties = Nothing+  , _hAvailabilityZone = Nothing+  , _hInstances = Nothing+  , _hAutoPlacement = Nothing+  }+++-- | The Dedicated Host's state.+hState :: Lens' Host (Maybe AllocationState)+hState = lens _hState (\ s a -> s{_hState = a});++-- | Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/ .+hClientToken :: Lens' Host (Maybe Text)+hClientToken = lens _hClientToken (\ s a -> s{_hClientToken = a});++-- | The ID of the Dedicated Host.+hHostId :: Lens' Host (Maybe Text)+hHostId = lens _hHostId (\ s a -> s{_hHostId = a});++-- | The number of new instances that can be launched onto the Dedicated Host.+hAvailableCapacity :: Lens' Host (Maybe AvailableCapacity)+hAvailableCapacity = lens _hAvailableCapacity (\ s a -> s{_hAvailableCapacity = a});++-- | The reservation ID of the Dedicated Host. This returns a @null@ response if the Dedicated Host doesn't have an associated reservation.+hHostReservationId :: Lens' Host (Maybe Text)+hHostReservationId = lens _hHostReservationId (\ s a -> s{_hHostReservationId = a});++-- | The hardware specifications of the Dedicated Host.+hHostProperties :: Lens' Host (Maybe HostProperties)+hHostProperties = lens _hHostProperties (\ s a -> s{_hHostProperties = a});++-- | The Availability Zone of the Dedicated Host.+hAvailabilityZone :: Lens' Host (Maybe Text)+hAvailabilityZone = lens _hAvailabilityZone (\ s a -> s{_hAvailabilityZone = a});++-- | The IDs and instance type that are currently running on the Dedicated Host.+hInstances :: Lens' Host [HostInstance]+hInstances = lens _hInstances (\ s a -> s{_hInstances = a}) . _Default . _Coerce;++-- | Whether auto-placement is on or off.+hAutoPlacement :: Lens' Host (Maybe AutoPlacement)+hAutoPlacement = lens _hAutoPlacement (\ s a -> s{_hAutoPlacement = a});++instance FromXML Host where+        parseXML x+          = Host' <$>+              (x .@? "state") <*> (x .@? "clientToken") <*>+                (x .@? "hostId")+                <*> (x .@? "availableCapacity")+                <*> (x .@? "hostReservationId")+                <*> (x .@? "hostProperties")+                <*> (x .@? "availabilityZone")+                <*>+                (x .@? "instances" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "autoPlacement")++instance Hashable Host where++instance NFData Host where++-- | Describes an instance running on a Dedicated Host.+--+--+--+-- /See:/ 'hostInstance' smart constructor.+data HostInstance = HostInstance'+  { _hiInstanceId   :: !(Maybe Text)+  , _hiInstanceType :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HostInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hiInstanceId' - the IDs of instances that are running on the Dedicated Host.+--+-- * 'hiInstanceType' - The instance type size (for example, @m3.medium@ ) of the running instance.+hostInstance+    :: HostInstance+hostInstance =+  HostInstance' {_hiInstanceId = Nothing, _hiInstanceType = Nothing}+++-- | the IDs of instances that are running on the Dedicated Host.+hiInstanceId :: Lens' HostInstance (Maybe Text)+hiInstanceId = lens _hiInstanceId (\ s a -> s{_hiInstanceId = a});++-- | The instance type size (for example, @m3.medium@ ) of the running instance.+hiInstanceType :: Lens' HostInstance (Maybe Text)+hiInstanceType = lens _hiInstanceType (\ s a -> s{_hiInstanceType = a});++instance FromXML HostInstance where+        parseXML x+          = HostInstance' <$>+              (x .@? "instanceId") <*> (x .@? "instanceType")++instance Hashable HostInstance where++instance NFData HostInstance where++-- | Details about the Dedicated Host Reservation offering.+--+--+--+-- /See:/ 'hostOffering' smart constructor.+data HostOffering = HostOffering'+  { _hoInstanceFamily :: !(Maybe Text)+  , _hoCurrencyCode   :: !(Maybe CurrencyCodeValues)+  , _hoHourlyPrice    :: !(Maybe Text)+  , _hoUpfrontPrice   :: !(Maybe Text)+  , _hoOfferingId     :: !(Maybe Text)+  , _hoDuration       :: !(Maybe Int)+  , _hoPaymentOption  :: !(Maybe PaymentOption)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HostOffering' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hoInstanceFamily' - The instance family of the offering.+--+-- * 'hoCurrencyCode' - The currency of the offering.+--+-- * 'hoHourlyPrice' - The hourly price of the offering.+--+-- * 'hoUpfrontPrice' - The upfront price of the offering. Does not apply to No Upfront offerings.+--+-- * 'hoOfferingId' - The ID of the offering.+--+-- * 'hoDuration' - The duration of the offering (in seconds).+--+-- * 'hoPaymentOption' - The available payment option.+hostOffering+    :: HostOffering+hostOffering =+  HostOffering'+  { _hoInstanceFamily = Nothing+  , _hoCurrencyCode = Nothing+  , _hoHourlyPrice = Nothing+  , _hoUpfrontPrice = Nothing+  , _hoOfferingId = Nothing+  , _hoDuration = Nothing+  , _hoPaymentOption = Nothing+  }+++-- | The instance family of the offering.+hoInstanceFamily :: Lens' HostOffering (Maybe Text)+hoInstanceFamily = lens _hoInstanceFamily (\ s a -> s{_hoInstanceFamily = a});++-- | The currency of the offering.+hoCurrencyCode :: Lens' HostOffering (Maybe CurrencyCodeValues)+hoCurrencyCode = lens _hoCurrencyCode (\ s a -> s{_hoCurrencyCode = a});++-- | The hourly price of the offering.+hoHourlyPrice :: Lens' HostOffering (Maybe Text)+hoHourlyPrice = lens _hoHourlyPrice (\ s a -> s{_hoHourlyPrice = a});++-- | The upfront price of the offering. Does not apply to No Upfront offerings.+hoUpfrontPrice :: Lens' HostOffering (Maybe Text)+hoUpfrontPrice = lens _hoUpfrontPrice (\ s a -> s{_hoUpfrontPrice = a});++-- | The ID of the offering.+hoOfferingId :: Lens' HostOffering (Maybe Text)+hoOfferingId = lens _hoOfferingId (\ s a -> s{_hoOfferingId = a});++-- | The duration of the offering (in seconds).+hoDuration :: Lens' HostOffering (Maybe Int)+hoDuration = lens _hoDuration (\ s a -> s{_hoDuration = a});++-- | The available payment option.+hoPaymentOption :: Lens' HostOffering (Maybe PaymentOption)+hoPaymentOption = lens _hoPaymentOption (\ s a -> s{_hoPaymentOption = a});++instance FromXML HostOffering where+        parseXML x+          = HostOffering' <$>+              (x .@? "instanceFamily") <*> (x .@? "currencyCode")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "upfrontPrice")+                <*> (x .@? "offeringId")+                <*> (x .@? "duration")+                <*> (x .@? "paymentOption")++instance Hashable HostOffering where++instance NFData HostOffering where++-- | Describes properties of a Dedicated Host.+--+--+--+-- /See:/ 'hostProperties' smart constructor.+data HostProperties = HostProperties'+  { _hpInstanceType :: !(Maybe Text)+  , _hpTotalVCPUs   :: !(Maybe Int)+  , _hpCores        :: !(Maybe Int)+  , _hpSockets      :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HostProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hpInstanceType' - The instance type size that the Dedicated Host supports (for example, @m3.medium@ ).+--+-- * 'hpTotalVCPUs' - The number of vCPUs on the Dedicated Host.+--+-- * 'hpCores' - The number of cores on the Dedicated Host.+--+-- * 'hpSockets' - The number of sockets on the Dedicated Host.+hostProperties+    :: HostProperties+hostProperties =+  HostProperties'+  { _hpInstanceType = Nothing+  , _hpTotalVCPUs = Nothing+  , _hpCores = Nothing+  , _hpSockets = Nothing+  }+++-- | The instance type size that the Dedicated Host supports (for example, @m3.medium@ ).+hpInstanceType :: Lens' HostProperties (Maybe Text)+hpInstanceType = lens _hpInstanceType (\ s a -> s{_hpInstanceType = a});++-- | The number of vCPUs on the Dedicated Host.+hpTotalVCPUs :: Lens' HostProperties (Maybe Int)+hpTotalVCPUs = lens _hpTotalVCPUs (\ s a -> s{_hpTotalVCPUs = a});++-- | The number of cores on the Dedicated Host.+hpCores :: Lens' HostProperties (Maybe Int)+hpCores = lens _hpCores (\ s a -> s{_hpCores = a});++-- | The number of sockets on the Dedicated Host.+hpSockets :: Lens' HostProperties (Maybe Int)+hpSockets = lens _hpSockets (\ s a -> s{_hpSockets = a});++instance FromXML HostProperties where+        parseXML x+          = HostProperties' <$>+              (x .@? "instanceType") <*> (x .@? "totalVCpus") <*>+                (x .@? "cores")+                <*> (x .@? "sockets")++instance Hashable HostProperties where++instance NFData HostProperties where++-- | Details about the Dedicated Host Reservation and associated Dedicated Hosts.+--+--+--+-- /See:/ 'hostReservation' smart constructor.+data HostReservation = HostReservation'+  { _hrState             :: !(Maybe ReservationState)+  , _hrInstanceFamily    :: !(Maybe Text)+  , _hrCurrencyCode      :: !(Maybe CurrencyCodeValues)+  , _hrHostReservationId :: !(Maybe Text)+  , _hrStart             :: !(Maybe ISO8601)+  , _hrHourlyPrice       :: !(Maybe Text)+  , _hrCount             :: !(Maybe Int)+  , _hrUpfrontPrice      :: !(Maybe Text)+  , _hrEnd               :: !(Maybe ISO8601)+  , _hrHostIdSet         :: !(Maybe [Text])+  , _hrOfferingId        :: !(Maybe Text)+  , _hrDuration          :: !(Maybe Int)+  , _hrPaymentOption     :: !(Maybe PaymentOption)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HostReservation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrState' - The state of the reservation.+--+-- * 'hrInstanceFamily' - 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.+--+-- * 'hrCurrencyCode' - The currency in which the @upfrontPrice@ and @hourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .+--+-- * 'hrHostReservationId' - The ID of the reservation that specifies the associated Dedicated Hosts.+--+-- * 'hrStart' - The date and time that the reservation started.+--+-- * 'hrHourlyPrice' - The hourly price of the reservation.+--+-- * 'hrCount' - The number of Dedicated Hosts the reservation is associated with.+--+-- * 'hrUpfrontPrice' - The upfront price of the reservation.+--+-- * 'hrEnd' - The date and time that the reservation ends.+--+-- * 'hrHostIdSet' - The IDs of the Dedicated Hosts associated with the reservation.+--+-- * 'hrOfferingId' - The ID of the reservation. This remains the same regardless of which Dedicated Hosts are associated with it.+--+-- * 'hrDuration' - The length of the reservation's term, specified in seconds. Can be @31536000 (1 year)@ | @94608000 (3 years)@ .+--+-- * 'hrPaymentOption' - The payment option selected for this reservation.+hostReservation+    :: HostReservation+hostReservation =+  HostReservation'+  { _hrState = Nothing+  , _hrInstanceFamily = Nothing+  , _hrCurrencyCode = Nothing+  , _hrHostReservationId = Nothing+  , _hrStart = Nothing+  , _hrHourlyPrice = Nothing+  , _hrCount = Nothing+  , _hrUpfrontPrice = Nothing+  , _hrEnd = Nothing+  , _hrHostIdSet = Nothing+  , _hrOfferingId = Nothing+  , _hrDuration = Nothing+  , _hrPaymentOption = Nothing+  }+++-- | The state of the reservation.+hrState :: Lens' HostReservation (Maybe ReservationState)+hrState = lens _hrState (\ s a -> s{_hrState = 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.+hrInstanceFamily :: Lens' HostReservation (Maybe Text)+hrInstanceFamily = lens _hrInstanceFamily (\ s a -> s{_hrInstanceFamily = a});++-- | The currency in which the @upfrontPrice@ and @hourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .+hrCurrencyCode :: Lens' HostReservation (Maybe CurrencyCodeValues)+hrCurrencyCode = lens _hrCurrencyCode (\ s a -> s{_hrCurrencyCode = a});++-- | The ID of the reservation that specifies the associated Dedicated Hosts.+hrHostReservationId :: Lens' HostReservation (Maybe Text)+hrHostReservationId = lens _hrHostReservationId (\ s a -> s{_hrHostReservationId = a});++-- | The date and time that the reservation started.+hrStart :: Lens' HostReservation (Maybe UTCTime)+hrStart = lens _hrStart (\ s a -> s{_hrStart = a}) . mapping _Time;++-- | The hourly price of the reservation.+hrHourlyPrice :: Lens' HostReservation (Maybe Text)+hrHourlyPrice = lens _hrHourlyPrice (\ s a -> s{_hrHourlyPrice = a});++-- | The number of Dedicated Hosts the reservation is associated with.+hrCount :: Lens' HostReservation (Maybe Int)+hrCount = lens _hrCount (\ s a -> s{_hrCount = a});++-- | The upfront price of the reservation.+hrUpfrontPrice :: Lens' HostReservation (Maybe Text)+hrUpfrontPrice = lens _hrUpfrontPrice (\ s a -> s{_hrUpfrontPrice = a});++-- | The date and time that the reservation ends.+hrEnd :: Lens' HostReservation (Maybe UTCTime)+hrEnd = lens _hrEnd (\ s a -> s{_hrEnd = a}) . mapping _Time;++-- | The IDs of the Dedicated Hosts associated with the reservation.+hrHostIdSet :: Lens' HostReservation [Text]+hrHostIdSet = lens _hrHostIdSet (\ s a -> s{_hrHostIdSet = a}) . _Default . _Coerce;++-- | The ID of the reservation. This remains the same regardless of which Dedicated Hosts are associated with it.+hrOfferingId :: Lens' HostReservation (Maybe Text)+hrOfferingId = lens _hrOfferingId (\ s a -> s{_hrOfferingId = a});++-- | The length of the reservation's term, specified in seconds. Can be @31536000 (1 year)@ | @94608000 (3 years)@ .+hrDuration :: Lens' HostReservation (Maybe Int)+hrDuration = lens _hrDuration (\ s a -> s{_hrDuration = a});++-- | The payment option selected for this reservation.+hrPaymentOption :: Lens' HostReservation (Maybe PaymentOption)+hrPaymentOption = lens _hrPaymentOption (\ s a -> s{_hrPaymentOption = a});++instance FromXML HostReservation where+        parseXML x+          = HostReservation' <$>+              (x .@? "state") <*> (x .@? "instanceFamily") <*>+                (x .@? "currencyCode")+                <*> (x .@? "hostReservationId")+                <*> (x .@? "start")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "count")+                <*> (x .@? "upfrontPrice")+                <*> (x .@? "end")+                <*>+                (x .@? "hostIdSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "offeringId")+                <*> (x .@? "duration")+                <*> (x .@? "paymentOption")++instance Hashable HostReservation where++instance NFData HostReservation where++-- | Describes an IAM instance profile.+--+--+--+-- /See:/ 'iamInstanceProfile' smart constructor.+data IAMInstanceProfile = IAMInstanceProfile'+  { _iapARN :: !(Maybe Text)+  , _iapId  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iapARN' - The Amazon Resource Name (ARN) of the instance profile.+--+-- * 'iapId' - The ID of the instance profile.+iamInstanceProfile+    :: IAMInstanceProfile+iamInstanceProfile = IAMInstanceProfile' {_iapARN = Nothing, _iapId = Nothing}+++-- | The Amazon Resource Name (ARN) of the instance profile.+iapARN :: Lens' IAMInstanceProfile (Maybe Text)+iapARN = lens _iapARN (\ s a -> s{_iapARN = a});++-- | The ID of the instance profile.+iapId :: Lens' IAMInstanceProfile (Maybe Text)+iapId = lens _iapId (\ s a -> s{_iapId = a});++instance FromXML IAMInstanceProfile where+        parseXML x+          = IAMInstanceProfile' <$>+              (x .@? "arn") <*> (x .@? "id")++instance Hashable IAMInstanceProfile where++instance NFData IAMInstanceProfile where++-- | Describes an association between an IAM instance profile and an instance.+--+--+--+-- /See:/ 'iamInstanceProfileAssociation' smart constructor.+data IAMInstanceProfileAssociation = IAMInstanceProfileAssociation'+  { _iapaAssociationId      :: !(Maybe Text)+  , _iapaInstanceId         :: !(Maybe Text)+  , _iapaState              :: !(Maybe IAMInstanceProfileAssociationState)+  , _iapaIAMInstanceProfile :: !(Maybe IAMInstanceProfile)+  , _iapaTimestamp          :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IAMInstanceProfileAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iapaAssociationId' - The ID of the association.+--+-- * 'iapaInstanceId' - The ID of the instance.+--+-- * 'iapaState' - The state of the association.+--+-- * 'iapaIAMInstanceProfile' - The IAM instance profile.+--+-- * 'iapaTimestamp' - The time the IAM instance profile was associated with the instance.+iamInstanceProfileAssociation+    :: IAMInstanceProfileAssociation+iamInstanceProfileAssociation =+  IAMInstanceProfileAssociation'+  { _iapaAssociationId = Nothing+  , _iapaInstanceId = Nothing+  , _iapaState = Nothing+  , _iapaIAMInstanceProfile = Nothing+  , _iapaTimestamp = Nothing+  }+++-- | The ID of the association.+iapaAssociationId :: Lens' IAMInstanceProfileAssociation (Maybe Text)+iapaAssociationId = lens _iapaAssociationId (\ s a -> s{_iapaAssociationId = a});++-- | The ID of the instance.+iapaInstanceId :: Lens' IAMInstanceProfileAssociation (Maybe Text)+iapaInstanceId = lens _iapaInstanceId (\ s a -> s{_iapaInstanceId = a});++-- | The state of the association.+iapaState :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfileAssociationState)+iapaState = lens _iapaState (\ s a -> s{_iapaState = a});++-- | The IAM instance profile.+iapaIAMInstanceProfile :: Lens' IAMInstanceProfileAssociation (Maybe IAMInstanceProfile)+iapaIAMInstanceProfile = lens _iapaIAMInstanceProfile (\ s a -> s{_iapaIAMInstanceProfile = a});++-- | The time the IAM instance profile was associated with the instance.+iapaTimestamp :: Lens' IAMInstanceProfileAssociation (Maybe UTCTime)+iapaTimestamp = lens _iapaTimestamp (\ s a -> s{_iapaTimestamp = a}) . mapping _Time;++instance FromXML IAMInstanceProfileAssociation where+        parseXML x+          = IAMInstanceProfileAssociation' <$>+              (x .@? "associationId") <*> (x .@? "instanceId") <*>+                (x .@? "state")+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "timestamp")++instance Hashable IAMInstanceProfileAssociation where++instance NFData IAMInstanceProfileAssociation where++-- | Describes an IAM instance profile.+--+--+--+-- /See:/ 'iamInstanceProfileSpecification' smart constructor.+data IAMInstanceProfileSpecification = IAMInstanceProfileSpecification'+  { _iapsARN  :: !(Maybe Text)+  , _iapsName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IAMInstanceProfileSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iapsARN' - The Amazon Resource Name (ARN) of the instance profile.+--+-- * 'iapsName' - The name of the instance profile.+iamInstanceProfileSpecification+    :: IAMInstanceProfileSpecification+iamInstanceProfileSpecification =+  IAMInstanceProfileSpecification' {_iapsARN = Nothing, _iapsName = Nothing}+++-- | The Amazon Resource Name (ARN) of the instance profile.+iapsARN :: Lens' IAMInstanceProfileSpecification (Maybe Text)+iapsARN = lens _iapsARN (\ s a -> s{_iapsARN = a});++-- | The name of the instance profile.+iapsName :: Lens' IAMInstanceProfileSpecification (Maybe Text)+iapsName = lens _iapsName (\ s a -> s{_iapsName = a});++instance FromXML IAMInstanceProfileSpecification+         where+        parseXML x+          = IAMInstanceProfileSpecification' <$>+              (x .@? "arn") <*> (x .@? "name")++instance Hashable IAMInstanceProfileSpecification+         where++instance NFData IAMInstanceProfileSpecification where++instance ToQuery IAMInstanceProfileSpecification+         where+        toQuery IAMInstanceProfileSpecification'{..}+          = mconcat ["Arn" =: _iapsARN, "Name" =: _iapsName]++-- | Describes the ICMP type and code.+--+--+--+-- /See:/ 'icmpTypeCode' smart constructor.+data ICMPTypeCode = ICMPTypeCode'+  { _itcCode :: !(Maybe Int)+  , _itcType :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ICMPTypeCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itcCode' - The ICMP code. A value of -1 means all codes for the specified ICMP type.+--+-- * 'itcType' - The ICMP type. A value of -1 means all types.+icmpTypeCode+    :: ICMPTypeCode+icmpTypeCode = ICMPTypeCode' {_itcCode = Nothing, _itcType = Nothing}+++-- | The ICMP code. A value of -1 means all codes for the specified ICMP type.+itcCode :: Lens' ICMPTypeCode (Maybe Int)+itcCode = lens _itcCode (\ s a -> s{_itcCode = a});++-- | The ICMP type. A value of -1 means all types.+itcType :: Lens' ICMPTypeCode (Maybe Int)+itcType = lens _itcType (\ s a -> s{_itcType = a});++instance FromXML ICMPTypeCode where+        parseXML x+          = ICMPTypeCode' <$> (x .@? "code") <*> (x .@? "type")++instance Hashable ICMPTypeCode where++instance NFData ICMPTypeCode where++instance ToQuery ICMPTypeCode where+        toQuery ICMPTypeCode'{..}+          = mconcat ["Code" =: _itcCode, "Type" =: _itcType]++-- | Describes a set of permissions for a security group rule.+--+--+--+-- /See:/ 'ipPermission' smart constructor.+data IPPermission = IPPermission'+  { _ipFromPort         :: !(Maybe Int)+  , _ipUserIdGroupPairs :: !(Maybe [UserIdGroupPair])+  , _ipPrefixListIds    :: !(Maybe [PrefixListId])+  , _ipToPort           :: !(Maybe Int)+  , _ipIPv6Ranges       :: !(Maybe [IPv6Range])+  , _ipIPRanges         :: !(Maybe [IPRange])+  , _ipIPProtocol       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipFromPort' - The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of @-1@ indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.+--+-- * 'ipUserIdGroupPairs' - One or more security group and AWS account ID pairs.+--+-- * 'ipPrefixListIds' - (Valid for 'AuthorizeSecurityGroupEgress' , 'RevokeSecurityGroupEgress' and 'DescribeSecurityGroups' only) One or more prefix list IDs for an AWS service. In an 'AuthorizeSecurityGroupEgress' request, this is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.+--+-- * 'ipToPort' - The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of @-1@ indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes.+--+-- * 'ipIPv6Ranges' - [EC2-VPC only] One or more IPv6 ranges.+--+-- * 'ipIPRanges' - One or more IPv4 ranges.+--+-- * 'ipIPProtocol' - The IP protocol name (@tcp@ , @udp@ , @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers> ).  [EC2-VPC only] Use @-1@ to specify all protocols. When authorizing security group rules, specifying @-1@ or a protocol number other than @tcp@ , @udp@ , @icmp@ , or @58@ (ICMPv6) allows traffic on all ports, regardless of any port range you specify. For @tcp@ , @udp@ , and @icmp@ , you must specify a port range. For @58@ (ICMPv6), you can optionally specify a port range; if you don't, traffic for all types and codes is allowed when authorizing rules.+ipPermission+    :: Text -- ^ 'ipIPProtocol'+    -> IPPermission+ipPermission pIPProtocol_ =+  IPPermission'+  { _ipFromPort = Nothing+  , _ipUserIdGroupPairs = Nothing+  , _ipPrefixListIds = Nothing+  , _ipToPort = Nothing+  , _ipIPv6Ranges = Nothing+  , _ipIPRanges = Nothing+  , _ipIPProtocol = pIPProtocol_+  }+++-- | The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of @-1@ indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.+ipFromPort :: Lens' IPPermission (Maybe Int)+ipFromPort = lens _ipFromPort (\ s a -> s{_ipFromPort = a});++-- | One or more security group and AWS account ID pairs.+ipUserIdGroupPairs :: Lens' IPPermission [UserIdGroupPair]+ipUserIdGroupPairs = lens _ipUserIdGroupPairs (\ s a -> s{_ipUserIdGroupPairs = a}) . _Default . _Coerce;++-- | (Valid for 'AuthorizeSecurityGroupEgress' , 'RevokeSecurityGroupEgress' and 'DescribeSecurityGroups' only) One or more prefix list IDs for an AWS service. In an 'AuthorizeSecurityGroupEgress' 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]+ipPrefixListIds = lens _ipPrefixListIds (\ s a -> s{_ipPrefixListIds = a}) . _Default . _Coerce;++-- | The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of @-1@ indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes.+ipToPort :: Lens' IPPermission (Maybe Int)+ipToPort = lens _ipToPort (\ s a -> s{_ipToPort = a});++-- | [EC2-VPC only] One or more IPv6 ranges.+ipIPv6Ranges :: Lens' IPPermission [IPv6Range]+ipIPv6Ranges = lens _ipIPv6Ranges (\ s a -> s{_ipIPv6Ranges = a}) . _Default . _Coerce;++-- | One or more IPv4 ranges.+ipIPRanges :: Lens' IPPermission [IPRange]+ipIPRanges = lens _ipIPRanges (\ s a -> s{_ipIPRanges = a}) . _Default . _Coerce;++-- | The IP protocol name (@tcp@ , @udp@ , @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers> ).  [EC2-VPC only] Use @-1@ to specify all protocols. When authorizing security group rules, specifying @-1@ or a protocol number other than @tcp@ , @udp@ , @icmp@ , or @58@ (ICMPv6) allows traffic on all ports, regardless of any port range you specify. For @tcp@ , @udp@ , and @icmp@ , you must specify a port range. For @58@ (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+ipIPProtocol = lens _ipIPProtocol (\ s a -> s{_ipIPProtocol = a});++instance FromXML IPPermission where+        parseXML x+          = IPPermission' <$>+              (x .@? "fromPort") <*>+                (x .@? "groups" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "prefixListIds" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "toPort")+                <*>+                (x .@? "ipv6Ranges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "ipRanges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "ipProtocol")++instance Hashable IPPermission where++instance NFData IPPermission where++instance ToQuery IPPermission where+        toQuery IPPermission'{..}+          = mconcat+              ["FromPort" =: _ipFromPort,+               toQuery+                 (toQueryList "Groups" <$> _ipUserIdGroupPairs),+               toQuery+                 (toQueryList "PrefixListIds" <$> _ipPrefixListIds),+               "ToPort" =: _ipToPort,+               toQuery (toQueryList "Ipv6Ranges" <$> _ipIPv6Ranges),+               toQuery (toQueryList "IpRanges" <$> _ipIPRanges),+               "IpProtocol" =: _ipIPProtocol]++-- | Describes an IPv4 range.+--+--+--+-- /See:/ 'ipRange' smart constructor.+data IPRange = IPRange'+  { _iprDescription :: !(Maybe Text)+  , _iprCidrIP      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iprDescription' - 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 ._-:/()#,@[]+=;{}!$*+--+-- * 'iprCidrIP' - 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.+ipRange+    :: Text -- ^ 'iprCidrIP'+    -> IPRange+ipRange pCidrIP_ = IPRange' {_iprDescription = Nothing, _iprCidrIP = pCidrIP_}+++-- | 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)+iprDescription = lens _iprDescription (\ s a -> s{_iprDescription = 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.+iprCidrIP :: Lens' IPRange Text+iprCidrIP = lens _iprCidrIP (\ s a -> s{_iprCidrIP = a});++instance FromXML IPRange where+        parseXML x+          = IPRange' <$>+              (x .@? "description") <*> (x .@ "cidrIp")++instance Hashable IPRange where++instance NFData IPRange where++instance ToQuery IPRange where+        toQuery IPRange'{..}+          = mconcat+              ["Description" =: _iprDescription,+               "CidrIp" =: _iprCidrIP]++-- | Describes an IPv6 CIDR block.+--+--+--+-- /See:/ 'ipv6CidrBlock' smart constructor.+newtype IPv6CidrBlock = IPv6CidrBlock'+  { _icbIPv6CidrBlock :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPv6CidrBlock' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icbIPv6CidrBlock' - The IPv6 CIDR block.+ipv6CidrBlock+    :: IPv6CidrBlock+ipv6CidrBlock = IPv6CidrBlock' {_icbIPv6CidrBlock = Nothing}+++-- | The IPv6 CIDR block.+icbIPv6CidrBlock :: Lens' IPv6CidrBlock (Maybe Text)+icbIPv6CidrBlock = lens _icbIPv6CidrBlock (\ s a -> s{_icbIPv6CidrBlock = a});++instance FromXML IPv6CidrBlock where+        parseXML x+          = IPv6CidrBlock' <$> (x .@? "ipv6CidrBlock")++instance Hashable IPv6CidrBlock where++instance NFData IPv6CidrBlock where++-- | [EC2-VPC only] Describes an IPv6 range.+--+--+--+-- /See:/ 'ipv6Range' smart constructor.+data IPv6Range = IPv6Range'+  { _irCidrIPv6    :: !(Maybe Text)+  , _irDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPv6Range' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irCidrIPv6' - 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.+--+-- * 'irDescription' - 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 ._-:/()#,@[]+=;{}!$*+ipv6Range+    :: IPv6Range+ipv6Range = IPv6Range' {_irCidrIPv6 = Nothing, _irDescription = Nothing}+++-- | 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)+irCidrIPv6 = lens _irCidrIPv6 (\ s a -> s{_irCidrIPv6 = 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 ._-:/()#,@[]+=;{}!$*+irDescription :: Lens' IPv6Range (Maybe Text)+irDescription = lens _irDescription (\ s a -> s{_irDescription = a});++instance FromXML IPv6Range where+        parseXML x+          = IPv6Range' <$>+              (x .@? "cidrIpv6") <*> (x .@? "description")++instance Hashable IPv6Range where++instance NFData IPv6Range where++instance ToQuery IPv6Range where+        toQuery IPv6Range'{..}+          = mconcat+              ["CidrIpv6" =: _irCidrIPv6,+               "Description" =: _irDescription]++-- | Describes the ID format for a resource.+--+--+--+-- /See:/ 'idFormat' smart constructor.+data IdFormat = IdFormat'+  { _ifUseLongIds :: !(Maybe Bool)+  , _ifDeadline   :: !(Maybe ISO8601)+  , _ifResource   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IdFormat' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ifUseLongIds' - Indicates whether longer IDs (17-character IDs) are enabled for the resource.+--+-- * 'ifDeadline' - 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.+--+-- * 'ifResource' - The type of resource.+idFormat+    :: IdFormat+idFormat =+  IdFormat'+  {_ifUseLongIds = Nothing, _ifDeadline = Nothing, _ifResource = Nothing}+++-- | Indicates whether longer IDs (17-character IDs) are enabled for the resource.+ifUseLongIds :: Lens' IdFormat (Maybe Bool)+ifUseLongIds = lens _ifUseLongIds (\ s a -> s{_ifUseLongIds = 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.+ifDeadline :: Lens' IdFormat (Maybe UTCTime)+ifDeadline = lens _ifDeadline (\ s a -> s{_ifDeadline = a}) . mapping _Time;++-- | The type of resource.+ifResource :: Lens' IdFormat (Maybe Text)+ifResource = lens _ifResource (\ s a -> s{_ifResource = a});++instance FromXML IdFormat where+        parseXML x+          = IdFormat' <$>+              (x .@? "useLongIds") <*> (x .@? "deadline") <*>+                (x .@? "resource")++instance Hashable IdFormat where++instance NFData IdFormat where++-- | Describes an image.+--+--+--+-- /See:/ 'image' smart constructor.+data Image = Image'+  { _iPlatform            :: !(Maybe PlatformValues)+  , _iEnaSupport          :: !(Maybe Bool)+  , _iImageOwnerAlias     :: !(Maybe Text)+  , _iRAMDiskId           :: !(Maybe Text)+  , _iKernelId            :: !(Maybe Text)+  , _iRootDeviceName      :: !(Maybe Text)+  , _iSRIOVNetSupport     :: !(Maybe Text)+  , _iName                :: !(Maybe Text)+  , _iCreationDate        :: !(Maybe Text)+  , _iProductCodes        :: !(Maybe [ProductCode])+  , _iStateReason         :: !(Maybe StateReason)+  , _iDescription         :: !(Maybe Text)+  , _iBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _iTags                :: !(Maybe [Tag])+  , _iImageId             :: !Text+  , _iImageLocation       :: !Text+  , _iState               :: !ImageState+  , _iOwnerId             :: !Text+  , _iPublic              :: !Bool+  , _iArchitecture        :: !ArchitectureValues+  , _iImageType           :: !ImageTypeValues+  , _iRootDeviceType      :: !DeviceType+  , _iVirtualizationType  :: !VirtualizationType+  , _iHypervisor          :: !HypervisorType+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Image' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iPlatform' - The value is @Windows@ for Windows AMIs; otherwise blank.+--+-- * 'iEnaSupport' - Specifies whether enhanced networking with ENA is enabled.+--+-- * 'iImageOwnerAlias' - The AWS account alias (for example, @amazon@ , @self@ ) or the AWS account ID of the AMI owner.+--+-- * 'iRAMDiskId' - The RAM disk associated with the image, if any. Only applicable for machine images.+--+-- * 'iKernelId' - The kernel associated with the image, if any. Only applicable for machine images.+--+-- * 'iRootDeviceName' - The device name of the root device volume (for example, @/dev/sda1@ ).+--+-- * 'iSRIOVNetSupport' - Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.+--+-- * 'iName' - The name of the AMI that was provided during image creation.+--+-- * 'iCreationDate' - The date and time the image was created.+--+-- * 'iProductCodes' - Any product codes associated with the AMI.+--+-- * 'iStateReason' - The reason for the state change.+--+-- * 'iDescription' - The description of the AMI that was provided during image creation.+--+-- * 'iBlockDeviceMappings' - Any block device mapping entries.+--+-- * 'iTags' - Any tags assigned to the image.+--+-- * 'iImageId' - The ID of the AMI.+--+-- * 'iImageLocation' - The location of the AMI.+--+-- * 'iState' - The current state of the AMI. If the state is @available@ , the image is successfully registered and can be used to launch an instance.+--+-- * 'iOwnerId' - The AWS account ID of the image owner.+--+-- * 'iPublic' - Indicates whether the image has public launch permissions. The value is @true@ if this image has public launch permissions or @false@ if it has only implicit and explicit launch permissions.+--+-- * 'iArchitecture' - The architecture of the image.+--+-- * 'iImageType' - The type of image.+--+-- * 'iRootDeviceType' - The type of root device used by the AMI. The AMI can use an EBS volume or an instance store volume.+--+-- * 'iVirtualizationType' - The type of virtualization of the AMI.+--+-- * 'iHypervisor' - The hypervisor type of the image.+image+    :: Text -- ^ 'iImageId'+    -> Text -- ^ 'iImageLocation'+    -> ImageState -- ^ 'iState'+    -> Text -- ^ 'iOwnerId'+    -> Bool -- ^ 'iPublic'+    -> ArchitectureValues -- ^ 'iArchitecture'+    -> ImageTypeValues -- ^ 'iImageType'+    -> DeviceType -- ^ 'iRootDeviceType'+    -> VirtualizationType -- ^ 'iVirtualizationType'+    -> HypervisorType -- ^ 'iHypervisor'+    -> Image+image pImageId_ pImageLocation_ pState_ pOwnerId_ pPublic_ pArchitecture_ pImageType_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ =+  Image'+  { _iPlatform = Nothing+  , _iEnaSupport = Nothing+  , _iImageOwnerAlias = Nothing+  , _iRAMDiskId = Nothing+  , _iKernelId = Nothing+  , _iRootDeviceName = Nothing+  , _iSRIOVNetSupport = Nothing+  , _iName = Nothing+  , _iCreationDate = Nothing+  , _iProductCodes = Nothing+  , _iStateReason = Nothing+  , _iDescription = Nothing+  , _iBlockDeviceMappings = Nothing+  , _iTags = Nothing+  , _iImageId = pImageId_+  , _iImageLocation = pImageLocation_+  , _iState = pState_+  , _iOwnerId = pOwnerId_+  , _iPublic = pPublic_+  , _iArchitecture = pArchitecture_+  , _iImageType = pImageType_+  , _iRootDeviceType = pRootDeviceType_+  , _iVirtualizationType = pVirtualizationType_+  , _iHypervisor = pHypervisor_+  }+++-- | The value is @Windows@ for Windows AMIs; otherwise blank.+iPlatform :: Lens' Image (Maybe PlatformValues)+iPlatform = lens _iPlatform (\ s a -> s{_iPlatform = a});++-- | Specifies whether enhanced networking with ENA is enabled.+iEnaSupport :: Lens' Image (Maybe Bool)+iEnaSupport = lens _iEnaSupport (\ s a -> s{_iEnaSupport = a});++-- | The AWS account alias (for example, @amazon@ , @self@ ) or the AWS account ID of the AMI owner.+iImageOwnerAlias :: Lens' Image (Maybe Text)+iImageOwnerAlias = lens _iImageOwnerAlias (\ s a -> s{_iImageOwnerAlias = a});++-- | The RAM disk associated with the image, if any. Only applicable for machine images.+iRAMDiskId :: Lens' Image (Maybe Text)+iRAMDiskId = lens _iRAMDiskId (\ s a -> s{_iRAMDiskId = a});++-- | The kernel associated with the image, if any. Only applicable for machine images.+iKernelId :: Lens' Image (Maybe Text)+iKernelId = lens _iKernelId (\ s a -> s{_iKernelId = a});++-- | The device name of the root device volume (for example, @/dev/sda1@ ).+iRootDeviceName :: Lens' Image (Maybe Text)+iRootDeviceName = lens _iRootDeviceName (\ s a -> s{_iRootDeviceName = a});++-- | Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.+iSRIOVNetSupport :: Lens' Image (Maybe Text)+iSRIOVNetSupport = lens _iSRIOVNetSupport (\ s a -> s{_iSRIOVNetSupport = a});++-- | The name of the AMI that was provided during image creation.+iName :: Lens' Image (Maybe Text)+iName = lens _iName (\ s a -> s{_iName = a});++-- | The date and time the image was created.+iCreationDate :: Lens' Image (Maybe Text)+iCreationDate = lens _iCreationDate (\ s a -> s{_iCreationDate = a});++-- | Any product codes associated with the AMI.+iProductCodes :: Lens' Image [ProductCode]+iProductCodes = lens _iProductCodes (\ s a -> s{_iProductCodes = a}) . _Default . _Coerce;++-- | The reason for the state change.+iStateReason :: Lens' Image (Maybe StateReason)+iStateReason = lens _iStateReason (\ s a -> s{_iStateReason = a});++-- | The description of the AMI that was provided during image creation.+iDescription :: Lens' Image (Maybe Text)+iDescription = lens _iDescription (\ s a -> s{_iDescription = a});++-- | Any block device mapping entries.+iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]+iBlockDeviceMappings = lens _iBlockDeviceMappings (\ s a -> s{_iBlockDeviceMappings = a}) . _Default . _Coerce;++-- | Any tags assigned to the image.+iTags :: Lens' Image [Tag]+iTags = lens _iTags (\ s a -> s{_iTags = a}) . _Default . _Coerce;++-- | The ID of the AMI.+iImageId :: Lens' Image Text+iImageId = lens _iImageId (\ s a -> s{_iImageId = a});++-- | The location of the AMI.+iImageLocation :: Lens' Image Text+iImageLocation = lens _iImageLocation (\ s a -> s{_iImageLocation = a});++-- | The current state of the AMI. If the state is @available@ , the image is successfully registered and can be used to launch an instance.+iState :: Lens' Image ImageState+iState = lens _iState (\ s a -> s{_iState = a});++-- | The AWS account ID of the image owner.+iOwnerId :: Lens' Image Text+iOwnerId = lens _iOwnerId (\ s a -> s{_iOwnerId = a});++-- | Indicates whether the image has public launch permissions. The value is @true@ if this image has public launch permissions or @false@ if it has only implicit and explicit launch permissions.+iPublic :: Lens' Image Bool+iPublic = lens _iPublic (\ s a -> s{_iPublic = a});++-- | The architecture of the image.+iArchitecture :: Lens' Image ArchitectureValues+iArchitecture = lens _iArchitecture (\ s a -> s{_iArchitecture = a});++-- | The type of image.+iImageType :: Lens' Image ImageTypeValues+iImageType = lens _iImageType (\ s a -> s{_iImageType = a});++-- | 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+iRootDeviceType = lens _iRootDeviceType (\ s a -> s{_iRootDeviceType = a});++-- | The type of virtualization of the AMI.+iVirtualizationType :: Lens' Image VirtualizationType+iVirtualizationType = lens _iVirtualizationType (\ s a -> s{_iVirtualizationType = a});++-- | The hypervisor type of the image.+iHypervisor :: Lens' Image HypervisorType+iHypervisor = lens _iHypervisor (\ s a -> s{_iHypervisor = a});++instance FromXML Image where+        parseXML x+          = Image' <$>+              (x .@? "platform") <*> (x .@? "enaSupport") <*>+                (x .@? "imageOwnerAlias")+                <*> (x .@? "ramdiskId")+                <*> (x .@? "kernelId")+                <*> (x .@? "rootDeviceName")+                <*> (x .@? "sriovNetSupport")+                <*> (x .@? "name")+                <*> (x .@? "creationDate")+                <*>+                (x .@? "productCodes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "stateReason")+                <*> (x .@? "description")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "imageId")+                <*> (x .@ "imageLocation")+                <*> (x .@ "imageState")+                <*> (x .@ "imageOwnerId")+                <*> (x .@ "isPublic")+                <*> (x .@ "architecture")+                <*> (x .@ "imageType")+                <*> (x .@ "rootDeviceType")+                <*> (x .@ "virtualizationType")+                <*> (x .@ "hypervisor")++instance Hashable Image where++instance NFData Image where++-- | Describes the disk container object for an import image task.+--+--+--+-- /See:/ 'imageDiskContainer' smart constructor.+data ImageDiskContainer = ImageDiskContainer'+  { _idcFormat      :: !(Maybe Text)+  , _idcURL         :: !(Maybe Text)+  , _idcDeviceName  :: !(Maybe Text)+  , _idcUserBucket  :: !(Maybe UserBucket)+  , _idcDescription :: !(Maybe Text)+  , _idcSnapshotId  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImageDiskContainer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idcFormat' - The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@+--+-- * 'idcURL' - The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)+--+-- * 'idcDeviceName' - The block device mapping for the disk.+--+-- * 'idcUserBucket' - The S3 bucket for the disk image.+--+-- * 'idcDescription' - The description of the disk image.+--+-- * 'idcSnapshotId' - The ID of the EBS snapshot to be used for importing the snapshot.+imageDiskContainer+    :: ImageDiskContainer+imageDiskContainer =+  ImageDiskContainer'+  { _idcFormat = Nothing+  , _idcURL = Nothing+  , _idcDeviceName = Nothing+  , _idcUserBucket = Nothing+  , _idcDescription = Nothing+  , _idcSnapshotId = Nothing+  }+++-- | The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@+idcFormat :: Lens' ImageDiskContainer (Maybe Text)+idcFormat = lens _idcFormat (\ s a -> s{_idcFormat = a});++-- | The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)+idcURL :: Lens' ImageDiskContainer (Maybe Text)+idcURL = lens _idcURL (\ s a -> s{_idcURL = a});++-- | The block device mapping for the disk.+idcDeviceName :: Lens' ImageDiskContainer (Maybe Text)+idcDeviceName = lens _idcDeviceName (\ s a -> s{_idcDeviceName = a});++-- | The S3 bucket for the disk image.+idcUserBucket :: Lens' ImageDiskContainer (Maybe UserBucket)+idcUserBucket = lens _idcUserBucket (\ s a -> s{_idcUserBucket = a});++-- | The description of the disk image.+idcDescription :: Lens' ImageDiskContainer (Maybe Text)+idcDescription = lens _idcDescription (\ s a -> s{_idcDescription = a});++-- | The ID of the EBS snapshot to be used for importing the snapshot.+idcSnapshotId :: Lens' ImageDiskContainer (Maybe Text)+idcSnapshotId = lens _idcSnapshotId (\ s a -> s{_idcSnapshotId = a});++instance Hashable ImageDiskContainer where++instance NFData ImageDiskContainer where++instance ToQuery ImageDiskContainer where+        toQuery ImageDiskContainer'{..}+          = mconcat+              ["Format" =: _idcFormat, "Url" =: _idcURL,+               "DeviceName" =: _idcDeviceName,+               "UserBucket" =: _idcUserBucket,+               "Description" =: _idcDescription,+               "SnapshotId" =: _idcSnapshotId]++-- | Describes an import image task.+--+--+--+-- /See:/ 'importImageTask' smart constructor.+data ImportImageTask = ImportImageTask'+  { _iitStatus          :: !(Maybe Text)+  , _iitHypervisor      :: !(Maybe Text)+  , _iitPlatform        :: !(Maybe Text)+  , _iitProgress        :: !(Maybe Text)+  , _iitLicenseType     :: !(Maybe Text)+  , _iitSnapshotDetails :: !(Maybe [SnapshotDetail])+  , _iitStatusMessage   :: !(Maybe Text)+  , _iitImageId         :: !(Maybe Text)+  , _iitImportTaskId    :: !(Maybe Text)+  , _iitArchitecture    :: !(Maybe Text)+  , _iitDescription     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImportImageTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iitStatus' - A brief status for the import image task.+--+-- * 'iitHypervisor' - The target hypervisor for the import task. Valid values: @xen@+--+-- * 'iitPlatform' - The description string for the import image task.+--+-- * 'iitProgress' - The percentage of progress of the import image task.+--+-- * 'iitLicenseType' - The license type of the virtual machine.+--+-- * 'iitSnapshotDetails' - Information about the snapshots.+--+-- * 'iitStatusMessage' - A descriptive status message for the import image task.+--+-- * 'iitImageId' - The ID of the Amazon Machine Image (AMI) of the imported virtual machine.+--+-- * 'iitImportTaskId' - The ID of the import image task.+--+-- * 'iitArchitecture' - The architecture of the virtual machine. Valid values: @i386@ | @x86_64@+--+-- * 'iitDescription' - A description of the import task.+importImageTask+    :: ImportImageTask+importImageTask =+  ImportImageTask'+  { _iitStatus = Nothing+  , _iitHypervisor = Nothing+  , _iitPlatform = Nothing+  , _iitProgress = Nothing+  , _iitLicenseType = Nothing+  , _iitSnapshotDetails = Nothing+  , _iitStatusMessage = Nothing+  , _iitImageId = Nothing+  , _iitImportTaskId = Nothing+  , _iitArchitecture = Nothing+  , _iitDescription = Nothing+  }+++-- | A brief status for the import image task.+iitStatus :: Lens' ImportImageTask (Maybe Text)+iitStatus = lens _iitStatus (\ s a -> s{_iitStatus = a});++-- | The target hypervisor for the import task. Valid values: @xen@+iitHypervisor :: Lens' ImportImageTask (Maybe Text)+iitHypervisor = lens _iitHypervisor (\ s a -> s{_iitHypervisor = a});++-- | The description string for the import image task.+iitPlatform :: Lens' ImportImageTask (Maybe Text)+iitPlatform = lens _iitPlatform (\ s a -> s{_iitPlatform = a});++-- | The percentage of progress of the import image task.+iitProgress :: Lens' ImportImageTask (Maybe Text)+iitProgress = lens _iitProgress (\ s a -> s{_iitProgress = a});++-- | The license type of the virtual machine.+iitLicenseType :: Lens' ImportImageTask (Maybe Text)+iitLicenseType = lens _iitLicenseType (\ s a -> s{_iitLicenseType = a});++-- | Information about the snapshots.+iitSnapshotDetails :: Lens' ImportImageTask [SnapshotDetail]+iitSnapshotDetails = lens _iitSnapshotDetails (\ s a -> s{_iitSnapshotDetails = a}) . _Default . _Coerce;++-- | A descriptive status message for the import image task.+iitStatusMessage :: Lens' ImportImageTask (Maybe Text)+iitStatusMessage = lens _iitStatusMessage (\ s a -> s{_iitStatusMessage = a});++-- | The ID of the Amazon Machine Image (AMI) of the imported virtual machine.+iitImageId :: Lens' ImportImageTask (Maybe Text)+iitImageId = lens _iitImageId (\ s a -> s{_iitImageId = a});++-- | The ID of the import image task.+iitImportTaskId :: Lens' ImportImageTask (Maybe Text)+iitImportTaskId = lens _iitImportTaskId (\ s a -> s{_iitImportTaskId = a});++-- | The architecture of the virtual machine. Valid values: @i386@ | @x86_64@+iitArchitecture :: Lens' ImportImageTask (Maybe Text)+iitArchitecture = lens _iitArchitecture (\ s a -> s{_iitArchitecture = a});++-- | A description of the import task.+iitDescription :: Lens' ImportImageTask (Maybe Text)+iitDescription = lens _iitDescription (\ s a -> s{_iitDescription = a});++instance FromXML ImportImageTask where+        parseXML x+          = ImportImageTask' <$>+              (x .@? "status") <*> (x .@? "hypervisor") <*>+                (x .@? "platform")+                <*> (x .@? "progress")+                <*> (x .@? "licenseType")+                <*>+                (x .@? "snapshotDetailSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "statusMessage")+                <*> (x .@? "imageId")+                <*> (x .@? "importTaskId")+                <*> (x .@? "architecture")+                <*> (x .@? "description")++instance Hashable ImportImageTask where++instance NFData ImportImageTask where++-- | Describes the launch specification for VM import.+--+--+--+-- /See:/ 'importInstanceLaunchSpecification' smart constructor.+data ImportInstanceLaunchSpecification = ImportInstanceLaunchSpecification'+  { _iilsAdditionalInfo                    :: !(Maybe Text)+  , _iilsGroupNames                        :: !(Maybe [Text])+  , _iilsSubnetId                          :: !(Maybe Text)+  , _iilsInstanceType                      :: !(Maybe InstanceType)+  , _iilsGroupIds                          :: !(Maybe [Text])+  , _iilsUserData                          :: !(Maybe UserData)+  , _iilsMonitoring                        :: !(Maybe Bool)+  , _iilsPrivateIPAddress                  :: !(Maybe Text)+  , _iilsInstanceInitiatedShutdownBehavior :: !(Maybe ShutdownBehavior)+  , _iilsArchitecture                      :: !(Maybe ArchitectureValues)+  , _iilsPlacement                         :: !(Maybe Placement)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImportInstanceLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iilsAdditionalInfo' - Reserved.+--+-- * 'iilsGroupNames' - One or more security group names.+--+-- * 'iilsSubnetId' - [EC2-VPC] The ID of the subnet in which to launch the instance.+--+-- * 'iilsInstanceType' - The instance type. For more information about the instance types that you can import, see <http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#vmimport-instance-types Instance Types> in the VM Import/Export User Guide.+--+-- * 'iilsGroupIds' - One or more security group IDs.+--+-- * 'iilsUserData' - The user data to make available to the instance. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+--+-- * 'iilsMonitoring' - Indicates whether monitoring is enabled.+--+-- * 'iilsPrivateIPAddress' - [EC2-VPC] An available IP address from the IP address range of the subnet.+--+-- * 'iilsInstanceInitiatedShutdownBehavior' - Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).+--+-- * 'iilsArchitecture' - The architecture of the instance.+--+-- * 'iilsPlacement' - The placement information for the instance.+importInstanceLaunchSpecification+    :: ImportInstanceLaunchSpecification+importInstanceLaunchSpecification =+  ImportInstanceLaunchSpecification'+  { _iilsAdditionalInfo = Nothing+  , _iilsGroupNames = Nothing+  , _iilsSubnetId = Nothing+  , _iilsInstanceType = Nothing+  , _iilsGroupIds = Nothing+  , _iilsUserData = Nothing+  , _iilsMonitoring = Nothing+  , _iilsPrivateIPAddress = Nothing+  , _iilsInstanceInitiatedShutdownBehavior = Nothing+  , _iilsArchitecture = Nothing+  , _iilsPlacement = Nothing+  }+++-- | Reserved.+iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsAdditionalInfo = lens _iilsAdditionalInfo (\ s a -> s{_iilsAdditionalInfo = a});++-- | One or more security group names.+iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]+iilsGroupNames = lens _iilsGroupNames (\ s a -> s{_iilsGroupNames = a}) . _Default . _Coerce;++-- | [EC2-VPC] The ID of the subnet in which to launch the instance.+iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsSubnetId = lens _iilsSubnetId (\ s a -> s{_iilsSubnetId = a});++-- | The instance type. For more information about the instance types that you can import, see <http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#vmimport-instance-types Instance Types> in the VM Import/Export User Guide.+iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)+iilsInstanceType = lens _iilsInstanceType (\ s a -> s{_iilsInstanceType = a});++-- | One or more security group IDs.+iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]+iilsGroupIds = lens _iilsGroupIds (\ s a -> s{_iilsGroupIds = a}) . _Default . _Coerce;++-- | The user data to make available to the instance. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)+iilsUserData = lens _iilsUserData (\ s a -> s{_iilsUserData = a});++-- | Indicates whether monitoring is enabled.+iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)+iilsMonitoring = lens _iilsMonitoring (\ s a -> s{_iilsMonitoring = a});++-- | [EC2-VPC] An available IP address from the IP address range of the subnet.+iilsPrivateIPAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsPrivateIPAddress = lens _iilsPrivateIPAddress (\ s a -> s{_iilsPrivateIPAddress = a});++-- | 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)+iilsInstanceInitiatedShutdownBehavior = lens _iilsInstanceInitiatedShutdownBehavior (\ s a -> s{_iilsInstanceInitiatedShutdownBehavior = a});++-- | The architecture of the instance.+iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)+iilsArchitecture = lens _iilsArchitecture (\ s a -> s{_iilsArchitecture = a});++-- | The placement information for the instance.+iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)+iilsPlacement = lens _iilsPlacement (\ s a -> s{_iilsPlacement = a});++instance Hashable ImportInstanceLaunchSpecification+         where++instance NFData ImportInstanceLaunchSpecification+         where++instance ToQuery ImportInstanceLaunchSpecification+         where+        toQuery ImportInstanceLaunchSpecification'{..}+          = mconcat+              ["AdditionalInfo" =: _iilsAdditionalInfo,+               toQuery+                 (toQueryList "GroupName" <$> _iilsGroupNames),+               "SubnetId" =: _iilsSubnetId,+               "InstanceType" =: _iilsInstanceType,+               toQuery (toQueryList "GroupId" <$> _iilsGroupIds),+               "UserData" =: _iilsUserData,+               "Monitoring" =: _iilsMonitoring,+               "PrivateIpAddress" =: _iilsPrivateIPAddress,+               "InstanceInitiatedShutdownBehavior" =:+                 _iilsInstanceInitiatedShutdownBehavior,+               "Architecture" =: _iilsArchitecture,+               "Placement" =: _iilsPlacement]++-- | Describes an import instance task.+--+--+--+-- /See:/ 'importInstanceTaskDetails' smart constructor.+data ImportInstanceTaskDetails = ImportInstanceTaskDetails'+  { _iitdInstanceId  :: !(Maybe Text)+  , _iitdPlatform    :: !(Maybe PlatformValues)+  , _iitdDescription :: !(Maybe Text)+  , _iitdVolumes     :: ![ImportInstanceVolumeDetailItem]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImportInstanceTaskDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iitdInstanceId' - The ID of the instance.+--+-- * 'iitdPlatform' - The instance operating system.+--+-- * 'iitdDescription' - A description of the task.+--+-- * 'iitdVolumes' - One or more volumes.+importInstanceTaskDetails+    :: ImportInstanceTaskDetails+importInstanceTaskDetails =+  ImportInstanceTaskDetails'+  { _iitdInstanceId = Nothing+  , _iitdPlatform = Nothing+  , _iitdDescription = Nothing+  , _iitdVolumes = mempty+  }+++-- | The ID of the instance.+iitdInstanceId :: Lens' ImportInstanceTaskDetails (Maybe Text)+iitdInstanceId = lens _iitdInstanceId (\ s a -> s{_iitdInstanceId = a});++-- | The instance operating system.+iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)+iitdPlatform = lens _iitdPlatform (\ s a -> s{_iitdPlatform = a});++-- | A description of the task.+iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)+iitdDescription = lens _iitdDescription (\ s a -> s{_iitdDescription = a});++-- | One or more volumes.+iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]+iitdVolumes = lens _iitdVolumes (\ s a -> s{_iitdVolumes = a}) . _Coerce;++instance FromXML ImportInstanceTaskDetails where+        parseXML x+          = ImportInstanceTaskDetails' <$>+              (x .@? "instanceId") <*> (x .@? "platform") <*>+                (x .@? "description")+                <*>+                (x .@? "volumes" .!@ mempty >>= parseXMLList "item")++instance Hashable ImportInstanceTaskDetails where++instance NFData ImportInstanceTaskDetails where++-- | Describes an import volume task.+--+--+--+-- /See:/ 'importInstanceVolumeDetailItem' smart constructor.+data ImportInstanceVolumeDetailItem = ImportInstanceVolumeDetailItem'+  { _iivdiStatusMessage    :: !(Maybe Text)+  , _iivdiDescription      :: !(Maybe Text)+  , _iivdiAvailabilityZone :: !Text+  , _iivdiBytesConverted   :: !Integer+  , _iivdiImage            :: !DiskImageDescription+  , _iivdiStatus           :: !Text+  , _iivdiVolume           :: !DiskImageVolumeDescription+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImportInstanceVolumeDetailItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iivdiStatusMessage' - The status information or errors related to the disk image.+--+-- * 'iivdiDescription' - A description of the task.+--+-- * 'iivdiAvailabilityZone' - The Availability Zone where the resulting instance will reside.+--+-- * 'iivdiBytesConverted' - The number of bytes converted so far.+--+-- * 'iivdiImage' - The image.+--+-- * 'iivdiStatus' - The status of the import of this particular disk image.+--+-- * 'iivdiVolume' - The volume.+importInstanceVolumeDetailItem+    :: Text -- ^ 'iivdiAvailabilityZone'+    -> Integer -- ^ 'iivdiBytesConverted'+    -> DiskImageDescription -- ^ 'iivdiImage'+    -> Text -- ^ 'iivdiStatus'+    -> DiskImageVolumeDescription -- ^ 'iivdiVolume'+    -> ImportInstanceVolumeDetailItem+importInstanceVolumeDetailItem pAvailabilityZone_ pBytesConverted_ pImage_ pStatus_ pVolume_ =+  ImportInstanceVolumeDetailItem'+  { _iivdiStatusMessage = Nothing+  , _iivdiDescription = Nothing+  , _iivdiAvailabilityZone = pAvailabilityZone_+  , _iivdiBytesConverted = pBytesConverted_+  , _iivdiImage = pImage_+  , _iivdiStatus = pStatus_+  , _iivdiVolume = pVolume_+  }+++-- | The status information or errors related to the disk image.+iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)+iivdiStatusMessage = lens _iivdiStatusMessage (\ s a -> s{_iivdiStatusMessage = a});++-- | A description of the task.+iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)+iivdiDescription = lens _iivdiDescription (\ s a -> s{_iivdiDescription = a});++-- | The Availability Zone where the resulting instance will reside.+iivdiAvailabilityZone :: Lens' ImportInstanceVolumeDetailItem Text+iivdiAvailabilityZone = lens _iivdiAvailabilityZone (\ s a -> s{_iivdiAvailabilityZone = a});++-- | The number of bytes converted so far.+iivdiBytesConverted :: Lens' ImportInstanceVolumeDetailItem Integer+iivdiBytesConverted = lens _iivdiBytesConverted (\ s a -> s{_iivdiBytesConverted = a});++-- | The image.+iivdiImage :: Lens' ImportInstanceVolumeDetailItem DiskImageDescription+iivdiImage = lens _iivdiImage (\ s a -> s{_iivdiImage = a});++-- | The status of the import of this particular disk image.+iivdiStatus :: Lens' ImportInstanceVolumeDetailItem Text+iivdiStatus = lens _iivdiStatus (\ s a -> s{_iivdiStatus = a});++-- | The volume.+iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription+iivdiVolume = lens _iivdiVolume (\ s a -> s{_iivdiVolume = a});++instance FromXML ImportInstanceVolumeDetailItem where+        parseXML x+          = ImportInstanceVolumeDetailItem' <$>+              (x .@? "statusMessage") <*> (x .@? "description") <*>+                (x .@ "availabilityZone")+                <*> (x .@ "bytesConverted")+                <*> (x .@ "image")+                <*> (x .@ "status")+                <*> (x .@ "volume")++instance Hashable ImportInstanceVolumeDetailItem+         where++instance NFData ImportInstanceVolumeDetailItem where++-- | Describes an import snapshot task.+--+--+--+-- /See:/ 'importSnapshotTask' smart constructor.+data ImportSnapshotTask = ImportSnapshotTask'+  { _istSnapshotTaskDetail :: !(Maybe SnapshotTaskDetail)+  , _istImportTaskId       :: !(Maybe Text)+  , _istDescription        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImportSnapshotTask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'istSnapshotTaskDetail' - Describes an import snapshot task.+--+-- * 'istImportTaskId' - The ID of the import snapshot task.+--+-- * 'istDescription' - A description of the import snapshot task.+importSnapshotTask+    :: ImportSnapshotTask+importSnapshotTask =+  ImportSnapshotTask'+  { _istSnapshotTaskDetail = Nothing+  , _istImportTaskId = Nothing+  , _istDescription = Nothing+  }+++-- | Describes an import snapshot task.+istSnapshotTaskDetail :: Lens' ImportSnapshotTask (Maybe SnapshotTaskDetail)+istSnapshotTaskDetail = lens _istSnapshotTaskDetail (\ s a -> s{_istSnapshotTaskDetail = a});++-- | The ID of the import snapshot task.+istImportTaskId :: Lens' ImportSnapshotTask (Maybe Text)+istImportTaskId = lens _istImportTaskId (\ s a -> s{_istImportTaskId = a});++-- | A description of the import snapshot task.+istDescription :: Lens' ImportSnapshotTask (Maybe Text)+istDescription = lens _istDescription (\ s a -> s{_istDescription = a});++instance FromXML ImportSnapshotTask where+        parseXML x+          = ImportSnapshotTask' <$>+              (x .@? "snapshotTaskDetail") <*>+                (x .@? "importTaskId")+                <*> (x .@? "description")++instance Hashable ImportSnapshotTask where++instance NFData ImportSnapshotTask where++-- | Describes an import volume task.+--+--+--+-- /See:/ 'importVolumeTaskDetails' smart constructor.+data ImportVolumeTaskDetails = ImportVolumeTaskDetails'+  { _ivtdDescription      :: !(Maybe Text)+  , _ivtdAvailabilityZone :: !Text+  , _ivtdBytesConverted   :: !Integer+  , _ivtdImage            :: !DiskImageDescription+  , _ivtdVolume           :: !DiskImageVolumeDescription+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ImportVolumeTaskDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ivtdDescription' - The description you provided when starting the import volume task.+--+-- * 'ivtdAvailabilityZone' - The Availability Zone where the resulting volume will reside.+--+-- * 'ivtdBytesConverted' - The number of bytes converted so far.+--+-- * 'ivtdImage' - The image.+--+-- * 'ivtdVolume' - The volume.+importVolumeTaskDetails+    :: Text -- ^ 'ivtdAvailabilityZone'+    -> Integer -- ^ 'ivtdBytesConverted'+    -> DiskImageDescription -- ^ 'ivtdImage'+    -> DiskImageVolumeDescription -- ^ 'ivtdVolume'+    -> ImportVolumeTaskDetails+importVolumeTaskDetails pAvailabilityZone_ pBytesConverted_ pImage_ pVolume_ =+  ImportVolumeTaskDetails'+  { _ivtdDescription = Nothing+  , _ivtdAvailabilityZone = pAvailabilityZone_+  , _ivtdBytesConverted = pBytesConverted_+  , _ivtdImage = pImage_+  , _ivtdVolume = pVolume_+  }+++-- | The description you provided when starting the import volume task.+ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)+ivtdDescription = lens _ivtdDescription (\ s a -> s{_ivtdDescription = a});++-- | The Availability Zone where the resulting volume will reside.+ivtdAvailabilityZone :: Lens' ImportVolumeTaskDetails Text+ivtdAvailabilityZone = lens _ivtdAvailabilityZone (\ s a -> s{_ivtdAvailabilityZone = a});++-- | The number of bytes converted so far.+ivtdBytesConverted :: Lens' ImportVolumeTaskDetails Integer+ivtdBytesConverted = lens _ivtdBytesConverted (\ s a -> s{_ivtdBytesConverted = a});++-- | The image.+ivtdImage :: Lens' ImportVolumeTaskDetails DiskImageDescription+ivtdImage = lens _ivtdImage (\ s a -> s{_ivtdImage = a});++-- | The volume.+ivtdVolume :: Lens' ImportVolumeTaskDetails DiskImageVolumeDescription+ivtdVolume = lens _ivtdVolume (\ s a -> s{_ivtdVolume = a});++instance FromXML ImportVolumeTaskDetails where+        parseXML x+          = ImportVolumeTaskDetails' <$>+              (x .@? "description") <*> (x .@ "availabilityZone")+                <*> (x .@ "bytesConverted")+                <*> (x .@ "image")+                <*> (x .@ "volume")++instance Hashable ImportVolumeTaskDetails where++instance NFData ImportVolumeTaskDetails where++-- | Describes an instance.+--+--+--+-- /See:/ 'instance'' smart constructor.+data Instance = Instance'+  { _insPublicDNSName          :: !(Maybe Text)+  , _insPlatform               :: !(Maybe PlatformValues)+  , _insSecurityGroups         :: !(Maybe [GroupIdentifier])+  , _insClientToken            :: !(Maybe Text)+  , _insEnaSupport             :: !(Maybe Bool)+  , _insSourceDestCheck        :: !(Maybe Bool)+  , _insElasticGpuAssociations :: !(Maybe [ElasticGpuAssociation])+  , _insVPCId                  :: !(Maybe Text)+  , _insKeyName                :: !(Maybe Text)+  , _insNetworkInterfaces      :: !(Maybe [InstanceNetworkInterface])+  , _insRAMDiskId              :: !(Maybe Text)+  , _insSubnetId               :: !(Maybe Text)+  , _insKernelId               :: !(Maybe Text)+  , _insRootDeviceName         :: !(Maybe Text)+  , _insSRIOVNetSupport        :: !(Maybe Text)+  , _insEBSOptimized           :: !(Maybe Bool)+  , _insStateTransitionReason  :: !(Maybe Text)+  , _insInstanceLifecycle      :: !(Maybe InstanceLifecycleType)+  , _insIAMInstanceProfile     :: !(Maybe IAMInstanceProfile)+  , _insPrivateIPAddress       :: !(Maybe Text)+  , _insProductCodes           :: !(Maybe [ProductCode])+  , _insSpotInstanceRequestId  :: !(Maybe Text)+  , _insPrivateDNSName         :: !(Maybe Text)+  , _insStateReason            :: !(Maybe StateReason)+  , _insBlockDeviceMappings    :: !(Maybe [InstanceBlockDeviceMapping])+  , _insPublicIPAddress        :: !(Maybe Text)+  , _insTags                   :: !(Maybe [Tag])+  , _insInstanceId             :: !Text+  , _insImageId                :: !Text+  , _insAMILaunchIndex         :: !Int+  , _insInstanceType           :: !InstanceType+  , _insLaunchTime             :: !ISO8601+  , _insPlacement              :: !Placement+  , _insMonitoring             :: !Monitoring+  , _insArchitecture           :: !ArchitectureValues+  , _insRootDeviceType         :: !DeviceType+  , _insVirtualizationType     :: !VirtualizationType+  , _insHypervisor             :: !HypervisorType+  , _insState                  :: !InstanceState+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Instance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'insPublicDNSName' - (IPv4 only) The public DNS name assigned to the instance. This name is not available until the instance enters the @running@ state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.+--+-- * 'insPlatform' - The value is @Windows@ for Windows instances; otherwise blank.+--+-- * 'insSecurityGroups' - One or more security groups for the instance.+--+-- * 'insClientToken' - The idempotency token you provided when you launched the instance, if applicable.+--+-- * 'insEnaSupport' - Specifies whether enhanced networking with ENA is enabled.+--+-- * 'insSourceDestCheck' - Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. The value must be @false@ for the instance to perform NAT. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances> in the /Amazon Virtual Private Cloud User Guide/ .+--+-- * 'insElasticGpuAssociations' - The Elastic GPU associated with the instance.+--+-- * 'insVPCId' - [EC2-VPC] The ID of the VPC in which the instance is running.+--+-- * 'insKeyName' - The name of the key pair, if this instance was launched with an associated key pair.+--+-- * 'insNetworkInterfaces' - [EC2-VPC] One or more network interfaces for the instance.+--+-- * 'insRAMDiskId' - The RAM disk associated with this instance, if applicable.+--+-- * 'insSubnetId' - [EC2-VPC] The ID of the subnet in which the instance is running.+--+-- * 'insKernelId' - The kernel associated with this instance, if applicable.+--+-- * 'insRootDeviceName' - The device name of the root device volume (for example, @/dev/sda1@ ).+--+-- * 'insSRIOVNetSupport' - Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.+--+-- * 'insEBSOptimized' - Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.+--+-- * 'insStateTransitionReason' - The reason for the most recent state transition. This might be an empty string.+--+-- * 'insInstanceLifecycle' - Indicates whether this is a Spot Instance or a Scheduled Instance.+--+-- * 'insIAMInstanceProfile' - The IAM instance profile associated with the instance, if applicable.+--+-- * 'insPrivateIPAddress' - The private IPv4 address assigned to the instance.+--+-- * 'insProductCodes' - The product codes attached to this instance, if applicable.+--+-- * 'insSpotInstanceRequestId' - If the request is a Spot Instance request, the ID of the request.+--+-- * 'insPrivateDNSName' - (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 @running@ 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.+--+-- * 'insStateReason' - The reason for the most recent state transition.+--+-- * 'insBlockDeviceMappings' - Any block device mapping entries for the instance.+--+-- * 'insPublicIPAddress' - The public IPv4 address assigned to the instance, if applicable.+--+-- * 'insTags' - Any tags assigned to the instance.+--+-- * 'insInstanceId' - The ID of the instance.+--+-- * 'insImageId' - The ID of the AMI used to launch the instance.+--+-- * 'insAMILaunchIndex' - The AMI launch index, which can be used to find this instance in the launch group.+--+-- * 'insInstanceType' - The instance type.+--+-- * 'insLaunchTime' - The time the instance was launched.+--+-- * 'insPlacement' - The location where the instance launched, if applicable.+--+-- * 'insMonitoring' - The monitoring for the instance.+--+-- * 'insArchitecture' - The architecture of the image.+--+-- * 'insRootDeviceType' - The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.+--+-- * 'insVirtualizationType' - The virtualization type of the instance.+--+-- * 'insHypervisor' - The hypervisor type of the instance.+--+-- * 'insState' - The current state of the instance.+instance'+    :: Text -- ^ 'insInstanceId'+    -> Text -- ^ 'insImageId'+    -> Int -- ^ 'insAMILaunchIndex'+    -> InstanceType -- ^ 'insInstanceType'+    -> UTCTime -- ^ 'insLaunchTime'+    -> Placement -- ^ 'insPlacement'+    -> Monitoring -- ^ 'insMonitoring'+    -> ArchitectureValues -- ^ 'insArchitecture'+    -> DeviceType -- ^ 'insRootDeviceType'+    -> VirtualizationType -- ^ 'insVirtualizationType'+    -> HypervisorType -- ^ 'insHypervisor'+    -> InstanceState -- ^ 'insState'+    -> Instance+instance' pInstanceId_ pImageId_ pAMILaunchIndex_ pInstanceType_ pLaunchTime_ pPlacement_ pMonitoring_ pArchitecture_ pRootDeviceType_ pVirtualizationType_ pHypervisor_ pState_ =+  Instance'+  { _insPublicDNSName = Nothing+  , _insPlatform = Nothing+  , _insSecurityGroups = Nothing+  , _insClientToken = Nothing+  , _insEnaSupport = Nothing+  , _insSourceDestCheck = Nothing+  , _insElasticGpuAssociations = Nothing+  , _insVPCId = Nothing+  , _insKeyName = Nothing+  , _insNetworkInterfaces = Nothing+  , _insRAMDiskId = Nothing+  , _insSubnetId = Nothing+  , _insKernelId = Nothing+  , _insRootDeviceName = Nothing+  , _insSRIOVNetSupport = Nothing+  , _insEBSOptimized = Nothing+  , _insStateTransitionReason = Nothing+  , _insInstanceLifecycle = Nothing+  , _insIAMInstanceProfile = Nothing+  , _insPrivateIPAddress = Nothing+  , _insProductCodes = Nothing+  , _insSpotInstanceRequestId = Nothing+  , _insPrivateDNSName = Nothing+  , _insStateReason = Nothing+  , _insBlockDeviceMappings = Nothing+  , _insPublicIPAddress = Nothing+  , _insTags = Nothing+  , _insInstanceId = pInstanceId_+  , _insImageId = pImageId_+  , _insAMILaunchIndex = pAMILaunchIndex_+  , _insInstanceType = pInstanceType_+  , _insLaunchTime = _Time # pLaunchTime_+  , _insPlacement = pPlacement_+  , _insMonitoring = pMonitoring_+  , _insArchitecture = pArchitecture_+  , _insRootDeviceType = pRootDeviceType_+  , _insVirtualizationType = pVirtualizationType_+  , _insHypervisor = pHypervisor_+  , _insState = pState_+  }+++-- | (IPv4 only) The public DNS name assigned to the instance. This name is not available until the instance enters the @running@ state. For EC2-VPC, this name is only available if you've enabled DNS hostnames for your VPC.+insPublicDNSName :: Lens' Instance (Maybe Text)+insPublicDNSName = lens _insPublicDNSName (\ s a -> s{_insPublicDNSName = a});++-- | The value is @Windows@ for Windows instances; otherwise blank.+insPlatform :: Lens' Instance (Maybe PlatformValues)+insPlatform = lens _insPlatform (\ s a -> s{_insPlatform = a});++-- | One or more security groups for the instance.+insSecurityGroups :: Lens' Instance [GroupIdentifier]+insSecurityGroups = lens _insSecurityGroups (\ s a -> s{_insSecurityGroups = a}) . _Default . _Coerce;++-- | The idempotency token you provided when you launched the instance, if applicable.+insClientToken :: Lens' Instance (Maybe Text)+insClientToken = lens _insClientToken (\ s a -> s{_insClientToken = a});++-- | Specifies whether enhanced networking with ENA is enabled.+insEnaSupport :: Lens' Instance (Maybe Bool)+insEnaSupport = lens _insEnaSupport (\ s a -> s{_insEnaSupport = a});++-- | Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of @true@ means that checking is enabled, and @false@ means that checking is disabled. The value must be @false@ for the instance to perform NAT. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances> in the /Amazon Virtual Private Cloud User Guide/ .+insSourceDestCheck :: Lens' Instance (Maybe Bool)+insSourceDestCheck = lens _insSourceDestCheck (\ s a -> s{_insSourceDestCheck = a});++-- | The Elastic GPU associated with the instance.+insElasticGpuAssociations :: Lens' Instance [ElasticGpuAssociation]+insElasticGpuAssociations = lens _insElasticGpuAssociations (\ s a -> s{_insElasticGpuAssociations = a}) . _Default . _Coerce;++-- | [EC2-VPC] The ID of the VPC in which the instance is running.+insVPCId :: Lens' Instance (Maybe Text)+insVPCId = lens _insVPCId (\ s a -> s{_insVPCId = a});++-- | The name of the key pair, if this instance was launched with an associated key pair.+insKeyName :: Lens' Instance (Maybe Text)+insKeyName = lens _insKeyName (\ s a -> s{_insKeyName = a});++-- | [EC2-VPC] One or more network interfaces for the instance.+insNetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]+insNetworkInterfaces = lens _insNetworkInterfaces (\ s a -> s{_insNetworkInterfaces = a}) . _Default . _Coerce;++-- | The RAM disk associated with this instance, if applicable.+insRAMDiskId :: Lens' Instance (Maybe Text)+insRAMDiskId = lens _insRAMDiskId (\ s a -> s{_insRAMDiskId = a});++-- | [EC2-VPC] The ID of the subnet in which the instance is running.+insSubnetId :: Lens' Instance (Maybe Text)+insSubnetId = lens _insSubnetId (\ s a -> s{_insSubnetId = a});++-- | The kernel associated with this instance, if applicable.+insKernelId :: Lens' Instance (Maybe Text)+insKernelId = lens _insKernelId (\ s a -> s{_insKernelId = a});++-- | The device name of the root device volume (for example, @/dev/sda1@ ).+insRootDeviceName :: Lens' Instance (Maybe Text)+insRootDeviceName = lens _insRootDeviceName (\ s a -> s{_insRootDeviceName = a});++-- | Specifies whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.+insSRIOVNetSupport :: Lens' Instance (Maybe Text)+insSRIOVNetSupport = lens _insSRIOVNetSupport (\ s a -> s{_insSRIOVNetSupport = a});++-- | Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal 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)+insEBSOptimized = lens _insEBSOptimized (\ s a -> s{_insEBSOptimized = a});++-- | The reason for the most recent state transition. This might be an empty string.+insStateTransitionReason :: Lens' Instance (Maybe Text)+insStateTransitionReason = lens _insStateTransitionReason (\ s a -> s{_insStateTransitionReason = a});++-- | Indicates whether this is a Spot Instance or a Scheduled Instance.+insInstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)+insInstanceLifecycle = lens _insInstanceLifecycle (\ s a -> s{_insInstanceLifecycle = a});++-- | The IAM instance profile associated with the instance, if applicable.+insIAMInstanceProfile :: Lens' Instance (Maybe IAMInstanceProfile)+insIAMInstanceProfile = lens _insIAMInstanceProfile (\ s a -> s{_insIAMInstanceProfile = a});++-- | The private IPv4 address assigned to the instance.+insPrivateIPAddress :: Lens' Instance (Maybe Text)+insPrivateIPAddress = lens _insPrivateIPAddress (\ s a -> s{_insPrivateIPAddress = a});++-- | The product codes attached to this instance, if applicable.+insProductCodes :: Lens' Instance [ProductCode]+insProductCodes = lens _insProductCodes (\ s a -> s{_insProductCodes = a}) . _Default . _Coerce;++-- | If the request is a Spot Instance request, the ID of the request.+insSpotInstanceRequestId :: Lens' Instance (Maybe Text)+insSpotInstanceRequestId = lens _insSpotInstanceRequestId (\ s a -> s{_insSpotInstanceRequestId = 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 @running@ 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)+insPrivateDNSName = lens _insPrivateDNSName (\ s a -> s{_insPrivateDNSName = a});++-- | The reason for the most recent state transition.+insStateReason :: Lens' Instance (Maybe StateReason)+insStateReason = lens _insStateReason (\ s a -> s{_insStateReason = a});++-- | Any block device mapping entries for the instance.+insBlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]+insBlockDeviceMappings = lens _insBlockDeviceMappings (\ s a -> s{_insBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The public IPv4 address assigned to the instance, if applicable.+insPublicIPAddress :: Lens' Instance (Maybe Text)+insPublicIPAddress = lens _insPublicIPAddress (\ s a -> s{_insPublicIPAddress = a});++-- | Any tags assigned to the instance.+insTags :: Lens' Instance [Tag]+insTags = lens _insTags (\ s a -> s{_insTags = a}) . _Default . _Coerce;++-- | The ID of the instance.+insInstanceId :: Lens' Instance Text+insInstanceId = lens _insInstanceId (\ s a -> s{_insInstanceId = a});++-- | The ID of the AMI used to launch the instance.+insImageId :: Lens' Instance Text+insImageId = lens _insImageId (\ s a -> s{_insImageId = a});++-- | The AMI launch index, which can be used to find this instance in the launch group.+insAMILaunchIndex :: Lens' Instance Int+insAMILaunchIndex = lens _insAMILaunchIndex (\ s a -> s{_insAMILaunchIndex = a});++-- | The instance type.+insInstanceType :: Lens' Instance InstanceType+insInstanceType = lens _insInstanceType (\ s a -> s{_insInstanceType = a});++-- | The time the instance was launched.+insLaunchTime :: Lens' Instance UTCTime+insLaunchTime = lens _insLaunchTime (\ s a -> s{_insLaunchTime = a}) . _Time;++-- | The location where the instance launched, if applicable.+insPlacement :: Lens' Instance Placement+insPlacement = lens _insPlacement (\ s a -> s{_insPlacement = a});++-- | The monitoring for the instance.+insMonitoring :: Lens' Instance Monitoring+insMonitoring = lens _insMonitoring (\ s a -> s{_insMonitoring = a});++-- | The architecture of the image.+insArchitecture :: Lens' Instance ArchitectureValues+insArchitecture = lens _insArchitecture (\ s a -> s{_insArchitecture = a});++-- | The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.+insRootDeviceType :: Lens' Instance DeviceType+insRootDeviceType = lens _insRootDeviceType (\ s a -> s{_insRootDeviceType = a});++-- | The virtualization type of the instance.+insVirtualizationType :: Lens' Instance VirtualizationType+insVirtualizationType = lens _insVirtualizationType (\ s a -> s{_insVirtualizationType = a});++-- | The hypervisor type of the instance.+insHypervisor :: Lens' Instance HypervisorType+insHypervisor = lens _insHypervisor (\ s a -> s{_insHypervisor = a});++-- | The current state of the instance.+insState :: Lens' Instance InstanceState+insState = lens _insState (\ s a -> s{_insState = a});++instance FromXML Instance where+        parseXML x+          = Instance' <$>+              (x .@? "dnsName") <*> (x .@? "platform") <*>+                (x .@? "groupSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "clientToken")+                <*> (x .@? "enaSupport")+                <*> (x .@? "sourceDestCheck")+                <*>+                (x .@? "elasticGpuAssociationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*> (x .@? "keyName")+                <*>+                (x .@? "networkInterfaceSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ramdiskId")+                <*> (x .@? "subnetId")+                <*> (x .@? "kernelId")+                <*> (x .@? "rootDeviceName")+                <*> (x .@? "sriovNetSupport")+                <*> (x .@? "ebsOptimized")+                <*> (x .@? "reason")+                <*> (x .@? "instanceLifecycle")+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "privateIpAddress")+                <*>+                (x .@? "productCodes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "spotInstanceRequestId")+                <*> (x .@? "privateDnsName")+                <*> (x .@? "stateReason")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ipAddress")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "instanceId")+                <*> (x .@ "imageId")+                <*> (x .@ "amiLaunchIndex")+                <*> (x .@ "instanceType")+                <*> (x .@ "launchTime")+                <*> (x .@ "placement")+                <*> (x .@ "monitoring")+                <*> (x .@ "architecture")+                <*> (x .@ "rootDeviceType")+                <*> (x .@ "virtualizationType")+                <*> (x .@ "hypervisor")+                <*> (x .@ "instanceState")++instance Hashable Instance where++instance NFData Instance where++-- | Describes a block device mapping.+--+--+--+-- /See:/ 'instanceBlockDeviceMapping' smart constructor.+data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping'+  { _ibdmEBS        :: !(Maybe EBSInstanceBlockDevice)+  , _ibdmDeviceName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceBlockDeviceMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ibdmEBS' - Parameters used to automatically set up EBS volumes when the instance is launched.+--+-- * 'ibdmDeviceName' - The device name (for example, @/dev/sdh@ or @xvdh@ ).+instanceBlockDeviceMapping+    :: InstanceBlockDeviceMapping+instanceBlockDeviceMapping =+  InstanceBlockDeviceMapping' {_ibdmEBS = Nothing, _ibdmDeviceName = Nothing}+++-- | Parameters used to automatically set up EBS volumes when the instance is launched.+ibdmEBS :: Lens' InstanceBlockDeviceMapping (Maybe EBSInstanceBlockDevice)+ibdmEBS = lens _ibdmEBS (\ s a -> s{_ibdmEBS = a});++-- | The device name (for example, @/dev/sdh@ or @xvdh@ ).+ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)+ibdmDeviceName = lens _ibdmDeviceName (\ s a -> s{_ibdmDeviceName = a});++instance FromXML InstanceBlockDeviceMapping where+        parseXML x+          = InstanceBlockDeviceMapping' <$>+              (x .@? "ebs") <*> (x .@? "deviceName")++instance Hashable InstanceBlockDeviceMapping where++instance NFData InstanceBlockDeviceMapping where++-- | Describes a block device mapping entry.+--+--+--+-- /See:/ 'instanceBlockDeviceMappingSpecification' smart constructor.+data InstanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification'+  { _ibdmsVirtualName :: !(Maybe Text)+  , _ibdmsNoDevice    :: !(Maybe Text)+  , _ibdmsEBS         :: !(Maybe EBSInstanceBlockDeviceSpecification)+  , _ibdmsDeviceName  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceBlockDeviceMappingSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ibdmsVirtualName' - The virtual device name.+--+-- * 'ibdmsNoDevice' - suppress the specified device included in the block device mapping.+--+-- * 'ibdmsEBS' - Parameters used to automatically set up EBS volumes when the instance is launched.+--+-- * 'ibdmsDeviceName' - The device name (for example, @/dev/sdh@ or @xvdh@ ).+instanceBlockDeviceMappingSpecification+    :: InstanceBlockDeviceMappingSpecification+instanceBlockDeviceMappingSpecification =+  InstanceBlockDeviceMappingSpecification'+  { _ibdmsVirtualName = Nothing+  , _ibdmsNoDevice = Nothing+  , _ibdmsEBS = Nothing+  , _ibdmsDeviceName = Nothing+  }+++-- | The virtual device name.+ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsVirtualName = lens _ibdmsVirtualName (\ s a -> s{_ibdmsVirtualName = a});++-- | suppress the specified device included in the block device mapping.+ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsNoDevice = lens _ibdmsNoDevice (\ s a -> s{_ibdmsNoDevice = a});++-- | Parameters used to automatically set up EBS volumes when the instance is launched.+ibdmsEBS :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EBSInstanceBlockDeviceSpecification)+ibdmsEBS = lens _ibdmsEBS (\ s a -> s{_ibdmsEBS = a});++-- | The device name (for example, @/dev/sdh@ or @xvdh@ ).+ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsDeviceName = lens _ibdmsDeviceName (\ s a -> s{_ibdmsDeviceName = a});++instance Hashable+           InstanceBlockDeviceMappingSpecification+         where++instance NFData+           InstanceBlockDeviceMappingSpecification+         where++instance ToQuery+           InstanceBlockDeviceMappingSpecification+         where+        toQuery InstanceBlockDeviceMappingSpecification'{..}+          = mconcat+              ["VirtualName" =: _ibdmsVirtualName,+               "NoDevice" =: _ibdmsNoDevice, "Ebs" =: _ibdmsEBS,+               "DeviceName" =: _ibdmsDeviceName]++-- | Information about the instance type that the Dedicated Host supports.+--+--+--+-- /See:/ 'instanceCapacity' smart constructor.+data InstanceCapacity = InstanceCapacity'+  { _icAvailableCapacity :: !(Maybe Int)+  , _icInstanceType      :: !(Maybe Text)+  , _icTotalCapacity     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceCapacity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icAvailableCapacity' - The number of instances that can still be launched onto the Dedicated Host.+--+-- * 'icInstanceType' - The instance type size supported by the Dedicated Host.+--+-- * 'icTotalCapacity' - The total number of instances that can be launched onto the Dedicated Host.+instanceCapacity+    :: InstanceCapacity+instanceCapacity =+  InstanceCapacity'+  { _icAvailableCapacity = Nothing+  , _icInstanceType = Nothing+  , _icTotalCapacity = Nothing+  }+++-- | The number of instances that can still be launched onto the Dedicated Host.+icAvailableCapacity :: Lens' InstanceCapacity (Maybe Int)+icAvailableCapacity = lens _icAvailableCapacity (\ s a -> s{_icAvailableCapacity = a});++-- | The instance type size supported by the Dedicated Host.+icInstanceType :: Lens' InstanceCapacity (Maybe Text)+icInstanceType = lens _icInstanceType (\ s a -> s{_icInstanceType = a});++-- | The total number of instances that can be launched onto the Dedicated Host.+icTotalCapacity :: Lens' InstanceCapacity (Maybe Int)+icTotalCapacity = lens _icTotalCapacity (\ s a -> s{_icTotalCapacity = a});++instance FromXML InstanceCapacity where+        parseXML x+          = InstanceCapacity' <$>+              (x .@? "availableCapacity") <*>+                (x .@? "instanceType")+                <*> (x .@? "totalCapacity")++instance Hashable InstanceCapacity where++instance NFData InstanceCapacity where++-- | Describes a Reserved Instance listing state.+--+--+--+-- /See:/ 'instanceCount' smart constructor.+data InstanceCount = InstanceCount'+  { _icState         :: !(Maybe ListingState)+  , _icInstanceCount :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceCount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icState' - The states of the listed Reserved Instances.+--+-- * 'icInstanceCount' - The number of listed Reserved Instances in the state specified by the @state@ .+instanceCount+    :: InstanceCount+instanceCount = InstanceCount' {_icState = Nothing, _icInstanceCount = Nothing}+++-- | The states of the listed Reserved Instances.+icState :: Lens' InstanceCount (Maybe ListingState)+icState = lens _icState (\ s a -> s{_icState = a});++-- | The number of listed Reserved Instances in the state specified by the @state@ .+icInstanceCount :: Lens' InstanceCount (Maybe Int)+icInstanceCount = lens _icInstanceCount (\ s a -> s{_icInstanceCount = a});++instance FromXML InstanceCount where+        parseXML x+          = InstanceCount' <$>+              (x .@? "state") <*> (x .@? "instanceCount")++instance Hashable InstanceCount where++instance NFData InstanceCount where++-- | Describes an instance to export.+--+--+--+-- /See:/ 'instanceExportDetails' smart constructor.+data InstanceExportDetails = InstanceExportDetails'+  { _iedTargetEnvironment :: !(Maybe ExportEnvironment)+  , _iedInstanceId        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceExportDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iedTargetEnvironment' - The target virtualization environment.+--+-- * 'iedInstanceId' - The ID of the resource being exported.+instanceExportDetails+    :: InstanceExportDetails+instanceExportDetails =+  InstanceExportDetails'+  {_iedTargetEnvironment = Nothing, _iedInstanceId = Nothing}+++-- | The target virtualization environment.+iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)+iedTargetEnvironment = lens _iedTargetEnvironment (\ s a -> s{_iedTargetEnvironment = a});++-- | The ID of the resource being exported.+iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)+iedInstanceId = lens _iedInstanceId (\ s a -> s{_iedInstanceId = a});++instance FromXML InstanceExportDetails where+        parseXML x+          = InstanceExportDetails' <$>+              (x .@? "targetEnvironment") <*> (x .@? "instanceId")++instance Hashable InstanceExportDetails where++instance NFData InstanceExportDetails where++-- | Describes an IPv6 address.+--+--+--+-- /See:/ 'instanceIPv6Address' smart constructor.+newtype InstanceIPv6Address = InstanceIPv6Address'+  { _iiaIPv6Address :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceIPv6Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiaIPv6Address' - The IPv6 address.+instanceIPv6Address+    :: InstanceIPv6Address+instanceIPv6Address = InstanceIPv6Address' {_iiaIPv6Address = Nothing}+++-- | The IPv6 address.+iiaIPv6Address :: Lens' InstanceIPv6Address (Maybe Text)+iiaIPv6Address = lens _iiaIPv6Address (\ s a -> s{_iiaIPv6Address = a});++instance FromXML InstanceIPv6Address where+        parseXML x+          = InstanceIPv6Address' <$> (x .@? "ipv6Address")++instance Hashable InstanceIPv6Address where++instance NFData InstanceIPv6Address where++instance ToQuery InstanceIPv6Address where+        toQuery InstanceIPv6Address'{..}+          = mconcat ["Ipv6Address" =: _iiaIPv6Address]++-- | Describes the monitoring of an instance.+--+--+--+-- /See:/ 'instanceMonitoring' smart constructor.+data InstanceMonitoring = InstanceMonitoring'+  { _imInstanceId :: !(Maybe Text)+  , _imMonitoring :: !(Maybe Monitoring)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceMonitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imInstanceId' - The ID of the instance.+--+-- * 'imMonitoring' - The monitoring for the instance.+instanceMonitoring+    :: InstanceMonitoring+instanceMonitoring =+  InstanceMonitoring' {_imInstanceId = Nothing, _imMonitoring = Nothing}+++-- | The ID of the instance.+imInstanceId :: Lens' InstanceMonitoring (Maybe Text)+imInstanceId = lens _imInstanceId (\ s a -> s{_imInstanceId = a});++-- | The monitoring for the instance.+imMonitoring :: Lens' InstanceMonitoring (Maybe Monitoring)+imMonitoring = lens _imMonitoring (\ s a -> s{_imMonitoring = a});++instance FromXML InstanceMonitoring where+        parseXML x+          = InstanceMonitoring' <$>+              (x .@? "instanceId") <*> (x .@? "monitoring")++instance Hashable InstanceMonitoring where++instance NFData InstanceMonitoring where++-- | Describes a network interface.+--+--+--+-- /See:/ 'instanceNetworkInterface' smart constructor.+data InstanceNetworkInterface = InstanceNetworkInterface'+  { _iniGroups             :: !(Maybe [GroupIdentifier])+  , _iniStatus             :: !(Maybe NetworkInterfaceStatus)+  , _iniPrivateIPAddresses :: !(Maybe [InstancePrivateIPAddress])+  , _iniSourceDestCheck    :: !(Maybe Bool)+  , _iniVPCId              :: !(Maybe Text)+  , _iniNetworkInterfaceId :: !(Maybe Text)+  , _iniSubnetId           :: !(Maybe Text)+  , _iniMACAddress         :: !(Maybe Text)+  , _iniAttachment         :: !(Maybe InstanceNetworkInterfaceAttachment)+  , _iniOwnerId            :: !(Maybe Text)+  , _iniPrivateIPAddress   :: !(Maybe Text)+  , _iniPrivateDNSName     :: !(Maybe Text)+  , _iniDescription        :: !(Maybe Text)+  , _iniAssociation        :: !(Maybe InstanceNetworkInterfaceAssociation)+  , _iniIPv6Addresses      :: !(Maybe [InstanceIPv6Address])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceNetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iniGroups' - One or more security groups.+--+-- * 'iniStatus' - The status of the network interface.+--+-- * 'iniPrivateIPAddresses' - One or more private IPv4 addresses associated with the network interface.+--+-- * 'iniSourceDestCheck' - Indicates whether to validate network traffic to or from this network interface.+--+-- * 'iniVPCId' - The ID of the VPC.+--+-- * 'iniNetworkInterfaceId' - The ID of the network interface.+--+-- * 'iniSubnetId' - The ID of the subnet.+--+-- * 'iniMACAddress' - The MAC address.+--+-- * 'iniAttachment' - The network interface attachment.+--+-- * 'iniOwnerId' - The ID of the AWS account that created the network interface.+--+-- * 'iniPrivateIPAddress' - The IPv4 address of the network interface within the subnet.+--+-- * 'iniPrivateDNSName' - The private DNS name.+--+-- * 'iniDescription' - The description.+--+-- * 'iniAssociation' - The association information for an Elastic IPv4 associated with the network interface.+--+-- * 'iniIPv6Addresses' - One or more IPv6 addresses associated with the network interface.+instanceNetworkInterface+    :: InstanceNetworkInterface+instanceNetworkInterface =+  InstanceNetworkInterface'+  { _iniGroups = Nothing+  , _iniStatus = Nothing+  , _iniPrivateIPAddresses = Nothing+  , _iniSourceDestCheck = Nothing+  , _iniVPCId = Nothing+  , _iniNetworkInterfaceId = Nothing+  , _iniSubnetId = Nothing+  , _iniMACAddress = Nothing+  , _iniAttachment = Nothing+  , _iniOwnerId = Nothing+  , _iniPrivateIPAddress = Nothing+  , _iniPrivateDNSName = Nothing+  , _iniDescription = Nothing+  , _iniAssociation = Nothing+  , _iniIPv6Addresses = Nothing+  }+++-- | One or more security groups.+iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]+iniGroups = lens _iniGroups (\ s a -> s{_iniGroups = a}) . _Default . _Coerce;++-- | The status of the network interface.+iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)+iniStatus = lens _iniStatus (\ s a -> s{_iniStatus = a});++-- | One or more private IPv4 addresses associated with the network interface.+iniPrivateIPAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIPAddress]+iniPrivateIPAddresses = lens _iniPrivateIPAddresses (\ s a -> s{_iniPrivateIPAddresses = a}) . _Default . _Coerce;++-- | Indicates whether to validate network traffic to or from this network interface.+iniSourceDestCheck :: Lens' InstanceNetworkInterface (Maybe Bool)+iniSourceDestCheck = lens _iniSourceDestCheck (\ s a -> s{_iniSourceDestCheck = a});++-- | The ID of the VPC.+iniVPCId :: Lens' InstanceNetworkInterface (Maybe Text)+iniVPCId = lens _iniVPCId (\ s a -> s{_iniVPCId = a});++-- | The ID of the network interface.+iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)+iniNetworkInterfaceId = lens _iniNetworkInterfaceId (\ s a -> s{_iniNetworkInterfaceId = a});++-- | The ID of the subnet.+iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)+iniSubnetId = lens _iniSubnetId (\ s a -> s{_iniSubnetId = a});++-- | The MAC address.+iniMACAddress :: Lens' InstanceNetworkInterface (Maybe Text)+iniMACAddress = lens _iniMACAddress (\ s a -> s{_iniMACAddress = a});++-- | The network interface attachment.+iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)+iniAttachment = lens _iniAttachment (\ s a -> s{_iniAttachment = a});++-- | The ID of the AWS account that created the network interface.+iniOwnerId :: Lens' InstanceNetworkInterface (Maybe Text)+iniOwnerId = lens _iniOwnerId (\ s a -> s{_iniOwnerId = a});++-- | The IPv4 address of the network interface within the subnet.+iniPrivateIPAddress :: Lens' InstanceNetworkInterface (Maybe Text)+iniPrivateIPAddress = lens _iniPrivateIPAddress (\ s a -> s{_iniPrivateIPAddress = a});++-- | The private DNS name.+iniPrivateDNSName :: Lens' InstanceNetworkInterface (Maybe Text)+iniPrivateDNSName = lens _iniPrivateDNSName (\ s a -> s{_iniPrivateDNSName = a});++-- | The description.+iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)+iniDescription = lens _iniDescription (\ s a -> s{_iniDescription = a});++-- | The association information for an Elastic IPv4 associated with the network interface.+iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)+iniAssociation = lens _iniAssociation (\ s a -> s{_iniAssociation = a});++-- | One or more IPv6 addresses associated with the network interface.+iniIPv6Addresses :: Lens' InstanceNetworkInterface [InstanceIPv6Address]+iniIPv6Addresses = lens _iniIPv6Addresses (\ s a -> s{_iniIPv6Addresses = a}) . _Default . _Coerce;++instance FromXML InstanceNetworkInterface where+        parseXML x+          = InstanceNetworkInterface' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "status")+                <*>+                (x .@? "privateIpAddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "sourceDestCheck")+                <*> (x .@? "vpcId")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "subnetId")+                <*> (x .@? "macAddress")+                <*> (x .@? "attachment")+                <*> (x .@? "ownerId")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "privateDnsName")+                <*> (x .@? "description")+                <*> (x .@? "association")+                <*>+                (x .@? "ipv6AddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable InstanceNetworkInterface where++instance NFData InstanceNetworkInterface where++-- | Describes association information for an Elastic IP address (IPv4).+--+--+--+-- /See:/ 'instanceNetworkInterfaceAssociation' smart constructor.+data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation'+  { _iniaPublicDNSName :: !(Maybe Text)+  , _iniaIPOwnerId     :: !(Maybe Text)+  , _iniaPublicIP      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceNetworkInterfaceAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iniaPublicDNSName' - The public DNS name.+--+-- * 'iniaIPOwnerId' - The ID of the owner of the Elastic IP address.+--+-- * 'iniaPublicIP' - The public IP address or Elastic IP address bound to the network interface.+instanceNetworkInterfaceAssociation+    :: InstanceNetworkInterfaceAssociation+instanceNetworkInterfaceAssociation =+  InstanceNetworkInterfaceAssociation'+  { _iniaPublicDNSName = Nothing+  , _iniaIPOwnerId = Nothing+  , _iniaPublicIP = Nothing+  }+++-- | The public DNS name.+iniaPublicDNSName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaPublicDNSName = lens _iniaPublicDNSName (\ s a -> s{_iniaPublicDNSName = a});++-- | The ID of the owner of the Elastic IP address.+iniaIPOwnerId :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaIPOwnerId = lens _iniaIPOwnerId (\ s a -> s{_iniaIPOwnerId = a});++-- | The public IP address or Elastic IP address bound to the network interface.+iniaPublicIP :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaPublicIP = lens _iniaPublicIP (\ s a -> s{_iniaPublicIP = a});++instance FromXML InstanceNetworkInterfaceAssociation+         where+        parseXML x+          = InstanceNetworkInterfaceAssociation' <$>+              (x .@? "publicDnsName") <*> (x .@? "ipOwnerId") <*>+                (x .@? "publicIp")++instance Hashable InstanceNetworkInterfaceAssociation+         where++instance NFData InstanceNetworkInterfaceAssociation+         where++-- | Describes a network interface attachment.+--+--+--+-- /See:/ 'instanceNetworkInterfaceAttachment' smart constructor.+data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment'+  { _iniaStatus              :: !(Maybe AttachmentStatus)+  , _iniaDeleteOnTermination :: !(Maybe Bool)+  , _iniaAttachmentId        :: !(Maybe Text)+  , _iniaAttachTime          :: !(Maybe ISO8601)+  , _iniaDeviceIndex         :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceNetworkInterfaceAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iniaStatus' - The attachment state.+--+-- * 'iniaDeleteOnTermination' - Indicates whether the network interface is deleted when the instance is terminated.+--+-- * 'iniaAttachmentId' - The ID of the network interface attachment.+--+-- * 'iniaAttachTime' - The time stamp when the attachment initiated.+--+-- * 'iniaDeviceIndex' - The index of the device on the instance for the network interface attachment.+instanceNetworkInterfaceAttachment+    :: InstanceNetworkInterfaceAttachment+instanceNetworkInterfaceAttachment =+  InstanceNetworkInterfaceAttachment'+  { _iniaStatus = Nothing+  , _iniaDeleteOnTermination = Nothing+  , _iniaAttachmentId = Nothing+  , _iniaAttachTime = Nothing+  , _iniaDeviceIndex = Nothing+  }+++-- | The attachment state.+iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)+iniaStatus = lens _iniaStatus (\ s a -> s{_iniaStatus = a});++-- | Indicates whether the network interface is deleted when the instance is terminated.+iniaDeleteOnTermination :: Lens' InstanceNetworkInterfaceAttachment (Maybe Bool)+iniaDeleteOnTermination = lens _iniaDeleteOnTermination (\ s a -> s{_iniaDeleteOnTermination = a});++-- | The ID of the network interface attachment.+iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)+iniaAttachmentId = lens _iniaAttachmentId (\ s a -> s{_iniaAttachmentId = a});++-- | The time stamp when the attachment initiated.+iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)+iniaAttachTime = lens _iniaAttachTime (\ s a -> s{_iniaAttachTime = a}) . mapping _Time;++-- | The index of the device on the instance for the network interface attachment.+iniaDeviceIndex :: Lens' InstanceNetworkInterfaceAttachment (Maybe Int)+iniaDeviceIndex = lens _iniaDeviceIndex (\ s a -> s{_iniaDeviceIndex = a});++instance FromXML InstanceNetworkInterfaceAttachment+         where+        parseXML x+          = InstanceNetworkInterfaceAttachment' <$>+              (x .@? "status") <*> (x .@? "deleteOnTermination")+                <*> (x .@? "attachmentId")+                <*> (x .@? "attachTime")+                <*> (x .@? "deviceIndex")++instance Hashable InstanceNetworkInterfaceAttachment+         where++instance NFData InstanceNetworkInterfaceAttachment+         where++-- | Describes a network interface.+--+--+--+-- /See:/ 'instanceNetworkInterfaceSpecification' smart constructor.+data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification'+  { _inisGroups :: !(Maybe [Text])+  , _inisPrivateIPAddresses :: !(Maybe [PrivateIPAddressSpecification])+  , _inisDeleteOnTermination :: !(Maybe Bool)+  , _inisAssociatePublicIPAddress :: !(Maybe Bool)+  , _inisNetworkInterfaceId :: !(Maybe Text)+  , _inisSubnetId :: !(Maybe Text)+  , _inisIPv6AddressCount :: !(Maybe Int)+  , _inisPrivateIPAddress :: !(Maybe Text)+  , _inisSecondaryPrivateIPAddressCount :: !(Maybe Int)+  , _inisDescription :: !(Maybe Text)+  , _inisDeviceIndex :: !(Maybe Int)+  , _inisIPv6Addresses :: !(Maybe [InstanceIPv6Address])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceNetworkInterfaceSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'inisGroups' - The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.+--+-- * 'inisPrivateIPAddresses' - 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 'RunInstances' request.+--+-- * 'inisDeleteOnTermination' - If set to @true@ , the interface is deleted when the instance is terminated. You can specify @true@ only if creating a new network interface when launching an instance.+--+-- * 'inisAssociatePublicIPAddress' - 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 @true@ .+--+-- * 'inisNetworkInterfaceId' - The ID of the network interface.+--+-- * 'inisSubnetId' - The ID of the subnet associated with the network string. Applies only if creating a network interface when launching an instance.+--+-- * 'inisIPv6AddressCount' - 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.+--+-- * 'inisPrivateIPAddress' - 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 'RunInstances' request.+--+-- * 'inisSecondaryPrivateIPAddressCount' - 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 'RunInstances' request.+--+-- * 'inisDescription' - The description of the network interface. Applies only if creating a network interface when launching an instance.+--+-- * 'inisDeviceIndex' - The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a 'RunInstances' request, you must provide the device index.+--+-- * 'inisIPv6Addresses' - 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.+instanceNetworkInterfaceSpecification+    :: InstanceNetworkInterfaceSpecification+instanceNetworkInterfaceSpecification =+  InstanceNetworkInterfaceSpecification'+  { _inisGroups = Nothing+  , _inisPrivateIPAddresses = Nothing+  , _inisDeleteOnTermination = Nothing+  , _inisAssociatePublicIPAddress = Nothing+  , _inisNetworkInterfaceId = Nothing+  , _inisSubnetId = Nothing+  , _inisIPv6AddressCount = Nothing+  , _inisPrivateIPAddress = Nothing+  , _inisSecondaryPrivateIPAddressCount = Nothing+  , _inisDescription = Nothing+  , _inisDeviceIndex = Nothing+  , _inisIPv6Addresses = Nothing+  }+++-- | 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]+inisGroups = lens _inisGroups (\ s a -> s{_inisGroups = a}) . _Default . _Coerce;++-- | 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 'RunInstances' request.+inisPrivateIPAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIPAddressSpecification]+inisPrivateIPAddresses = lens _inisPrivateIPAddresses (\ s a -> s{_inisPrivateIPAddresses = a}) . _Default . _Coerce;++-- | If set to @true@ , the interface is deleted when the instance is terminated. You can specify @true@ only if creating a new network interface when launching an instance.+inisDeleteOnTermination :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)+inisDeleteOnTermination = lens _inisDeleteOnTermination (\ s a -> s{_inisDeleteOnTermination = 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 @true@ .+inisAssociatePublicIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)+inisAssociatePublicIPAddress = lens _inisAssociatePublicIPAddress (\ s a -> s{_inisAssociatePublicIPAddress = a});++-- | The ID of the network interface.+inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisNetworkInterfaceId = lens _inisNetworkInterfaceId (\ s a -> s{_inisNetworkInterfaceId = a});++-- | 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)+inisSubnetId = lens _inisSubnetId (\ s a -> s{_inisSubnetId = 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.+inisIPv6AddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)+inisIPv6AddressCount = lens _inisIPv6AddressCount (\ s a -> s{_inisIPv6AddressCount = 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 'RunInstances' request.+inisPrivateIPAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisPrivateIPAddress = lens _inisPrivateIPAddress (\ s a -> s{_inisPrivateIPAddress = 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 'RunInstances' request.+inisSecondaryPrivateIPAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)+inisSecondaryPrivateIPAddressCount = lens _inisSecondaryPrivateIPAddressCount (\ s a -> s{_inisSecondaryPrivateIPAddressCount = a});++-- | The description of the network interface. Applies only if creating a network interface when launching an instance.+inisDescription :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisDescription = lens _inisDescription (\ s a -> s{_inisDescription = a});++-- | The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a 'RunInstances' request, you must provide the device index.+inisDeviceIndex :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)+inisDeviceIndex = lens _inisDeviceIndex (\ s a -> s{_inisDeviceIndex = 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.+inisIPv6Addresses :: Lens' InstanceNetworkInterfaceSpecification [InstanceIPv6Address]+inisIPv6Addresses = lens _inisIPv6Addresses (\ s a -> s{_inisIPv6Addresses = a}) . _Default . _Coerce;++instance FromXML+           InstanceNetworkInterfaceSpecification+         where+        parseXML x+          = InstanceNetworkInterfaceSpecification' <$>+              (x .@? "SecurityGroupId" .!@ mempty >>=+                 may (parseXMLList "SecurityGroupId"))+                <*>+                (x .@? "privateIpAddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "deleteOnTermination")+                <*> (x .@? "associatePublicIpAddress")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "subnetId")+                <*> (x .@? "ipv6AddressCount")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "secondaryPrivateIpAddressCount")+                <*> (x .@? "description")+                <*> (x .@? "deviceIndex")+                <*>+                (x .@? "ipv6AddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable+           InstanceNetworkInterfaceSpecification+         where++instance NFData InstanceNetworkInterfaceSpecification+         where++instance ToQuery+           InstanceNetworkInterfaceSpecification+         where+        toQuery InstanceNetworkInterfaceSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "SecurityGroupId" <$> _inisGroups),+               toQuery+                 (toQueryList "PrivateIpAddresses" <$>+                    _inisPrivateIPAddresses),+               "DeleteOnTermination" =: _inisDeleteOnTermination,+               "AssociatePublicIpAddress" =:+                 _inisAssociatePublicIPAddress,+               "NetworkInterfaceId" =: _inisNetworkInterfaceId,+               "SubnetId" =: _inisSubnetId,+               "Ipv6AddressCount" =: _inisIPv6AddressCount,+               "PrivateIpAddress" =: _inisPrivateIPAddress,+               "SecondaryPrivateIpAddressCount" =:+                 _inisSecondaryPrivateIPAddressCount,+               "Description" =: _inisDescription,+               "DeviceIndex" =: _inisDeviceIndex,+               toQuery+                 (toQueryList "Ipv6Addresses" <$> _inisIPv6Addresses)]++-- | Describes a private IPv4 address.+--+--+--+-- /See:/ 'instancePrivateIPAddress' smart constructor.+data InstancePrivateIPAddress = InstancePrivateIPAddress'+  { _ipiaPrimary          :: !(Maybe Bool)+  , _ipiaPrivateIPAddress :: !(Maybe Text)+  , _ipiaPrivateDNSName   :: !(Maybe Text)+  , _ipiaAssociation      :: !(Maybe InstanceNetworkInterfaceAssociation)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstancePrivateIPAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipiaPrimary' - Indicates whether this IPv4 address is the primary private IP address of the network interface.+--+-- * 'ipiaPrivateIPAddress' - The private IPv4 address of the network interface.+--+-- * 'ipiaPrivateDNSName' - The private IPv4 DNS name.+--+-- * 'ipiaAssociation' - The association information for an Elastic IP address for the network interface.+instancePrivateIPAddress+    :: InstancePrivateIPAddress+instancePrivateIPAddress =+  InstancePrivateIPAddress'+  { _ipiaPrimary = Nothing+  , _ipiaPrivateIPAddress = Nothing+  , _ipiaPrivateDNSName = Nothing+  , _ipiaAssociation = Nothing+  }+++-- | Indicates whether this IPv4 address is the primary private IP address of the network interface.+ipiaPrimary :: Lens' InstancePrivateIPAddress (Maybe Bool)+ipiaPrimary = lens _ipiaPrimary (\ s a -> s{_ipiaPrimary = a});++-- | The private IPv4 address of the network interface.+ipiaPrivateIPAddress :: Lens' InstancePrivateIPAddress (Maybe Text)+ipiaPrivateIPAddress = lens _ipiaPrivateIPAddress (\ s a -> s{_ipiaPrivateIPAddress = a});++-- | The private IPv4 DNS name.+ipiaPrivateDNSName :: Lens' InstancePrivateIPAddress (Maybe Text)+ipiaPrivateDNSName = lens _ipiaPrivateDNSName (\ s a -> s{_ipiaPrivateDNSName = a});++-- | The association information for an Elastic IP address for the network interface.+ipiaAssociation :: Lens' InstancePrivateIPAddress (Maybe InstanceNetworkInterfaceAssociation)+ipiaAssociation = lens _ipiaAssociation (\ s a -> s{_ipiaAssociation = a});++instance FromXML InstancePrivateIPAddress where+        parseXML x+          = InstancePrivateIPAddress' <$>+              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>+                (x .@? "privateDnsName")+                <*> (x .@? "association")++instance Hashable InstancePrivateIPAddress where++instance NFData InstancePrivateIPAddress where++-- | Describes the current state of an instance.+--+--+--+-- /See:/ 'instanceState' smart constructor.+data InstanceState = InstanceState'+  { _isName :: !InstanceStateName+  , _isCode :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isName' - The current state of the instance.+--+-- * 'isCode' - The low byte represents the state. The high byte is an opaque internal value and should be ignored.     * @0@ : @pending@      * @16@ : @running@      * @32@ : @shutting-down@      * @48@ : @terminated@      * @64@ : @stopping@      * @80@ : @stopped@+instanceState+    :: InstanceStateName -- ^ 'isName'+    -> Int -- ^ 'isCode'+    -> InstanceState+instanceState pName_ pCode_ =+  InstanceState' {_isName = pName_, _isCode = pCode_}+++-- | The current state of the instance.+isName :: Lens' InstanceState InstanceStateName+isName = lens _isName (\ s a -> s{_isName = a});++-- | The low byte represents the state. The high byte is an opaque internal value and should be ignored.     * @0@ : @pending@      * @16@ : @running@      * @32@ : @shutting-down@      * @48@ : @terminated@      * @64@ : @stopping@      * @80@ : @stopped@+isCode :: Lens' InstanceState Int+isCode = lens _isCode (\ s a -> s{_isCode = a});++instance FromXML InstanceState where+        parseXML x+          = InstanceState' <$> (x .@ "name") <*> (x .@ "code")++instance Hashable InstanceState where++instance NFData InstanceState where++-- | Describes an instance state change.+--+--+--+-- /See:/ 'instanceStateChange' smart constructor.+data InstanceStateChange = InstanceStateChange'+  { _iscInstanceId    :: !(Maybe Text)+  , _iscCurrentState  :: !(Maybe InstanceState)+  , _iscPreviousState :: !(Maybe InstanceState)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceStateChange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iscInstanceId' - The ID of the instance.+--+-- * 'iscCurrentState' - The current state of the instance.+--+-- * 'iscPreviousState' - The previous state of the instance.+instanceStateChange+    :: InstanceStateChange+instanceStateChange =+  InstanceStateChange'+  { _iscInstanceId = Nothing+  , _iscCurrentState = Nothing+  , _iscPreviousState = Nothing+  }+++-- | The ID of the instance.+iscInstanceId :: Lens' InstanceStateChange (Maybe Text)+iscInstanceId = lens _iscInstanceId (\ s a -> s{_iscInstanceId = a});++-- | The current state of the instance.+iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)+iscCurrentState = lens _iscCurrentState (\ s a -> s{_iscCurrentState = a});++-- | The previous state of the instance.+iscPreviousState :: Lens' InstanceStateChange (Maybe InstanceState)+iscPreviousState = lens _iscPreviousState (\ s a -> s{_iscPreviousState = a});++instance FromXML InstanceStateChange where+        parseXML x+          = InstanceStateChange' <$>+              (x .@? "instanceId") <*> (x .@? "currentState") <*>+                (x .@? "previousState")++instance Hashable InstanceStateChange where++instance NFData InstanceStateChange where++-- | Describes the status of an instance.+--+--+--+-- /See:/ 'instanceStatus' smart constructor.+data InstanceStatus = InstanceStatus'+  { _isInstanceId       :: !(Maybe Text)+  , _isSystemStatus     :: !(Maybe InstanceStatusSummary)+  , _isEvents           :: !(Maybe [InstanceStatusEvent])+  , _isAvailabilityZone :: !(Maybe Text)+  , _isInstanceStatus   :: !(Maybe InstanceStatusSummary)+  , _isInstanceState    :: !(Maybe InstanceState)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isInstanceId' - The ID of the instance.+--+-- * 'isSystemStatus' - Reports impaired functionality that stems from issues related to the systems that support an instance, such as hardware failures and network connectivity problems.+--+-- * 'isEvents' - Any scheduled events associated with the instance.+--+-- * 'isAvailabilityZone' - The Availability Zone of the instance.+--+-- * 'isInstanceStatus' - Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.+--+-- * 'isInstanceState' - The intended state of the instance. 'DescribeInstanceStatus' requires that an instance be in the @running@ state.+instanceStatus+    :: InstanceStatus+instanceStatus =+  InstanceStatus'+  { _isInstanceId = Nothing+  , _isSystemStatus = Nothing+  , _isEvents = Nothing+  , _isAvailabilityZone = Nothing+  , _isInstanceStatus = Nothing+  , _isInstanceState = Nothing+  }+++-- | The ID of the instance.+isInstanceId :: Lens' InstanceStatus (Maybe Text)+isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});++-- | 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)+isSystemStatus = lens _isSystemStatus (\ s a -> s{_isSystemStatus = a});++-- | Any scheduled events associated with the instance.+isEvents :: Lens' InstanceStatus [InstanceStatusEvent]+isEvents = lens _isEvents (\ s a -> s{_isEvents = a}) . _Default . _Coerce;++-- | The Availability Zone of the instance.+isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)+isAvailabilityZone = lens _isAvailabilityZone (\ s a -> s{_isAvailabilityZone = a});++-- | Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.+isInstanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)+isInstanceStatus = lens _isInstanceStatus (\ s a -> s{_isInstanceStatus = a});++-- | The intended state of the instance. 'DescribeInstanceStatus' requires that an instance be in the @running@ state.+isInstanceState :: Lens' InstanceStatus (Maybe InstanceState)+isInstanceState = lens _isInstanceState (\ s a -> s{_isInstanceState = a});++instance FromXML InstanceStatus where+        parseXML x+          = InstanceStatus' <$>+              (x .@? "instanceId") <*> (x .@? "systemStatus") <*>+                (x .@? "eventsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "availabilityZone")+                <*> (x .@? "instanceStatus")+                <*> (x .@? "instanceState")++instance Hashable InstanceStatus where++instance NFData InstanceStatus where++-- | Describes the instance status.+--+--+--+-- /See:/ 'instanceStatusDetails' smart constructor.+data InstanceStatusDetails = InstanceStatusDetails'+  { _isdStatus        :: !(Maybe StatusType)+  , _isdImpairedSince :: !(Maybe ISO8601)+  , _isdName          :: !(Maybe StatusName)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceStatusDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isdStatus' - The status.+--+-- * 'isdImpairedSince' - The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched.+--+-- * 'isdName' - The type of instance status.+instanceStatusDetails+    :: InstanceStatusDetails+instanceStatusDetails =+  InstanceStatusDetails'+  {_isdStatus = Nothing, _isdImpairedSince = Nothing, _isdName = Nothing}+++-- | The status.+isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)+isdStatus = lens _isdStatus (\ s a -> s{_isdStatus = 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.+isdImpairedSince :: Lens' InstanceStatusDetails (Maybe UTCTime)+isdImpairedSince = lens _isdImpairedSince (\ s a -> s{_isdImpairedSince = a}) . mapping _Time;++-- | The type of instance status.+isdName :: Lens' InstanceStatusDetails (Maybe StatusName)+isdName = lens _isdName (\ s a -> s{_isdName = a});++instance FromXML InstanceStatusDetails where+        parseXML x+          = InstanceStatusDetails' <$>+              (x .@? "status") <*> (x .@? "impairedSince") <*>+                (x .@? "name")++instance Hashable InstanceStatusDetails where++instance NFData InstanceStatusDetails where++-- | Describes a scheduled event for an instance.+--+--+--+-- /See:/ 'instanceStatusEvent' smart constructor.+data InstanceStatusEvent = InstanceStatusEvent'+  { _iseNotBefore   :: !(Maybe ISO8601)+  , _iseCode        :: !(Maybe EventCode)+  , _iseDescription :: !(Maybe Text)+  , _iseNotAfter    :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceStatusEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iseNotBefore' - The earliest scheduled start time for the event.+--+-- * 'iseCode' - The event code.+--+-- * 'iseDescription' - 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].+--+-- * 'iseNotAfter' - The latest scheduled end time for the event.+instanceStatusEvent+    :: InstanceStatusEvent+instanceStatusEvent =+  InstanceStatusEvent'+  { _iseNotBefore = Nothing+  , _iseCode = Nothing+  , _iseDescription = Nothing+  , _iseNotAfter = Nothing+  }+++-- | The earliest scheduled start time for the event.+iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)+iseNotBefore = lens _iseNotBefore (\ s a -> s{_iseNotBefore = a}) . mapping _Time;++-- | The event code.+iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)+iseCode = lens _iseCode (\ s a -> s{_iseCode = 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].+iseDescription :: Lens' InstanceStatusEvent (Maybe Text)+iseDescription = lens _iseDescription (\ s a -> s{_iseDescription = a});++-- | The latest scheduled end time for the event.+iseNotAfter :: Lens' InstanceStatusEvent (Maybe UTCTime)+iseNotAfter = lens _iseNotAfter (\ s a -> s{_iseNotAfter = a}) . mapping _Time;++instance FromXML InstanceStatusEvent where+        parseXML x+          = InstanceStatusEvent' <$>+              (x .@? "notBefore") <*> (x .@? "code") <*>+                (x .@? "description")+                <*> (x .@? "notAfter")++instance Hashable InstanceStatusEvent where++instance NFData InstanceStatusEvent where++-- | Describes the status of an instance.+--+--+--+-- /See:/ 'instanceStatusSummary' smart constructor.+data InstanceStatusSummary = InstanceStatusSummary'+  { _issDetails :: !(Maybe [InstanceStatusDetails])+  , _issStatus  :: !SummaryStatus+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceStatusSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'issDetails' - The system instance health or application instance health.+--+-- * 'issStatus' - The status.+instanceStatusSummary+    :: SummaryStatus -- ^ 'issStatus'+    -> InstanceStatusSummary+instanceStatusSummary pStatus_ =+  InstanceStatusSummary' {_issDetails = Nothing, _issStatus = pStatus_}+++-- | The system instance health or application instance health.+issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]+issDetails = lens _issDetails (\ s a -> s{_issDetails = a}) . _Default . _Coerce;++-- | The status.+issStatus :: Lens' InstanceStatusSummary SummaryStatus+issStatus = lens _issStatus (\ s a -> s{_issStatus = a});++instance FromXML InstanceStatusSummary where+        parseXML x+          = InstanceStatusSummary' <$>+              (x .@? "details" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@ "status")++instance Hashable InstanceStatusSummary where++instance NFData InstanceStatusSummary where++-- | Describes an Internet gateway.+--+--+--+-- /See:/ 'internetGateway' smart constructor.+data InternetGateway = InternetGateway'+  { _igAttachments       :: !(Maybe [InternetGatewayAttachment])+  , _igTags              :: !(Maybe [Tag])+  , _igInternetGatewayId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InternetGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igAttachments' - Any VPCs attached to the Internet gateway.+--+-- * 'igTags' - Any tags assigned to the Internet gateway.+--+-- * 'igInternetGatewayId' - The ID of the Internet gateway.+internetGateway+    :: Text -- ^ 'igInternetGatewayId'+    -> InternetGateway+internetGateway pInternetGatewayId_ =+  InternetGateway'+  { _igAttachments = Nothing+  , _igTags = Nothing+  , _igInternetGatewayId = pInternetGatewayId_+  }+++-- | Any VPCs attached to the Internet gateway.+igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]+igAttachments = lens _igAttachments (\ s a -> s{_igAttachments = a}) . _Default . _Coerce;++-- | Any tags assigned to the Internet gateway.+igTags :: Lens' InternetGateway [Tag]+igTags = lens _igTags (\ s a -> s{_igTags = a}) . _Default . _Coerce;++-- | The ID of the Internet gateway.+igInternetGatewayId :: Lens' InternetGateway Text+igInternetGatewayId = lens _igInternetGatewayId (\ s a -> s{_igInternetGatewayId = a});++instance FromXML InternetGateway where+        parseXML x+          = InternetGateway' <$>+              (x .@? "attachmentSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "internetGatewayId")++instance Hashable InternetGateway where++instance NFData InternetGateway where++-- | Describes the attachment of a VPC to an Internet gateway or an egress-only Internet gateway.+--+--+--+-- /See:/ 'internetGatewayAttachment' smart constructor.+data InternetGatewayAttachment = InternetGatewayAttachment'+  { _igaState :: !AttachmentStatus+  , _igaVPCId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InternetGatewayAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igaState' - The current state of the attachment.+--+-- * 'igaVPCId' - The ID of the VPC.+internetGatewayAttachment+    :: AttachmentStatus -- ^ 'igaState'+    -> Text -- ^ 'igaVPCId'+    -> InternetGatewayAttachment+internetGatewayAttachment pState_ pVPCId_ =+  InternetGatewayAttachment' {_igaState = pState_, _igaVPCId = pVPCId_}+++-- | The current state of the attachment.+igaState :: Lens' InternetGatewayAttachment AttachmentStatus+igaState = lens _igaState (\ s a -> s{_igaState = a});++-- | The ID of the VPC.+igaVPCId :: Lens' InternetGatewayAttachment Text+igaVPCId = lens _igaVPCId (\ s a -> s{_igaVPCId = a});++instance FromXML InternetGatewayAttachment where+        parseXML x+          = InternetGatewayAttachment' <$>+              (x .@ "state") <*> (x .@ "vpcId")++instance Hashable InternetGatewayAttachment where++instance NFData InternetGatewayAttachment where++-- | Describes a key pair.+--+--+--+-- /See:/ 'keyPairInfo' smart constructor.+data KeyPairInfo = KeyPairInfo'+  { _kpiKeyFingerprint :: !(Maybe Text)+  , _kpiKeyName        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'KeyPairInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kpiKeyFingerprint' - If you used 'CreateKeyPair' to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used 'ImportKeyPair' to provide AWS the public key, this is the MD5 public key fingerprint as specified in section 4 of RFC4716.+--+-- * 'kpiKeyName' - The name of the key pair.+keyPairInfo+    :: KeyPairInfo+keyPairInfo = KeyPairInfo' {_kpiKeyFingerprint = Nothing, _kpiKeyName = Nothing}+++-- | If you used 'CreateKeyPair' to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used 'ImportKeyPair' 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)+kpiKeyFingerprint = lens _kpiKeyFingerprint (\ s a -> s{_kpiKeyFingerprint = a});++-- | The name of the key pair.+kpiKeyName :: Lens' KeyPairInfo (Maybe Text)+kpiKeyName = lens _kpiKeyName (\ s a -> s{_kpiKeyName = a});++instance FromXML KeyPairInfo where+        parseXML x+          = KeyPairInfo' <$>+              (x .@? "keyFingerprint") <*> (x .@? "keyName")++instance Hashable KeyPairInfo where++instance NFData KeyPairInfo where++-- | Describes a launch permission.+--+--+--+-- /See:/ 'launchPermission' smart constructor.+data LaunchPermission = LaunchPermission'+  { _lGroup  :: !(Maybe PermissionGroup)+  , _lUserId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LaunchPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lGroup' - The name of the group.+--+-- * 'lUserId' - The AWS account ID.+launchPermission+    :: LaunchPermission+launchPermission = LaunchPermission' {_lGroup = Nothing, _lUserId = Nothing}+++-- | The name of the group.+lGroup :: Lens' LaunchPermission (Maybe PermissionGroup)+lGroup = lens _lGroup (\ s a -> s{_lGroup = a});++-- | The AWS account ID.+lUserId :: Lens' LaunchPermission (Maybe Text)+lUserId = lens _lUserId (\ s a -> s{_lUserId = a});++instance FromXML LaunchPermission where+        parseXML x+          = LaunchPermission' <$>+              (x .@? "group") <*> (x .@? "userId")++instance Hashable LaunchPermission where++instance NFData LaunchPermission where++instance ToQuery LaunchPermission where+        toQuery LaunchPermission'{..}+          = mconcat ["Group" =: _lGroup, "UserId" =: _lUserId]++-- | Describes a launch permission modification.+--+--+--+-- /See:/ 'launchPermissionModifications' smart constructor.+data LaunchPermissionModifications = LaunchPermissionModifications'+  { _lRemove :: !(Maybe [LaunchPermission])+  , _lAdd    :: !(Maybe [LaunchPermission])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LaunchPermissionModifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lRemove' - The AWS account ID to remove from the list of launch permissions for the AMI.+--+-- * 'lAdd' - The AWS account ID to add to the list of launch permissions for the AMI.+launchPermissionModifications+    :: LaunchPermissionModifications+launchPermissionModifications =+  LaunchPermissionModifications' {_lRemove = Nothing, _lAdd = Nothing}+++-- | The AWS account ID to remove from the list of launch permissions for the AMI.+lRemove :: Lens' LaunchPermissionModifications [LaunchPermission]+lRemove = lens _lRemove (\ s a -> s{_lRemove = a}) . _Default . _Coerce;++-- | The AWS account ID to add to the list of launch permissions for the AMI.+lAdd :: Lens' LaunchPermissionModifications [LaunchPermission]+lAdd = lens _lAdd (\ s a -> s{_lAdd = a}) . _Default . _Coerce;++instance Hashable LaunchPermissionModifications where++instance NFData LaunchPermissionModifications where++instance ToQuery LaunchPermissionModifications where+        toQuery LaunchPermissionModifications'{..}+          = mconcat+              [toQuery (toQueryList "Remove" <$> _lRemove),+               toQuery (toQueryList "Add" <$> _lAdd)]++-- | Describes the launch specification for an instance.+--+--+--+-- /See:/ 'launchSpecification' smart constructor.+data LaunchSpecification = LaunchSpecification'+  { _lsSecurityGroups      :: !(Maybe [GroupIdentifier])+  , _lsKeyName             :: !(Maybe Text)+  , _lsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])+  , _lsRAMDiskId           :: !(Maybe Text)+  , _lsSubnetId            :: !(Maybe Text)+  , _lsKernelId            :: !(Maybe Text)+  , _lsInstanceType        :: !(Maybe InstanceType)+  , _lsEBSOptimized        :: !(Maybe Bool)+  , _lsUserData            :: !(Maybe Text)+  , _lsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)+  , _lsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)+  , _lsImageId             :: !(Maybe Text)+  , _lsAddressingType      :: !(Maybe Text)+  , _lsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _lsPlacement           :: !(Maybe SpotPlacement)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsSecurityGroups' - 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.+--+-- * 'lsKeyName' - The name of the key pair.+--+-- * 'lsNetworkInterfaces' - One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.+--+-- * 'lsRAMDiskId' - The ID of the RAM disk.+--+-- * 'lsSubnetId' - The ID of the subnet in which to launch the instance.+--+-- * 'lsKernelId' - The ID of the kernel.+--+-- * 'lsInstanceType' - The instance type.+--+-- * 'lsEBSOptimized' - Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@+--+-- * 'lsUserData' - The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+--+-- * 'lsMonitoring' - Undocumented member.+--+-- * 'lsIAMInstanceProfile' - The IAM instance profile.+--+-- * 'lsImageId' - The ID of the AMI.+--+-- * 'lsAddressingType' - Deprecated.+--+-- * 'lsBlockDeviceMappings' - One or more block device mapping entries.+--+-- * 'lsPlacement' - The placement information for the instance.+launchSpecification+    :: LaunchSpecification+launchSpecification =+  LaunchSpecification'+  { _lsSecurityGroups = Nothing+  , _lsKeyName = Nothing+  , _lsNetworkInterfaces = Nothing+  , _lsRAMDiskId = Nothing+  , _lsSubnetId = Nothing+  , _lsKernelId = Nothing+  , _lsInstanceType = Nothing+  , _lsEBSOptimized = Nothing+  , _lsUserData = Nothing+  , _lsMonitoring = Nothing+  , _lsIAMInstanceProfile = Nothing+  , _lsImageId = Nothing+  , _lsAddressingType = Nothing+  , _lsBlockDeviceMappings = Nothing+  , _lsPlacement = Nothing+  }+++-- | 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]+lsSecurityGroups = lens _lsSecurityGroups (\ s a -> s{_lsSecurityGroups = a}) . _Default . _Coerce;++-- | The name of the key pair.+lsKeyName :: Lens' LaunchSpecification (Maybe Text)+lsKeyName = lens _lsKeyName (\ s a -> s{_lsKeyName = 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.+lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]+lsNetworkInterfaces = lens _lsNetworkInterfaces (\ s a -> s{_lsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+lsRAMDiskId :: Lens' LaunchSpecification (Maybe Text)+lsRAMDiskId = lens _lsRAMDiskId (\ s a -> s{_lsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instance.+lsSubnetId :: Lens' LaunchSpecification (Maybe Text)+lsSubnetId = lens _lsSubnetId (\ s a -> s{_lsSubnetId = a});++-- | The ID of the kernel.+lsKernelId :: Lens' LaunchSpecification (Maybe Text)+lsKernelId = lens _lsKernelId (\ s a -> s{_lsKernelId = a});++-- | The instance type.+lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)+lsInstanceType = lens _lsInstanceType (\ s a -> s{_lsInstanceType = a});++-- | Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@+lsEBSOptimized :: Lens' LaunchSpecification (Maybe Bool)+lsEBSOptimized = lens _lsEBSOptimized (\ s a -> s{_lsEBSOptimized = a});++-- | The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+lsUserData :: Lens' LaunchSpecification (Maybe Text)+lsUserData = lens _lsUserData (\ s a -> s{_lsUserData = a});++-- | Undocumented member.+lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)+lsMonitoring = lens _lsMonitoring (\ s a -> s{_lsMonitoring = a});++-- | The IAM instance profile.+lsIAMInstanceProfile :: Lens' LaunchSpecification (Maybe IAMInstanceProfileSpecification)+lsIAMInstanceProfile = lens _lsIAMInstanceProfile (\ s a -> s{_lsIAMInstanceProfile = a});++-- | The ID of the AMI.+lsImageId :: Lens' LaunchSpecification (Maybe Text)+lsImageId = lens _lsImageId (\ s a -> s{_lsImageId = a});++-- | Deprecated.+lsAddressingType :: Lens' LaunchSpecification (Maybe Text)+lsAddressingType = lens _lsAddressingType (\ s a -> s{_lsAddressingType = a});++-- | One or more block device mapping entries.+lsBlockDeviceMappings :: Lens' LaunchSpecification [BlockDeviceMapping]+lsBlockDeviceMappings = lens _lsBlockDeviceMappings (\ s a -> s{_lsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information for the instance.+lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)+lsPlacement = lens _lsPlacement (\ s a -> s{_lsPlacement = a});++instance FromXML LaunchSpecification where+        parseXML x+          = LaunchSpecification' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "keyName")+                <*>+                (x .@? "networkInterfaceSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ramdiskId")+                <*> (x .@? "subnetId")+                <*> (x .@? "kernelId")+                <*> (x .@? "instanceType")+                <*> (x .@? "ebsOptimized")+                <*> (x .@? "userData")+                <*> (x .@? "monitoring")+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "imageId")+                <*> (x .@? "addressingType")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "placement")++instance Hashable LaunchSpecification where++instance NFData LaunchSpecification where++-- | Describes the Classic Load Balancers and target groups to attach to a Spot fleet request.+--+--+--+-- /See:/ 'loadBalancersConfig' smart constructor.+data LoadBalancersConfig = LoadBalancersConfig'+  { _lbcClassicLoadBalancersConfig :: !(Maybe ClassicLoadBalancersConfig)+  , _lbcTargetGroupsConfig         :: !(Maybe TargetGroupsConfig)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LoadBalancersConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbcClassicLoadBalancersConfig' - The Classic Load Balancers.+--+-- * 'lbcTargetGroupsConfig' - The target groups.+loadBalancersConfig+    :: LoadBalancersConfig+loadBalancersConfig =+  LoadBalancersConfig'+  {_lbcClassicLoadBalancersConfig = Nothing, _lbcTargetGroupsConfig = Nothing}+++-- | The Classic Load Balancers.+lbcClassicLoadBalancersConfig :: Lens' LoadBalancersConfig (Maybe ClassicLoadBalancersConfig)+lbcClassicLoadBalancersConfig = lens _lbcClassicLoadBalancersConfig (\ s a -> s{_lbcClassicLoadBalancersConfig = a});++-- | The target groups.+lbcTargetGroupsConfig :: Lens' LoadBalancersConfig (Maybe TargetGroupsConfig)+lbcTargetGroupsConfig = lens _lbcTargetGroupsConfig (\ s a -> s{_lbcTargetGroupsConfig = a});++instance FromXML LoadBalancersConfig where+        parseXML x+          = LoadBalancersConfig' <$>+              (x .@? "classicLoadBalancersConfig") <*>+                (x .@? "targetGroupsConfig")++instance Hashable LoadBalancersConfig where++instance NFData LoadBalancersConfig where++instance ToQuery LoadBalancersConfig where+        toQuery LoadBalancersConfig'{..}+          = mconcat+              ["ClassicLoadBalancersConfig" =:+                 _lbcClassicLoadBalancersConfig,+               "TargetGroupsConfig" =: _lbcTargetGroupsConfig]++-- | Describes a load permission.+--+--+--+-- /See:/ 'loadPermission' smart constructor.+data LoadPermission = LoadPermission'+  { _lpGroup  :: !(Maybe PermissionGroup)+  , _lpUserId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LoadPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpGroup' - The name of the group.+--+-- * 'lpUserId' - The AWS account ID.+loadPermission+    :: LoadPermission+loadPermission = LoadPermission' {_lpGroup = Nothing, _lpUserId = Nothing}+++-- | The name of the group.+lpGroup :: Lens' LoadPermission (Maybe PermissionGroup)+lpGroup = lens _lpGroup (\ s a -> s{_lpGroup = a});++-- | The AWS account ID.+lpUserId :: Lens' LoadPermission (Maybe Text)+lpUserId = lens _lpUserId (\ s a -> s{_lpUserId = a});++instance FromXML LoadPermission where+        parseXML x+          = LoadPermission' <$>+              (x .@? "group") <*> (x .@? "userId")++instance Hashable LoadPermission where++instance NFData LoadPermission where++-- | Describes modifications to the load permissions of an Amazon FPGA image (AFI).+--+--+--+-- /See:/ 'loadPermissionModifications' smart constructor.+data LoadPermissionModifications = LoadPermissionModifications'+  { _lpmRemove :: !(Maybe [LoadPermissionRequest])+  , _lpmAdd    :: !(Maybe [LoadPermissionRequest])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LoadPermissionModifications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpmRemove' - The load permissions to remove.+--+-- * 'lpmAdd' - The load permissions to add.+loadPermissionModifications+    :: LoadPermissionModifications+loadPermissionModifications =+  LoadPermissionModifications' {_lpmRemove = Nothing, _lpmAdd = Nothing}+++-- | The load permissions to remove.+lpmRemove :: Lens' LoadPermissionModifications [LoadPermissionRequest]+lpmRemove = lens _lpmRemove (\ s a -> s{_lpmRemove = a}) . _Default . _Coerce;++-- | The load permissions to add.+lpmAdd :: Lens' LoadPermissionModifications [LoadPermissionRequest]+lpmAdd = lens _lpmAdd (\ s a -> s{_lpmAdd = a}) . _Default . _Coerce;++instance Hashable LoadPermissionModifications where++instance NFData LoadPermissionModifications where++instance ToQuery LoadPermissionModifications where+        toQuery LoadPermissionModifications'{..}+          = mconcat+              [toQuery (toQueryList "Remove" <$> _lpmRemove),+               toQuery (toQueryList "Add" <$> _lpmAdd)]++-- | Describes a load permission.+--+--+--+-- /See:/ 'loadPermissionRequest' smart constructor.+data LoadPermissionRequest = LoadPermissionRequest'+  { _lprGroup  :: !(Maybe PermissionGroup)+  , _lprUserId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LoadPermissionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lprGroup' - The name of the group.+--+-- * 'lprUserId' - The AWS account ID.+loadPermissionRequest+    :: LoadPermissionRequest+loadPermissionRequest =+  LoadPermissionRequest' {_lprGroup = Nothing, _lprUserId = Nothing}+++-- | The name of the group.+lprGroup :: Lens' LoadPermissionRequest (Maybe PermissionGroup)+lprGroup = lens _lprGroup (\ s a -> s{_lprGroup = a});++-- | The AWS account ID.+lprUserId :: Lens' LoadPermissionRequest (Maybe Text)+lprUserId = lens _lprUserId (\ s a -> s{_lprUserId = a});++instance Hashable LoadPermissionRequest where++instance NFData LoadPermissionRequest where++instance ToQuery LoadPermissionRequest where+        toQuery LoadPermissionRequest'{..}+          = mconcat+              ["Group" =: _lprGroup, "UserId" =: _lprUserId]++-- | Describes the monitoring of an instance.+--+--+--+-- /See:/ 'monitoring' smart constructor.+newtype Monitoring = Monitoring'+  { _mState :: Maybe MonitoringState+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Monitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mState' - Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.+monitoring+    :: Monitoring+monitoring = Monitoring' {_mState = Nothing}+++-- | Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.+mState :: Lens' Monitoring (Maybe MonitoringState)+mState = lens _mState (\ s a -> s{_mState = a});++instance FromXML Monitoring where+        parseXML x = Monitoring' <$> (x .@? "state")++instance Hashable Monitoring where++instance NFData Monitoring where++-- | Describes the status of a moving Elastic IP address.+--+--+--+-- /See:/ 'movingAddressStatus' smart constructor.+data MovingAddressStatus = MovingAddressStatus'+  { _masMoveStatus :: !(Maybe MoveStatus)+  , _masPublicIP   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MovingAddressStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'masMoveStatus' - The status of the Elastic IP address that's being moved to the EC2-VPC platform, or restored to the EC2-Classic platform.+--+-- * 'masPublicIP' - The Elastic IP address.+movingAddressStatus+    :: MovingAddressStatus+movingAddressStatus =+  MovingAddressStatus' {_masMoveStatus = Nothing, _masPublicIP = Nothing}+++-- | 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)+masMoveStatus = lens _masMoveStatus (\ s a -> s{_masMoveStatus = a});++-- | The Elastic IP address.+masPublicIP :: Lens' MovingAddressStatus (Maybe Text)+masPublicIP = lens _masPublicIP (\ s a -> s{_masPublicIP = a});++instance FromXML MovingAddressStatus where+        parseXML x+          = MovingAddressStatus' <$>+              (x .@? "moveStatus") <*> (x .@? "publicIp")++instance Hashable MovingAddressStatus where++instance NFData MovingAddressStatus where++-- | Describes a NAT gateway.+--+--+--+-- /See:/ 'natGateway' smart constructor.+data NatGateway = NatGateway'+  { _ngState                :: !(Maybe NatGatewayState)+  , _ngFailureCode          :: !(Maybe Text)+  , _ngVPCId                :: !(Maybe Text)+  , _ngFailureMessage       :: !(Maybe Text)+  , _ngNatGatewayId         :: !(Maybe Text)+  , _ngSubnetId             :: !(Maybe Text)+  , _ngDeleteTime           :: !(Maybe ISO8601)+  , _ngProvisionedBandwidth :: !(Maybe ProvisionedBandwidth)+  , _ngNatGatewayAddresses  :: !(Maybe [NatGatewayAddress])+  , _ngCreateTime           :: !(Maybe ISO8601)+  , _ngTags                 :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NatGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngState' - The state of the NAT gateway.     * @pending@ : The NAT gateway is being created and is not ready to process traffic.     * @failed@ : The NAT gateway could not be created. Check the @failureCode@ and @failureMessage@ fields for the reason.     * @available@ : 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.     * @deleting@ : The NAT gateway is in the process of being terminated and may still be processing traffic.     * @deleted@ : The NAT gateway has been terminated and is no longer processing traffic.+--+-- * 'ngFailureCode' - If the NAT gateway could not be created, specifies the error code for the failure. (@InsufficientFreeAddressesInSubnet@ | @Gateway.NotAttached@ | @InvalidAllocationID.NotFound@ | @Resource.AlreadyAssociated@ | @InternalError@ | @InvalidSubnetID.NotFound@ )+--+-- * 'ngVPCId' - The ID of the VPC in which the NAT gateway is located.+--+-- * 'ngFailureMessage' - 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."+--+-- * 'ngNatGatewayId' - The ID of the NAT gateway.+--+-- * 'ngSubnetId' - The ID of the subnet in which the NAT gateway is located.+--+-- * 'ngDeleteTime' - The date and time the NAT gateway was deleted, if applicable.+--+-- * 'ngProvisionedBandwidth' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+--+-- * 'ngNatGatewayAddresses' - Information about the IP addresses and network interface associated with the NAT gateway.+--+-- * 'ngCreateTime' - The date and time the NAT gateway was created.+--+-- * 'ngTags' - The tags for the NAT gateway.+natGateway+    :: NatGateway+natGateway =+  NatGateway'+  { _ngState = Nothing+  , _ngFailureCode = Nothing+  , _ngVPCId = Nothing+  , _ngFailureMessage = Nothing+  , _ngNatGatewayId = Nothing+  , _ngSubnetId = Nothing+  , _ngDeleteTime = Nothing+  , _ngProvisionedBandwidth = Nothing+  , _ngNatGatewayAddresses = Nothing+  , _ngCreateTime = Nothing+  , _ngTags = Nothing+  }+++-- | The state of the NAT gateway.     * @pending@ : The NAT gateway is being created and is not ready to process traffic.     * @failed@ : The NAT gateway could not be created. Check the @failureCode@ and @failureMessage@ fields for the reason.     * @available@ : 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.     * @deleting@ : The NAT gateway is in the process of being terminated and may still be processing traffic.     * @deleted@ : The NAT gateway has been terminated and is no longer processing traffic.+ngState :: Lens' NatGateway (Maybe NatGatewayState)+ngState = lens _ngState (\ s a -> s{_ngState = a});++-- | If the NAT gateway could not be created, specifies the error code for the failure. (@InsufficientFreeAddressesInSubnet@ | @Gateway.NotAttached@ | @InvalidAllocationID.NotFound@ | @Resource.AlreadyAssociated@ | @InternalError@ | @InvalidSubnetID.NotFound@ )+ngFailureCode :: Lens' NatGateway (Maybe Text)+ngFailureCode = lens _ngFailureCode (\ s a -> s{_ngFailureCode = a});++-- | The ID of the VPC in which the NAT gateway is located.+ngVPCId :: Lens' NatGateway (Maybe Text)+ngVPCId = lens _ngVPCId (\ s a -> s{_ngVPCId = 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."+ngFailureMessage :: Lens' NatGateway (Maybe Text)+ngFailureMessage = lens _ngFailureMessage (\ s a -> s{_ngFailureMessage = a});++-- | The ID of the NAT gateway.+ngNatGatewayId :: Lens' NatGateway (Maybe Text)+ngNatGatewayId = lens _ngNatGatewayId (\ s a -> s{_ngNatGatewayId = a});++-- | The ID of the subnet in which the NAT gateway is located.+ngSubnetId :: Lens' NatGateway (Maybe Text)+ngSubnetId = lens _ngSubnetId (\ s a -> s{_ngSubnetId = a});++-- | The date and time the NAT gateway was deleted, if applicable.+ngDeleteTime :: Lens' NatGateway (Maybe UTCTime)+ngDeleteTime = lens _ngDeleteTime (\ s a -> s{_ngDeleteTime = a}) . mapping _Time;++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+ngProvisionedBandwidth :: Lens' NatGateway (Maybe ProvisionedBandwidth)+ngProvisionedBandwidth = lens _ngProvisionedBandwidth (\ s a -> s{_ngProvisionedBandwidth = a});++-- | Information about the IP addresses and network interface associated with the NAT gateway.+ngNatGatewayAddresses :: Lens' NatGateway [NatGatewayAddress]+ngNatGatewayAddresses = lens _ngNatGatewayAddresses (\ s a -> s{_ngNatGatewayAddresses = a}) . _Default . _Coerce;++-- | The date and time the NAT gateway was created.+ngCreateTime :: Lens' NatGateway (Maybe UTCTime)+ngCreateTime = lens _ngCreateTime (\ s a -> s{_ngCreateTime = a}) . mapping _Time;++-- | The tags for the NAT gateway.+ngTags :: Lens' NatGateway [Tag]+ngTags = lens _ngTags (\ s a -> s{_ngTags = a}) . _Default . _Coerce;++instance FromXML NatGateway where+        parseXML x+          = NatGateway' <$>+              (x .@? "state") <*> (x .@? "failureCode") <*>+                (x .@? "vpcId")+                <*> (x .@? "failureMessage")+                <*> (x .@? "natGatewayId")+                <*> (x .@? "subnetId")+                <*> (x .@? "deleteTime")+                <*> (x .@? "provisionedBandwidth")+                <*>+                (x .@? "natGatewayAddressSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "createTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable NatGateway where++instance NFData NatGateway where++-- | Describes the IP addresses and network interface associated with a NAT gateway.+--+--+--+-- /See:/ 'natGatewayAddress' smart constructor.+data NatGatewayAddress = NatGatewayAddress'+  { _ngaPrivateIP          :: !(Maybe Text)+  , _ngaAllocationId       :: !(Maybe Text)+  , _ngaNetworkInterfaceId :: !(Maybe Text)+  , _ngaPublicIP           :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NatGatewayAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngaPrivateIP' - The private IP address associated with the Elastic IP address.+--+-- * 'ngaAllocationId' - The allocation ID of the Elastic IP address that's associated with the NAT gateway.+--+-- * 'ngaNetworkInterfaceId' - The ID of the network interface associated with the NAT gateway.+--+-- * 'ngaPublicIP' - The Elastic IP address associated with the NAT gateway.+natGatewayAddress+    :: NatGatewayAddress+natGatewayAddress =+  NatGatewayAddress'+  { _ngaPrivateIP = Nothing+  , _ngaAllocationId = Nothing+  , _ngaNetworkInterfaceId = Nothing+  , _ngaPublicIP = Nothing+  }+++-- | The private IP address associated with the Elastic IP address.+ngaPrivateIP :: Lens' NatGatewayAddress (Maybe Text)+ngaPrivateIP = lens _ngaPrivateIP (\ s a -> s{_ngaPrivateIP = a});++-- | The allocation ID of the Elastic IP address that's associated with the NAT gateway.+ngaAllocationId :: Lens' NatGatewayAddress (Maybe Text)+ngaAllocationId = lens _ngaAllocationId (\ s a -> s{_ngaAllocationId = a});++-- | The ID of the network interface associated with the NAT gateway.+ngaNetworkInterfaceId :: Lens' NatGatewayAddress (Maybe Text)+ngaNetworkInterfaceId = lens _ngaNetworkInterfaceId (\ s a -> s{_ngaNetworkInterfaceId = a});++-- | The Elastic IP address associated with the NAT gateway.+ngaPublicIP :: Lens' NatGatewayAddress (Maybe Text)+ngaPublicIP = lens _ngaPublicIP (\ s a -> s{_ngaPublicIP = a});++instance FromXML NatGatewayAddress where+        parseXML x+          = NatGatewayAddress' <$>+              (x .@? "privateIp") <*> (x .@? "allocationId") <*>+                (x .@? "networkInterfaceId")+                <*> (x .@? "publicIp")++instance Hashable NatGatewayAddress where++instance NFData NatGatewayAddress where++-- | Describes a network ACL.+--+--+--+-- /See:/ 'networkACL' smart constructor.+data NetworkACL = NetworkACL'+  { _naEntries      :: !(Maybe [NetworkACLEntry])+  , _naNetworkACLId :: !(Maybe Text)+  , _naVPCId        :: !(Maybe Text)+  , _naAssociations :: !(Maybe [NetworkACLAssociation])+  , _naTags         :: !(Maybe [Tag])+  , _naIsDefault    :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkACL' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'naEntries' - One or more entries (rules) in the network ACL.+--+-- * 'naNetworkACLId' - The ID of the network ACL.+--+-- * 'naVPCId' - The ID of the VPC for the network ACL.+--+-- * 'naAssociations' - Any associations between the network ACL and one or more subnets+--+-- * 'naTags' - Any tags assigned to the network ACL.+--+-- * 'naIsDefault' - Indicates whether this is the default network ACL for the VPC.+networkACL+    :: NetworkACL+networkACL =+  NetworkACL'+  { _naEntries = Nothing+  , _naNetworkACLId = Nothing+  , _naVPCId = Nothing+  , _naAssociations = Nothing+  , _naTags = Nothing+  , _naIsDefault = Nothing+  }+++-- | One or more entries (rules) in the network ACL.+naEntries :: Lens' NetworkACL [NetworkACLEntry]+naEntries = lens _naEntries (\ s a -> s{_naEntries = a}) . _Default . _Coerce;++-- | The ID of the network ACL.+naNetworkACLId :: Lens' NetworkACL (Maybe Text)+naNetworkACLId = lens _naNetworkACLId (\ s a -> s{_naNetworkACLId = a});++-- | The ID of the VPC for the network ACL.+naVPCId :: Lens' NetworkACL (Maybe Text)+naVPCId = lens _naVPCId (\ s a -> s{_naVPCId = a});++-- | Any associations between the network ACL and one or more subnets+naAssociations :: Lens' NetworkACL [NetworkACLAssociation]+naAssociations = lens _naAssociations (\ s a -> s{_naAssociations = a}) . _Default . _Coerce;++-- | Any tags assigned to the network ACL.+naTags :: Lens' NetworkACL [Tag]+naTags = lens _naTags (\ s a -> s{_naTags = a}) . _Default . _Coerce;++-- | Indicates whether this is the default network ACL for the VPC.+naIsDefault :: Lens' NetworkACL (Maybe Bool)+naIsDefault = lens _naIsDefault (\ s a -> s{_naIsDefault = a});++instance FromXML NetworkACL where+        parseXML x+          = NetworkACL' <$>+              (x .@? "entrySet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "networkAclId")+                <*> (x .@? "vpcId")+                <*>+                (x .@? "associationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "default")++instance Hashable NetworkACL where++instance NFData NetworkACL where++-- | Describes an association between a network ACL and a subnet.+--+--+--+-- /See:/ 'networkACLAssociation' smart constructor.+data NetworkACLAssociation = NetworkACLAssociation'+  { _naaNetworkACLId            :: !(Maybe Text)+  , _naaSubnetId                :: !(Maybe Text)+  , _naaNetworkACLAssociationId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkACLAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'naaNetworkACLId' - The ID of the network ACL.+--+-- * 'naaSubnetId' - The ID of the subnet.+--+-- * 'naaNetworkACLAssociationId' - The ID of the association between a network ACL and a subnet.+networkACLAssociation+    :: NetworkACLAssociation+networkACLAssociation =+  NetworkACLAssociation'+  { _naaNetworkACLId = Nothing+  , _naaSubnetId = Nothing+  , _naaNetworkACLAssociationId = Nothing+  }+++-- | The ID of the network ACL.+naaNetworkACLId :: Lens' NetworkACLAssociation (Maybe Text)+naaNetworkACLId = lens _naaNetworkACLId (\ s a -> s{_naaNetworkACLId = a});++-- | The ID of the subnet.+naaSubnetId :: Lens' NetworkACLAssociation (Maybe Text)+naaSubnetId = lens _naaSubnetId (\ s a -> s{_naaSubnetId = a});++-- | The ID of the association between a network ACL and a subnet.+naaNetworkACLAssociationId :: Lens' NetworkACLAssociation (Maybe Text)+naaNetworkACLAssociationId = lens _naaNetworkACLAssociationId (\ s a -> s{_naaNetworkACLAssociationId = a});++instance FromXML NetworkACLAssociation where+        parseXML x+          = NetworkACLAssociation' <$>+              (x .@? "networkAclId") <*> (x .@? "subnetId") <*>+                (x .@? "networkAclAssociationId")++instance Hashable NetworkACLAssociation where++instance NFData NetworkACLAssociation where++-- | Describes an entry in a network ACL.+--+--+--+-- /See:/ 'networkACLEntry' smart constructor.+data NetworkACLEntry = NetworkACLEntry'+  { _naeIPv6CidrBlock :: !(Maybe Text)+  , _naeICMPTypeCode  :: !(Maybe ICMPTypeCode)+  , _naeRuleNumber    :: !(Maybe Int)+  , _naeRuleAction    :: !(Maybe RuleAction)+  , _naeProtocol      :: !(Maybe Text)+  , _naePortRange     :: !(Maybe PortRange)+  , _naeCidrBlock     :: !(Maybe Text)+  , _naeEgress        :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkACLEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'naeIPv6CidrBlock' - The IPv6 network range to allow or deny, in CIDR notation.+--+-- * 'naeICMPTypeCode' - ICMP protocol: The ICMP type and code.+--+-- * 'naeRuleNumber' - The rule number for the entry. ACL entries are processed in ascending order by rule number.+--+-- * 'naeRuleAction' - Indicates whether to allow or deny the traffic that matches the rule.+--+-- * 'naeProtocol' - The protocol. A value of @-1@ means all protocols.+--+-- * 'naePortRange' - TCP or UDP protocols: The range of ports the rule applies to.+--+-- * 'naeCidrBlock' - The IPv4 network range to allow or deny, in CIDR notation.+--+-- * 'naeEgress' - Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).+networkACLEntry+    :: NetworkACLEntry+networkACLEntry =+  NetworkACLEntry'+  { _naeIPv6CidrBlock = Nothing+  , _naeICMPTypeCode = Nothing+  , _naeRuleNumber = Nothing+  , _naeRuleAction = Nothing+  , _naeProtocol = Nothing+  , _naePortRange = Nothing+  , _naeCidrBlock = Nothing+  , _naeEgress = Nothing+  }+++-- | The IPv6 network range to allow or deny, in CIDR notation.+naeIPv6CidrBlock :: Lens' NetworkACLEntry (Maybe Text)+naeIPv6CidrBlock = lens _naeIPv6CidrBlock (\ s a -> s{_naeIPv6CidrBlock = a});++-- | ICMP protocol: The ICMP type and code.+naeICMPTypeCode :: Lens' NetworkACLEntry (Maybe ICMPTypeCode)+naeICMPTypeCode = lens _naeICMPTypeCode (\ s a -> s{_naeICMPTypeCode = a});++-- | The rule number for the entry. ACL entries are processed in ascending order by rule number.+naeRuleNumber :: Lens' NetworkACLEntry (Maybe Int)+naeRuleNumber = lens _naeRuleNumber (\ s a -> s{_naeRuleNumber = a});++-- | Indicates whether to allow or deny the traffic that matches the rule.+naeRuleAction :: Lens' NetworkACLEntry (Maybe RuleAction)+naeRuleAction = lens _naeRuleAction (\ s a -> s{_naeRuleAction = a});++-- | The protocol. A value of @-1@ means all protocols.+naeProtocol :: Lens' NetworkACLEntry (Maybe Text)+naeProtocol = lens _naeProtocol (\ s a -> s{_naeProtocol = a});++-- | TCP or UDP protocols: The range of ports the rule applies to.+naePortRange :: Lens' NetworkACLEntry (Maybe PortRange)+naePortRange = lens _naePortRange (\ s a -> s{_naePortRange = a});++-- | The IPv4 network range to allow or deny, in CIDR notation.+naeCidrBlock :: Lens' NetworkACLEntry (Maybe Text)+naeCidrBlock = lens _naeCidrBlock (\ s a -> s{_naeCidrBlock = a});++-- | Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).+naeEgress :: Lens' NetworkACLEntry (Maybe Bool)+naeEgress = lens _naeEgress (\ s a -> s{_naeEgress = a});++instance FromXML NetworkACLEntry where+        parseXML x+          = NetworkACLEntry' <$>+              (x .@? "ipv6CidrBlock") <*> (x .@? "icmpTypeCode")+                <*> (x .@? "ruleNumber")+                <*> (x .@? "ruleAction")+                <*> (x .@? "protocol")+                <*> (x .@? "portRange")+                <*> (x .@? "cidrBlock")+                <*> (x .@? "egress")++instance Hashable NetworkACLEntry where++instance NFData NetworkACLEntry where++-- | Describes a network interface.+--+--+--+-- /See:/ 'networkInterface' smart constructor.+data NetworkInterface = NetworkInterface'+  { _niGroups             :: !(Maybe [GroupIdentifier])+  , _niStatus             :: !(Maybe NetworkInterfaceStatus)+  , _niPrivateIPAddresses :: !(Maybe [NetworkInterfacePrivateIPAddress])+  , _niSourceDestCheck    :: !(Maybe Bool)+  , _niInterfaceType      :: !(Maybe NetworkInterfaceType)+  , _niVPCId              :: !(Maybe Text)+  , _niTagSet             :: !(Maybe [Tag])+  , _niRequesterManaged   :: !(Maybe Bool)+  , _niNetworkInterfaceId :: !(Maybe Text)+  , _niSubnetId           :: !(Maybe Text)+  , _niMACAddress         :: !(Maybe Text)+  , _niAttachment         :: !(Maybe NetworkInterfaceAttachment)+  , _niOwnerId            :: !(Maybe Text)+  , _niAvailabilityZone   :: !(Maybe Text)+  , _niPrivateIPAddress   :: !(Maybe Text)+  , _niPrivateDNSName     :: !(Maybe Text)+  , _niRequesterId        :: !(Maybe Text)+  , _niDescription        :: !(Maybe Text)+  , _niAssociation        :: !(Maybe NetworkInterfaceAssociation)+  , _niIPv6Addresses      :: !(Maybe [NetworkInterfaceIPv6Address])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niGroups' - Any security groups for the network interface.+--+-- * 'niStatus' - The status of the network interface.+--+-- * 'niPrivateIPAddresses' - The private IPv4 addresses associated with the network interface.+--+-- * 'niSourceDestCheck' - Indicates whether traffic to or from the instance is validated.+--+-- * 'niInterfaceType' - The type of interface.+--+-- * 'niVPCId' - The ID of the VPC.+--+-- * 'niTagSet' - Any tags assigned to the network interface.+--+-- * 'niRequesterManaged' - Indicates whether the network interface is being managed by AWS.+--+-- * 'niNetworkInterfaceId' - The ID of the network interface.+--+-- * 'niSubnetId' - The ID of the subnet.+--+-- * 'niMACAddress' - The MAC address.+--+-- * 'niAttachment' - The network interface attachment.+--+-- * 'niOwnerId' - The AWS account ID of the owner of the network interface.+--+-- * 'niAvailabilityZone' - The Availability Zone.+--+-- * 'niPrivateIPAddress' - The IPv4 address of the network interface within the subnet.+--+-- * 'niPrivateDNSName' - The private DNS name.+--+-- * 'niRequesterId' - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console or Auto Scaling).+--+-- * 'niDescription' - A description.+--+-- * 'niAssociation' - The association information for an Elastic IP address (IPv4) associated with the network interface.+--+-- * 'niIPv6Addresses' - The IPv6 addresses associated with the network interface.+networkInterface+    :: NetworkInterface+networkInterface =+  NetworkInterface'+  { _niGroups = Nothing+  , _niStatus = Nothing+  , _niPrivateIPAddresses = Nothing+  , _niSourceDestCheck = Nothing+  , _niInterfaceType = Nothing+  , _niVPCId = Nothing+  , _niTagSet = Nothing+  , _niRequesterManaged = Nothing+  , _niNetworkInterfaceId = Nothing+  , _niSubnetId = Nothing+  , _niMACAddress = Nothing+  , _niAttachment = Nothing+  , _niOwnerId = Nothing+  , _niAvailabilityZone = Nothing+  , _niPrivateIPAddress = Nothing+  , _niPrivateDNSName = Nothing+  , _niRequesterId = Nothing+  , _niDescription = Nothing+  , _niAssociation = Nothing+  , _niIPv6Addresses = Nothing+  }+++-- | Any security groups for the network interface.+niGroups :: Lens' NetworkInterface [GroupIdentifier]+niGroups = lens _niGroups (\ s a -> s{_niGroups = a}) . _Default . _Coerce;++-- | The status of the network interface.+niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)+niStatus = lens _niStatus (\ s a -> s{_niStatus = a});++-- | The private IPv4 addresses associated with the network interface.+niPrivateIPAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIPAddress]+niPrivateIPAddresses = lens _niPrivateIPAddresses (\ s a -> s{_niPrivateIPAddresses = a}) . _Default . _Coerce;++-- | Indicates whether traffic to or from the instance is validated.+niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)+niSourceDestCheck = lens _niSourceDestCheck (\ s a -> s{_niSourceDestCheck = a});++-- | The type of interface.+niInterfaceType :: Lens' NetworkInterface (Maybe NetworkInterfaceType)+niInterfaceType = lens _niInterfaceType (\ s a -> s{_niInterfaceType = a});++-- | The ID of the VPC.+niVPCId :: Lens' NetworkInterface (Maybe Text)+niVPCId = lens _niVPCId (\ s a -> s{_niVPCId = a});++-- | Any tags assigned to the network interface.+niTagSet :: Lens' NetworkInterface [Tag]+niTagSet = lens _niTagSet (\ s a -> s{_niTagSet = a}) . _Default . _Coerce;++-- | Indicates whether the network interface is being managed by AWS.+niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)+niRequesterManaged = lens _niRequesterManaged (\ s a -> s{_niRequesterManaged = a});++-- | The ID of the network interface.+niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)+niNetworkInterfaceId = lens _niNetworkInterfaceId (\ s a -> s{_niNetworkInterfaceId = a});++-- | The ID of the subnet.+niSubnetId :: Lens' NetworkInterface (Maybe Text)+niSubnetId = lens _niSubnetId (\ s a -> s{_niSubnetId = a});++-- | The MAC address.+niMACAddress :: Lens' NetworkInterface (Maybe Text)+niMACAddress = lens _niMACAddress (\ s a -> s{_niMACAddress = a});++-- | The network interface attachment.+niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)+niAttachment = lens _niAttachment (\ s a -> s{_niAttachment = a});++-- | The AWS account ID of the owner of the network interface.+niOwnerId :: Lens' NetworkInterface (Maybe Text)+niOwnerId = lens _niOwnerId (\ s a -> s{_niOwnerId = a});++-- | The Availability Zone.+niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)+niAvailabilityZone = lens _niAvailabilityZone (\ s a -> s{_niAvailabilityZone = a});++-- | The IPv4 address of the network interface within the subnet.+niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)+niPrivateIPAddress = lens _niPrivateIPAddress (\ s a -> s{_niPrivateIPAddress = a});++-- | The private DNS name.+niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)+niPrivateDNSName = lens _niPrivateDNSName (\ s a -> s{_niPrivateDNSName = a});++-- | 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)+niRequesterId = lens _niRequesterId (\ s a -> s{_niRequesterId = a});++-- | A description.+niDescription :: Lens' NetworkInterface (Maybe Text)+niDescription = lens _niDescription (\ s a -> s{_niDescription = a});++-- | The association information for an Elastic IP address (IPv4) associated with the network interface.+niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)+niAssociation = lens _niAssociation (\ s a -> s{_niAssociation = a});++-- | The IPv6 addresses associated with the network interface.+niIPv6Addresses :: Lens' NetworkInterface [NetworkInterfaceIPv6Address]+niIPv6Addresses = lens _niIPv6Addresses (\ s a -> s{_niIPv6Addresses = a}) . _Default . _Coerce;++instance FromXML NetworkInterface where+        parseXML x+          = NetworkInterface' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "status")+                <*>+                (x .@? "privateIpAddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "sourceDestCheck")+                <*> (x .@? "interfaceType")+                <*> (x .@? "vpcId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "requesterManaged")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "subnetId")+                <*> (x .@? "macAddress")+                <*> (x .@? "attachment")+                <*> (x .@? "ownerId")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "privateIpAddress")+                <*> (x .@? "privateDnsName")+                <*> (x .@? "requesterId")+                <*> (x .@? "description")+                <*> (x .@? "association")+                <*>+                (x .@? "ipv6AddressesSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable NetworkInterface where++instance NFData NetworkInterface where++-- | Describes association information for an Elastic IP address (IPv4 only).+--+--+--+-- /See:/ 'networkInterfaceAssociation' smart constructor.+data NetworkInterfaceAssociation = NetworkInterfaceAssociation'+  { _niaAssociationId :: !(Maybe Text)+  , _niaPublicDNSName :: !(Maybe Text)+  , _niaAllocationId  :: !(Maybe Text)+  , _niaIPOwnerId     :: !(Maybe Text)+  , _niaPublicIP      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfaceAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niaAssociationId' - The association ID.+--+-- * 'niaPublicDNSName' - The public DNS name.+--+-- * 'niaAllocationId' - The allocation ID.+--+-- * 'niaIPOwnerId' - The ID of the Elastic IP address owner.+--+-- * 'niaPublicIP' - The address of the Elastic IP address bound to the network interface.+networkInterfaceAssociation+    :: NetworkInterfaceAssociation+networkInterfaceAssociation =+  NetworkInterfaceAssociation'+  { _niaAssociationId = Nothing+  , _niaPublicDNSName = Nothing+  , _niaAllocationId = Nothing+  , _niaIPOwnerId = Nothing+  , _niaPublicIP = Nothing+  }+++-- | The association ID.+niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaAssociationId = lens _niaAssociationId (\ s a -> s{_niaAssociationId = a});++-- | The public DNS name.+niaPublicDNSName :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaPublicDNSName = lens _niaPublicDNSName (\ s a -> s{_niaPublicDNSName = a});++-- | The allocation ID.+niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaAllocationId = lens _niaAllocationId (\ s a -> s{_niaAllocationId = a});++-- | The ID of the Elastic IP address owner.+niaIPOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaIPOwnerId = lens _niaIPOwnerId (\ s a -> s{_niaIPOwnerId = a});++-- | The address of the Elastic IP address bound to the network interface.+niaPublicIP :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaPublicIP = lens _niaPublicIP (\ s a -> s{_niaPublicIP = a});++instance FromXML NetworkInterfaceAssociation where+        parseXML x+          = NetworkInterfaceAssociation' <$>+              (x .@? "associationId") <*> (x .@? "publicDnsName")+                <*> (x .@? "allocationId")+                <*> (x .@? "ipOwnerId")+                <*> (x .@? "publicIp")++instance Hashable NetworkInterfaceAssociation where++instance NFData NetworkInterfaceAssociation where++-- | Describes a network interface attachment.+--+--+--+-- /See:/ 'networkInterfaceAttachment' smart constructor.+data NetworkInterfaceAttachment = NetworkInterfaceAttachment'+  { _niaInstanceId          :: !(Maybe Text)+  , _niaStatus              :: !(Maybe AttachmentStatus)+  , _niaDeleteOnTermination :: !(Maybe Bool)+  , _niaAttachmentId        :: !(Maybe Text)+  , _niaInstanceOwnerId     :: !(Maybe Text)+  , _niaAttachTime          :: !(Maybe ISO8601)+  , _niaDeviceIndex         :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfaceAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niaInstanceId' - The ID of the instance.+--+-- * 'niaStatus' - The attachment state.+--+-- * 'niaDeleteOnTermination' - Indicates whether the network interface is deleted when the instance is terminated.+--+-- * 'niaAttachmentId' - The ID of the network interface attachment.+--+-- * 'niaInstanceOwnerId' - The AWS account ID of the owner of the instance.+--+-- * 'niaAttachTime' - The timestamp indicating when the attachment initiated.+--+-- * 'niaDeviceIndex' - The device index of the network interface attachment on the instance.+networkInterfaceAttachment+    :: NetworkInterfaceAttachment+networkInterfaceAttachment =+  NetworkInterfaceAttachment'+  { _niaInstanceId = Nothing+  , _niaStatus = Nothing+  , _niaDeleteOnTermination = Nothing+  , _niaAttachmentId = Nothing+  , _niaInstanceOwnerId = Nothing+  , _niaAttachTime = Nothing+  , _niaDeviceIndex = Nothing+  }+++-- | The ID of the instance.+niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaInstanceId = lens _niaInstanceId (\ s a -> s{_niaInstanceId = a});++-- | The attachment state.+niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)+niaStatus = lens _niaStatus (\ s a -> s{_niaStatus = a});++-- | Indicates whether the network interface is deleted when the instance is terminated.+niaDeleteOnTermination :: Lens' NetworkInterfaceAttachment (Maybe Bool)+niaDeleteOnTermination = lens _niaDeleteOnTermination (\ s a -> s{_niaDeleteOnTermination = a});++-- | The ID of the network interface attachment.+niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaAttachmentId = lens _niaAttachmentId (\ s a -> s{_niaAttachmentId = a});++-- | The AWS account ID of the owner of the instance.+niaInstanceOwnerId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaInstanceOwnerId = lens _niaInstanceOwnerId (\ s a -> s{_niaInstanceOwnerId = a});++-- | The timestamp indicating when the attachment initiated.+niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)+niaAttachTime = lens _niaAttachTime (\ s a -> s{_niaAttachTime = a}) . mapping _Time;++-- | The device index of the network interface attachment on the instance.+niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)+niaDeviceIndex = lens _niaDeviceIndex (\ s a -> s{_niaDeviceIndex = a});++instance FromXML NetworkInterfaceAttachment where+        parseXML x+          = NetworkInterfaceAttachment' <$>+              (x .@? "instanceId") <*> (x .@? "status") <*>+                (x .@? "deleteOnTermination")+                <*> (x .@? "attachmentId")+                <*> (x .@? "instanceOwnerId")+                <*> (x .@? "attachTime")+                <*> (x .@? "deviceIndex")++instance Hashable NetworkInterfaceAttachment where++instance NFData NetworkInterfaceAttachment where++-- | Describes an attachment change.+--+--+--+-- /See:/ 'networkInterfaceAttachmentChanges' smart constructor.+data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges'+  { _niacDeleteOnTermination :: !(Maybe Bool)+  , _niacAttachmentId        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfaceAttachmentChanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niacDeleteOnTermination' - Indicates whether the network interface is deleted when the instance is terminated.+--+-- * 'niacAttachmentId' - The ID of the network interface attachment.+networkInterfaceAttachmentChanges+    :: NetworkInterfaceAttachmentChanges+networkInterfaceAttachmentChanges =+  NetworkInterfaceAttachmentChanges'+  {_niacDeleteOnTermination = Nothing, _niacAttachmentId = Nothing}+++-- | Indicates whether the network interface is deleted when the instance is terminated.+niacDeleteOnTermination :: Lens' NetworkInterfaceAttachmentChanges (Maybe Bool)+niacDeleteOnTermination = lens _niacDeleteOnTermination (\ s a -> s{_niacDeleteOnTermination = a});++-- | The ID of the network interface attachment.+niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)+niacAttachmentId = lens _niacAttachmentId (\ s a -> s{_niacAttachmentId = a});++instance Hashable NetworkInterfaceAttachmentChanges+         where++instance NFData NetworkInterfaceAttachmentChanges+         where++instance ToQuery NetworkInterfaceAttachmentChanges+         where+        toQuery NetworkInterfaceAttachmentChanges'{..}+          = mconcat+              ["DeleteOnTermination" =: _niacDeleteOnTermination,+               "AttachmentId" =: _niacAttachmentId]++-- | Describes an IPv6 address associated with a network interface.+--+--+--+-- /See:/ 'networkInterfaceIPv6Address' smart constructor.+newtype NetworkInterfaceIPv6Address = NetworkInterfaceIPv6Address'+  { _niiaIPv6Address :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfaceIPv6Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niiaIPv6Address' - The IPv6 address.+networkInterfaceIPv6Address+    :: NetworkInterfaceIPv6Address+networkInterfaceIPv6Address =+  NetworkInterfaceIPv6Address' {_niiaIPv6Address = Nothing}+++-- | The IPv6 address.+niiaIPv6Address :: Lens' NetworkInterfaceIPv6Address (Maybe Text)+niiaIPv6Address = lens _niiaIPv6Address (\ s a -> s{_niiaIPv6Address = a});++instance FromXML NetworkInterfaceIPv6Address where+        parseXML x+          = NetworkInterfaceIPv6Address' <$>+              (x .@? "ipv6Address")++instance Hashable NetworkInterfaceIPv6Address where++instance NFData NetworkInterfaceIPv6Address where++-- | Describes a permission for a network interface.+--+--+--+-- /See:/ 'networkInterfacePermission' smart constructor.+data NetworkInterfacePermission = NetworkInterfacePermission'+  { _nipPermissionState              :: !(Maybe NetworkInterfacePermissionState)+  , _nipNetworkInterfacePermissionId :: !(Maybe Text)+  , _nipNetworkInterfaceId           :: !(Maybe Text)+  , _nipAWSAccountId                 :: !(Maybe Text)+  , _nipAWSService                   :: !(Maybe Text)+  , _nipPermission                   :: !(Maybe InterfacePermissionType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfacePermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nipPermissionState' - Information about the state of the permission.+--+-- * 'nipNetworkInterfacePermissionId' - The ID of the network interface permission.+--+-- * 'nipNetworkInterfaceId' - The ID of the network interface.+--+-- * 'nipAWSAccountId' - The AWS account ID.+--+-- * 'nipAWSService' - The AWS service.+--+-- * 'nipPermission' - The type of permission.+networkInterfacePermission+    :: NetworkInterfacePermission+networkInterfacePermission =+  NetworkInterfacePermission'+  { _nipPermissionState = Nothing+  , _nipNetworkInterfacePermissionId = Nothing+  , _nipNetworkInterfaceId = Nothing+  , _nipAWSAccountId = Nothing+  , _nipAWSService = Nothing+  , _nipPermission = Nothing+  }+++-- | Information about the state of the permission.+nipPermissionState :: Lens' NetworkInterfacePermission (Maybe NetworkInterfacePermissionState)+nipPermissionState = lens _nipPermissionState (\ s a -> s{_nipPermissionState = a});++-- | The ID of the network interface permission.+nipNetworkInterfacePermissionId :: Lens' NetworkInterfacePermission (Maybe Text)+nipNetworkInterfacePermissionId = lens _nipNetworkInterfacePermissionId (\ s a -> s{_nipNetworkInterfacePermissionId = a});++-- | The ID of the network interface.+nipNetworkInterfaceId :: Lens' NetworkInterfacePermission (Maybe Text)+nipNetworkInterfaceId = lens _nipNetworkInterfaceId (\ s a -> s{_nipNetworkInterfaceId = a});++-- | The AWS account ID.+nipAWSAccountId :: Lens' NetworkInterfacePermission (Maybe Text)+nipAWSAccountId = lens _nipAWSAccountId (\ s a -> s{_nipAWSAccountId = a});++-- | The AWS service.+nipAWSService :: Lens' NetworkInterfacePermission (Maybe Text)+nipAWSService = lens _nipAWSService (\ s a -> s{_nipAWSService = a});++-- | The type of permission.+nipPermission :: Lens' NetworkInterfacePermission (Maybe InterfacePermissionType)+nipPermission = lens _nipPermission (\ s a -> s{_nipPermission = a});++instance FromXML NetworkInterfacePermission where+        parseXML x+          = NetworkInterfacePermission' <$>+              (x .@? "permissionState") <*>+                (x .@? "networkInterfacePermissionId")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "awsAccountId")+                <*> (x .@? "awsService")+                <*> (x .@? "permission")++instance Hashable NetworkInterfacePermission where++instance NFData NetworkInterfacePermission where++-- | Describes the state of a network interface permission.+--+--+--+-- /See:/ 'networkInterfacePermissionState' smart constructor.+data NetworkInterfacePermissionState = NetworkInterfacePermissionState'+  { _nipsState         :: !(Maybe NetworkInterfacePermissionStateCode)+  , _nipsStatusMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfacePermissionState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nipsState' - The state of the permission.+--+-- * 'nipsStatusMessage' - A status message, if applicable.+networkInterfacePermissionState+    :: NetworkInterfacePermissionState+networkInterfacePermissionState =+  NetworkInterfacePermissionState'+  {_nipsState = Nothing, _nipsStatusMessage = Nothing}+++-- | The state of the permission.+nipsState :: Lens' NetworkInterfacePermissionState (Maybe NetworkInterfacePermissionStateCode)+nipsState = lens _nipsState (\ s a -> s{_nipsState = a});++-- | A status message, if applicable.+nipsStatusMessage :: Lens' NetworkInterfacePermissionState (Maybe Text)+nipsStatusMessage = lens _nipsStatusMessage (\ s a -> s{_nipsStatusMessage = a});++instance FromXML NetworkInterfacePermissionState+         where+        parseXML x+          = NetworkInterfacePermissionState' <$>+              (x .@? "state") <*> (x .@? "statusMessage")++instance Hashable NetworkInterfacePermissionState+         where++instance NFData NetworkInterfacePermissionState where++-- | Describes the private IPv4 address of a network interface.+--+--+--+-- /See:/ 'networkInterfacePrivateIPAddress' smart constructor.+data NetworkInterfacePrivateIPAddress = NetworkInterfacePrivateIPAddress'+  { _nipiaPrimary          :: !(Maybe Bool)+  , _nipiaPrivateIPAddress :: !(Maybe Text)+  , _nipiaPrivateDNSName   :: !(Maybe Text)+  , _nipiaAssociation      :: !(Maybe NetworkInterfaceAssociation)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterfacePrivateIPAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nipiaPrimary' - Indicates whether this IPv4 address is the primary private IPv4 address of the network interface.+--+-- * 'nipiaPrivateIPAddress' - The private IPv4 address.+--+-- * 'nipiaPrivateDNSName' - The private DNS name.+--+-- * 'nipiaAssociation' - The association information for an Elastic IP address (IPv4) associated with the network interface.+networkInterfacePrivateIPAddress+    :: NetworkInterfacePrivateIPAddress+networkInterfacePrivateIPAddress =+  NetworkInterfacePrivateIPAddress'+  { _nipiaPrimary = Nothing+  , _nipiaPrivateIPAddress = Nothing+  , _nipiaPrivateDNSName = Nothing+  , _nipiaAssociation = Nothing+  }+++-- | Indicates whether this IPv4 address is the primary private IPv4 address of the network interface.+nipiaPrimary :: Lens' NetworkInterfacePrivateIPAddress (Maybe Bool)+nipiaPrimary = lens _nipiaPrimary (\ s a -> s{_nipiaPrimary = a});++-- | The private IPv4 address.+nipiaPrivateIPAddress :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)+nipiaPrivateIPAddress = lens _nipiaPrivateIPAddress (\ s a -> s{_nipiaPrivateIPAddress = a});++-- | The private DNS name.+nipiaPrivateDNSName :: Lens' NetworkInterfacePrivateIPAddress (Maybe Text)+nipiaPrivateDNSName = lens _nipiaPrivateDNSName (\ s a -> s{_nipiaPrivateDNSName = a});++-- | The association information for an Elastic IP address (IPv4) associated with the network interface.+nipiaAssociation :: Lens' NetworkInterfacePrivateIPAddress (Maybe NetworkInterfaceAssociation)+nipiaAssociation = lens _nipiaAssociation (\ s a -> s{_nipiaAssociation = a});++instance FromXML NetworkInterfacePrivateIPAddress+         where+        parseXML x+          = NetworkInterfacePrivateIPAddress' <$>+              (x .@? "primary") <*> (x .@? "privateIpAddress") <*>+                (x .@? "privateDnsName")+                <*> (x .@? "association")++instance Hashable NetworkInterfacePrivateIPAddress+         where++instance NFData NetworkInterfacePrivateIPAddress+         where++-- | /See:/ 'newDHCPConfiguration' smart constructor.+data NewDHCPConfiguration = NewDHCPConfiguration'+  { _ndcValues :: !(Maybe [Text])+  , _ndcKey    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NewDHCPConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ndcValues' - Undocumented member.+--+-- * 'ndcKey' - Undocumented member.+newDHCPConfiguration+    :: NewDHCPConfiguration+newDHCPConfiguration =+  NewDHCPConfiguration' {_ndcValues = Nothing, _ndcKey = Nothing}+++-- | Undocumented member.+ndcValues :: Lens' NewDHCPConfiguration [Text]+ndcValues = lens _ndcValues (\ s a -> s{_ndcValues = a}) . _Default . _Coerce;++-- | Undocumented member.+ndcKey :: Lens' NewDHCPConfiguration (Maybe Text)+ndcKey = lens _ndcKey (\ s a -> s{_ndcKey = a});++instance Hashable NewDHCPConfiguration where++instance NFData NewDHCPConfiguration where++instance ToQuery NewDHCPConfiguration where+        toQuery NewDHCPConfiguration'{..}+          = mconcat+              [toQuery (toQueryList "Value" <$> _ndcValues),+               "Key" =: _ndcKey]++-- | Describes the data that identifies an Amazon FPGA image (AFI) on the PCI bus.+--+--+--+-- /See:/ 'pciId' smart constructor.+data PciId = PciId'+  { _piSubsystemId       :: !(Maybe Text)+  , _piDeviceId          :: !(Maybe Text)+  , _piSubsystemVendorId :: !(Maybe Text)+  , _piVendorId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PciId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piSubsystemId' - The ID of the subsystem.+--+-- * 'piDeviceId' - The ID of the device.+--+-- * 'piSubsystemVendorId' - The ID of the vendor for the subsystem.+--+-- * 'piVendorId' - The ID of the vendor.+pciId+    :: PciId+pciId =+  PciId'+  { _piSubsystemId = Nothing+  , _piDeviceId = Nothing+  , _piSubsystemVendorId = Nothing+  , _piVendorId = Nothing+  }+++-- | The ID of the subsystem.+piSubsystemId :: Lens' PciId (Maybe Text)+piSubsystemId = lens _piSubsystemId (\ s a -> s{_piSubsystemId = a});++-- | The ID of the device.+piDeviceId :: Lens' PciId (Maybe Text)+piDeviceId = lens _piDeviceId (\ s a -> s{_piDeviceId = a});++-- | The ID of the vendor for the subsystem.+piSubsystemVendorId :: Lens' PciId (Maybe Text)+piSubsystemVendorId = lens _piSubsystemVendorId (\ s a -> s{_piSubsystemVendorId = a});++-- | The ID of the vendor.+piVendorId :: Lens' PciId (Maybe Text)+piVendorId = lens _piVendorId (\ s a -> s{_piVendorId = a});++instance FromXML PciId where+        parseXML x+          = PciId' <$>+              (x .@? "SubsystemId") <*> (x .@? "DeviceId") <*>+                (x .@? "SubsystemVendorId")+                <*> (x .@? "VendorId")++instance Hashable PciId where++instance NFData PciId where++-- | Describes the VPC peering connection options.+--+--+--+-- /See:/ 'peeringConnectionOptions' smart constructor.+data PeeringConnectionOptions = PeeringConnectionOptions'+  { _pcoAllowEgressFromLocalVPCToRemoteClassicLink :: !(Maybe Bool)+  , _pcoAllowEgressFromLocalClassicLinkToRemoteVPC :: !(Maybe Bool)+  , _pcoAllowDNSResolutionFromRemoteVPC            :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PeeringConnectionOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcoAllowEgressFromLocalVPCToRemoteClassicLink' - 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.+--+-- * 'pcoAllowEgressFromLocalClassicLinkToRemoteVPC' - 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.+--+-- * 'pcoAllowDNSResolutionFromRemoteVPC' - If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.+peeringConnectionOptions+    :: PeeringConnectionOptions+peeringConnectionOptions =+  PeeringConnectionOptions'+  { _pcoAllowEgressFromLocalVPCToRemoteClassicLink = Nothing+  , _pcoAllowEgressFromLocalClassicLinkToRemoteVPC = Nothing+  , _pcoAllowDNSResolutionFromRemoteVPC = Nothing+  }+++-- | 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)+pcoAllowEgressFromLocalVPCToRemoteClassicLink = lens _pcoAllowEgressFromLocalVPCToRemoteClassicLink (\ s a -> s{_pcoAllowEgressFromLocalVPCToRemoteClassicLink = 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.+pcoAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)+pcoAllowEgressFromLocalClassicLinkToRemoteVPC = lens _pcoAllowEgressFromLocalClassicLinkToRemoteVPC (\ s a -> s{_pcoAllowEgressFromLocalClassicLinkToRemoteVPC = a});++-- | If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.+pcoAllowDNSResolutionFromRemoteVPC :: Lens' PeeringConnectionOptions (Maybe Bool)+pcoAllowDNSResolutionFromRemoteVPC = lens _pcoAllowDNSResolutionFromRemoteVPC (\ s a -> s{_pcoAllowDNSResolutionFromRemoteVPC = a});++instance FromXML PeeringConnectionOptions where+        parseXML x+          = PeeringConnectionOptions' <$>+              (x .@? "allowEgressFromLocalVpcToRemoteClassicLink")+                <*>+                (x .@? "allowEgressFromLocalClassicLinkToRemoteVpc")+                <*> (x .@? "allowDnsResolutionFromRemoteVpc")++instance Hashable PeeringConnectionOptions where++instance NFData PeeringConnectionOptions where++-- | The VPC peering connection options.+--+--+--+-- /See:/ 'peeringConnectionOptionsRequest' smart constructor.+data PeeringConnectionOptionsRequest = PeeringConnectionOptionsRequest'+  { _pcorAllowEgressFromLocalVPCToRemoteClassicLink :: !(Maybe Bool)+  , _pcorAllowEgressFromLocalClassicLinkToRemoteVPC :: !(Maybe Bool)+  , _pcorAllowDNSResolutionFromRemoteVPC            :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PeeringConnectionOptionsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcorAllowEgressFromLocalVPCToRemoteClassicLink' - 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.+--+-- * 'pcorAllowEgressFromLocalClassicLinkToRemoteVPC' - 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.+--+-- * 'pcorAllowDNSResolutionFromRemoteVPC' - If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.+peeringConnectionOptionsRequest+    :: PeeringConnectionOptionsRequest+peeringConnectionOptionsRequest =+  PeeringConnectionOptionsRequest'+  { _pcorAllowEgressFromLocalVPCToRemoteClassicLink = Nothing+  , _pcorAllowEgressFromLocalClassicLinkToRemoteVPC = Nothing+  , _pcorAllowDNSResolutionFromRemoteVPC = Nothing+  }+++-- | 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)+pcorAllowEgressFromLocalVPCToRemoteClassicLink = lens _pcorAllowEgressFromLocalVPCToRemoteClassicLink (\ s a -> s{_pcorAllowEgressFromLocalVPCToRemoteClassicLink = 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.+pcorAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' PeeringConnectionOptionsRequest (Maybe Bool)+pcorAllowEgressFromLocalClassicLinkToRemoteVPC = lens _pcorAllowEgressFromLocalClassicLinkToRemoteVPC (\ s a -> s{_pcorAllowEgressFromLocalClassicLinkToRemoteVPC = a});++-- | 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)+pcorAllowDNSResolutionFromRemoteVPC = lens _pcorAllowDNSResolutionFromRemoteVPC (\ s a -> s{_pcorAllowDNSResolutionFromRemoteVPC = a});++instance Hashable PeeringConnectionOptionsRequest+         where++instance NFData PeeringConnectionOptionsRequest where++instance ToQuery PeeringConnectionOptionsRequest+         where+        toQuery PeeringConnectionOptionsRequest'{..}+          = mconcat+              ["AllowEgressFromLocalVpcToRemoteClassicLink" =:+                 _pcorAllowEgressFromLocalVPCToRemoteClassicLink,+               "AllowEgressFromLocalClassicLinkToRemoteVpc" =:+                 _pcorAllowEgressFromLocalClassicLinkToRemoteVPC,+               "AllowDnsResolutionFromRemoteVpc" =:+                 _pcorAllowDNSResolutionFromRemoteVPC]++-- | Describes the placement of an instance.+--+--+--+-- /See:/ 'placement' smart constructor.+data Placement = Placement'+  { _pAffinity         :: !(Maybe Text)+  , _pHostId           :: !(Maybe Text)+  , _pSpreadDomain     :: !(Maybe Text)+  , _pAvailabilityZone :: !(Maybe Text)+  , _pTenancy          :: !(Maybe Tenancy)+  , _pGroupName        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Placement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pAffinity' - The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the 'ImportInstance' command.+--+-- * 'pHostId' - The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the 'ImportInstance' command.+--+-- * 'pSpreadDomain' - Reserved for future use.+--+-- * 'pAvailabilityZone' - The Availability Zone of the instance.+--+-- * 'pTenancy' - 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. The @host@ tenancy is not supported for the 'ImportInstance' command.+--+-- * 'pGroupName' - The name of the placement group the instance is in (for cluster compute instances).+placement+    :: Placement+placement =+  Placement'+  { _pAffinity = Nothing+  , _pHostId = Nothing+  , _pSpreadDomain = Nothing+  , _pAvailabilityZone = Nothing+  , _pTenancy = Nothing+  , _pGroupName = Nothing+  }+++-- | The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the 'ImportInstance' command.+pAffinity :: Lens' Placement (Maybe Text)+pAffinity = lens _pAffinity (\ s a -> s{_pAffinity = a});++-- | The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the 'ImportInstance' command.+pHostId :: Lens' Placement (Maybe Text)+pHostId = lens _pHostId (\ s a -> s{_pHostId = a});++-- | Reserved for future use.+pSpreadDomain :: Lens' Placement (Maybe Text)+pSpreadDomain = lens _pSpreadDomain (\ s a -> s{_pSpreadDomain = a});++-- | The Availability Zone of the instance.+pAvailabilityZone :: Lens' Placement (Maybe Text)+pAvailabilityZone = lens _pAvailabilityZone (\ s a -> s{_pAvailabilityZone = 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. The @host@ tenancy is not supported for the 'ImportInstance' command.+pTenancy :: Lens' Placement (Maybe Tenancy)+pTenancy = lens _pTenancy (\ s a -> s{_pTenancy = a});++-- | The name of the placement group the instance is in (for cluster compute instances).+pGroupName :: Lens' Placement (Maybe Text)+pGroupName = lens _pGroupName (\ s a -> s{_pGroupName = a});++instance FromXML Placement where+        parseXML x+          = Placement' <$>+              (x .@? "affinity") <*> (x .@? "hostId") <*>+                (x .@? "spreadDomain")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "tenancy")+                <*> (x .@? "groupName")++instance Hashable Placement where++instance NFData Placement where++instance ToQuery Placement where+        toQuery Placement'{..}+          = mconcat+              ["Affinity" =: _pAffinity, "HostId" =: _pHostId,+               "SpreadDomain" =: _pSpreadDomain,+               "AvailabilityZone" =: _pAvailabilityZone,+               "Tenancy" =: _pTenancy, "GroupName" =: _pGroupName]++-- | Describes a placement group.+--+--+--+-- /See:/ 'placementGroup' smart constructor.+data PlacementGroup = PlacementGroup'+  { _pgState     :: !(Maybe PlacementGroupState)+  , _pgStrategy  :: !(Maybe PlacementStrategy)+  , _pgGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PlacementGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgState' - The state of the placement group.+--+-- * 'pgStrategy' - The placement strategy.+--+-- * 'pgGroupName' - The name of the placement group.+placementGroup+    :: PlacementGroup+placementGroup =+  PlacementGroup'+  {_pgState = Nothing, _pgStrategy = Nothing, _pgGroupName = Nothing}+++-- | The state of the placement group.+pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)+pgState = lens _pgState (\ s a -> s{_pgState = a});++-- | The placement strategy.+pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)+pgStrategy = lens _pgStrategy (\ s a -> s{_pgStrategy = a});++-- | The name of the placement group.+pgGroupName :: Lens' PlacementGroup (Maybe Text)+pgGroupName = lens _pgGroupName (\ s a -> s{_pgGroupName = a});++instance FromXML PlacementGroup where+        parseXML x+          = PlacementGroup' <$>+              (x .@? "state") <*> (x .@? "strategy") <*>+                (x .@? "groupName")++instance Hashable PlacementGroup where++instance NFData PlacementGroup where++-- | Describes a range of ports.+--+--+--+-- /See:/ 'portRange' smart constructor.+data PortRange = PortRange'+  { _prTo   :: !(Maybe Int)+  , _prFrom :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PortRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prTo' - The last port in the range.+--+-- * 'prFrom' - The first port in the range.+portRange+    :: PortRange+portRange = PortRange' {_prTo = Nothing, _prFrom = Nothing}+++-- | The last port in the range.+prTo :: Lens' PortRange (Maybe Int)+prTo = lens _prTo (\ s a -> s{_prTo = a});++-- | The first port in the range.+prFrom :: Lens' PortRange (Maybe Int)+prFrom = lens _prFrom (\ s a -> s{_prFrom = a});++instance FromXML PortRange where+        parseXML x+          = PortRange' <$> (x .@? "to") <*> (x .@? "from")++instance Hashable PortRange where++instance NFData PortRange where++instance ToQuery PortRange where+        toQuery PortRange'{..}+          = mconcat ["To" =: _prTo, "From" =: _prFrom]++-- | Describes prefixes for AWS services.+--+--+--+-- /See:/ 'prefixList' smart constructor.+data PrefixList = PrefixList'+  { _plCidrs          :: !(Maybe [Text])+  , _plPrefixListId   :: !(Maybe Text)+  , _plPrefixListName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PrefixList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plCidrs' - The IP address range of the AWS service.+--+-- * 'plPrefixListId' - The ID of the prefix.+--+-- * 'plPrefixListName' - The name of the prefix.+prefixList+    :: PrefixList+prefixList =+  PrefixList'+  {_plCidrs = Nothing, _plPrefixListId = Nothing, _plPrefixListName = Nothing}+++-- | The IP address range of the AWS service.+plCidrs :: Lens' PrefixList [Text]+plCidrs = lens _plCidrs (\ s a -> s{_plCidrs = a}) . _Default . _Coerce;++-- | The ID of the prefix.+plPrefixListId :: Lens' PrefixList (Maybe Text)+plPrefixListId = lens _plPrefixListId (\ s a -> s{_plPrefixListId = a});++-- | The name of the prefix.+plPrefixListName :: Lens' PrefixList (Maybe Text)+plPrefixListName = lens _plPrefixListName (\ s a -> s{_plPrefixListName = a});++instance FromXML PrefixList where+        parseXML x+          = PrefixList' <$>+              (x .@? "cidrSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "prefixListId")+                <*> (x .@? "prefixListName")++instance Hashable PrefixList where++instance NFData PrefixList where++-- | The ID of the prefix.+--+--+--+-- /See:/ 'prefixListId' smart constructor.+data PrefixListId = PrefixListId'+  { _pliPrefixListId :: !(Maybe Text)+  , _pliDescription  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PrefixListId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pliPrefixListId' - The ID of the prefix.+--+-- * 'pliDescription' - 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 ._-:/()#,@[]+=;{}!$*+prefixListId+    :: PrefixListId+prefixListId =+  PrefixListId' {_pliPrefixListId = Nothing, _pliDescription = Nothing}+++-- | The ID of the prefix.+pliPrefixListId :: Lens' PrefixListId (Maybe Text)+pliPrefixListId = lens _pliPrefixListId (\ s a -> s{_pliPrefixListId = 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 ._-:/()#,@[]+=;{}!$*+pliDescription :: Lens' PrefixListId (Maybe Text)+pliDescription = lens _pliDescription (\ s a -> s{_pliDescription = a});++instance FromXML PrefixListId where+        parseXML x+          = PrefixListId' <$>+              (x .@? "prefixListId") <*> (x .@? "description")++instance Hashable PrefixListId where++instance NFData PrefixListId where++instance ToQuery PrefixListId where+        toQuery PrefixListId'{..}+          = mconcat+              ["PrefixListId" =: _pliPrefixListId,+               "Description" =: _pliDescription]++-- | Describes the price for a Reserved Instance.+--+--+--+-- /See:/ 'priceSchedule' smart constructor.+data PriceSchedule = PriceSchedule'+  { _psCurrencyCode :: !(Maybe CurrencyCodeValues)+  , _psTerm         :: !(Maybe Integer)+  , _psActive       :: !(Maybe Bool)+  , _psPrice        :: !(Maybe Double)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PriceSchedule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psCurrencyCode' - The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .+--+-- * 'psTerm' - The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.+--+-- * 'psActive' - 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.+--+-- * 'psPrice' - The fixed price for the term.+priceSchedule+    :: PriceSchedule+priceSchedule =+  PriceSchedule'+  { _psCurrencyCode = Nothing+  , _psTerm = Nothing+  , _psActive = Nothing+  , _psPrice = Nothing+  }+++-- | The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .+psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)+psCurrencyCode = lens _psCurrencyCode (\ s a -> s{_psCurrencyCode = a});++-- | 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)+psTerm = lens _psTerm (\ s a -> s{_psTerm = 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.+psActive :: Lens' PriceSchedule (Maybe Bool)+psActive = lens _psActive (\ s a -> s{_psActive = a});++-- | The fixed price for the term.+psPrice :: Lens' PriceSchedule (Maybe Double)+psPrice = lens _psPrice (\ s a -> s{_psPrice = a});++instance FromXML PriceSchedule where+        parseXML x+          = PriceSchedule' <$>+              (x .@? "currencyCode") <*> (x .@? "term") <*>+                (x .@? "active")+                <*> (x .@? "price")++instance Hashable PriceSchedule where++instance NFData PriceSchedule where++-- | Describes the price for a Reserved Instance.+--+--+--+-- /See:/ 'priceScheduleSpecification' smart constructor.+data PriceScheduleSpecification = PriceScheduleSpecification'+  { _pssCurrencyCode :: !(Maybe CurrencyCodeValues)+  , _pssTerm         :: !(Maybe Integer)+  , _pssPrice        :: !(Maybe Double)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PriceScheduleSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pssCurrencyCode' - The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .+--+-- * 'pssTerm' - The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.+--+-- * 'pssPrice' - The fixed price for the term.+priceScheduleSpecification+    :: PriceScheduleSpecification+priceScheduleSpecification =+  PriceScheduleSpecification'+  {_pssCurrencyCode = Nothing, _pssTerm = Nothing, _pssPrice = Nothing}+++-- | The currency for transacting the Reserved Instance resale. At this time, the only supported currency is @USD@ .+pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)+pssCurrencyCode = lens _pssCurrencyCode (\ s a -> s{_pssCurrencyCode = a});++-- | 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)+pssTerm = lens _pssTerm (\ s a -> s{_pssTerm = a});++-- | The fixed price for the term.+pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)+pssPrice = lens _pssPrice (\ s a -> s{_pssPrice = a});++instance Hashable PriceScheduleSpecification where++instance NFData PriceScheduleSpecification where++instance ToQuery PriceScheduleSpecification where+        toQuery PriceScheduleSpecification'{..}+          = mconcat+              ["CurrencyCode" =: _pssCurrencyCode,+               "Term" =: _pssTerm, "Price" =: _pssPrice]++-- | Describes a Reserved Instance offering.+--+--+--+-- /See:/ 'pricingDetail' smart constructor.+data PricingDetail = PricingDetail'+  { _pdCount :: !(Maybe Int)+  , _pdPrice :: !(Maybe Double)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PricingDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdCount' - The number of reservations available for the price.+--+-- * 'pdPrice' - The price per instance.+pricingDetail+    :: PricingDetail+pricingDetail = PricingDetail' {_pdCount = Nothing, _pdPrice = Nothing}+++-- | The number of reservations available for the price.+pdCount :: Lens' PricingDetail (Maybe Int)+pdCount = lens _pdCount (\ s a -> s{_pdCount = a});++-- | The price per instance.+pdPrice :: Lens' PricingDetail (Maybe Double)+pdPrice = lens _pdPrice (\ s a -> s{_pdPrice = a});++instance FromXML PricingDetail where+        parseXML x+          = PricingDetail' <$>+              (x .@? "count") <*> (x .@? "price")++instance Hashable PricingDetail where++instance NFData PricingDetail where++-- | Describes a secondary private IPv4 address for a network interface.+--+--+--+-- /See:/ 'privateIPAddressSpecification' smart constructor.+data PrivateIPAddressSpecification = PrivateIPAddressSpecification'+  { _piasPrimary          :: !(Maybe Bool)+  , _piasPrivateIPAddress :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PrivateIPAddressSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piasPrimary' - Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary.+--+-- * 'piasPrivateIPAddress' - The private IPv4 addresses.+privateIPAddressSpecification+    :: Text -- ^ 'piasPrivateIPAddress'+    -> PrivateIPAddressSpecification+privateIPAddressSpecification pPrivateIPAddress_ =+  PrivateIPAddressSpecification'+  {_piasPrimary = Nothing, _piasPrivateIPAddress = pPrivateIPAddress_}+++-- | 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)+piasPrimary = lens _piasPrimary (\ s a -> s{_piasPrimary = a});++-- | The private IPv4 addresses.+piasPrivateIPAddress :: Lens' PrivateIPAddressSpecification Text+piasPrivateIPAddress = lens _piasPrivateIPAddress (\ s a -> s{_piasPrivateIPAddress = a});++instance FromXML PrivateIPAddressSpecification where+        parseXML x+          = PrivateIPAddressSpecification' <$>+              (x .@? "primary") <*> (x .@ "privateIpAddress")++instance Hashable PrivateIPAddressSpecification where++instance NFData PrivateIPAddressSpecification where++instance ToQuery PrivateIPAddressSpecification where+        toQuery PrivateIPAddressSpecification'{..}+          = mconcat+              ["Primary" =: _piasPrimary,+               "PrivateIpAddress" =: _piasPrivateIPAddress]++-- | Describes a product code.+--+--+--+-- /See:/ 'productCode' smart constructor.+data ProductCode = ProductCode'+  { _pcProductCodeType :: !(Maybe ProductCodeValues)+  , _pcProductCodeId   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcProductCodeType' - The type of product code.+--+-- * 'pcProductCodeId' - The product code.+productCode+    :: ProductCode+productCode =+  ProductCode' {_pcProductCodeType = Nothing, _pcProductCodeId = Nothing}+++-- | The type of product code.+pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)+pcProductCodeType = lens _pcProductCodeType (\ s a -> s{_pcProductCodeType = a});++-- | The product code.+pcProductCodeId :: Lens' ProductCode (Maybe Text)+pcProductCodeId = lens _pcProductCodeId (\ s a -> s{_pcProductCodeId = a});++instance FromXML ProductCode where+        parseXML x+          = ProductCode' <$>+              (x .@? "type") <*> (x .@? "productCode")++instance Hashable ProductCode where++instance NFData ProductCode where++-- | Describes a virtual private gateway propagating route.+--+--+--+-- /See:/ 'propagatingVGW' smart constructor.+newtype PropagatingVGW = PropagatingVGW'+  { _pvGatewayId :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PropagatingVGW' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvGatewayId' - The ID of the virtual private gateway (VGW).+propagatingVGW+    :: PropagatingVGW+propagatingVGW = PropagatingVGW' {_pvGatewayId = Nothing}+++-- | The ID of the virtual private gateway (VGW).+pvGatewayId :: Lens' PropagatingVGW (Maybe Text)+pvGatewayId = lens _pvGatewayId (\ s a -> s{_pvGatewayId = a});++instance FromXML PropagatingVGW where+        parseXML x = PropagatingVGW' <$> (x .@? "gatewayId")++instance Hashable PropagatingVGW where++instance NFData PropagatingVGW where++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+--+--+--+-- /See:/ 'provisionedBandwidth' smart constructor.+data ProvisionedBandwidth = ProvisionedBandwidth'+  { _pbStatus        :: !(Maybe Text)+  , _pbRequested     :: !(Maybe Text)+  , _pbProvisioned   :: !(Maybe Text)+  , _pbRequestTime   :: !(Maybe ISO8601)+  , _pbProvisionTime :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProvisionedBandwidth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pbStatus' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+--+-- * 'pbRequested' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+--+-- * 'pbProvisioned' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+--+-- * 'pbRequestTime' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+--+-- * 'pbProvisionTime' - Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+provisionedBandwidth+    :: ProvisionedBandwidth+provisionedBandwidth =+  ProvisionedBandwidth'+  { _pbStatus = Nothing+  , _pbRequested = Nothing+  , _pbProvisioned = Nothing+  , _pbRequestTime = Nothing+  , _pbProvisionTime = Nothing+  }+++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+pbStatus :: Lens' ProvisionedBandwidth (Maybe Text)+pbStatus = lens _pbStatus (\ s a -> s{_pbStatus = a});++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+pbRequested :: Lens' ProvisionedBandwidth (Maybe Text)+pbRequested = lens _pbRequested (\ s a -> s{_pbRequested = a});++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+pbProvisioned :: Lens' ProvisionedBandwidth (Maybe Text)+pbProvisioned = lens _pbProvisioned (\ s a -> s{_pbProvisioned = a});++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+pbRequestTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)+pbRequestTime = lens _pbRequestTime (\ s a -> s{_pbRequestTime = a}) . mapping _Time;++-- | Reserved. If you need to sustain traffic greater than the <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html documented limits> , contact us through the <https://console.aws.amazon.com/support/home? Support Center> .+pbProvisionTime :: Lens' ProvisionedBandwidth (Maybe UTCTime)+pbProvisionTime = lens _pbProvisionTime (\ s a -> s{_pbProvisionTime = a}) . mapping _Time;++instance FromXML ProvisionedBandwidth where+        parseXML x+          = ProvisionedBandwidth' <$>+              (x .@? "status") <*> (x .@? "requested") <*>+                (x .@? "provisioned")+                <*> (x .@? "requestTime")+                <*> (x .@? "provisionTime")++instance Hashable ProvisionedBandwidth where++instance NFData ProvisionedBandwidth where++-- | Describes the result of the purchase.+--+--+--+-- /See:/ 'purchase' smart constructor.+data Purchase = Purchase'+  { _pInstanceFamily    :: !(Maybe Text)+  , _pCurrencyCode      :: !(Maybe CurrencyCodeValues)+  , _pHostReservationId :: !(Maybe Text)+  , _pHourlyPrice       :: !(Maybe Text)+  , _pUpfrontPrice      :: !(Maybe Text)+  , _pHostIdSet         :: !(Maybe [Text])+  , _pDuration          :: !(Maybe Int)+  , _pPaymentOption     :: !(Maybe PaymentOption)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Purchase' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pInstanceFamily' - The instance family on the Dedicated Host that the reservation can be associated with.+--+-- * 'pCurrencyCode' - The currency in which the @UpfrontPrice@ and @HourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .+--+-- * 'pHostReservationId' - The ID of the reservation.+--+-- * 'pHourlyPrice' - The hourly price of the reservation per hour.+--+-- * 'pUpfrontPrice' - The upfront price of the reservation.+--+-- * 'pHostIdSet' - The IDs of the Dedicated Hosts associated with the reservation.+--+-- * 'pDuration' - The duration of the reservation's term in seconds.+--+-- * 'pPaymentOption' - The payment option for the reservation.+purchase+    :: Purchase+purchase =+  Purchase'+  { _pInstanceFamily = Nothing+  , _pCurrencyCode = Nothing+  , _pHostReservationId = Nothing+  , _pHourlyPrice = Nothing+  , _pUpfrontPrice = Nothing+  , _pHostIdSet = Nothing+  , _pDuration = Nothing+  , _pPaymentOption = Nothing+  }+++-- | The instance family on the Dedicated Host that the reservation can be associated with.+pInstanceFamily :: Lens' Purchase (Maybe Text)+pInstanceFamily = lens _pInstanceFamily (\ s a -> s{_pInstanceFamily = a});++-- | The currency in which the @UpfrontPrice@ and @HourlyPrice@ amounts are specified. At this time, the only supported currency is @USD@ .+pCurrencyCode :: Lens' Purchase (Maybe CurrencyCodeValues)+pCurrencyCode = lens _pCurrencyCode (\ s a -> s{_pCurrencyCode = a});++-- | The ID of the reservation.+pHostReservationId :: Lens' Purchase (Maybe Text)+pHostReservationId = lens _pHostReservationId (\ s a -> s{_pHostReservationId = a});++-- | The hourly price of the reservation per hour.+pHourlyPrice :: Lens' Purchase (Maybe Text)+pHourlyPrice = lens _pHourlyPrice (\ s a -> s{_pHourlyPrice = a});++-- | The upfront price of the reservation.+pUpfrontPrice :: Lens' Purchase (Maybe Text)+pUpfrontPrice = lens _pUpfrontPrice (\ s a -> s{_pUpfrontPrice = a});++-- | The IDs of the Dedicated Hosts associated with the reservation.+pHostIdSet :: Lens' Purchase [Text]+pHostIdSet = lens _pHostIdSet (\ s a -> s{_pHostIdSet = a}) . _Default . _Coerce;++-- | The duration of the reservation's term in seconds.+pDuration :: Lens' Purchase (Maybe Int)+pDuration = lens _pDuration (\ s a -> s{_pDuration = a});++-- | The payment option for the reservation.+pPaymentOption :: Lens' Purchase (Maybe PaymentOption)+pPaymentOption = lens _pPaymentOption (\ s a -> s{_pPaymentOption = a});++instance FromXML Purchase where+        parseXML x+          = Purchase' <$>+              (x .@? "instanceFamily") <*> (x .@? "currencyCode")+                <*> (x .@? "hostReservationId")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "upfrontPrice")+                <*>+                (x .@? "hostIdSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "duration")+                <*> (x .@? "paymentOption")++instance Hashable Purchase where++instance NFData Purchase where++-- | Describes a request to purchase Scheduled Instances.+--+--+--+-- /See:/ 'purchaseRequest' smart constructor.+data PurchaseRequest = PurchaseRequest'+  { _prInstanceCount :: !Int+  , _prPurchaseToken :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PurchaseRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prInstanceCount' - The number of instances.+--+-- * 'prPurchaseToken' - The purchase token.+purchaseRequest+    :: Int -- ^ 'prInstanceCount'+    -> Text -- ^ 'prPurchaseToken'+    -> PurchaseRequest+purchaseRequest pInstanceCount_ pPurchaseToken_ =+  PurchaseRequest'+  {_prInstanceCount = pInstanceCount_, _prPurchaseToken = pPurchaseToken_}+++-- | The number of instances.+prInstanceCount :: Lens' PurchaseRequest Int+prInstanceCount = lens _prInstanceCount (\ s a -> s{_prInstanceCount = a});++-- | The purchase token.+prPurchaseToken :: Lens' PurchaseRequest Text+prPurchaseToken = lens _prPurchaseToken (\ s a -> s{_prPurchaseToken = a});++instance Hashable PurchaseRequest where++instance NFData PurchaseRequest where++instance ToQuery PurchaseRequest where+        toQuery PurchaseRequest'{..}+          = mconcat+              ["InstanceCount" =: _prInstanceCount,+               "PurchaseToken" =: _prPurchaseToken]++-- | Describes a recurring charge.+--+--+--+-- /See:/ 'recurringCharge' smart constructor.+data RecurringCharge = RecurringCharge'+  { _rcAmount    :: !(Maybe Double)+  , _rcFrequency :: !(Maybe RecurringChargeFrequency)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RecurringCharge' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcAmount' - The amount of the recurring charge.+--+-- * 'rcFrequency' - The frequency of the recurring charge.+recurringCharge+    :: RecurringCharge+recurringCharge = RecurringCharge' {_rcAmount = Nothing, _rcFrequency = Nothing}+++-- | The amount of the recurring charge.+rcAmount :: Lens' RecurringCharge (Maybe Double)+rcAmount = lens _rcAmount (\ s a -> s{_rcAmount = a});++-- | The frequency of the recurring charge.+rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)+rcFrequency = lens _rcFrequency (\ s a -> s{_rcFrequency = a});++instance FromXML RecurringCharge where+        parseXML x+          = RecurringCharge' <$>+              (x .@? "amount") <*> (x .@? "frequency")++instance Hashable RecurringCharge where++instance NFData RecurringCharge where++-- | Describes a region.+--+--+--+-- /See:/ 'regionInfo' smart constructor.+data RegionInfo = RegionInfo'+  { _riRegionName :: !(Maybe Text)+  , _riEndpoint   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegionInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riRegionName' - The name of the region.+--+-- * 'riEndpoint' - The region service endpoint.+regionInfo+    :: RegionInfo+regionInfo = RegionInfo' {_riRegionName = Nothing, _riEndpoint = Nothing}+++-- | The name of the region.+riRegionName :: Lens' RegionInfo (Maybe Text)+riRegionName = lens _riRegionName (\ s a -> s{_riRegionName = a});++-- | The region service endpoint.+riEndpoint :: Lens' RegionInfo (Maybe Text)+riEndpoint = lens _riEndpoint (\ s a -> s{_riEndpoint = a});++instance FromXML RegionInfo where+        parseXML x+          = RegionInfo' <$>+              (x .@? "regionName") <*> (x .@? "regionEndpoint")++instance Hashable RegionInfo where++instance NFData RegionInfo where++-- | Describes the launch specification for an instance.+--+--+--+-- /See:/ 'requestSpotLaunchSpecification' smart constructor.+data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification'+  { _rslsSecurityGroupIds    :: !(Maybe [Text])+  , _rslsSecurityGroups      :: !(Maybe [Text])+  , _rslsKeyName             :: !(Maybe Text)+  , _rslsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])+  , _rslsRAMDiskId           :: !(Maybe Text)+  , _rslsSubnetId            :: !(Maybe Text)+  , _rslsKernelId            :: !(Maybe Text)+  , _rslsInstanceType        :: !(Maybe InstanceType)+  , _rslsEBSOptimized        :: !(Maybe Bool)+  , _rslsUserData            :: !(Maybe Text)+  , _rslsMonitoring          :: !(Maybe RunInstancesMonitoringEnabled)+  , _rslsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)+  , _rslsImageId             :: !(Maybe Text)+  , _rslsAddressingType      :: !(Maybe Text)+  , _rslsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _rslsPlacement           :: !(Maybe SpotPlacement)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RequestSpotLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rslsSecurityGroupIds' - One or more security group IDs.+--+-- * 'rslsSecurityGroups' - 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.+--+-- * 'rslsKeyName' - The name of the key pair.+--+-- * 'rslsNetworkInterfaces' - One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.+--+-- * 'rslsRAMDiskId' - The ID of the RAM disk.+--+-- * 'rslsSubnetId' - The ID of the subnet in which to launch the instance.+--+-- * 'rslsKernelId' - The ID of the kernel.+--+-- * 'rslsInstanceType' - The instance type.+--+-- * 'rslsEBSOptimized' - Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@+--+-- * 'rslsUserData' - The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+--+-- * 'rslsMonitoring' - Indicates whether basic or detailed monitoring is enabled for the instance. Default: Disabled+--+-- * 'rslsIAMInstanceProfile' - The IAM instance profile.+--+-- * 'rslsImageId' - The ID of the AMI.+--+-- * 'rslsAddressingType' - Deprecated.+--+-- * 'rslsBlockDeviceMappings' - 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.+--+-- * 'rslsPlacement' - The placement information for the instance.+requestSpotLaunchSpecification+    :: RequestSpotLaunchSpecification+requestSpotLaunchSpecification =+  RequestSpotLaunchSpecification'+  { _rslsSecurityGroupIds = Nothing+  , _rslsSecurityGroups = Nothing+  , _rslsKeyName = Nothing+  , _rslsNetworkInterfaces = Nothing+  , _rslsRAMDiskId = Nothing+  , _rslsSubnetId = Nothing+  , _rslsKernelId = Nothing+  , _rslsInstanceType = Nothing+  , _rslsEBSOptimized = Nothing+  , _rslsUserData = Nothing+  , _rslsMonitoring = Nothing+  , _rslsIAMInstanceProfile = Nothing+  , _rslsImageId = Nothing+  , _rslsAddressingType = Nothing+  , _rslsBlockDeviceMappings = Nothing+  , _rslsPlacement = Nothing+  }+++-- | One or more security group IDs.+rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]+rslsSecurityGroupIds = lens _rslsSecurityGroupIds (\ s a -> s{_rslsSecurityGroupIds = a}) . _Default . _Coerce;++-- | 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]+rslsSecurityGroups = lens _rslsSecurityGroups (\ s a -> s{_rslsSecurityGroups = a}) . _Default . _Coerce;++-- | The name of the key pair.+rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsKeyName = lens _rslsKeyName (\ s a -> s{_rslsKeyName = 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.+rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]+rslsNetworkInterfaces = lens _rslsNetworkInterfaces (\ s a -> s{_rslsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+rslsRAMDiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsRAMDiskId = lens _rslsRAMDiskId (\ s a -> s{_rslsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instance.+rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsSubnetId = lens _rslsSubnetId (\ s a -> s{_rslsSubnetId = a});++-- | The ID of the kernel.+rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsKernelId = lens _rslsKernelId (\ s a -> s{_rslsKernelId = a});++-- | The instance type.+rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)+rslsInstanceType = lens _rslsInstanceType (\ s a -> s{_rslsInstanceType = a});++-- | Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@+rslsEBSOptimized :: Lens' RequestSpotLaunchSpecification (Maybe Bool)+rslsEBSOptimized = lens _rslsEBSOptimized (\ s a -> s{_rslsEBSOptimized = a});++-- | The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsUserData = lens _rslsUserData (\ s a -> s{_rslsUserData = a});++-- | Indicates whether basic or detailed monitoring is enabled for the instance. Default: Disabled+rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)+rslsMonitoring = lens _rslsMonitoring (\ s a -> s{_rslsMonitoring = a});++-- | The IAM instance profile.+rslsIAMInstanceProfile :: Lens' RequestSpotLaunchSpecification (Maybe IAMInstanceProfileSpecification)+rslsIAMInstanceProfile = lens _rslsIAMInstanceProfile (\ s a -> s{_rslsIAMInstanceProfile = a});++-- | The ID of the AMI.+rslsImageId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsImageId = lens _rslsImageId (\ s a -> s{_rslsImageId = a});++-- | Deprecated.+rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsAddressingType = lens _rslsAddressingType (\ s a -> s{_rslsAddressingType = 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.+rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]+rslsBlockDeviceMappings = lens _rslsBlockDeviceMappings (\ s a -> s{_rslsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information for the instance.+rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)+rslsPlacement = lens _rslsPlacement (\ s a -> s{_rslsPlacement = a});++instance Hashable RequestSpotLaunchSpecification+         where++instance NFData RequestSpotLaunchSpecification where++instance ToQuery RequestSpotLaunchSpecification where+        toQuery RequestSpotLaunchSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "SecurityGroupId" <$>+                    _rslsSecurityGroupIds),+               toQuery+                 (toQueryList "SecurityGroup" <$>+                    _rslsSecurityGroups),+               "KeyName" =: _rslsKeyName,+               toQuery+                 (toQueryList "NetworkInterface" <$>+                    _rslsNetworkInterfaces),+               "RamdiskId" =: _rslsRAMDiskId,+               "SubnetId" =: _rslsSubnetId,+               "KernelId" =: _rslsKernelId,+               "InstanceType" =: _rslsInstanceType,+               "EbsOptimized" =: _rslsEBSOptimized,+               "UserData" =: _rslsUserData,+               "Monitoring" =: _rslsMonitoring,+               "IamInstanceProfile" =: _rslsIAMInstanceProfile,+               "ImageId" =: _rslsImageId,+               "AddressingType" =: _rslsAddressingType,+               toQuery+                 (toQueryList "BlockDeviceMapping" <$>+                    _rslsBlockDeviceMappings),+               "Placement" =: _rslsPlacement]++-- | Describes a reservation.+--+--+--+-- /See:/ 'reservation' smart constructor.+data Reservation = Reservation'+  { _rGroups        :: !(Maybe [GroupIdentifier])+  , _rInstances     :: !(Maybe [Instance])+  , _rRequesterId   :: !(Maybe Text)+  , _rReservationId :: !Text+  , _rOwnerId       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Reservation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rGroups' - [EC2-Classic only] One or more security groups.+--+-- * 'rInstances' - One or more instances.+--+-- * 'rRequesterId' - The ID of the requester that launched the instances on your behalf (for example, AWS Management Console or Auto Scaling).+--+-- * 'rReservationId' - The ID of the reservation.+--+-- * 'rOwnerId' - The ID of the AWS account that owns the reservation.+reservation+    :: Text -- ^ 'rReservationId'+    -> Text -- ^ 'rOwnerId'+    -> Reservation+reservation pReservationId_ pOwnerId_ =+  Reservation'+  { _rGroups = Nothing+  , _rInstances = Nothing+  , _rRequesterId = Nothing+  , _rReservationId = pReservationId_+  , _rOwnerId = pOwnerId_+  }+++-- | [EC2-Classic only] One or more security groups.+rGroups :: Lens' Reservation [GroupIdentifier]+rGroups = lens _rGroups (\ s a -> s{_rGroups = a}) . _Default . _Coerce;++-- | One or more instances.+rInstances :: Lens' Reservation [Instance]+rInstances = lens _rInstances (\ s a -> s{_rInstances = a}) . _Default . _Coerce;++-- | 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)+rRequesterId = lens _rRequesterId (\ s a -> s{_rRequesterId = a});++-- | The ID of the reservation.+rReservationId :: Lens' Reservation Text+rReservationId = lens _rReservationId (\ s a -> s{_rReservationId = a});++-- | The ID of the AWS account that owns the reservation.+rOwnerId :: Lens' Reservation Text+rOwnerId = lens _rOwnerId (\ s a -> s{_rOwnerId = a});++instance FromXML Reservation where+        parseXML x+          = Reservation' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*>+                (x .@? "instancesSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "requesterId")+                <*> (x .@ "reservationId")+                <*> (x .@ "ownerId")++instance Hashable Reservation where++instance NFData Reservation where++-- | The cost associated with the Reserved Instance.+--+--+--+-- /See:/ 'reservationValue' smart constructor.+data ReservationValue = ReservationValue'+  { _rvHourlyPrice           :: !(Maybe Text)+  , _rvRemainingTotalValue   :: !(Maybe Text)+  , _rvRemainingUpfrontValue :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservationValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rvHourlyPrice' - The hourly rate of the reservation.+--+-- * 'rvRemainingTotalValue' - The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).+--+-- * 'rvRemainingUpfrontValue' - The remaining upfront cost of the reservation.+reservationValue+    :: ReservationValue+reservationValue =+  ReservationValue'+  { _rvHourlyPrice = Nothing+  , _rvRemainingTotalValue = Nothing+  , _rvRemainingUpfrontValue = Nothing+  }+++-- | The hourly rate of the reservation.+rvHourlyPrice :: Lens' ReservationValue (Maybe Text)+rvHourlyPrice = lens _rvHourlyPrice (\ s a -> s{_rvHourlyPrice = a});++-- | The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).+rvRemainingTotalValue :: Lens' ReservationValue (Maybe Text)+rvRemainingTotalValue = lens _rvRemainingTotalValue (\ s a -> s{_rvRemainingTotalValue = a});++-- | The remaining upfront cost of the reservation.+rvRemainingUpfrontValue :: Lens' ReservationValue (Maybe Text)+rvRemainingUpfrontValue = lens _rvRemainingUpfrontValue (\ s a -> s{_rvRemainingUpfrontValue = a});++instance FromXML ReservationValue where+        parseXML x+          = ReservationValue' <$>+              (x .@? "hourlyPrice") <*>+                (x .@? "remainingTotalValue")+                <*> (x .@? "remainingUpfrontValue")++instance Hashable ReservationValue where++instance NFData ReservationValue where++-- | Describes the limit price of a Reserved Instance offering.+--+--+--+-- /See:/ 'reservedInstanceLimitPrice' smart constructor.+data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice'+  { _rilpAmount       :: !(Maybe Double)+  , _rilpCurrencyCode :: !(Maybe CurrencyCodeValues)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstanceLimitPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rilpAmount' - Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).+--+-- * 'rilpCurrencyCode' - The currency in which the @limitPrice@ amount is specified. At this time, the only supported currency is @USD@ .+reservedInstanceLimitPrice+    :: ReservedInstanceLimitPrice+reservedInstanceLimitPrice =+  ReservedInstanceLimitPrice'+  {_rilpAmount = Nothing, _rilpCurrencyCode = Nothing}+++-- | Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).+rilpAmount :: Lens' ReservedInstanceLimitPrice (Maybe Double)+rilpAmount = lens _rilpAmount (\ s a -> s{_rilpAmount = a});++-- | The currency in which the @limitPrice@ amount is specified. At this time, the only supported currency is @USD@ .+rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)+rilpCurrencyCode = lens _rilpCurrencyCode (\ s a -> s{_rilpCurrencyCode = a});++instance Hashable ReservedInstanceLimitPrice where++instance NFData ReservedInstanceLimitPrice where++instance ToQuery ReservedInstanceLimitPrice where+        toQuery ReservedInstanceLimitPrice'{..}+          = mconcat+              ["Amount" =: _rilpAmount,+               "CurrencyCode" =: _rilpCurrencyCode]++-- | The total value of the Convertible Reserved Instance.+--+--+--+-- /See:/ 'reservedInstanceReservationValue' smart constructor.+data ReservedInstanceReservationValue = ReservedInstanceReservationValue'+  { _rirvReservationValue   :: !(Maybe ReservationValue)+  , _rirvReservedInstanceId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstanceReservationValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rirvReservationValue' - The total value of the Convertible Reserved Instance that you are exchanging.+--+-- * 'rirvReservedInstanceId' - The ID of the Convertible Reserved Instance that you are exchanging.+reservedInstanceReservationValue+    :: ReservedInstanceReservationValue+reservedInstanceReservationValue =+  ReservedInstanceReservationValue'+  {_rirvReservationValue = Nothing, _rirvReservedInstanceId = Nothing}+++-- | The total value of the Convertible Reserved Instance that you are exchanging.+rirvReservationValue :: Lens' ReservedInstanceReservationValue (Maybe ReservationValue)+rirvReservationValue = lens _rirvReservationValue (\ s a -> s{_rirvReservationValue = a});++-- | The ID of the Convertible Reserved Instance that you are exchanging.+rirvReservedInstanceId :: Lens' ReservedInstanceReservationValue (Maybe Text)+rirvReservedInstanceId = lens _rirvReservedInstanceId (\ s a -> s{_rirvReservedInstanceId = a});++instance FromXML ReservedInstanceReservationValue+         where+        parseXML x+          = ReservedInstanceReservationValue' <$>+              (x .@? "reservationValue") <*>+                (x .@? "reservedInstanceId")++instance Hashable ReservedInstanceReservationValue+         where++instance NFData ReservedInstanceReservationValue+         where++-- | Describes a Reserved Instance.+--+--+--+-- /See:/ 'reservedInstances' smart constructor.+data ReservedInstances = ReservedInstances'+  { _riState               :: !(Maybe ReservedInstanceState)+  , _riCurrencyCode        :: !(Maybe CurrencyCodeValues)+  , _riInstanceCount       :: !(Maybe Int)+  , _riProductDescription  :: !(Maybe RIProductDescription)+  , _riStart               :: !(Maybe ISO8601)+  , _riInstanceType        :: !(Maybe InstanceType)+  , _riEnd                 :: !(Maybe ISO8601)+  , _riAvailabilityZone    :: !(Maybe Text)+  , _riScope               :: !(Maybe Scope)+  , _riRecurringCharges    :: !(Maybe [RecurringCharge])+  , _riOfferingType        :: !(Maybe OfferingTypeValues)+  , _riUsagePrice          :: !(Maybe Double)+  , _riFixedPrice          :: !(Maybe Double)+  , _riReservedInstancesId :: !(Maybe Text)+  , _riInstanceTenancy     :: !(Maybe Tenancy)+  , _riOfferingClass       :: !(Maybe OfferingClassType)+  , _riDuration            :: !(Maybe Integer)+  , _riTags                :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riState' - The state of the Reserved Instance purchase.+--+-- * 'riCurrencyCode' - The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is @USD@ .+--+-- * 'riInstanceCount' - The number of reservations purchased.+--+-- * 'riProductDescription' - The Reserved Instance product platform description.+--+-- * 'riStart' - The date and time the Reserved Instance started.+--+-- * 'riInstanceType' - The instance type on which the Reserved Instance can be used.+--+-- * 'riEnd' - The time when the Reserved Instance expires.+--+-- * 'riAvailabilityZone' - The Availability Zone in which the Reserved Instance can be used.+--+-- * 'riScope' - The scope of the Reserved Instance.+--+-- * 'riRecurringCharges' - The recurring charge tag assigned to the resource.+--+-- * 'riOfferingType' - The Reserved Instance offering type.+--+-- * 'riUsagePrice' - The usage price of the Reserved Instance, per hour.+--+-- * 'riFixedPrice' - The purchase price of the Reserved Instance.+--+-- * 'riReservedInstancesId' - The ID of the Reserved Instance.+--+-- * 'riInstanceTenancy' - The tenancy of the instance.+--+-- * 'riOfferingClass' - The offering class of the Reserved Instance.+--+-- * 'riDuration' - The duration of the Reserved Instance, in seconds.+--+-- * 'riTags' - Any tags assigned to the resource.+reservedInstances+    :: ReservedInstances+reservedInstances =+  ReservedInstances'+  { _riState = Nothing+  , _riCurrencyCode = Nothing+  , _riInstanceCount = Nothing+  , _riProductDescription = Nothing+  , _riStart = Nothing+  , _riInstanceType = Nothing+  , _riEnd = Nothing+  , _riAvailabilityZone = Nothing+  , _riScope = Nothing+  , _riRecurringCharges = Nothing+  , _riOfferingType = Nothing+  , _riUsagePrice = Nothing+  , _riFixedPrice = Nothing+  , _riReservedInstancesId = Nothing+  , _riInstanceTenancy = Nothing+  , _riOfferingClass = Nothing+  , _riDuration = Nothing+  , _riTags = Nothing+  }+++-- | The state of the Reserved Instance purchase.+riState :: Lens' ReservedInstances (Maybe ReservedInstanceState)+riState = lens _riState (\ s a -> s{_riState = a});++-- | The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is @USD@ .+riCurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)+riCurrencyCode = lens _riCurrencyCode (\ s a -> s{_riCurrencyCode = a});++-- | The number of reservations purchased.+riInstanceCount :: Lens' ReservedInstances (Maybe Int)+riInstanceCount = lens _riInstanceCount (\ s a -> s{_riInstanceCount = a});++-- | The Reserved Instance product platform description.+riProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)+riProductDescription = lens _riProductDescription (\ s a -> s{_riProductDescription = a});++-- | The date and time the Reserved Instance started.+riStart :: Lens' ReservedInstances (Maybe UTCTime)+riStart = lens _riStart (\ s a -> s{_riStart = a}) . mapping _Time;++-- | The instance type on which the Reserved Instance can be used.+riInstanceType :: Lens' ReservedInstances (Maybe InstanceType)+riInstanceType = lens _riInstanceType (\ s a -> s{_riInstanceType = a});++-- | The time when the Reserved Instance expires.+riEnd :: Lens' ReservedInstances (Maybe UTCTime)+riEnd = lens _riEnd (\ s a -> s{_riEnd = a}) . mapping _Time;++-- | The Availability Zone in which the Reserved Instance can be used.+riAvailabilityZone :: Lens' ReservedInstances (Maybe Text)+riAvailabilityZone = lens _riAvailabilityZone (\ s a -> s{_riAvailabilityZone = a});++-- | The scope of the Reserved Instance.+riScope :: Lens' ReservedInstances (Maybe Scope)+riScope = lens _riScope (\ s a -> s{_riScope = a});++-- | The recurring charge tag assigned to the resource.+riRecurringCharges :: Lens' ReservedInstances [RecurringCharge]+riRecurringCharges = lens _riRecurringCharges (\ s a -> s{_riRecurringCharges = a}) . _Default . _Coerce;++-- | The Reserved Instance offering type.+riOfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)+riOfferingType = lens _riOfferingType (\ s a -> s{_riOfferingType = a});++-- | The usage price of the Reserved Instance, per hour.+riUsagePrice :: Lens' ReservedInstances (Maybe Double)+riUsagePrice = lens _riUsagePrice (\ s a -> s{_riUsagePrice = a});++-- | The purchase price of the Reserved Instance.+riFixedPrice :: Lens' ReservedInstances (Maybe Double)+riFixedPrice = lens _riFixedPrice (\ s a -> s{_riFixedPrice = a});++-- | The ID of the Reserved Instance.+riReservedInstancesId :: Lens' ReservedInstances (Maybe Text)+riReservedInstancesId = lens _riReservedInstancesId (\ s a -> s{_riReservedInstancesId = a});++-- | The tenancy of the instance.+riInstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)+riInstanceTenancy = lens _riInstanceTenancy (\ s a -> s{_riInstanceTenancy = a});++-- | The offering class of the Reserved Instance.+riOfferingClass :: Lens' ReservedInstances (Maybe OfferingClassType)+riOfferingClass = lens _riOfferingClass (\ s a -> s{_riOfferingClass = a});++-- | The duration of the Reserved Instance, in seconds.+riDuration :: Lens' ReservedInstances (Maybe Integer)+riDuration = lens _riDuration (\ s a -> s{_riDuration = a});++-- | Any tags assigned to the resource.+riTags :: Lens' ReservedInstances [Tag]+riTags = lens _riTags (\ s a -> s{_riTags = a}) . _Default . _Coerce;++instance FromXML ReservedInstances where+        parseXML x+          = ReservedInstances' <$>+              (x .@? "state") <*> (x .@? "currencyCode") <*>+                (x .@? "instanceCount")+                <*> (x .@? "productDescription")+                <*> (x .@? "start")+                <*> (x .@? "instanceType")+                <*> (x .@? "end")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "scope")+                <*>+                (x .@? "recurringCharges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "offeringType")+                <*> (x .@? "usagePrice")+                <*> (x .@? "fixedPrice")+                <*> (x .@? "reservedInstancesId")+                <*> (x .@? "instanceTenancy")+                <*> (x .@? "offeringClass")+                <*> (x .@? "duration")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ReservedInstances where++instance NFData ReservedInstances where++-- | Describes the configuration settings for the modified Reserved Instances.+--+--+--+-- /See:/ 'reservedInstancesConfiguration' smart constructor.+data ReservedInstancesConfiguration = ReservedInstancesConfiguration'+  { _ricPlatform         :: !(Maybe Text)+  , _ricInstanceCount    :: !(Maybe Int)+  , _ricInstanceType     :: !(Maybe InstanceType)+  , _ricAvailabilityZone :: !(Maybe Text)+  , _ricScope            :: !(Maybe Scope)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstancesConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ricPlatform' - The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.+--+-- * 'ricInstanceCount' - The number of modified Reserved Instances.+--+-- * 'ricInstanceType' - The instance type for the modified Reserved Instances.+--+-- * 'ricAvailabilityZone' - The Availability Zone for the modified Reserved Instances.+--+-- * 'ricScope' - Whether the Reserved Instance is applied to instances in a region or instances in a specific Availability Zone.+reservedInstancesConfiguration+    :: ReservedInstancesConfiguration+reservedInstancesConfiguration =+  ReservedInstancesConfiguration'+  { _ricPlatform = Nothing+  , _ricInstanceCount = Nothing+  , _ricInstanceType = Nothing+  , _ricAvailabilityZone = Nothing+  , _ricScope = Nothing+  }+++-- | The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.+ricPlatform :: Lens' ReservedInstancesConfiguration (Maybe Text)+ricPlatform = lens _ricPlatform (\ s a -> s{_ricPlatform = a});++-- | The number of modified Reserved Instances.+ricInstanceCount :: Lens' ReservedInstancesConfiguration (Maybe Int)+ricInstanceCount = lens _ricInstanceCount (\ s a -> s{_ricInstanceCount = a});++-- | The instance type for the modified Reserved Instances.+ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)+ricInstanceType = lens _ricInstanceType (\ s a -> s{_ricInstanceType = a});++-- | The Availability Zone for the modified Reserved Instances.+ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)+ricAvailabilityZone = lens _ricAvailabilityZone (\ s a -> s{_ricAvailabilityZone = a});++-- | Whether the Reserved Instance is applied to instances in a region or instances in a specific Availability Zone.+ricScope :: Lens' ReservedInstancesConfiguration (Maybe Scope)+ricScope = lens _ricScope (\ s a -> s{_ricScope = a});++instance FromXML ReservedInstancesConfiguration where+        parseXML x+          = ReservedInstancesConfiguration' <$>+              (x .@? "platform") <*> (x .@? "instanceCount") <*>+                (x .@? "instanceType")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "scope")++instance Hashable ReservedInstancesConfiguration+         where++instance NFData ReservedInstancesConfiguration where++instance ToQuery ReservedInstancesConfiguration where+        toQuery ReservedInstancesConfiguration'{..}+          = mconcat+              ["Platform" =: _ricPlatform,+               "InstanceCount" =: _ricInstanceCount,+               "InstanceType" =: _ricInstanceType,+               "AvailabilityZone" =: _ricAvailabilityZone,+               "Scope" =: _ricScope]++-- | Describes the ID of a Reserved Instance.+--+--+--+-- /See:/ 'reservedInstancesId' smart constructor.+newtype ReservedInstancesId = ReservedInstancesId'+  { _riiReservedInstancesId :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstancesId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riiReservedInstancesId' - The ID of the Reserved Instance.+reservedInstancesId+    :: ReservedInstancesId+reservedInstancesId = ReservedInstancesId' {_riiReservedInstancesId = Nothing}+++-- | The ID of the Reserved Instance.+riiReservedInstancesId :: Lens' ReservedInstancesId (Maybe Text)+riiReservedInstancesId = lens _riiReservedInstancesId (\ s a -> s{_riiReservedInstancesId = a});++instance FromXML ReservedInstancesId where+        parseXML x+          = ReservedInstancesId' <$>+              (x .@? "reservedInstancesId")++instance Hashable ReservedInstancesId where++instance NFData ReservedInstancesId where++-- | Describes a Reserved Instance listing.+--+--+--+-- /See:/ 'reservedInstancesListing' smart constructor.+data ReservedInstancesListing = ReservedInstancesListing'+  { _rilStatus                     :: !(Maybe ListingStatus)+  , _rilClientToken                :: !(Maybe Text)+  , _rilUpdateDate                 :: !(Maybe ISO8601)+  , _rilCreateDate                 :: !(Maybe ISO8601)+  , _rilPriceSchedules             :: !(Maybe [PriceSchedule])+  , _rilStatusMessage              :: !(Maybe Text)+  , _rilReservedInstancesId        :: !(Maybe Text)+  , _rilTags                       :: !(Maybe [Tag])+  , _rilInstanceCounts             :: !(Maybe [InstanceCount])+  , _rilReservedInstancesListingId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstancesListing' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rilStatus' - The status of the Reserved Instance listing.+--+-- * 'rilClientToken' - A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+--+-- * 'rilUpdateDate' - The last modified timestamp of the listing.+--+-- * 'rilCreateDate' - The time the listing was created.+--+-- * 'rilPriceSchedules' - The price of the Reserved Instance listing.+--+-- * 'rilStatusMessage' - The reason for the current status of the Reserved Instance listing. The response can be blank.+--+-- * 'rilReservedInstancesId' - The ID of the Reserved Instance.+--+-- * 'rilTags' - Any tags assigned to the resource.+--+-- * 'rilInstanceCounts' - The number of instances in this state.+--+-- * 'rilReservedInstancesListingId' - The ID of the Reserved Instance listing.+reservedInstancesListing+    :: ReservedInstancesListing+reservedInstancesListing =+  ReservedInstancesListing'+  { _rilStatus = Nothing+  , _rilClientToken = Nothing+  , _rilUpdateDate = Nothing+  , _rilCreateDate = Nothing+  , _rilPriceSchedules = Nothing+  , _rilStatusMessage = Nothing+  , _rilReservedInstancesId = Nothing+  , _rilTags = Nothing+  , _rilInstanceCounts = Nothing+  , _rilReservedInstancesListingId = Nothing+  }+++-- | The status of the Reserved Instance listing.+rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)+rilStatus = lens _rilStatus (\ s a -> s{_rilStatus = a});++-- | A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)+rilClientToken = lens _rilClientToken (\ s a -> s{_rilClientToken = a});++-- | The last modified timestamp of the listing.+rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)+rilUpdateDate = lens _rilUpdateDate (\ s a -> s{_rilUpdateDate = a}) . mapping _Time;++-- | The time the listing was created.+rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)+rilCreateDate = lens _rilCreateDate (\ s a -> s{_rilCreateDate = a}) . mapping _Time;++-- | The price of the Reserved Instance listing.+rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]+rilPriceSchedules = lens _rilPriceSchedules (\ s a -> s{_rilPriceSchedules = a}) . _Default . _Coerce;++-- | The reason for the current status of the Reserved Instance listing. The response can be blank.+rilStatusMessage :: Lens' ReservedInstancesListing (Maybe Text)+rilStatusMessage = lens _rilStatusMessage (\ s a -> s{_rilStatusMessage = a});++-- | The ID of the Reserved Instance.+rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)+rilReservedInstancesId = lens _rilReservedInstancesId (\ s a -> s{_rilReservedInstancesId = a});++-- | Any tags assigned to the resource.+rilTags :: Lens' ReservedInstancesListing [Tag]+rilTags = lens _rilTags (\ s a -> s{_rilTags = a}) . _Default . _Coerce;++-- | The number of instances in this state.+rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]+rilInstanceCounts = lens _rilInstanceCounts (\ s a -> s{_rilInstanceCounts = a}) . _Default . _Coerce;++-- | The ID of the Reserved Instance listing.+rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)+rilReservedInstancesListingId = lens _rilReservedInstancesListingId (\ s a -> s{_rilReservedInstancesListingId = a});++instance FromXML ReservedInstancesListing where+        parseXML x+          = ReservedInstancesListing' <$>+              (x .@? "status") <*> (x .@? "clientToken") <*>+                (x .@? "updateDate")+                <*> (x .@? "createDate")+                <*>+                (x .@? "priceSchedules" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "statusMessage")+                <*> (x .@? "reservedInstancesId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "instanceCounts" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "reservedInstancesListingId")++instance Hashable ReservedInstancesListing where++instance NFData ReservedInstancesListing where++-- | Describes a Reserved Instance modification.+--+--+--+-- /See:/ 'reservedInstancesModification' smart constructor.+data ReservedInstancesModification = ReservedInstancesModification'+  { _rimModificationResults :: !(Maybe [ReservedInstancesModificationResult])+  , _rimStatus :: !(Maybe Text)+  , _rimClientToken :: !(Maybe Text)+  , _rimUpdateDate :: !(Maybe ISO8601)+  , _rimCreateDate :: !(Maybe ISO8601)+  , _rimEffectiveDate :: !(Maybe ISO8601)+  , _rimStatusMessage :: !(Maybe Text)+  , _rimReservedInstancesModificationId :: !(Maybe Text)+  , _rimReservedInstancesIds :: !(Maybe [ReservedInstancesId])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstancesModification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rimModificationResults' - Contains target configurations along with their corresponding new Reserved Instance IDs.+--+-- * 'rimStatus' - The status of the Reserved Instances modification request.+--+-- * 'rimClientToken' - A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+--+-- * 'rimUpdateDate' - The time when the modification request was last updated.+--+-- * 'rimCreateDate' - The time when the modification request was created.+--+-- * 'rimEffectiveDate' - The time for the modification to become effective.+--+-- * 'rimStatusMessage' - The reason for the status.+--+-- * 'rimReservedInstancesModificationId' - A unique ID for the Reserved Instance modification.+--+-- * 'rimReservedInstancesIds' - The IDs of one or more Reserved Instances.+reservedInstancesModification+    :: ReservedInstancesModification+reservedInstancesModification =+  ReservedInstancesModification'+  { _rimModificationResults = Nothing+  , _rimStatus = Nothing+  , _rimClientToken = Nothing+  , _rimUpdateDate = Nothing+  , _rimCreateDate = Nothing+  , _rimEffectiveDate = Nothing+  , _rimStatusMessage = Nothing+  , _rimReservedInstancesModificationId = Nothing+  , _rimReservedInstancesIds = Nothing+  }+++-- | Contains target configurations along with their corresponding new Reserved Instance IDs.+rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]+rimModificationResults = lens _rimModificationResults (\ s a -> s{_rimModificationResults = a}) . _Default . _Coerce;++-- | The status of the Reserved Instances modification request.+rimStatus :: Lens' ReservedInstancesModification (Maybe Text)+rimStatus = lens _rimStatus (\ s a -> s{_rimStatus = a});++-- | A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)+rimClientToken = lens _rimClientToken (\ s a -> s{_rimClientToken = a});++-- | The time when the modification request was last updated.+rimUpdateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)+rimUpdateDate = lens _rimUpdateDate (\ s a -> s{_rimUpdateDate = a}) . mapping _Time;++-- | The time when the modification request was created.+rimCreateDate :: Lens' ReservedInstancesModification (Maybe UTCTime)+rimCreateDate = lens _rimCreateDate (\ s a -> s{_rimCreateDate = a}) . mapping _Time;++-- | The time for the modification to become effective.+rimEffectiveDate :: Lens' ReservedInstancesModification (Maybe UTCTime)+rimEffectiveDate = lens _rimEffectiveDate (\ s a -> s{_rimEffectiveDate = a}) . mapping _Time;++-- | The reason for the status.+rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)+rimStatusMessage = lens _rimStatusMessage (\ s a -> s{_rimStatusMessage = a});++-- | A unique ID for the Reserved Instance modification.+rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)+rimReservedInstancesModificationId = lens _rimReservedInstancesModificationId (\ s a -> s{_rimReservedInstancesModificationId = a});++-- | The IDs of one or more Reserved Instances.+rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]+rimReservedInstancesIds = lens _rimReservedInstancesIds (\ s a -> s{_rimReservedInstancesIds = a}) . _Default . _Coerce;++instance FromXML ReservedInstancesModification where+        parseXML x+          = ReservedInstancesModification' <$>+              (x .@? "modificationResultSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "status")+                <*> (x .@? "clientToken")+                <*> (x .@? "updateDate")+                <*> (x .@? "createDate")+                <*> (x .@? "effectiveDate")+                <*> (x .@? "statusMessage")+                <*> (x .@? "reservedInstancesModificationId")+                <*>+                (x .@? "reservedInstancesSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ReservedInstancesModification where++instance NFData ReservedInstancesModification where++-- | Describes the modification request/s.+--+--+--+-- /See:/ 'reservedInstancesModificationResult' smart constructor.+data ReservedInstancesModificationResult = ReservedInstancesModificationResult'+  { _rimrReservedInstancesId :: !(Maybe Text)+  , _rimrTargetConfiguration :: !(Maybe ReservedInstancesConfiguration)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstancesModificationResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rimrReservedInstancesId' - 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.+--+-- * 'rimrTargetConfiguration' - The target Reserved Instances configurations supplied as part of the modification request.+reservedInstancesModificationResult+    :: ReservedInstancesModificationResult+reservedInstancesModificationResult =+  ReservedInstancesModificationResult'+  {_rimrReservedInstancesId = Nothing, _rimrTargetConfiguration = Nothing}+++-- | 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)+rimrReservedInstancesId = lens _rimrReservedInstancesId (\ s a -> s{_rimrReservedInstancesId = a});++-- | The target Reserved Instances configurations supplied as part of the modification request.+rimrTargetConfiguration :: Lens' ReservedInstancesModificationResult (Maybe ReservedInstancesConfiguration)+rimrTargetConfiguration = lens _rimrTargetConfiguration (\ s a -> s{_rimrTargetConfiguration = a});++instance FromXML ReservedInstancesModificationResult+         where+        parseXML x+          = ReservedInstancesModificationResult' <$>+              (x .@? "reservedInstancesId") <*>+                (x .@? "targetConfiguration")++instance Hashable ReservedInstancesModificationResult+         where++instance NFData ReservedInstancesModificationResult+         where++-- | Describes a Reserved Instance offering.+--+--+--+-- /See:/ 'reservedInstancesOffering' smart constructor.+data ReservedInstancesOffering = ReservedInstancesOffering'+  { _rioMarketplace                 :: !(Maybe Bool)+  , _rioCurrencyCode                :: !(Maybe CurrencyCodeValues)+  , _rioProductDescription          :: !(Maybe RIProductDescription)+  , _rioInstanceType                :: !(Maybe InstanceType)+  , _rioAvailabilityZone            :: !(Maybe Text)+  , _rioPricingDetails              :: !(Maybe [PricingDetail])+  , _rioScope                       :: !(Maybe Scope)+  , _rioRecurringCharges            :: !(Maybe [RecurringCharge])+  , _rioOfferingType                :: !(Maybe OfferingTypeValues)+  , _rioUsagePrice                  :: !(Maybe Double)+  , _rioFixedPrice                  :: !(Maybe Double)+  , _rioInstanceTenancy             :: !(Maybe Tenancy)+  , _rioReservedInstancesOfferingId :: !(Maybe Text)+  , _rioOfferingClass               :: !(Maybe OfferingClassType)+  , _rioDuration                    :: !(Maybe Integer)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ReservedInstancesOffering' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rioMarketplace' - Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is @true@ .+--+-- * 'rioCurrencyCode' - 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 @USD@ .+--+-- * 'rioProductDescription' - The Reserved Instance product platform description.+--+-- * 'rioInstanceType' - The instance type on which the Reserved Instance can be used.+--+-- * 'rioAvailabilityZone' - The Availability Zone in which the Reserved Instance can be used.+--+-- * 'rioPricingDetails' - The pricing details of the Reserved Instance offering.+--+-- * 'rioScope' - Whether the Reserved Instance is applied to instances in a region or an Availability Zone.+--+-- * 'rioRecurringCharges' - The recurring charge tag assigned to the resource.+--+-- * 'rioOfferingType' - The Reserved Instance offering type.+--+-- * 'rioUsagePrice' - The usage price of the Reserved Instance, per hour.+--+-- * 'rioFixedPrice' - The purchase price of the Reserved Instance.+--+-- * 'rioInstanceTenancy' - The tenancy of the instance.+--+-- * 'rioReservedInstancesOfferingId' - The ID of the Reserved Instance offering. This is the offering ID used in 'GetReservedInstancesExchangeQuote' to confirm that an exchange can be made.+--+-- * 'rioOfferingClass' - If @convertible@ it can be exchanged for Reserved Instances of the same or higher monetary value, with different configurations. If @standard@ , it is not possible to perform an exchange.+--+-- * 'rioDuration' - The duration of the Reserved Instance, in seconds.+reservedInstancesOffering+    :: ReservedInstancesOffering+reservedInstancesOffering =+  ReservedInstancesOffering'+  { _rioMarketplace = Nothing+  , _rioCurrencyCode = Nothing+  , _rioProductDescription = Nothing+  , _rioInstanceType = Nothing+  , _rioAvailabilityZone = Nothing+  , _rioPricingDetails = Nothing+  , _rioScope = Nothing+  , _rioRecurringCharges = Nothing+  , _rioOfferingType = Nothing+  , _rioUsagePrice = Nothing+  , _rioFixedPrice = Nothing+  , _rioInstanceTenancy = Nothing+  , _rioReservedInstancesOfferingId = Nothing+  , _rioOfferingClass = Nothing+  , _rioDuration = Nothing+  }+++-- | Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is @true@ .+rioMarketplace :: Lens' ReservedInstancesOffering (Maybe Bool)+rioMarketplace = lens _rioMarketplace (\ s a -> s{_rioMarketplace = 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 @USD@ .+rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)+rioCurrencyCode = lens _rioCurrencyCode (\ s a -> s{_rioCurrencyCode = a});++-- | The Reserved Instance product platform description.+rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)+rioProductDescription = lens _rioProductDescription (\ s a -> s{_rioProductDescription = a});++-- | The instance type on which the Reserved Instance can be used.+rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)+rioInstanceType = lens _rioInstanceType (\ s a -> s{_rioInstanceType = a});++-- | The Availability Zone in which the Reserved Instance can be used.+rioAvailabilityZone :: Lens' ReservedInstancesOffering (Maybe Text)+rioAvailabilityZone = lens _rioAvailabilityZone (\ s a -> s{_rioAvailabilityZone = a});++-- | The pricing details of the Reserved Instance offering.+rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]+rioPricingDetails = lens _rioPricingDetails (\ s a -> s{_rioPricingDetails = a}) . _Default . _Coerce;++-- | Whether the Reserved Instance is applied to instances in a region or an Availability Zone.+rioScope :: Lens' ReservedInstancesOffering (Maybe Scope)+rioScope = lens _rioScope (\ s a -> s{_rioScope = a});++-- | The recurring charge tag assigned to the resource.+rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]+rioRecurringCharges = lens _rioRecurringCharges (\ s a -> s{_rioRecurringCharges = a}) . _Default . _Coerce;++-- | The Reserved Instance offering type.+rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)+rioOfferingType = lens _rioOfferingType (\ s a -> s{_rioOfferingType = a});++-- | The usage price of the Reserved Instance, per hour.+rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)+rioUsagePrice = lens _rioUsagePrice (\ s a -> s{_rioUsagePrice = a});++-- | The purchase price of the Reserved Instance.+rioFixedPrice :: Lens' ReservedInstancesOffering (Maybe Double)+rioFixedPrice = lens _rioFixedPrice (\ s a -> s{_rioFixedPrice = a});++-- | The tenancy of the instance.+rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)+rioInstanceTenancy = lens _rioInstanceTenancy (\ s a -> s{_rioInstanceTenancy = a});++-- | The ID of the Reserved Instance offering. This is the offering ID used in 'GetReservedInstancesExchangeQuote' to confirm that an exchange can be made.+rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)+rioReservedInstancesOfferingId = lens _rioReservedInstancesOfferingId (\ s a -> s{_rioReservedInstancesOfferingId = a});++-- | If @convertible@ it can be exchanged for Reserved Instances of the same or higher monetary value, with different configurations. If @standard@ , it is not possible to perform an exchange.+rioOfferingClass :: Lens' ReservedInstancesOffering (Maybe OfferingClassType)+rioOfferingClass = lens _rioOfferingClass (\ s a -> s{_rioOfferingClass = a});++-- | The duration of the Reserved Instance, in seconds.+rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)+rioDuration = lens _rioDuration (\ s a -> s{_rioDuration = a});++instance FromXML ReservedInstancesOffering where+        parseXML x+          = ReservedInstancesOffering' <$>+              (x .@? "marketplace") <*> (x .@? "currencyCode") <*>+                (x .@? "productDescription")+                <*> (x .@? "instanceType")+                <*> (x .@? "availabilityZone")+                <*>+                (x .@? "pricingDetailsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "scope")+                <*>+                (x .@? "recurringCharges" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "offeringType")+                <*> (x .@? "usagePrice")+                <*> (x .@? "fixedPrice")+                <*> (x .@? "instanceTenancy")+                <*> (x .@? "reservedInstancesOfferingId")+                <*> (x .@? "offeringClass")+                <*> (x .@? "duration")++instance Hashable ReservedInstancesOffering where++instance NFData ReservedInstancesOffering where++-- | Describes a route in a route table.+--+--+--+-- /See:/ 'route' smart constructor.+data Route = Route'+  { _rVPCPeeringConnectionId      :: !(Maybe Text)+  , _rInstanceId                  :: !(Maybe Text)+  , _rOrigin                      :: !(Maybe RouteOrigin)+  , _rState                       :: !(Maybe RouteState)+  , _rEgressOnlyInternetGatewayId :: !(Maybe Text)+  , _rDestinationIPv6CidrBlock    :: !(Maybe Text)+  , _rNatGatewayId                :: !(Maybe Text)+  , _rNetworkInterfaceId          :: !(Maybe Text)+  , _rGatewayId                   :: !(Maybe Text)+  , _rInstanceOwnerId             :: !(Maybe Text)+  , _rDestinationPrefixListId     :: !(Maybe Text)+  , _rDestinationCidrBlock        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Route' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rVPCPeeringConnectionId' - The ID of the VPC peering connection.+--+-- * 'rInstanceId' - The ID of a NAT instance in your VPC.+--+-- * 'rOrigin' - Describes how the route was created.     * @CreateRouteTable@ - The route was automatically created when the route table was created.     * @CreateRoute@ - The route was manually added to the route table.     * @EnableVgwRoutePropagation@ - The route was propagated by route propagation.+--+-- * 'rState' - The state of the route. The @blackhole@ 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).+--+-- * 'rEgressOnlyInternetGatewayId' - The ID of the egress-only Internet gateway.+--+-- * 'rDestinationIPv6CidrBlock' - The IPv6 CIDR block used for the destination match.+--+-- * 'rNatGatewayId' - The ID of a NAT gateway.+--+-- * 'rNetworkInterfaceId' - The ID of the network interface.+--+-- * 'rGatewayId' - The ID of a gateway attached to your VPC.+--+-- * 'rInstanceOwnerId' - The AWS account ID of the owner of the instance.+--+-- * 'rDestinationPrefixListId' - The prefix of the AWS service.+--+-- * 'rDestinationCidrBlock' - The IPv4 CIDR block used for the destination match.+route+    :: Route+route =+  Route'+  { _rVPCPeeringConnectionId = Nothing+  , _rInstanceId = Nothing+  , _rOrigin = Nothing+  , _rState = Nothing+  , _rEgressOnlyInternetGatewayId = Nothing+  , _rDestinationIPv6CidrBlock = Nothing+  , _rNatGatewayId = Nothing+  , _rNetworkInterfaceId = Nothing+  , _rGatewayId = Nothing+  , _rInstanceOwnerId = Nothing+  , _rDestinationPrefixListId = Nothing+  , _rDestinationCidrBlock = Nothing+  }+++-- | The ID of the VPC peering connection.+rVPCPeeringConnectionId :: Lens' Route (Maybe Text)+rVPCPeeringConnectionId = lens _rVPCPeeringConnectionId (\ s a -> s{_rVPCPeeringConnectionId = a});++-- | The ID of a NAT instance in your VPC.+rInstanceId :: Lens' Route (Maybe Text)+rInstanceId = lens _rInstanceId (\ s a -> s{_rInstanceId = a});++-- | Describes how the route was created.     * @CreateRouteTable@ - The route was automatically created when the route table was created.     * @CreateRoute@ - The route was manually added to the route table.     * @EnableVgwRoutePropagation@ - The route was propagated by route propagation.+rOrigin :: Lens' Route (Maybe RouteOrigin)+rOrigin = lens _rOrigin (\ s a -> s{_rOrigin = a});++-- | The state of the route. The @blackhole@ 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)+rState = lens _rState (\ s a -> s{_rState = a});++-- | The ID of the egress-only Internet gateway.+rEgressOnlyInternetGatewayId :: Lens' Route (Maybe Text)+rEgressOnlyInternetGatewayId = lens _rEgressOnlyInternetGatewayId (\ s a -> s{_rEgressOnlyInternetGatewayId = a});++-- | The IPv6 CIDR block used for the destination match.+rDestinationIPv6CidrBlock :: Lens' Route (Maybe Text)+rDestinationIPv6CidrBlock = lens _rDestinationIPv6CidrBlock (\ s a -> s{_rDestinationIPv6CidrBlock = a});++-- | The ID of a NAT gateway.+rNatGatewayId :: Lens' Route (Maybe Text)+rNatGatewayId = lens _rNatGatewayId (\ s a -> s{_rNatGatewayId = a});++-- | The ID of the network interface.+rNetworkInterfaceId :: Lens' Route (Maybe Text)+rNetworkInterfaceId = lens _rNetworkInterfaceId (\ s a -> s{_rNetworkInterfaceId = a});++-- | The ID of a gateway attached to your VPC.+rGatewayId :: Lens' Route (Maybe Text)+rGatewayId = lens _rGatewayId (\ s a -> s{_rGatewayId = a});++-- | The AWS account ID of the owner of the instance.+rInstanceOwnerId :: Lens' Route (Maybe Text)+rInstanceOwnerId = lens _rInstanceOwnerId (\ s a -> s{_rInstanceOwnerId = a});++-- | The prefix of the AWS service.+rDestinationPrefixListId :: Lens' Route (Maybe Text)+rDestinationPrefixListId = lens _rDestinationPrefixListId (\ s a -> s{_rDestinationPrefixListId = a});++-- | The IPv4 CIDR block used for the destination match.+rDestinationCidrBlock :: Lens' Route (Maybe Text)+rDestinationCidrBlock = lens _rDestinationCidrBlock (\ s a -> s{_rDestinationCidrBlock = a});++instance FromXML Route where+        parseXML x+          = Route' <$>+              (x .@? "vpcPeeringConnectionId") <*>+                (x .@? "instanceId")+                <*> (x .@? "origin")+                <*> (x .@? "state")+                <*> (x .@? "egressOnlyInternetGatewayId")+                <*> (x .@? "destinationIpv6CidrBlock")+                <*> (x .@? "natGatewayId")+                <*> (x .@? "networkInterfaceId")+                <*> (x .@? "gatewayId")+                <*> (x .@? "instanceOwnerId")+                <*> (x .@? "destinationPrefixListId")+                <*> (x .@? "destinationCidrBlock")++instance Hashable Route where++instance NFData Route where++-- | Describes a route table.+--+--+--+-- /See:/ 'routeTable' smart constructor.+data RouteTable = RouteTable'+  { _rtRouteTableId    :: !(Maybe Text)+  , _rtRoutes          :: !(Maybe [Route])+  , _rtVPCId           :: !(Maybe Text)+  , _rtPropagatingVGWs :: !(Maybe [PropagatingVGW])+  , _rtAssociations    :: !(Maybe [RouteTableAssociation])+  , _rtTags            :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RouteTable' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtRouteTableId' - The ID of the route table.+--+-- * 'rtRoutes' - The routes in the route table.+--+-- * 'rtVPCId' - The ID of the VPC.+--+-- * 'rtPropagatingVGWs' - Any virtual private gateway (VGW) propagating routes.+--+-- * 'rtAssociations' - The associations between the route table and one or more subnets.+--+-- * 'rtTags' - Any tags assigned to the route table.+routeTable+    :: RouteTable+routeTable =+  RouteTable'+  { _rtRouteTableId = Nothing+  , _rtRoutes = Nothing+  , _rtVPCId = Nothing+  , _rtPropagatingVGWs = Nothing+  , _rtAssociations = Nothing+  , _rtTags = Nothing+  }+++-- | The ID of the route table.+rtRouteTableId :: Lens' RouteTable (Maybe Text)+rtRouteTableId = lens _rtRouteTableId (\ s a -> s{_rtRouteTableId = a});++-- | The routes in the route table.+rtRoutes :: Lens' RouteTable [Route]+rtRoutes = lens _rtRoutes (\ s a -> s{_rtRoutes = a}) . _Default . _Coerce;++-- | The ID of the VPC.+rtVPCId :: Lens' RouteTable (Maybe Text)+rtVPCId = lens _rtVPCId (\ s a -> s{_rtVPCId = a});++-- | Any virtual private gateway (VGW) propagating routes.+rtPropagatingVGWs :: Lens' RouteTable [PropagatingVGW]+rtPropagatingVGWs = lens _rtPropagatingVGWs (\ s a -> s{_rtPropagatingVGWs = a}) . _Default . _Coerce;++-- | The associations between the route table and one or more subnets.+rtAssociations :: Lens' RouteTable [RouteTableAssociation]+rtAssociations = lens _rtAssociations (\ s a -> s{_rtAssociations = a}) . _Default . _Coerce;++-- | Any tags assigned to the route table.+rtTags :: Lens' RouteTable [Tag]+rtTags = lens _rtTags (\ s a -> s{_rtTags = a}) . _Default . _Coerce;++instance FromXML RouteTable where+        parseXML x+          = RouteTable' <$>+              (x .@? "routeTableId") <*>+                (x .@? "routeSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*>+                (x .@? "propagatingVgwSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "associationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable RouteTable where++instance NFData RouteTable where++-- | Describes an association between a route table and a subnet.+--+--+--+-- /See:/ 'routeTableAssociation' smart constructor.+data RouteTableAssociation = RouteTableAssociation'+  { _rtaRouteTableId            :: !(Maybe Text)+  , _rtaRouteTableAssociationId :: !(Maybe Text)+  , _rtaMain                    :: !(Maybe Bool)+  , _rtaSubnetId                :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RouteTableAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtaRouteTableId' - The ID of the route table.+--+-- * 'rtaRouteTableAssociationId' - The ID of the association between a route table and a subnet.+--+-- * 'rtaMain' - Indicates whether this is the main route table.+--+-- * 'rtaSubnetId' - The ID of the subnet. A subnet ID is not returned for an implicit association.+routeTableAssociation+    :: RouteTableAssociation+routeTableAssociation =+  RouteTableAssociation'+  { _rtaRouteTableId = Nothing+  , _rtaRouteTableAssociationId = Nothing+  , _rtaMain = Nothing+  , _rtaSubnetId = Nothing+  }+++-- | The ID of the route table.+rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)+rtaRouteTableId = lens _rtaRouteTableId (\ s a -> s{_rtaRouteTableId = a});++-- | The ID of the association between a route table and a subnet.+rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)+rtaRouteTableAssociationId = lens _rtaRouteTableAssociationId (\ s a -> s{_rtaRouteTableAssociationId = a});++-- | Indicates whether this is the main route table.+rtaMain :: Lens' RouteTableAssociation (Maybe Bool)+rtaMain = lens _rtaMain (\ s a -> s{_rtaMain = a});++-- | The ID of the subnet. A subnet ID is not returned for an implicit association.+rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)+rtaSubnetId = lens _rtaSubnetId (\ s a -> s{_rtaSubnetId = a});++instance FromXML RouteTableAssociation where+        parseXML x+          = RouteTableAssociation' <$>+              (x .@? "routeTableId") <*>+                (x .@? "routeTableAssociationId")+                <*> (x .@? "main")+                <*> (x .@? "subnetId")++instance Hashable RouteTableAssociation where++instance NFData RouteTableAssociation where++-- | Describes the monitoring of an instance.+--+--+--+-- /See:/ 'runInstancesMonitoringEnabled' smart constructor.+newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled'+  { _rimeEnabled :: Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RunInstancesMonitoringEnabled' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rimeEnabled' - Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.+runInstancesMonitoringEnabled+    :: Bool -- ^ 'rimeEnabled'+    -> RunInstancesMonitoringEnabled+runInstancesMonitoringEnabled pEnabled_ =+  RunInstancesMonitoringEnabled' {_rimeEnabled = pEnabled_}+++-- | Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.+rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool+rimeEnabled = lens _rimeEnabled (\ s a -> s{_rimeEnabled = a});++instance FromXML RunInstancesMonitoringEnabled where+        parseXML x+          = RunInstancesMonitoringEnabled' <$> (x .@ "enabled")++instance Hashable RunInstancesMonitoringEnabled where++instance NFData RunInstancesMonitoringEnabled where++instance ToQuery RunInstancesMonitoringEnabled where+        toQuery RunInstancesMonitoringEnabled'{..}+          = mconcat ["Enabled" =: _rimeEnabled]++-- | Describes the storage parameters for S3 and S3 buckets for an instance store-backed AMI.+--+--+--+-- /See:/ 's3Storage' smart constructor.+data S3Storage = S3Storage'+  { _ssPrefix                :: !(Maybe Text)+  , _ssUploadPolicy          :: !(Maybe Base64)+  , _ssBucket                :: !(Maybe Text)+  , _ssUploadPolicySignature :: !(Maybe Text)+  , _ssAWSAccessKeyId        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'S3Storage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssPrefix' - The beginning of the file name of the AMI.+--+-- * 'ssUploadPolicy' - An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.+--+-- * 'ssBucket' - 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.+--+-- * 'ssUploadPolicySignature' - The signature of the JSON document.+--+-- * 'ssAWSAccessKeyId' - 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 <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html Best Practices for Managing AWS Access Keys> .+s3Storage+    :: S3Storage+s3Storage =+  S3Storage'+  { _ssPrefix = Nothing+  , _ssUploadPolicy = Nothing+  , _ssBucket = Nothing+  , _ssUploadPolicySignature = Nothing+  , _ssAWSAccessKeyId = Nothing+  }+++-- | The beginning of the file name of the AMI.+ssPrefix :: Lens' S3Storage (Maybe Text)+ssPrefix = lens _ssPrefix (\ s a -> s{_ssPrefix = a});++-- | An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.+ssUploadPolicy :: Lens' S3Storage (Maybe ByteString)+ssUploadPolicy = lens _ssUploadPolicy (\ s a -> s{_ssUploadPolicy = a}) . mapping _Base64;++-- | 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)+ssBucket = lens _ssBucket (\ s a -> s{_ssBucket = a});++-- | The signature of the JSON document.+ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)+ssUploadPolicySignature = lens _ssUploadPolicySignature (\ s a -> s{_ssUploadPolicySignature = 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 <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html Best Practices for Managing AWS Access Keys> .+ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)+ssAWSAccessKeyId = lens _ssAWSAccessKeyId (\ s a -> s{_ssAWSAccessKeyId = a});++instance FromXML S3Storage where+        parseXML x+          = S3Storage' <$>+              (x .@? "prefix") <*> (x .@? "uploadPolicy") <*>+                (x .@? "bucket")+                <*> (x .@? "uploadPolicySignature")+                <*> (x .@? "AWSAccessKeyId")++instance Hashable S3Storage where++instance NFData S3Storage where++instance ToQuery S3Storage where+        toQuery S3Storage'{..}+          = mconcat+              ["Prefix" =: _ssPrefix,+               "UploadPolicy" =: _ssUploadPolicy,+               "Bucket" =: _ssBucket,+               "UploadPolicySignature" =: _ssUploadPolicySignature,+               "AWSAccessKeyId" =: _ssAWSAccessKeyId]++-- | Describes a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstance' smart constructor.+data ScheduledInstance = ScheduledInstance'+  { _siPreviousSlotEndTime         :: !(Maybe ISO8601)+  , _siPlatform                    :: !(Maybe Text)+  , _siTermStartDate               :: !(Maybe ISO8601)+  , _siInstanceCount               :: !(Maybe Int)+  , _siScheduledInstanceId         :: !(Maybe Text)+  , _siHourlyPrice                 :: !(Maybe Text)+  , _siCreateDate                  :: !(Maybe ISO8601)+  , _siSlotDurationInHours         :: !(Maybe Int)+  , _siTotalScheduledInstanceHours :: !(Maybe Int)+  , _siInstanceType                :: !(Maybe Text)+  , _siRecurrence                  :: !(Maybe ScheduledInstanceRecurrence)+  , _siAvailabilityZone            :: !(Maybe Text)+  , _siTermEndDate                 :: !(Maybe ISO8601)+  , _siNextSlotStartTime           :: !(Maybe ISO8601)+  , _siNetworkPlatform             :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siPreviousSlotEndTime' - The time that the previous schedule ended or will end.+--+-- * 'siPlatform' - The platform (@Linux/UNIX@ or @Windows@ ).+--+-- * 'siTermStartDate' - The start date for the Scheduled Instance.+--+-- * 'siInstanceCount' - The number of instances.+--+-- * 'siScheduledInstanceId' - The Scheduled Instance ID.+--+-- * 'siHourlyPrice' - The hourly price for a single instance.+--+-- * 'siCreateDate' - The date when the Scheduled Instance was purchased.+--+-- * 'siSlotDurationInHours' - The number of hours in the schedule.+--+-- * 'siTotalScheduledInstanceHours' - The total number of hours for a single instance for the entire term.+--+-- * 'siInstanceType' - The instance type.+--+-- * 'siRecurrence' - The schedule recurrence.+--+-- * 'siAvailabilityZone' - The Availability Zone.+--+-- * 'siTermEndDate' - The end date for the Scheduled Instance.+--+-- * 'siNextSlotStartTime' - The time for the next schedule to start.+--+-- * 'siNetworkPlatform' - The network platform (@EC2-Classic@ or @EC2-VPC@ ).+scheduledInstance+    :: ScheduledInstance+scheduledInstance =+  ScheduledInstance'+  { _siPreviousSlotEndTime = Nothing+  , _siPlatform = Nothing+  , _siTermStartDate = Nothing+  , _siInstanceCount = Nothing+  , _siScheduledInstanceId = Nothing+  , _siHourlyPrice = Nothing+  , _siCreateDate = Nothing+  , _siSlotDurationInHours = Nothing+  , _siTotalScheduledInstanceHours = Nothing+  , _siInstanceType = Nothing+  , _siRecurrence = Nothing+  , _siAvailabilityZone = Nothing+  , _siTermEndDate = Nothing+  , _siNextSlotStartTime = Nothing+  , _siNetworkPlatform = Nothing+  }+++-- | The time that the previous schedule ended or will end.+siPreviousSlotEndTime :: Lens' ScheduledInstance (Maybe UTCTime)+siPreviousSlotEndTime = lens _siPreviousSlotEndTime (\ s a -> s{_siPreviousSlotEndTime = a}) . mapping _Time;++-- | The platform (@Linux/UNIX@ or @Windows@ ).+siPlatform :: Lens' ScheduledInstance (Maybe Text)+siPlatform = lens _siPlatform (\ s a -> s{_siPlatform = a});++-- | The start date for the Scheduled Instance.+siTermStartDate :: Lens' ScheduledInstance (Maybe UTCTime)+siTermStartDate = lens _siTermStartDate (\ s a -> s{_siTermStartDate = a}) . mapping _Time;++-- | The number of instances.+siInstanceCount :: Lens' ScheduledInstance (Maybe Int)+siInstanceCount = lens _siInstanceCount (\ s a -> s{_siInstanceCount = a});++-- | The Scheduled Instance ID.+siScheduledInstanceId :: Lens' ScheduledInstance (Maybe Text)+siScheduledInstanceId = lens _siScheduledInstanceId (\ s a -> s{_siScheduledInstanceId = a});++-- | The hourly price for a single instance.+siHourlyPrice :: Lens' ScheduledInstance (Maybe Text)+siHourlyPrice = lens _siHourlyPrice (\ s a -> s{_siHourlyPrice = a});++-- | The date when the Scheduled Instance was purchased.+siCreateDate :: Lens' ScheduledInstance (Maybe UTCTime)+siCreateDate = lens _siCreateDate (\ s a -> s{_siCreateDate = a}) . mapping _Time;++-- | The number of hours in the schedule.+siSlotDurationInHours :: Lens' ScheduledInstance (Maybe Int)+siSlotDurationInHours = lens _siSlotDurationInHours (\ s a -> s{_siSlotDurationInHours = a});++-- | The total number of hours for a single instance for the entire term.+siTotalScheduledInstanceHours :: Lens' ScheduledInstance (Maybe Int)+siTotalScheduledInstanceHours = lens _siTotalScheduledInstanceHours (\ s a -> s{_siTotalScheduledInstanceHours = a});++-- | The instance type.+siInstanceType :: Lens' ScheduledInstance (Maybe Text)+siInstanceType = lens _siInstanceType (\ s a -> s{_siInstanceType = a});++-- | The schedule recurrence.+siRecurrence :: Lens' ScheduledInstance (Maybe ScheduledInstanceRecurrence)+siRecurrence = lens _siRecurrence (\ s a -> s{_siRecurrence = a});++-- | The Availability Zone.+siAvailabilityZone :: Lens' ScheduledInstance (Maybe Text)+siAvailabilityZone = lens _siAvailabilityZone (\ s a -> s{_siAvailabilityZone = a});++-- | The end date for the Scheduled Instance.+siTermEndDate :: Lens' ScheduledInstance (Maybe UTCTime)+siTermEndDate = lens _siTermEndDate (\ s a -> s{_siTermEndDate = a}) . mapping _Time;++-- | The time for the next schedule to start.+siNextSlotStartTime :: Lens' ScheduledInstance (Maybe UTCTime)+siNextSlotStartTime = lens _siNextSlotStartTime (\ s a -> s{_siNextSlotStartTime = a}) . mapping _Time;++-- | The network platform (@EC2-Classic@ or @EC2-VPC@ ).+siNetworkPlatform :: Lens' ScheduledInstance (Maybe Text)+siNetworkPlatform = lens _siNetworkPlatform (\ s a -> s{_siNetworkPlatform = a});++instance FromXML ScheduledInstance where+        parseXML x+          = ScheduledInstance' <$>+              (x .@? "previousSlotEndTime") <*> (x .@? "platform")+                <*> (x .@? "termStartDate")+                <*> (x .@? "instanceCount")+                <*> (x .@? "scheduledInstanceId")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "createDate")+                <*> (x .@? "slotDurationInHours")+                <*> (x .@? "totalScheduledInstanceHours")+                <*> (x .@? "instanceType")+                <*> (x .@? "recurrence")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "termEndDate")+                <*> (x .@? "nextSlotStartTime")+                <*> (x .@? "networkPlatform")++instance Hashable ScheduledInstance where++instance NFData ScheduledInstance where++-- | Describes a schedule that is available for your Scheduled Instances.+--+--+--+-- /See:/ 'scheduledInstanceAvailability' smart constructor.+data ScheduledInstanceAvailability = ScheduledInstanceAvailability'+  { _siaMaxTermDurationInDays       :: !(Maybe Int)+  , _siaPlatform                    :: !(Maybe Text)+  , _siaPurchaseToken               :: !(Maybe Text)+  , _siaHourlyPrice                 :: !(Maybe Text)+  , _siaAvailableInstanceCount      :: !(Maybe Int)+  , _siaSlotDurationInHours         :: !(Maybe Int)+  , _siaTotalScheduledInstanceHours :: !(Maybe Int)+  , _siaInstanceType                :: !(Maybe Text)+  , _siaRecurrence                  :: !(Maybe ScheduledInstanceRecurrence)+  , _siaAvailabilityZone            :: !(Maybe Text)+  , _siaMinTermDurationInDays       :: !(Maybe Int)+  , _siaFirstSlotStartTime          :: !(Maybe ISO8601)+  , _siaNetworkPlatform             :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstanceAvailability' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siaMaxTermDurationInDays' - The maximum term. The only possible value is 365 days.+--+-- * 'siaPlatform' - The platform (@Linux/UNIX@ or @Windows@ ).+--+-- * 'siaPurchaseToken' - The purchase token. This token expires in two hours.+--+-- * 'siaHourlyPrice' - The hourly price for a single instance.+--+-- * 'siaAvailableInstanceCount' - The number of available instances.+--+-- * 'siaSlotDurationInHours' - The number of hours in the schedule.+--+-- * 'siaTotalScheduledInstanceHours' - The total number of hours for a single instance for the entire term.+--+-- * 'siaInstanceType' - The instance type. You can specify one of the C3, C4, M4, or R3 instance types.+--+-- * 'siaRecurrence' - The schedule recurrence.+--+-- * 'siaAvailabilityZone' - The Availability Zone.+--+-- * 'siaMinTermDurationInDays' - The minimum term. The only possible value is 365 days.+--+-- * 'siaFirstSlotStartTime' - The time period for the first schedule to start.+--+-- * 'siaNetworkPlatform' - The network platform (@EC2-Classic@ or @EC2-VPC@ ).+scheduledInstanceAvailability+    :: ScheduledInstanceAvailability+scheduledInstanceAvailability =+  ScheduledInstanceAvailability'+  { _siaMaxTermDurationInDays = Nothing+  , _siaPlatform = Nothing+  , _siaPurchaseToken = Nothing+  , _siaHourlyPrice = Nothing+  , _siaAvailableInstanceCount = Nothing+  , _siaSlotDurationInHours = Nothing+  , _siaTotalScheduledInstanceHours = Nothing+  , _siaInstanceType = Nothing+  , _siaRecurrence = Nothing+  , _siaAvailabilityZone = Nothing+  , _siaMinTermDurationInDays = Nothing+  , _siaFirstSlotStartTime = Nothing+  , _siaNetworkPlatform = Nothing+  }+++-- | The maximum term. The only possible value is 365 days.+siaMaxTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaMaxTermDurationInDays = lens _siaMaxTermDurationInDays (\ s a -> s{_siaMaxTermDurationInDays = a});++-- | The platform (@Linux/UNIX@ or @Windows@ ).+siaPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaPlatform = lens _siaPlatform (\ s a -> s{_siaPlatform = a});++-- | The purchase token. This token expires in two hours.+siaPurchaseToken :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaPurchaseToken = lens _siaPurchaseToken (\ s a -> s{_siaPurchaseToken = a});++-- | The hourly price for a single instance.+siaHourlyPrice :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaHourlyPrice = lens _siaHourlyPrice (\ s a -> s{_siaHourlyPrice = a});++-- | The number of available instances.+siaAvailableInstanceCount :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaAvailableInstanceCount = lens _siaAvailableInstanceCount (\ s a -> s{_siaAvailableInstanceCount = a});++-- | The number of hours in the schedule.+siaSlotDurationInHours :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaSlotDurationInHours = lens _siaSlotDurationInHours (\ s a -> s{_siaSlotDurationInHours = a});++-- | The total number of hours for a single instance for the entire term.+siaTotalScheduledInstanceHours :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaTotalScheduledInstanceHours = lens _siaTotalScheduledInstanceHours (\ s a -> s{_siaTotalScheduledInstanceHours = a});++-- | The instance type. You can specify one of the C3, C4, M4, or R3 instance types.+siaInstanceType :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaInstanceType = lens _siaInstanceType (\ s a -> s{_siaInstanceType = a});++-- | The schedule recurrence.+siaRecurrence :: Lens' ScheduledInstanceAvailability (Maybe ScheduledInstanceRecurrence)+siaRecurrence = lens _siaRecurrence (\ s a -> s{_siaRecurrence = a});++-- | The Availability Zone.+siaAvailabilityZone :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaAvailabilityZone = lens _siaAvailabilityZone (\ s a -> s{_siaAvailabilityZone = a});++-- | The minimum term. The only possible value is 365 days.+siaMinTermDurationInDays :: Lens' ScheduledInstanceAvailability (Maybe Int)+siaMinTermDurationInDays = lens _siaMinTermDurationInDays (\ s a -> s{_siaMinTermDurationInDays = a});++-- | The time period for the first schedule to start.+siaFirstSlotStartTime :: Lens' ScheduledInstanceAvailability (Maybe UTCTime)+siaFirstSlotStartTime = lens _siaFirstSlotStartTime (\ s a -> s{_siaFirstSlotStartTime = a}) . mapping _Time;++-- | The network platform (@EC2-Classic@ or @EC2-VPC@ ).+siaNetworkPlatform :: Lens' ScheduledInstanceAvailability (Maybe Text)+siaNetworkPlatform = lens _siaNetworkPlatform (\ s a -> s{_siaNetworkPlatform = a});++instance FromXML ScheduledInstanceAvailability where+        parseXML x+          = ScheduledInstanceAvailability' <$>+              (x .@? "maxTermDurationInDays") <*>+                (x .@? "platform")+                <*> (x .@? "purchaseToken")+                <*> (x .@? "hourlyPrice")+                <*> (x .@? "availableInstanceCount")+                <*> (x .@? "slotDurationInHours")+                <*> (x .@? "totalScheduledInstanceHours")+                <*> (x .@? "instanceType")+                <*> (x .@? "recurrence")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "minTermDurationInDays")+                <*> (x .@? "firstSlotStartTime")+                <*> (x .@? "networkPlatform")++instance Hashable ScheduledInstanceAvailability where++instance NFData ScheduledInstanceAvailability where++-- | Describes the recurring schedule for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstanceRecurrence' smart constructor.+data ScheduledInstanceRecurrence = ScheduledInstanceRecurrence'+  { _sirFrequency               :: !(Maybe Text)+  , _sirOccurrenceRelativeToEnd :: !(Maybe Bool)+  , _sirOccurrenceUnit          :: !(Maybe Text)+  , _sirInterval                :: !(Maybe Int)+  , _sirOccurrenceDaySet        :: !(Maybe [Int])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstanceRecurrence' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sirFrequency' - The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).+--+-- * 'sirOccurrenceRelativeToEnd' - Indicates whether the occurrence is relative to the end of the specified week or month.+--+-- * 'sirOccurrenceUnit' - The unit for @occurrenceDaySet@ (@DayOfWeek@ or @DayOfMonth@ ).+--+-- * 'sirInterval' - The interval quantity. The interval unit depends on the value of @frequency@ . For example, every 2 weeks or every 2 months.+--+-- * 'sirOccurrenceDaySet' - 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).+scheduledInstanceRecurrence+    :: ScheduledInstanceRecurrence+scheduledInstanceRecurrence =+  ScheduledInstanceRecurrence'+  { _sirFrequency = Nothing+  , _sirOccurrenceRelativeToEnd = Nothing+  , _sirOccurrenceUnit = Nothing+  , _sirInterval = Nothing+  , _sirOccurrenceDaySet = Nothing+  }+++-- | The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).+sirFrequency :: Lens' ScheduledInstanceRecurrence (Maybe Text)+sirFrequency = lens _sirFrequency (\ s a -> s{_sirFrequency = a});++-- | Indicates whether the occurrence is relative to the end of the specified week or month.+sirOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrence (Maybe Bool)+sirOccurrenceRelativeToEnd = lens _sirOccurrenceRelativeToEnd (\ s a -> s{_sirOccurrenceRelativeToEnd = a});++-- | The unit for @occurrenceDaySet@ (@DayOfWeek@ or @DayOfMonth@ ).+sirOccurrenceUnit :: Lens' ScheduledInstanceRecurrence (Maybe Text)+sirOccurrenceUnit = lens _sirOccurrenceUnit (\ s a -> s{_sirOccurrenceUnit = a});++-- | The interval quantity. The interval unit depends on the value of @frequency@ . For example, every 2 weeks or every 2 months.+sirInterval :: Lens' ScheduledInstanceRecurrence (Maybe Int)+sirInterval = lens _sirInterval (\ s a -> s{_sirInterval = 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).+sirOccurrenceDaySet :: Lens' ScheduledInstanceRecurrence [Int]+sirOccurrenceDaySet = lens _sirOccurrenceDaySet (\ s a -> s{_sirOccurrenceDaySet = a}) . _Default . _Coerce;++instance FromXML ScheduledInstanceRecurrence where+        parseXML x+          = ScheduledInstanceRecurrence' <$>+              (x .@? "frequency") <*>+                (x .@? "occurrenceRelativeToEnd")+                <*> (x .@? "occurrenceUnit")+                <*> (x .@? "interval")+                <*>+                (x .@? "occurrenceDaySet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable ScheduledInstanceRecurrence where++instance NFData ScheduledInstanceRecurrence where++-- | Describes the recurring schedule for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstanceRecurrenceRequest' smart constructor.+data ScheduledInstanceRecurrenceRequest = ScheduledInstanceRecurrenceRequest'+  { _sirrFrequency               :: !(Maybe Text)+  , _sirrOccurrenceRelativeToEnd :: !(Maybe Bool)+  , _sirrOccurrenceDays          :: !(Maybe [Int])+  , _sirrOccurrenceUnit          :: !(Maybe Text)+  , _sirrInterval                :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstanceRecurrenceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sirrFrequency' - The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).+--+-- * 'sirrOccurrenceRelativeToEnd' - 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.+--+-- * 'sirrOccurrenceDays' - 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.+--+-- * 'sirrOccurrenceUnit' - The unit for @OccurrenceDays@ (@DayOfWeek@ or @DayOfMonth@ ). This value is required for a monthly schedule. You can't specify @DayOfWeek@ with a weekly schedule. You can't specify this value with a daily schedule.+--+-- * 'sirrInterval' - The interval quantity. The interval unit depends on the value of @Frequency@ . For example, every 2 weeks or every 2 months.+scheduledInstanceRecurrenceRequest+    :: ScheduledInstanceRecurrenceRequest+scheduledInstanceRecurrenceRequest =+  ScheduledInstanceRecurrenceRequest'+  { _sirrFrequency = Nothing+  , _sirrOccurrenceRelativeToEnd = Nothing+  , _sirrOccurrenceDays = Nothing+  , _sirrOccurrenceUnit = Nothing+  , _sirrInterval = Nothing+  }+++-- | The frequency (@Daily@ , @Weekly@ , or @Monthly@ ).+sirrFrequency :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)+sirrFrequency = lens _sirrFrequency (\ s a -> s{_sirrFrequency = 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.+sirrOccurrenceRelativeToEnd :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Bool)+sirrOccurrenceRelativeToEnd = lens _sirrOccurrenceRelativeToEnd (\ s a -> s{_sirrOccurrenceRelativeToEnd = 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.+sirrOccurrenceDays :: Lens' ScheduledInstanceRecurrenceRequest [Int]+sirrOccurrenceDays = lens _sirrOccurrenceDays (\ s a -> s{_sirrOccurrenceDays = a}) . _Default . _Coerce;++-- | The unit for @OccurrenceDays@ (@DayOfWeek@ or @DayOfMonth@ ). This value is required for a monthly schedule. You can't specify @DayOfWeek@ with a weekly schedule. You can't specify this value with a daily schedule.+sirrOccurrenceUnit :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Text)+sirrOccurrenceUnit = lens _sirrOccurrenceUnit (\ s a -> s{_sirrOccurrenceUnit = a});++-- | The interval quantity. The interval unit depends on the value of @Frequency@ . For example, every 2 weeks or every 2 months.+sirrInterval :: Lens' ScheduledInstanceRecurrenceRequest (Maybe Int)+sirrInterval = lens _sirrInterval (\ s a -> s{_sirrInterval = a});++instance Hashable ScheduledInstanceRecurrenceRequest+         where++instance NFData ScheduledInstanceRecurrenceRequest+         where++instance ToQuery ScheduledInstanceRecurrenceRequest+         where+        toQuery ScheduledInstanceRecurrenceRequest'{..}+          = mconcat+              ["Frequency" =: _sirrFrequency,+               "OccurrenceRelativeToEnd" =:+                 _sirrOccurrenceRelativeToEnd,+               toQuery+                 (toQueryList "OccurrenceDay" <$>+                    _sirrOccurrenceDays),+               "OccurrenceUnit" =: _sirrOccurrenceUnit,+               "Interval" =: _sirrInterval]++-- | Describes a block device mapping for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesBlockDeviceMapping' smart constructor.+data ScheduledInstancesBlockDeviceMapping = ScheduledInstancesBlockDeviceMapping'+  { _sibdmVirtualName :: !(Maybe Text)+  , _sibdmNoDevice    :: !(Maybe Text)+  , _sibdmEBS         :: !(Maybe ScheduledInstancesEBS)+  , _sibdmDeviceName  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesBlockDeviceMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sibdmVirtualName' - The virtual device name (@ephemeral@ N). Instance store volumes are numbered starting from 0. An instance type with two 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. 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.+--+-- * 'sibdmNoDevice' - Suppresses the specified device included in the block device mapping of the AMI.+--+-- * 'sibdmEBS' - Parameters used to set up EBS volumes automatically when the instance is launched.+--+-- * 'sibdmDeviceName' - The device name (for example, @/dev/sdh@ or @xvdh@ ).+scheduledInstancesBlockDeviceMapping+    :: ScheduledInstancesBlockDeviceMapping+scheduledInstancesBlockDeviceMapping =+  ScheduledInstancesBlockDeviceMapping'+  { _sibdmVirtualName = Nothing+  , _sibdmNoDevice = Nothing+  , _sibdmEBS = Nothing+  , _sibdmDeviceName = Nothing+  }+++-- | The virtual device name (@ephemeral@ N). Instance store volumes are numbered starting from 0. An instance type with two 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. 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)+sibdmVirtualName = lens _sibdmVirtualName (\ s a -> s{_sibdmVirtualName = a});++-- | Suppresses the specified device included in the block device mapping of the AMI.+sibdmNoDevice :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)+sibdmNoDevice = lens _sibdmNoDevice (\ s a -> s{_sibdmNoDevice = a});++-- | Parameters used to set up EBS volumes automatically when the instance is launched.+sibdmEBS :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe ScheduledInstancesEBS)+sibdmEBS = lens _sibdmEBS (\ s a -> s{_sibdmEBS = a});++-- | The device name (for example, @/dev/sdh@ or @xvdh@ ).+sibdmDeviceName :: Lens' ScheduledInstancesBlockDeviceMapping (Maybe Text)+sibdmDeviceName = lens _sibdmDeviceName (\ s a -> s{_sibdmDeviceName = a});++instance Hashable+           ScheduledInstancesBlockDeviceMapping+         where++instance NFData ScheduledInstancesBlockDeviceMapping+         where++instance ToQuery ScheduledInstancesBlockDeviceMapping+         where+        toQuery ScheduledInstancesBlockDeviceMapping'{..}+          = mconcat+              ["VirtualName" =: _sibdmVirtualName,+               "NoDevice" =: _sibdmNoDevice, "Ebs" =: _sibdmEBS,+               "DeviceName" =: _sibdmDeviceName]++-- | Describes an EBS volume for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesEBS' smart constructor.+data ScheduledInstancesEBS = ScheduledInstancesEBS'+  { _sieDeleteOnTermination :: !(Maybe Bool)+  , _sieVolumeSize          :: !(Maybe Int)+  , _sieIOPS                :: !(Maybe Int)+  , _sieEncrypted           :: !(Maybe Bool)+  , _sieVolumeType          :: !(Maybe Text)+  , _sieSnapshotId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesEBS' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sieDeleteOnTermination' - Indicates whether the volume is deleted on instance termination.+--+-- * 'sieVolumeSize' - 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.+--+-- * 'sieIOPS' - The number of 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 @gp2@ volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about @gp2@ baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.+--+-- * 'sieEncrypted' - Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.+--+-- * 'sieVolumeType' - The volume type. @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, Throughput Optimized HDD for @st1@ , Cold HDD for @sc1@ , or @standard@ for Magnetic. Default: @standard@+--+-- * 'sieSnapshotId' - The ID of the snapshot.+scheduledInstancesEBS+    :: ScheduledInstancesEBS+scheduledInstancesEBS =+  ScheduledInstancesEBS'+  { _sieDeleteOnTermination = Nothing+  , _sieVolumeSize = Nothing+  , _sieIOPS = Nothing+  , _sieEncrypted = Nothing+  , _sieVolumeType = Nothing+  , _sieSnapshotId = Nothing+  }+++-- | Indicates whether the volume is deleted on instance termination.+sieDeleteOnTermination :: Lens' ScheduledInstancesEBS (Maybe Bool)+sieDeleteOnTermination = lens _sieDeleteOnTermination (\ s a -> s{_sieDeleteOnTermination = 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.+sieVolumeSize :: Lens' ScheduledInstancesEBS (Maybe Int)+sieVolumeSize = lens _sieVolumeSize (\ s a -> s{_sieVolumeSize = a});++-- | The number of 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 @gp2@ volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about @gp2@ baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for @io1@ volumes and 100-10000 IOPS for @gp2@ volumes. 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.+sieIOPS :: Lens' ScheduledInstancesEBS (Maybe Int)+sieIOPS = lens _sieIOPS (\ s a -> s{_sieIOPS = a});++-- | Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.+sieEncrypted :: Lens' ScheduledInstancesEBS (Maybe Bool)+sieEncrypted = lens _sieEncrypted (\ s a -> s{_sieEncrypted = a});++-- | The volume type. @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, Throughput Optimized HDD for @st1@ , Cold HDD for @sc1@ , or @standard@ for Magnetic. Default: @standard@+sieVolumeType :: Lens' ScheduledInstancesEBS (Maybe Text)+sieVolumeType = lens _sieVolumeType (\ s a -> s{_sieVolumeType = a});++-- | The ID of the snapshot.+sieSnapshotId :: Lens' ScheduledInstancesEBS (Maybe Text)+sieSnapshotId = lens _sieSnapshotId (\ s a -> s{_sieSnapshotId = a});++instance Hashable ScheduledInstancesEBS where++instance NFData ScheduledInstancesEBS where++instance ToQuery ScheduledInstancesEBS where+        toQuery ScheduledInstancesEBS'{..}+          = mconcat+              ["DeleteOnTermination" =: _sieDeleteOnTermination,+               "VolumeSize" =: _sieVolumeSize, "Iops" =: _sieIOPS,+               "Encrypted" =: _sieEncrypted,+               "VolumeType" =: _sieVolumeType,+               "SnapshotId" =: _sieSnapshotId]++-- | Describes an IAM instance profile for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesIAMInstanceProfile' smart constructor.+data ScheduledInstancesIAMInstanceProfile = ScheduledInstancesIAMInstanceProfile'+  { _siiapARN  :: !(Maybe Text)+  , _siiapName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesIAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siiapARN' - The Amazon Resource Name (ARN).+--+-- * 'siiapName' - The name.+scheduledInstancesIAMInstanceProfile+    :: ScheduledInstancesIAMInstanceProfile+scheduledInstancesIAMInstanceProfile =+  ScheduledInstancesIAMInstanceProfile'+  {_siiapARN = Nothing, _siiapName = Nothing}+++-- | The Amazon Resource Name (ARN).+siiapARN :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)+siiapARN = lens _siiapARN (\ s a -> s{_siiapARN = a});++-- | The name.+siiapName :: Lens' ScheduledInstancesIAMInstanceProfile (Maybe Text)+siiapName = lens _siiapName (\ s a -> s{_siiapName = a});++instance Hashable+           ScheduledInstancesIAMInstanceProfile+         where++instance NFData ScheduledInstancesIAMInstanceProfile+         where++instance ToQuery ScheduledInstancesIAMInstanceProfile+         where+        toQuery ScheduledInstancesIAMInstanceProfile'{..}+          = mconcat ["Arn" =: _siiapARN, "Name" =: _siiapName]++-- | Describes an IPv6 address.+--+--+--+-- /See:/ 'scheduledInstancesIPv6Address' smart constructor.+newtype ScheduledInstancesIPv6Address = ScheduledInstancesIPv6Address'+  { _siiaIPv6Address :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesIPv6Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siiaIPv6Address' - The IPv6 address.+scheduledInstancesIPv6Address+    :: ScheduledInstancesIPv6Address+scheduledInstancesIPv6Address =+  ScheduledInstancesIPv6Address' {_siiaIPv6Address = Nothing}+++-- | The IPv6 address.+siiaIPv6Address :: Lens' ScheduledInstancesIPv6Address (Maybe Text)+siiaIPv6Address = lens _siiaIPv6Address (\ s a -> s{_siiaIPv6Address = a});++instance Hashable ScheduledInstancesIPv6Address where++instance NFData ScheduledInstancesIPv6Address where++instance ToQuery ScheduledInstancesIPv6Address where+        toQuery ScheduledInstancesIPv6Address'{..}+          = mconcat ["Ipv6Address" =: _siiaIPv6Address]++-- | 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 @SubnetId@ or @NetworkInterface@ .+--+--+-- /See:/ 'scheduledInstancesLaunchSpecification' smart constructor.+data ScheduledInstancesLaunchSpecification = ScheduledInstancesLaunchSpecification'+  { _silsSecurityGroupIds    :: !(Maybe [Text])+  , _silsKeyName             :: !(Maybe Text)+  , _silsNetworkInterfaces   :: !(Maybe [ScheduledInstancesNetworkInterface])+  , _silsRAMDiskId           :: !(Maybe Text)+  , _silsSubnetId            :: !(Maybe Text)+  , _silsKernelId            :: !(Maybe Text)+  , _silsInstanceType        :: !(Maybe Text)+  , _silsEBSOptimized        :: !(Maybe Bool)+  , _silsUserData            :: !(Maybe Text)+  , _silsMonitoring          :: !(Maybe ScheduledInstancesMonitoring)+  , _silsIAMInstanceProfile  :: !(Maybe ScheduledInstancesIAMInstanceProfile)+  , _silsBlockDeviceMappings :: !(Maybe [ScheduledInstancesBlockDeviceMapping])+  , _silsPlacement           :: !(Maybe ScheduledInstancesPlacement)+  , _silsImageId             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'silsSecurityGroupIds' - The IDs of one or more security groups.+--+-- * 'silsKeyName' - The name of the key pair.+--+-- * 'silsNetworkInterfaces' - One or more network interfaces.+--+-- * 'silsRAMDiskId' - The ID of the RAM disk.+--+-- * 'silsSubnetId' - The ID of the subnet in which to launch the instances.+--+-- * 'silsKernelId' - The ID of the kernel.+--+-- * 'silsInstanceType' - The instance type.+--+-- * 'silsEBSOptimized' - Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@+--+-- * 'silsUserData' - The base64-encoded MIME user data.+--+-- * 'silsMonitoring' - Enable or disable monitoring for the instances.+--+-- * 'silsIAMInstanceProfile' - The IAM instance profile.+--+-- * 'silsBlockDeviceMappings' - One or more block device mapping entries.+--+-- * 'silsPlacement' - The placement information.+--+-- * 'silsImageId' - The ID of the Amazon Machine Image (AMI).+scheduledInstancesLaunchSpecification+    :: Text -- ^ 'silsImageId'+    -> ScheduledInstancesLaunchSpecification+scheduledInstancesLaunchSpecification pImageId_ =+  ScheduledInstancesLaunchSpecification'+  { _silsSecurityGroupIds = Nothing+  , _silsKeyName = Nothing+  , _silsNetworkInterfaces = Nothing+  , _silsRAMDiskId = Nothing+  , _silsSubnetId = Nothing+  , _silsKernelId = Nothing+  , _silsInstanceType = Nothing+  , _silsEBSOptimized = Nothing+  , _silsUserData = Nothing+  , _silsMonitoring = Nothing+  , _silsIAMInstanceProfile = Nothing+  , _silsBlockDeviceMappings = Nothing+  , _silsPlacement = Nothing+  , _silsImageId = pImageId_+  }+++-- | The IDs of one or more security groups.+silsSecurityGroupIds :: Lens' ScheduledInstancesLaunchSpecification [Text]+silsSecurityGroupIds = lens _silsSecurityGroupIds (\ s a -> s{_silsSecurityGroupIds = a}) . _Default . _Coerce;++-- | The name of the key pair.+silsKeyName :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsKeyName = lens _silsKeyName (\ s a -> s{_silsKeyName = a});++-- | One or more network interfaces.+silsNetworkInterfaces :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesNetworkInterface]+silsNetworkInterfaces = lens _silsNetworkInterfaces (\ s a -> s{_silsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+silsRAMDiskId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsRAMDiskId = lens _silsRAMDiskId (\ s a -> s{_silsRAMDiskId = a});++-- | The ID of the subnet in which to launch the instances.+silsSubnetId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsSubnetId = lens _silsSubnetId (\ s a -> s{_silsSubnetId = a});++-- | The ID of the kernel.+silsKernelId :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsKernelId = lens _silsKernelId (\ s a -> s{_silsKernelId = a});++-- | The instance type.+silsInstanceType :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsInstanceType = lens _silsInstanceType (\ s a -> s{_silsInstanceType = a});++-- | Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: @false@+silsEBSOptimized :: Lens' ScheduledInstancesLaunchSpecification (Maybe Bool)+silsEBSOptimized = lens _silsEBSOptimized (\ s a -> s{_silsEBSOptimized = a});++-- | The base64-encoded MIME user data.+silsUserData :: Lens' ScheduledInstancesLaunchSpecification (Maybe Text)+silsUserData = lens _silsUserData (\ s a -> s{_silsUserData = a});++-- | Enable or disable monitoring for the instances.+silsMonitoring :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesMonitoring)+silsMonitoring = lens _silsMonitoring (\ s a -> s{_silsMonitoring = a});++-- | The IAM instance profile.+silsIAMInstanceProfile :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesIAMInstanceProfile)+silsIAMInstanceProfile = lens _silsIAMInstanceProfile (\ s a -> s{_silsIAMInstanceProfile = a});++-- | One or more block device mapping entries.+silsBlockDeviceMappings :: Lens' ScheduledInstancesLaunchSpecification [ScheduledInstancesBlockDeviceMapping]+silsBlockDeviceMappings = lens _silsBlockDeviceMappings (\ s a -> s{_silsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information.+silsPlacement :: Lens' ScheduledInstancesLaunchSpecification (Maybe ScheduledInstancesPlacement)+silsPlacement = lens _silsPlacement (\ s a -> s{_silsPlacement = a});++-- | The ID of the Amazon Machine Image (AMI).+silsImageId :: Lens' ScheduledInstancesLaunchSpecification Text+silsImageId = lens _silsImageId (\ s a -> s{_silsImageId = a});++instance Hashable+           ScheduledInstancesLaunchSpecification+         where++instance NFData ScheduledInstancesLaunchSpecification+         where++instance ToQuery+           ScheduledInstancesLaunchSpecification+         where+        toQuery ScheduledInstancesLaunchSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "SecurityGroupId" <$>+                    _silsSecurityGroupIds),+               "KeyName" =: _silsKeyName,+               toQuery+                 (toQueryList "NetworkInterface" <$>+                    _silsNetworkInterfaces),+               "RamdiskId" =: _silsRAMDiskId,+               "SubnetId" =: _silsSubnetId,+               "KernelId" =: _silsKernelId,+               "InstanceType" =: _silsInstanceType,+               "EbsOptimized" =: _silsEBSOptimized,+               "UserData" =: _silsUserData,+               "Monitoring" =: _silsMonitoring,+               "IamInstanceProfile" =: _silsIAMInstanceProfile,+               toQuery+                 (toQueryList "BlockDeviceMapping" <$>+                    _silsBlockDeviceMappings),+               "Placement" =: _silsPlacement,+               "ImageId" =: _silsImageId]++-- | Describes whether monitoring is enabled for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesMonitoring' smart constructor.+newtype ScheduledInstancesMonitoring = ScheduledInstancesMonitoring'+  { _simEnabled :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesMonitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'simEnabled' - Indicates whether monitoring is enabled.+scheduledInstancesMonitoring+    :: ScheduledInstancesMonitoring+scheduledInstancesMonitoring =+  ScheduledInstancesMonitoring' {_simEnabled = Nothing}+++-- | Indicates whether monitoring is enabled.+simEnabled :: Lens' ScheduledInstancesMonitoring (Maybe Bool)+simEnabled = lens _simEnabled (\ s a -> s{_simEnabled = a});++instance Hashable ScheduledInstancesMonitoring where++instance NFData ScheduledInstancesMonitoring where++instance ToQuery ScheduledInstancesMonitoring where+        toQuery ScheduledInstancesMonitoring'{..}+          = mconcat ["Enabled" =: _simEnabled]++-- | Describes a network interface for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesNetworkInterface' smart constructor.+data ScheduledInstancesNetworkInterface = ScheduledInstancesNetworkInterface'+  { _siniGroups :: !(Maybe [Text])+  , _siniDeleteOnTermination :: !(Maybe Bool)+  , _siniAssociatePublicIPAddress :: !(Maybe Bool)+  , _siniPrivateIPAddressConfigs :: !(Maybe [ScheduledInstancesPrivateIPAddressConfig])+  , _siniNetworkInterfaceId :: !(Maybe Text)+  , _siniSubnetId :: !(Maybe Text)+  , _siniIPv6AddressCount :: !(Maybe Int)+  , _siniPrivateIPAddress :: !(Maybe Text)+  , _siniSecondaryPrivateIPAddressCount :: !(Maybe Int)+  , _siniDescription :: !(Maybe Text)+  , _siniDeviceIndex :: !(Maybe Int)+  , _siniIPv6Addresses :: !(Maybe [ScheduledInstancesIPv6Address])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesNetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siniGroups' - The IDs of one or more security groups.+--+-- * 'siniDeleteOnTermination' - Indicates whether to delete the interface when the instance is terminated.+--+-- * 'siniAssociatePublicIPAddress' - 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 @true@ .+--+-- * 'siniPrivateIPAddressConfigs' - The private IPv4 addresses.+--+-- * 'siniNetworkInterfaceId' - The ID of the network interface.+--+-- * 'siniSubnetId' - The ID of the subnet.+--+-- * 'siniIPv6AddressCount' - The number of IPv6 addresses to assign to the network interface. The IPv6 addresses are automatically selected from the subnet range.+--+-- * 'siniPrivateIPAddress' - The IPv4 address of the network interface within the subnet.+--+-- * 'siniSecondaryPrivateIPAddressCount' - The number of secondary private IPv4 addresses.+--+-- * 'siniDescription' - The description.+--+-- * 'siniDeviceIndex' - The index of the device for the network interface attachment.+--+-- * 'siniIPv6Addresses' - One or more specific IPv6 addresses from the subnet range.+scheduledInstancesNetworkInterface+    :: ScheduledInstancesNetworkInterface+scheduledInstancesNetworkInterface =+  ScheduledInstancesNetworkInterface'+  { _siniGroups = Nothing+  , _siniDeleteOnTermination = Nothing+  , _siniAssociatePublicIPAddress = Nothing+  , _siniPrivateIPAddressConfigs = Nothing+  , _siniNetworkInterfaceId = Nothing+  , _siniSubnetId = Nothing+  , _siniIPv6AddressCount = Nothing+  , _siniPrivateIPAddress = Nothing+  , _siniSecondaryPrivateIPAddressCount = Nothing+  , _siniDescription = Nothing+  , _siniDeviceIndex = Nothing+  , _siniIPv6Addresses = Nothing+  }+++-- | The IDs of one or more security groups.+siniGroups :: Lens' ScheduledInstancesNetworkInterface [Text]+siniGroups = lens _siniGroups (\ s a -> s{_siniGroups = a}) . _Default . _Coerce;++-- | Indicates whether to delete the interface when the instance is terminated.+siniDeleteOnTermination :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)+siniDeleteOnTermination = lens _siniDeleteOnTermination (\ s a -> s{_siniDeleteOnTermination = 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 @true@ .+siniAssociatePublicIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Bool)+siniAssociatePublicIPAddress = lens _siniAssociatePublicIPAddress (\ s a -> s{_siniAssociatePublicIPAddress = a});++-- | The private IPv4 addresses.+siniPrivateIPAddressConfigs :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesPrivateIPAddressConfig]+siniPrivateIPAddressConfigs = lens _siniPrivateIPAddressConfigs (\ s a -> s{_siniPrivateIPAddressConfigs = a}) . _Default . _Coerce;++-- | The ID of the network interface.+siniNetworkInterfaceId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniNetworkInterfaceId = lens _siniNetworkInterfaceId (\ s a -> s{_siniNetworkInterfaceId = a});++-- | The ID of the subnet.+siniSubnetId :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniSubnetId = lens _siniSubnetId (\ s a -> s{_siniSubnetId = a});++-- | 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)+siniIPv6AddressCount = lens _siniIPv6AddressCount (\ s a -> s{_siniIPv6AddressCount = a});++-- | The IPv4 address of the network interface within the subnet.+siniPrivateIPAddress :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniPrivateIPAddress = lens _siniPrivateIPAddress (\ s a -> s{_siniPrivateIPAddress = a});++-- | The number of secondary private IPv4 addresses.+siniSecondaryPrivateIPAddressCount :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)+siniSecondaryPrivateIPAddressCount = lens _siniSecondaryPrivateIPAddressCount (\ s a -> s{_siniSecondaryPrivateIPAddressCount = a});++-- | The description.+siniDescription :: Lens' ScheduledInstancesNetworkInterface (Maybe Text)+siniDescription = lens _siniDescription (\ s a -> s{_siniDescription = a});++-- | The index of the device for the network interface attachment.+siniDeviceIndex :: Lens' ScheduledInstancesNetworkInterface (Maybe Int)+siniDeviceIndex = lens _siniDeviceIndex (\ s a -> s{_siniDeviceIndex = a});++-- | One or more specific IPv6 addresses from the subnet range.+siniIPv6Addresses :: Lens' ScheduledInstancesNetworkInterface [ScheduledInstancesIPv6Address]+siniIPv6Addresses = lens _siniIPv6Addresses (\ s a -> s{_siniIPv6Addresses = a}) . _Default . _Coerce;++instance Hashable ScheduledInstancesNetworkInterface+         where++instance NFData ScheduledInstancesNetworkInterface+         where++instance ToQuery ScheduledInstancesNetworkInterface+         where+        toQuery ScheduledInstancesNetworkInterface'{..}+          = mconcat+              [toQuery (toQueryList "Group" <$> _siniGroups),+               "DeleteOnTermination" =: _siniDeleteOnTermination,+               "AssociatePublicIpAddress" =:+                 _siniAssociatePublicIPAddress,+               toQuery+                 (toQueryList "PrivateIpAddressConfig" <$>+                    _siniPrivateIPAddressConfigs),+               "NetworkInterfaceId" =: _siniNetworkInterfaceId,+               "SubnetId" =: _siniSubnetId,+               "Ipv6AddressCount" =: _siniIPv6AddressCount,+               "PrivateIpAddress" =: _siniPrivateIPAddress,+               "SecondaryPrivateIpAddressCount" =:+                 _siniSecondaryPrivateIPAddressCount,+               "Description" =: _siniDescription,+               "DeviceIndex" =: _siniDeviceIndex,+               toQuery+                 (toQueryList "Ipv6Address" <$> _siniIPv6Addresses)]++-- | Describes the placement for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesPlacement' smart constructor.+data ScheduledInstancesPlacement = ScheduledInstancesPlacement'+  { _sipAvailabilityZone :: !(Maybe Text)+  , _sipGroupName        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesPlacement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sipAvailabilityZone' - The Availability Zone.+--+-- * 'sipGroupName' - The name of the placement group.+scheduledInstancesPlacement+    :: ScheduledInstancesPlacement+scheduledInstancesPlacement =+  ScheduledInstancesPlacement'+  {_sipAvailabilityZone = Nothing, _sipGroupName = Nothing}+++-- | The Availability Zone.+sipAvailabilityZone :: Lens' ScheduledInstancesPlacement (Maybe Text)+sipAvailabilityZone = lens _sipAvailabilityZone (\ s a -> s{_sipAvailabilityZone = a});++-- | The name of the placement group.+sipGroupName :: Lens' ScheduledInstancesPlacement (Maybe Text)+sipGroupName = lens _sipGroupName (\ s a -> s{_sipGroupName = a});++instance Hashable ScheduledInstancesPlacement where++instance NFData ScheduledInstancesPlacement where++instance ToQuery ScheduledInstancesPlacement where+        toQuery ScheduledInstancesPlacement'{..}+          = mconcat+              ["AvailabilityZone" =: _sipAvailabilityZone,+               "GroupName" =: _sipGroupName]++-- | Describes a private IPv4 address for a Scheduled Instance.+--+--+--+-- /See:/ 'scheduledInstancesPrivateIPAddressConfig' smart constructor.+data ScheduledInstancesPrivateIPAddressConfig = ScheduledInstancesPrivateIPAddressConfig'+  { _sipiacPrimary          :: !(Maybe Bool)+  , _sipiacPrivateIPAddress :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ScheduledInstancesPrivateIPAddressConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sipiacPrimary' - Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.+--+-- * 'sipiacPrivateIPAddress' - The IPv4 address.+scheduledInstancesPrivateIPAddressConfig+    :: ScheduledInstancesPrivateIPAddressConfig+scheduledInstancesPrivateIPAddressConfig =+  ScheduledInstancesPrivateIPAddressConfig'+  {_sipiacPrimary = Nothing, _sipiacPrivateIPAddress = Nothing}+++-- | Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.+sipiacPrimary :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Bool)+sipiacPrimary = lens _sipiacPrimary (\ s a -> s{_sipiacPrimary = a});++-- | The IPv4 address.+sipiacPrivateIPAddress :: Lens' ScheduledInstancesPrivateIPAddressConfig (Maybe Text)+sipiacPrivateIPAddress = lens _sipiacPrivateIPAddress (\ s a -> s{_sipiacPrivateIPAddress = a});++instance Hashable+           ScheduledInstancesPrivateIPAddressConfig+         where++instance NFData+           ScheduledInstancesPrivateIPAddressConfig+         where++instance ToQuery+           ScheduledInstancesPrivateIPAddressConfig+         where+        toQuery ScheduledInstancesPrivateIPAddressConfig'{..}+          = mconcat+              ["Primary" =: _sipiacPrimary,+               "PrivateIpAddress" =: _sipiacPrivateIPAddress]++-- | Describes a security group+--+--+--+-- /See:/ 'securityGroup' smart constructor.+data SecurityGroup = SecurityGroup'+  { _sgVPCId               :: !(Maybe Text)+  , _sgIPPermissions       :: !(Maybe [IPPermission])+  , _sgIPPermissionsEgress :: !(Maybe [IPPermission])+  , _sgTags                :: !(Maybe [Tag])+  , _sgOwnerId             :: !Text+  , _sgGroupId             :: !Text+  , _sgGroupName           :: !Text+  , _sgDescription         :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgVPCId' - [EC2-VPC] The ID of the VPC for the security group.+--+-- * 'sgIPPermissions' - One or more inbound rules associated with the security group.+--+-- * 'sgIPPermissionsEgress' - [EC2-VPC] One or more outbound rules associated with the security group.+--+-- * 'sgTags' - Any tags assigned to the security group.+--+-- * 'sgOwnerId' - The AWS account ID of the owner of the security group.+--+-- * 'sgGroupId' - The ID of the security group.+--+-- * 'sgGroupName' - The name of the security group.+--+-- * 'sgDescription' - A description of the security group.+securityGroup+    :: Text -- ^ 'sgOwnerId'+    -> Text -- ^ 'sgGroupId'+    -> Text -- ^ 'sgGroupName'+    -> Text -- ^ 'sgDescription'+    -> SecurityGroup+securityGroup pOwnerId_ pGroupId_ pGroupName_ pDescription_ =+  SecurityGroup'+  { _sgVPCId = Nothing+  , _sgIPPermissions = Nothing+  , _sgIPPermissionsEgress = Nothing+  , _sgTags = Nothing+  , _sgOwnerId = pOwnerId_+  , _sgGroupId = pGroupId_+  , _sgGroupName = pGroupName_+  , _sgDescription = pDescription_+  }+++-- | [EC2-VPC] The ID of the VPC for the security group.+sgVPCId :: Lens' SecurityGroup (Maybe Text)+sgVPCId = lens _sgVPCId (\ s a -> s{_sgVPCId = a});++-- | One or more inbound rules associated with the security group.+sgIPPermissions :: Lens' SecurityGroup [IPPermission]+sgIPPermissions = lens _sgIPPermissions (\ s a -> s{_sgIPPermissions = a}) . _Default . _Coerce;++-- | [EC2-VPC] One or more outbound rules associated with the security group.+sgIPPermissionsEgress :: Lens' SecurityGroup [IPPermission]+sgIPPermissionsEgress = lens _sgIPPermissionsEgress (\ s a -> s{_sgIPPermissionsEgress = a}) . _Default . _Coerce;++-- | Any tags assigned to the security group.+sgTags :: Lens' SecurityGroup [Tag]+sgTags = lens _sgTags (\ s a -> s{_sgTags = a}) . _Default . _Coerce;++-- | The AWS account ID of the owner of the security group.+sgOwnerId :: Lens' SecurityGroup Text+sgOwnerId = lens _sgOwnerId (\ s a -> s{_sgOwnerId = a});++-- | The ID of the security group.+sgGroupId :: Lens' SecurityGroup Text+sgGroupId = lens _sgGroupId (\ s a -> s{_sgGroupId = a});++-- | The name of the security group.+sgGroupName :: Lens' SecurityGroup Text+sgGroupName = lens _sgGroupName (\ s a -> s{_sgGroupName = a});++-- | A description of the security group.+sgDescription :: Lens' SecurityGroup Text+sgDescription = lens _sgDescription (\ s a -> s{_sgDescription = a});++instance FromXML SecurityGroup where+        parseXML x+          = SecurityGroup' <$>+              (x .@? "vpcId") <*>+                (x .@? "ipPermissions" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "ipPermissionsEgress" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "ownerId")+                <*> (x .@ "groupId")+                <*> (x .@ "groupName")+                <*> (x .@ "groupDescription")++instance Hashable SecurityGroup where++instance NFData SecurityGroup where++-- | Describes a security group.+--+--+--+-- /See:/ 'securityGroupIdentifier' smart constructor.+data SecurityGroupIdentifier = SecurityGroupIdentifier'+  { _sgiGroupId   :: !(Maybe Text)+  , _sgiGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SecurityGroupIdentifier' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgiGroupId' - The ID of the security group.+--+-- * 'sgiGroupName' - The name of the security group.+securityGroupIdentifier+    :: SecurityGroupIdentifier+securityGroupIdentifier =+  SecurityGroupIdentifier' {_sgiGroupId = Nothing, _sgiGroupName = Nothing}+++-- | The ID of the security group.+sgiGroupId :: Lens' SecurityGroupIdentifier (Maybe Text)+sgiGroupId = lens _sgiGroupId (\ s a -> s{_sgiGroupId = a});++-- | The name of the security group.+sgiGroupName :: Lens' SecurityGroupIdentifier (Maybe Text)+sgiGroupName = lens _sgiGroupName (\ s a -> s{_sgiGroupName = a});++instance FromXML SecurityGroupIdentifier where+        parseXML x+          = SecurityGroupIdentifier' <$>+              (x .@? "groupId") <*> (x .@? "groupName")++instance Hashable SecurityGroupIdentifier where++instance NFData SecurityGroupIdentifier where++-- | Describes a VPC with a security group that references your security group.+--+--+--+-- /See:/ 'securityGroupReference' smart constructor.+data SecurityGroupReference = SecurityGroupReference'+  { _sgrVPCPeeringConnectionId :: !(Maybe Text)+  , _sgrGroupId                :: !Text+  , _sgrReferencingVPCId       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SecurityGroupReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgrVPCPeeringConnectionId' - The ID of the VPC peering connection.+--+-- * 'sgrGroupId' - The ID of your security group.+--+-- * 'sgrReferencingVPCId' - The ID of the VPC with the referencing security group.+securityGroupReference+    :: Text -- ^ 'sgrGroupId'+    -> Text -- ^ 'sgrReferencingVPCId'+    -> SecurityGroupReference+securityGroupReference pGroupId_ pReferencingVPCId_ =+  SecurityGroupReference'+  { _sgrVPCPeeringConnectionId = Nothing+  , _sgrGroupId = pGroupId_+  , _sgrReferencingVPCId = pReferencingVPCId_+  }+++-- | The ID of the VPC peering connection.+sgrVPCPeeringConnectionId :: Lens' SecurityGroupReference (Maybe Text)+sgrVPCPeeringConnectionId = lens _sgrVPCPeeringConnectionId (\ s a -> s{_sgrVPCPeeringConnectionId = a});++-- | The ID of your security group.+sgrGroupId :: Lens' SecurityGroupReference Text+sgrGroupId = lens _sgrGroupId (\ s a -> s{_sgrGroupId = a});++-- | The ID of the VPC with the referencing security group.+sgrReferencingVPCId :: Lens' SecurityGroupReference Text+sgrReferencingVPCId = lens _sgrReferencingVPCId (\ s a -> s{_sgrReferencingVPCId = a});++instance FromXML SecurityGroupReference where+        parseXML x+          = SecurityGroupReference' <$>+              (x .@? "vpcPeeringConnectionId") <*> (x .@ "groupId")+                <*> (x .@ "referencingVpcId")++instance Hashable SecurityGroupReference where++instance NFData SecurityGroupReference where++-- | Describes a service.+--+--+--+-- /See:/ 'serviceDetail' smart constructor.+data ServiceDetail = ServiceDetail'+  { _sdVPCEndpointPolicySupported :: !(Maybe Bool)+  , _sdBaseEndpointDNSNames       :: !(Maybe [Text])+  , _sdOwner                      :: !(Maybe Text)+  , _sdAvailabilityZones          :: !(Maybe [Text])+  , _sdServiceName                :: !(Maybe Text)+  , _sdServiceType                :: !(Maybe [ServiceTypeDetail])+  , _sdAcceptanceRequired         :: !(Maybe Bool)+  , _sdPrivateDNSName             :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdVPCEndpointPolicySupported' - Indicates whether the service supports endpoint policies.+--+-- * 'sdBaseEndpointDNSNames' - The DNS names for the service.+--+-- * 'sdOwner' - The AWS account ID of the service owner.+--+-- * 'sdAvailabilityZones' - The Availability Zones in which the service is available.+--+-- * 'sdServiceName' - The Amazon Resource Name (ARN) of the service.+--+-- * 'sdServiceType' - The type of service.+--+-- * 'sdAcceptanceRequired' - Indicates whether VPC endpoint connection requests to the service must be accepted by the service owner.+--+-- * 'sdPrivateDNSName' - The private DNS name for the service.+serviceDetail+    :: ServiceDetail+serviceDetail =+  ServiceDetail'+  { _sdVPCEndpointPolicySupported = Nothing+  , _sdBaseEndpointDNSNames = Nothing+  , _sdOwner = Nothing+  , _sdAvailabilityZones = Nothing+  , _sdServiceName = Nothing+  , _sdServiceType = Nothing+  , _sdAcceptanceRequired = Nothing+  , _sdPrivateDNSName = Nothing+  }+++-- | Indicates whether the service supports endpoint policies.+sdVPCEndpointPolicySupported :: Lens' ServiceDetail (Maybe Bool)+sdVPCEndpointPolicySupported = lens _sdVPCEndpointPolicySupported (\ s a -> s{_sdVPCEndpointPolicySupported = a});++-- | The DNS names for the service.+sdBaseEndpointDNSNames :: Lens' ServiceDetail [Text]+sdBaseEndpointDNSNames = lens _sdBaseEndpointDNSNames (\ s a -> s{_sdBaseEndpointDNSNames = a}) . _Default . _Coerce;++-- | The AWS account ID of the service owner.+sdOwner :: Lens' ServiceDetail (Maybe Text)+sdOwner = lens _sdOwner (\ s a -> s{_sdOwner = a});++-- | The Availability Zones in which the service is available.+sdAvailabilityZones :: Lens' ServiceDetail [Text]+sdAvailabilityZones = lens _sdAvailabilityZones (\ s a -> s{_sdAvailabilityZones = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the service.+sdServiceName :: Lens' ServiceDetail (Maybe Text)+sdServiceName = lens _sdServiceName (\ s a -> s{_sdServiceName = a});++-- | The type of service.+sdServiceType :: Lens' ServiceDetail [ServiceTypeDetail]+sdServiceType = lens _sdServiceType (\ s a -> s{_sdServiceType = a}) . _Default . _Coerce;++-- | Indicates whether VPC endpoint connection requests to the service must be accepted by the service owner.+sdAcceptanceRequired :: Lens' ServiceDetail (Maybe Bool)+sdAcceptanceRequired = lens _sdAcceptanceRequired (\ s a -> s{_sdAcceptanceRequired = a});++-- | The private DNS name for the service.+sdPrivateDNSName :: Lens' ServiceDetail (Maybe Text)+sdPrivateDNSName = lens _sdPrivateDNSName (\ s a -> s{_sdPrivateDNSName = a});++instance FromXML ServiceDetail where+        parseXML x+          = ServiceDetail' <$>+              (x .@? "vpcEndpointPolicySupported") <*>+                (x .@? "baseEndpointDnsNameSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "owner")+                <*>+                (x .@? "availabilityZoneSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "serviceName")+                <*>+                (x .@? "serviceType" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "acceptanceRequired")+                <*> (x .@? "privateDnsName")++instance Hashable ServiceDetail where++instance NFData ServiceDetail where++-- | Describes the type of service for a VPC endpoint.+--+--+--+-- /See:/ 'serviceTypeDetail' smart constructor.+newtype ServiceTypeDetail = ServiceTypeDetail'+  { _stdServiceType :: Maybe ServiceType+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceTypeDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'stdServiceType' - The type of service.+serviceTypeDetail+    :: ServiceTypeDetail+serviceTypeDetail = ServiceTypeDetail' {_stdServiceType = Nothing}+++-- | The type of service.+stdServiceType :: Lens' ServiceTypeDetail (Maybe ServiceType)+stdServiceType = lens _stdServiceType (\ s a -> s{_stdServiceType = a});++instance FromXML ServiceTypeDetail where+        parseXML x+          = ServiceTypeDetail' <$> (x .@? "serviceType")++instance Hashable ServiceTypeDetail where++instance NFData ServiceTypeDetail where++-- | Describes the time period for a Scheduled Instance to start its first schedule. The time period must span less than one day.+--+--+--+-- /See:/ 'slotDateTimeRangeRequest' smart constructor.+data SlotDateTimeRangeRequest = SlotDateTimeRangeRequest'+  { _sdtrrEarliestTime :: !ISO8601+  , _sdtrrLatestTime   :: !ISO8601+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SlotDateTimeRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdtrrEarliestTime' - The earliest date and time, in UTC, for the Scheduled Instance to start.+--+-- * 'sdtrrLatestTime' - 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.+slotDateTimeRangeRequest+    :: UTCTime -- ^ 'sdtrrEarliestTime'+    -> UTCTime -- ^ 'sdtrrLatestTime'+    -> SlotDateTimeRangeRequest+slotDateTimeRangeRequest pEarliestTime_ pLatestTime_ =+  SlotDateTimeRangeRequest'+  { _sdtrrEarliestTime = _Time # pEarliestTime_+  , _sdtrrLatestTime = _Time # pLatestTime_+  }+++-- | The earliest date and time, in UTC, for the Scheduled Instance to start.+sdtrrEarliestTime :: Lens' SlotDateTimeRangeRequest UTCTime+sdtrrEarliestTime = lens _sdtrrEarliestTime (\ s a -> s{_sdtrrEarliestTime = a}) . _Time;++-- | 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+sdtrrLatestTime = lens _sdtrrLatestTime (\ s a -> s{_sdtrrLatestTime = a}) . _Time;++instance Hashable SlotDateTimeRangeRequest where++instance NFData SlotDateTimeRangeRequest where++instance ToQuery SlotDateTimeRangeRequest where+        toQuery SlotDateTimeRangeRequest'{..}+          = mconcat+              ["EarliestTime" =: _sdtrrEarliestTime,+               "LatestTime" =: _sdtrrLatestTime]++-- | Describes the time period for a Scheduled Instance to start its first schedule.+--+--+--+-- /See:/ 'slotStartTimeRangeRequest' smart constructor.+data SlotStartTimeRangeRequest = SlotStartTimeRangeRequest'+  { _sstrrLatestTime   :: !(Maybe ISO8601)+  , _sstrrEarliestTime :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SlotStartTimeRangeRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sstrrLatestTime' - The latest date and time, in UTC, for the Scheduled Instance to start.+--+-- * 'sstrrEarliestTime' - The earliest date and time, in UTC, for the Scheduled Instance to start.+slotStartTimeRangeRequest+    :: SlotStartTimeRangeRequest+slotStartTimeRangeRequest =+  SlotStartTimeRangeRequest'+  {_sstrrLatestTime = Nothing, _sstrrEarliestTime = Nothing}+++-- | The latest date and time, in UTC, for the Scheduled Instance to start.+sstrrLatestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)+sstrrLatestTime = lens _sstrrLatestTime (\ s a -> s{_sstrrLatestTime = a}) . mapping _Time;++-- | The earliest date and time, in UTC, for the Scheduled Instance to start.+sstrrEarliestTime :: Lens' SlotStartTimeRangeRequest (Maybe UTCTime)+sstrrEarliestTime = lens _sstrrEarliestTime (\ s a -> s{_sstrrEarliestTime = a}) . mapping _Time;++instance Hashable SlotStartTimeRangeRequest where++instance NFData SlotStartTimeRangeRequest where++instance ToQuery SlotStartTimeRangeRequest where+        toQuery SlotStartTimeRangeRequest'{..}+          = mconcat+              ["LatestTime" =: _sstrrLatestTime,+               "EarliestTime" =: _sstrrEarliestTime]++-- | Describes a snapshot.+--+--+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot'+  { _sStateMessage        :: !(Maybe Text)+  , _sOwnerAlias          :: !(Maybe Text)+  , _sDataEncryptionKeyId :: !(Maybe Text)+  , _sKMSKeyId            :: !(Maybe Text)+  , _sTags                :: !(Maybe [Tag])+  , _sSnapshotId          :: !Text+  , _sOwnerId             :: !Text+  , _sVolumeId            :: !Text+  , _sVolumeSize          :: !Int+  , _sDescription         :: !Text+  , _sStartTime           :: !ISO8601+  , _sProgress            :: !Text+  , _sState               :: !SnapshotState+  , _sEncrypted           :: !Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Snapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStateMessage' - 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 'DescribeSnapshots' API operation.+--+-- * 'sOwnerAlias' - Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.+--+-- * 'sDataEncryptionKeyId' - 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 'DescribeSnapshots' API operation.+--+-- * 'sKMSKeyId' - 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.+--+-- * 'sTags' - Any tags assigned to the snapshot.+--+-- * 'sSnapshotId' - The ID of the snapshot. Each snapshot receives a unique identifier when it is created.+--+-- * 'sOwnerId' - The AWS account ID of the EBS snapshot owner.+--+-- * 'sVolumeId' - The ID of the volume that was used to create the snapshot. Snapshots created by the 'CopySnapshot' action have an arbitrary volume ID that should not be used for any purpose.+--+-- * 'sVolumeSize' - The size of the volume, in GiB.+--+-- * 'sDescription' - The description for the snapshot.+--+-- * 'sStartTime' - The time stamp when the snapshot was initiated.+--+-- * 'sProgress' - The progress of the snapshot, as a percentage.+--+-- * 'sState' - The snapshot state.+--+-- * 'sEncrypted' - Indicates whether the snapshot is encrypted.+snapshot+    :: Text -- ^ 'sSnapshotId'+    -> Text -- ^ 'sOwnerId'+    -> Text -- ^ 'sVolumeId'+    -> Int -- ^ 'sVolumeSize'+    -> Text -- ^ 'sDescription'+    -> UTCTime -- ^ 'sStartTime'+    -> Text -- ^ 'sProgress'+    -> SnapshotState -- ^ 'sState'+    -> Bool -- ^ 'sEncrypted'+    -> Snapshot+snapshot pSnapshotId_ pOwnerId_ pVolumeId_ pVolumeSize_ pDescription_ pStartTime_ pProgress_ pState_ pEncrypted_ =+  Snapshot'+  { _sStateMessage = Nothing+  , _sOwnerAlias = Nothing+  , _sDataEncryptionKeyId = Nothing+  , _sKMSKeyId = Nothing+  , _sTags = Nothing+  , _sSnapshotId = pSnapshotId_+  , _sOwnerId = pOwnerId_+  , _sVolumeId = pVolumeId_+  , _sVolumeSize = pVolumeSize_+  , _sDescription = pDescription_+  , _sStartTime = _Time # pStartTime_+  , _sProgress = pProgress_+  , _sState = pState_+  , _sEncrypted = pEncrypted_+  }+++-- | 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 'DescribeSnapshots' API operation.+sStateMessage :: Lens' Snapshot (Maybe Text)+sStateMessage = lens _sStateMessage (\ s a -> s{_sStateMessage = a});++-- | Value from an Amazon-maintained list (@amazon@ | @aws-marketplace@ | @microsoft@ ) 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)+sOwnerAlias = lens _sOwnerAlias (\ s a -> s{_sOwnerAlias = 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 'DescribeSnapshots' API operation.+sDataEncryptionKeyId :: Lens' Snapshot (Maybe Text)+sDataEncryptionKeyId = lens _sDataEncryptionKeyId (\ s a -> s{_sDataEncryptionKeyId = 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.+sKMSKeyId :: Lens' Snapshot (Maybe Text)+sKMSKeyId = lens _sKMSKeyId (\ s a -> s{_sKMSKeyId = a});++-- | Any tags assigned to the snapshot.+sTags :: Lens' Snapshot [Tag]+sTags = lens _sTags (\ s a -> s{_sTags = a}) . _Default . _Coerce;++-- | The ID of the snapshot. Each snapshot receives a unique identifier when it is created.+sSnapshotId :: Lens' Snapshot Text+sSnapshotId = lens _sSnapshotId (\ s a -> s{_sSnapshotId = a});++-- | The AWS account ID of the EBS snapshot owner.+sOwnerId :: Lens' Snapshot Text+sOwnerId = lens _sOwnerId (\ s a -> s{_sOwnerId = a});++-- | The ID of the volume that was used to create the snapshot. Snapshots created by the 'CopySnapshot' action have an arbitrary volume ID that should not be used for any purpose.+sVolumeId :: Lens' Snapshot Text+sVolumeId = lens _sVolumeId (\ s a -> s{_sVolumeId = a});++-- | The size of the volume, in GiB.+sVolumeSize :: Lens' Snapshot Int+sVolumeSize = lens _sVolumeSize (\ s a -> s{_sVolumeSize = a});++-- | The description for the snapshot.+sDescription :: Lens' Snapshot Text+sDescription = lens _sDescription (\ s a -> s{_sDescription = a});++-- | The time stamp when the snapshot was initiated.+sStartTime :: Lens' Snapshot UTCTime+sStartTime = lens _sStartTime (\ s a -> s{_sStartTime = a}) . _Time;++-- | The progress of the snapshot, as a percentage.+sProgress :: Lens' Snapshot Text+sProgress = lens _sProgress (\ s a -> s{_sProgress = a});++-- | The snapshot state.+sState :: Lens' Snapshot SnapshotState+sState = lens _sState (\ s a -> s{_sState = a});++-- | Indicates whether the snapshot is encrypted.+sEncrypted :: Lens' Snapshot Bool+sEncrypted = lens _sEncrypted (\ s a -> s{_sEncrypted = a});++instance FromXML Snapshot where+        parseXML x+          = Snapshot' <$>+              (x .@? "statusMessage") <*> (x .@? "ownerAlias") <*>+                (x .@? "dataEncryptionKeyId")+                <*> (x .@? "kmsKeyId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "snapshotId")+                <*> (x .@ "ownerId")+                <*> (x .@ "volumeId")+                <*> (x .@ "volumeSize")+                <*> (x .@ "description")+                <*> (x .@ "startTime")+                <*> (x .@ "progress")+                <*> (x .@ "status")+                <*> (x .@ "encrypted")++instance Hashable Snapshot where++instance NFData Snapshot where++-- | Describes the snapshot created from the imported disk.+--+--+--+-- /See:/ 'snapshotDetail' smart constructor.+data SnapshotDetail = SnapshotDetail'+  { _sdStatus        :: !(Maybe Text)+  , _sdProgress      :: !(Maybe Text)+  , _sdFormat        :: !(Maybe Text)+  , _sdURL           :: !(Maybe Text)+  , _sdDeviceName    :: !(Maybe Text)+  , _sdStatusMessage :: !(Maybe Text)+  , _sdUserBucket    :: !(Maybe UserBucketDetails)+  , _sdDiskImageSize :: !(Maybe Double)+  , _sdDescription   :: !(Maybe Text)+  , _sdSnapshotId    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SnapshotDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdStatus' - A brief status of the snapshot creation.+--+-- * 'sdProgress' - The percentage of progress for the task.+--+-- * 'sdFormat' - The format of the disk image from which the snapshot is created.+--+-- * 'sdURL' - The URL used to access the disk image.+--+-- * 'sdDeviceName' - The block device mapping for the snapshot.+--+-- * 'sdStatusMessage' - A detailed status message for the snapshot creation.+--+-- * 'sdUserBucket' - The S3 bucket for the disk image.+--+-- * 'sdDiskImageSize' - The size of the disk in the snapshot, in GiB.+--+-- * 'sdDescription' - A description for the snapshot.+--+-- * 'sdSnapshotId' - The snapshot ID of the disk being imported.+snapshotDetail+    :: SnapshotDetail+snapshotDetail =+  SnapshotDetail'+  { _sdStatus = Nothing+  , _sdProgress = Nothing+  , _sdFormat = Nothing+  , _sdURL = Nothing+  , _sdDeviceName = Nothing+  , _sdStatusMessage = Nothing+  , _sdUserBucket = Nothing+  , _sdDiskImageSize = Nothing+  , _sdDescription = Nothing+  , _sdSnapshotId = Nothing+  }+++-- | A brief status of the snapshot creation.+sdStatus :: Lens' SnapshotDetail (Maybe Text)+sdStatus = lens _sdStatus (\ s a -> s{_sdStatus = a});++-- | The percentage of progress for the task.+sdProgress :: Lens' SnapshotDetail (Maybe Text)+sdProgress = lens _sdProgress (\ s a -> s{_sdProgress = a});++-- | The format of the disk image from which the snapshot is created.+sdFormat :: Lens' SnapshotDetail (Maybe Text)+sdFormat = lens _sdFormat (\ s a -> s{_sdFormat = a});++-- | The URL used to access the disk image.+sdURL :: Lens' SnapshotDetail (Maybe Text)+sdURL = lens _sdURL (\ s a -> s{_sdURL = a});++-- | The block device mapping for the snapshot.+sdDeviceName :: Lens' SnapshotDetail (Maybe Text)+sdDeviceName = lens _sdDeviceName (\ s a -> s{_sdDeviceName = a});++-- | A detailed status message for the snapshot creation.+sdStatusMessage :: Lens' SnapshotDetail (Maybe Text)+sdStatusMessage = lens _sdStatusMessage (\ s a -> s{_sdStatusMessage = a});++-- | The S3 bucket for the disk image.+sdUserBucket :: Lens' SnapshotDetail (Maybe UserBucketDetails)+sdUserBucket = lens _sdUserBucket (\ s a -> s{_sdUserBucket = a});++-- | The size of the disk in the snapshot, in GiB.+sdDiskImageSize :: Lens' SnapshotDetail (Maybe Double)+sdDiskImageSize = lens _sdDiskImageSize (\ s a -> s{_sdDiskImageSize = a});++-- | A description for the snapshot.+sdDescription :: Lens' SnapshotDetail (Maybe Text)+sdDescription = lens _sdDescription (\ s a -> s{_sdDescription = a});++-- | The snapshot ID of the disk being imported.+sdSnapshotId :: Lens' SnapshotDetail (Maybe Text)+sdSnapshotId = lens _sdSnapshotId (\ s a -> s{_sdSnapshotId = a});++instance FromXML SnapshotDetail where+        parseXML x+          = SnapshotDetail' <$>+              (x .@? "status") <*> (x .@? "progress") <*>+                (x .@? "format")+                <*> (x .@? "url")+                <*> (x .@? "deviceName")+                <*> (x .@? "statusMessage")+                <*> (x .@? "userBucket")+                <*> (x .@? "diskImageSize")+                <*> (x .@? "description")+                <*> (x .@? "snapshotId")++instance Hashable SnapshotDetail where++instance NFData SnapshotDetail where++-- | The disk container object for the import snapshot request.+--+--+--+-- /See:/ 'snapshotDiskContainer' smart constructor.+data SnapshotDiskContainer = SnapshotDiskContainer'+  { _sdcFormat      :: !(Maybe Text)+  , _sdcURL         :: !(Maybe Text)+  , _sdcUserBucket  :: !(Maybe UserBucket)+  , _sdcDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SnapshotDiskContainer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdcFormat' - The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@+--+-- * 'sdcURL' - The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).+--+-- * 'sdcUserBucket' - The S3 bucket for the disk image.+--+-- * 'sdcDescription' - The description of the disk image being imported.+snapshotDiskContainer+    :: SnapshotDiskContainer+snapshotDiskContainer =+  SnapshotDiskContainer'+  { _sdcFormat = Nothing+  , _sdcURL = Nothing+  , _sdcUserBucket = Nothing+  , _sdcDescription = Nothing+  }+++-- | The format of the disk image being imported. Valid values: @RAW@ | @VHD@ | @VMDK@ | @OVA@+sdcFormat :: Lens' SnapshotDiskContainer (Maybe Text)+sdcFormat = lens _sdcFormat (\ s a -> s{_sdcFormat = a});++-- | The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).+sdcURL :: Lens' SnapshotDiskContainer (Maybe Text)+sdcURL = lens _sdcURL (\ s a -> s{_sdcURL = a});++-- | The S3 bucket for the disk image.+sdcUserBucket :: Lens' SnapshotDiskContainer (Maybe UserBucket)+sdcUserBucket = lens _sdcUserBucket (\ s a -> s{_sdcUserBucket = a});++-- | The description of the disk image being imported.+sdcDescription :: Lens' SnapshotDiskContainer (Maybe Text)+sdcDescription = lens _sdcDescription (\ s a -> s{_sdcDescription = a});++instance Hashable SnapshotDiskContainer where++instance NFData SnapshotDiskContainer where++instance ToQuery SnapshotDiskContainer where+        toQuery SnapshotDiskContainer'{..}+          = mconcat+              ["Format" =: _sdcFormat, "Url" =: _sdcURL,+               "UserBucket" =: _sdcUserBucket,+               "Description" =: _sdcDescription]++-- | Details about the import snapshot task.+--+--+--+-- /See:/ 'snapshotTaskDetail' smart constructor.+data SnapshotTaskDetail = SnapshotTaskDetail'+  { _stdStatus        :: !(Maybe Text)+  , _stdProgress      :: !(Maybe Text)+  , _stdFormat        :: !(Maybe Text)+  , _stdURL           :: !(Maybe Text)+  , _stdStatusMessage :: !(Maybe Text)+  , _stdUserBucket    :: !(Maybe UserBucketDetails)+  , _stdDiskImageSize :: !(Maybe Double)+  , _stdDescription   :: !(Maybe Text)+  , _stdSnapshotId    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SnapshotTaskDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'stdStatus' - A brief status for the import snapshot task.+--+-- * 'stdProgress' - The percentage of completion for the import snapshot task.+--+-- * 'stdFormat' - The format of the disk image from which the snapshot is created.+--+-- * 'stdURL' - The URL of the disk image from which the snapshot is created.+--+-- * 'stdStatusMessage' - A detailed status message for the import snapshot task.+--+-- * 'stdUserBucket' - The S3 bucket for the disk image.+--+-- * 'stdDiskImageSize' - The size of the disk in the snapshot, in GiB.+--+-- * 'stdDescription' - The description of the snapshot.+--+-- * 'stdSnapshotId' - The snapshot ID of the disk being imported.+snapshotTaskDetail+    :: SnapshotTaskDetail+snapshotTaskDetail =+  SnapshotTaskDetail'+  { _stdStatus = Nothing+  , _stdProgress = Nothing+  , _stdFormat = Nothing+  , _stdURL = Nothing+  , _stdStatusMessage = Nothing+  , _stdUserBucket = Nothing+  , _stdDiskImageSize = Nothing+  , _stdDescription = Nothing+  , _stdSnapshotId = Nothing+  }+++-- | A brief status for the import snapshot task.+stdStatus :: Lens' SnapshotTaskDetail (Maybe Text)+stdStatus = lens _stdStatus (\ s a -> s{_stdStatus = a});++-- | The percentage of completion for the import snapshot task.+stdProgress :: Lens' SnapshotTaskDetail (Maybe Text)+stdProgress = lens _stdProgress (\ s a -> s{_stdProgress = a});++-- | The format of the disk image from which the snapshot is created.+stdFormat :: Lens' SnapshotTaskDetail (Maybe Text)+stdFormat = lens _stdFormat (\ s a -> s{_stdFormat = a});++-- | The URL of the disk image from which the snapshot is created.+stdURL :: Lens' SnapshotTaskDetail (Maybe Text)+stdURL = lens _stdURL (\ s a -> s{_stdURL = a});++-- | A detailed status message for the import snapshot task.+stdStatusMessage :: Lens' SnapshotTaskDetail (Maybe Text)+stdStatusMessage = lens _stdStatusMessage (\ s a -> s{_stdStatusMessage = a});++-- | The S3 bucket for the disk image.+stdUserBucket :: Lens' SnapshotTaskDetail (Maybe UserBucketDetails)+stdUserBucket = lens _stdUserBucket (\ s a -> s{_stdUserBucket = a});++-- | The size of the disk in the snapshot, in GiB.+stdDiskImageSize :: Lens' SnapshotTaskDetail (Maybe Double)+stdDiskImageSize = lens _stdDiskImageSize (\ s a -> s{_stdDiskImageSize = a});++-- | The description of the snapshot.+stdDescription :: Lens' SnapshotTaskDetail (Maybe Text)+stdDescription = lens _stdDescription (\ s a -> s{_stdDescription = a});++-- | The snapshot ID of the disk being imported.+stdSnapshotId :: Lens' SnapshotTaskDetail (Maybe Text)+stdSnapshotId = lens _stdSnapshotId (\ s a -> s{_stdSnapshotId = a});++instance FromXML SnapshotTaskDetail where+        parseXML x+          = SnapshotTaskDetail' <$>+              (x .@? "status") <*> (x .@? "progress") <*>+                (x .@? "format")+                <*> (x .@? "url")+                <*> (x .@? "statusMessage")+                <*> (x .@? "userBucket")+                <*> (x .@? "diskImageSize")+                <*> (x .@? "description")+                <*> (x .@? "snapshotId")++instance Hashable SnapshotTaskDetail where++instance NFData SnapshotTaskDetail where++-- | Describes the data feed for a Spot instance.+--+--+--+-- /See:/ 'spotDatafeedSubscription' smart constructor.+data SpotDatafeedSubscription = SpotDatafeedSubscription'+  { _sdsState   :: !(Maybe DatafeedSubscriptionState)+  , _sdsPrefix  :: !(Maybe Text)+  , _sdsBucket  :: !(Maybe Text)+  , _sdsOwnerId :: !(Maybe Text)+  , _sdsFault   :: !(Maybe SpotInstanceStateFault)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotDatafeedSubscription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdsState' - The state of the Spot instance data feed subscription.+--+-- * 'sdsPrefix' - The prefix that is prepended to data feed files.+--+-- * 'sdsBucket' - The Amazon S3 bucket where the Spot instance data feed is located.+--+-- * 'sdsOwnerId' - The AWS account ID of the account.+--+-- * 'sdsFault' - The fault codes for the Spot instance request, if any.+spotDatafeedSubscription+    :: SpotDatafeedSubscription+spotDatafeedSubscription =+  SpotDatafeedSubscription'+  { _sdsState = Nothing+  , _sdsPrefix = Nothing+  , _sdsBucket = Nothing+  , _sdsOwnerId = Nothing+  , _sdsFault = Nothing+  }+++-- | The state of the Spot instance data feed subscription.+sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)+sdsState = lens _sdsState (\ s a -> s{_sdsState = a});++-- | The prefix that is prepended to data feed files.+sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsPrefix = lens _sdsPrefix (\ s a -> s{_sdsPrefix = a});++-- | The Amazon S3 bucket where the Spot instance data feed is located.+sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsBucket = lens _sdsBucket (\ s a -> s{_sdsBucket = a});++-- | The AWS account ID of the account.+sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsOwnerId = lens _sdsOwnerId (\ s a -> s{_sdsOwnerId = a});++-- | The fault codes for the Spot instance request, if any.+sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)+sdsFault = lens _sdsFault (\ s a -> s{_sdsFault = a});++instance FromXML SpotDatafeedSubscription where+        parseXML x+          = SpotDatafeedSubscription' <$>+              (x .@? "state") <*> (x .@? "prefix") <*>+                (x .@? "bucket")+                <*> (x .@? "ownerId")+                <*> (x .@? "fault")++instance Hashable SpotDatafeedSubscription where++instance NFData SpotDatafeedSubscription where++-- | Describes the launch specification for one or more Spot instances.+--+--+--+-- /See:/ 'spotFleetLaunchSpecification' smart constructor.+data SpotFleetLaunchSpecification = SpotFleetLaunchSpecification'+  { _sflsSecurityGroups      :: !(Maybe [GroupIdentifier])+  , _sflsSpotPrice           :: !(Maybe Text)+  , _sflsWeightedCapacity    :: !(Maybe Double)+  , _sflsKeyName             :: !(Maybe Text)+  , _sflsNetworkInterfaces   :: !(Maybe [InstanceNetworkInterfaceSpecification])+  , _sflsRAMDiskId           :: !(Maybe Text)+  , _sflsSubnetId            :: !(Maybe Text)+  , _sflsKernelId            :: !(Maybe Text)+  , _sflsInstanceType        :: !(Maybe InstanceType)+  , _sflsEBSOptimized        :: !(Maybe Bool)+  , _sflsUserData            :: !(Maybe Text)+  , _sflsMonitoring          :: !(Maybe SpotFleetMonitoring)+  , _sflsTagSpecifications   :: !(Maybe [SpotFleetTagSpecification])+  , _sflsIAMInstanceProfile  :: !(Maybe IAMInstanceProfileSpecification)+  , _sflsImageId             :: !(Maybe Text)+  , _sflsAddressingType      :: !(Maybe Text)+  , _sflsBlockDeviceMappings :: !(Maybe [BlockDeviceMapping])+  , _sflsPlacement           :: !(Maybe SpotPlacement)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotFleetLaunchSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sflsSecurityGroups' - 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.+--+-- * 'sflsSpotPrice' - The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of @WeightedCapacity@ .+--+-- * 'sflsWeightedCapacity' - 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.+--+-- * 'sflsKeyName' - The name of the key pair.+--+-- * 'sflsNetworkInterfaces' - One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.+--+-- * 'sflsRAMDiskId' - The ID of the RAM disk.+--+-- * 'sflsSubnetId' - 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".+--+-- * 'sflsKernelId' - The ID of the kernel.+--+-- * 'sflsInstanceType' - The instance type. Note that T2 and HS1 instance types are not supported.+--+-- * 'sflsEBSOptimized' - Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@+--+-- * 'sflsUserData' - The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+--+-- * 'sflsMonitoring' - Enable or disable monitoring for the instances.+--+-- * 'sflsTagSpecifications' - The tags to apply during creation.+--+-- * 'sflsIAMInstanceProfile' - The IAM instance profile.+--+-- * 'sflsImageId' - The ID of the AMI.+--+-- * 'sflsAddressingType' - Deprecated.+--+-- * 'sflsBlockDeviceMappings' - 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.+--+-- * 'sflsPlacement' - The placement information.+spotFleetLaunchSpecification+    :: SpotFleetLaunchSpecification+spotFleetLaunchSpecification =+  SpotFleetLaunchSpecification'+  { _sflsSecurityGroups = Nothing+  , _sflsSpotPrice = Nothing+  , _sflsWeightedCapacity = Nothing+  , _sflsKeyName = Nothing+  , _sflsNetworkInterfaces = Nothing+  , _sflsRAMDiskId = Nothing+  , _sflsSubnetId = Nothing+  , _sflsKernelId = Nothing+  , _sflsInstanceType = Nothing+  , _sflsEBSOptimized = Nothing+  , _sflsUserData = Nothing+  , _sflsMonitoring = Nothing+  , _sflsTagSpecifications = Nothing+  , _sflsIAMInstanceProfile = Nothing+  , _sflsImageId = Nothing+  , _sflsAddressingType = Nothing+  , _sflsBlockDeviceMappings = Nothing+  , _sflsPlacement = Nothing+  }+++-- | 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]+sflsSecurityGroups = lens _sflsSecurityGroups (\ s a -> s{_sflsSecurityGroups = a}) . _Default . _Coerce;++-- | The bid price per unit hour for the specified instance type. If this value is not specified, the default is the Spot bid price specified for the fleet. To determine the bid price per unit hour, divide the Spot bid price by the value of @WeightedCapacity@ .+sflsSpotPrice :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsSpotPrice = lens _sflsSpotPrice (\ s a -> s{_sflsSpotPrice = 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.+sflsWeightedCapacity :: Lens' SpotFleetLaunchSpecification (Maybe Double)+sflsWeightedCapacity = lens _sflsWeightedCapacity (\ s a -> s{_sflsWeightedCapacity = a});++-- | The name of the key pair.+sflsKeyName :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsKeyName = lens _sflsKeyName (\ s a -> s{_sflsKeyName = 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.+sflsNetworkInterfaces :: Lens' SpotFleetLaunchSpecification [InstanceNetworkInterfaceSpecification]+sflsNetworkInterfaces = lens _sflsNetworkInterfaces (\ s a -> s{_sflsNetworkInterfaces = a}) . _Default . _Coerce;++-- | The ID of the RAM disk.+sflsRAMDiskId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsRAMDiskId = lens _sflsRAMDiskId (\ s a -> s{_sflsRAMDiskId = 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".+sflsSubnetId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsSubnetId = lens _sflsSubnetId (\ s a -> s{_sflsSubnetId = a});++-- | The ID of the kernel.+sflsKernelId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsKernelId = lens _sflsKernelId (\ s a -> s{_sflsKernelId = a});++-- | The instance type. Note that T2 and HS1 instance types are not supported.+sflsInstanceType :: Lens' SpotFleetLaunchSpecification (Maybe InstanceType)+sflsInstanceType = lens _sflsInstanceType (\ s a -> s{_sflsInstanceType = a});++-- | Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: @false@+sflsEBSOptimized :: Lens' SpotFleetLaunchSpecification (Maybe Bool)+sflsEBSOptimized = lens _sflsEBSOptimized (\ s a -> s{_sflsEBSOptimized = a});++-- | The user data to make available to the instances. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.+sflsUserData :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsUserData = lens _sflsUserData (\ s a -> s{_sflsUserData = a});++-- | Enable or disable monitoring for the instances.+sflsMonitoring :: Lens' SpotFleetLaunchSpecification (Maybe SpotFleetMonitoring)+sflsMonitoring = lens _sflsMonitoring (\ s a -> s{_sflsMonitoring = a});++-- | The tags to apply during creation.+sflsTagSpecifications :: Lens' SpotFleetLaunchSpecification [SpotFleetTagSpecification]+sflsTagSpecifications = lens _sflsTagSpecifications (\ s a -> s{_sflsTagSpecifications = a}) . _Default . _Coerce;++-- | The IAM instance profile.+sflsIAMInstanceProfile :: Lens' SpotFleetLaunchSpecification (Maybe IAMInstanceProfileSpecification)+sflsIAMInstanceProfile = lens _sflsIAMInstanceProfile (\ s a -> s{_sflsIAMInstanceProfile = a});++-- | The ID of the AMI.+sflsImageId :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsImageId = lens _sflsImageId (\ s a -> s{_sflsImageId = a});++-- | Deprecated.+sflsAddressingType :: Lens' SpotFleetLaunchSpecification (Maybe Text)+sflsAddressingType = lens _sflsAddressingType (\ s a -> s{_sflsAddressingType = 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.+sflsBlockDeviceMappings :: Lens' SpotFleetLaunchSpecification [BlockDeviceMapping]+sflsBlockDeviceMappings = lens _sflsBlockDeviceMappings (\ s a -> s{_sflsBlockDeviceMappings = a}) . _Default . _Coerce;++-- | The placement information.+sflsPlacement :: Lens' SpotFleetLaunchSpecification (Maybe SpotPlacement)+sflsPlacement = lens _sflsPlacement (\ s a -> s{_sflsPlacement = a});++instance FromXML SpotFleetLaunchSpecification where+        parseXML x+          = SpotFleetLaunchSpecification' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "spotPrice")+                <*> (x .@? "weightedCapacity")+                <*> (x .@? "keyName")+                <*>+                (x .@? "networkInterfaceSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ramdiskId")+                <*> (x .@? "subnetId")+                <*> (x .@? "kernelId")+                <*> (x .@? "instanceType")+                <*> (x .@? "ebsOptimized")+                <*> (x .@? "userData")+                <*> (x .@? "monitoring")+                <*>+                (x .@? "tagSpecificationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "iamInstanceProfile")+                <*> (x .@? "imageId")+                <*> (x .@? "addressingType")+                <*>+                (x .@? "blockDeviceMapping" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "placement")++instance Hashable SpotFleetLaunchSpecification where++instance NFData SpotFleetLaunchSpecification where++instance ToQuery SpotFleetLaunchSpecification where+        toQuery SpotFleetLaunchSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "GroupSet" <$> _sflsSecurityGroups),+               "SpotPrice" =: _sflsSpotPrice,+               "WeightedCapacity" =: _sflsWeightedCapacity,+               "KeyName" =: _sflsKeyName,+               toQuery+                 (toQueryList "NetworkInterfaceSet" <$>+                    _sflsNetworkInterfaces),+               "RamdiskId" =: _sflsRAMDiskId,+               "SubnetId" =: _sflsSubnetId,+               "KernelId" =: _sflsKernelId,+               "InstanceType" =: _sflsInstanceType,+               "EbsOptimized" =: _sflsEBSOptimized,+               "UserData" =: _sflsUserData,+               "Monitoring" =: _sflsMonitoring,+               toQuery+                 (toQueryList "TagSpecificationSet" <$>+                    _sflsTagSpecifications),+               "IamInstanceProfile" =: _sflsIAMInstanceProfile,+               "ImageId" =: _sflsImageId,+               "AddressingType" =: _sflsAddressingType,+               toQuery+                 (toQueryList "BlockDeviceMapping" <$>+                    _sflsBlockDeviceMappings),+               "Placement" =: _sflsPlacement]++-- | Describes whether monitoring is enabled.+--+--+--+-- /See:/ 'spotFleetMonitoring' smart constructor.+newtype SpotFleetMonitoring = SpotFleetMonitoring'+  { _sfmEnabled :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotFleetMonitoring' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfmEnabled' - Enables monitoring for the instance. Default: @false@+spotFleetMonitoring+    :: SpotFleetMonitoring+spotFleetMonitoring = SpotFleetMonitoring' {_sfmEnabled = Nothing}+++-- | Enables monitoring for the instance. Default: @false@+sfmEnabled :: Lens' SpotFleetMonitoring (Maybe Bool)+sfmEnabled = lens _sfmEnabled (\ s a -> s{_sfmEnabled = a});++instance FromXML SpotFleetMonitoring where+        parseXML x+          = SpotFleetMonitoring' <$> (x .@? "enabled")++instance Hashable SpotFleetMonitoring where++instance NFData SpotFleetMonitoring where++instance ToQuery SpotFleetMonitoring where+        toQuery SpotFleetMonitoring'{..}+          = mconcat ["Enabled" =: _sfmEnabled]++-- | Describes a Spot fleet request.+--+--+--+-- /See:/ 'spotFleetRequestConfig' smart constructor.+data SpotFleetRequestConfig = SpotFleetRequestConfig'+  { _sfrcActivityStatus         :: !(Maybe ActivityStatus)+  , _sfrcCreateTime             :: !ISO8601+  , _sfrcSpotFleetRequestConfig :: !SpotFleetRequestConfigData+  , _sfrcSpotFleetRequestId     :: !Text+  , _sfrcSpotFleetRequestState  :: !BatchState+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotFleetRequestConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfrcActivityStatus' - The progress of the Spot fleet request. If there is an error, the status is @error@ . After all bids are placed, the status is @pending_fulfillment@ . If the size of the fleet is equal to or greater than its target capacity, the status is @fulfilled@ . If the size of the fleet is decreased, the status is @pending_termination@ while Spot instances are terminating.+--+-- * 'sfrcCreateTime' - The creation date and time of the request.+--+-- * 'sfrcSpotFleetRequestConfig' - Information about the configuration of the Spot fleet request.+--+-- * 'sfrcSpotFleetRequestId' - The ID of the Spot fleet request.+--+-- * 'sfrcSpotFleetRequestState' - The state of the Spot fleet request.+spotFleetRequestConfig+    :: UTCTime -- ^ 'sfrcCreateTime'+    -> SpotFleetRequestConfigData -- ^ 'sfrcSpotFleetRequestConfig'+    -> Text -- ^ 'sfrcSpotFleetRequestId'+    -> BatchState -- ^ 'sfrcSpotFleetRequestState'+    -> SpotFleetRequestConfig+spotFleetRequestConfig pCreateTime_ pSpotFleetRequestConfig_ pSpotFleetRequestId_ pSpotFleetRequestState_ =+  SpotFleetRequestConfig'+  { _sfrcActivityStatus = Nothing+  , _sfrcCreateTime = _Time # pCreateTime_+  , _sfrcSpotFleetRequestConfig = pSpotFleetRequestConfig_+  , _sfrcSpotFleetRequestId = pSpotFleetRequestId_+  , _sfrcSpotFleetRequestState = pSpotFleetRequestState_+  }+++-- | The progress of the Spot fleet request. If there is an error, the status is @error@ . After all bids are placed, the status is @pending_fulfillment@ . If the size of the fleet is equal to or greater than its target capacity, the status is @fulfilled@ . If the size of the fleet is decreased, the status is @pending_termination@ while Spot instances are terminating.+sfrcActivityStatus :: Lens' SpotFleetRequestConfig (Maybe ActivityStatus)+sfrcActivityStatus = lens _sfrcActivityStatus (\ s a -> s{_sfrcActivityStatus = a});++-- | The creation date and time of the request.+sfrcCreateTime :: Lens' SpotFleetRequestConfig UTCTime+sfrcCreateTime = lens _sfrcCreateTime (\ s a -> s{_sfrcCreateTime = a}) . _Time;++-- | Information about the configuration of the Spot fleet request.+sfrcSpotFleetRequestConfig :: Lens' SpotFleetRequestConfig SpotFleetRequestConfigData+sfrcSpotFleetRequestConfig = lens _sfrcSpotFleetRequestConfig (\ s a -> s{_sfrcSpotFleetRequestConfig = a});++-- | The ID of the Spot fleet request.+sfrcSpotFleetRequestId :: Lens' SpotFleetRequestConfig Text+sfrcSpotFleetRequestId = lens _sfrcSpotFleetRequestId (\ s a -> s{_sfrcSpotFleetRequestId = a});++-- | The state of the Spot fleet request.+sfrcSpotFleetRequestState :: Lens' SpotFleetRequestConfig BatchState+sfrcSpotFleetRequestState = lens _sfrcSpotFleetRequestState (\ s a -> s{_sfrcSpotFleetRequestState = a});++instance FromXML SpotFleetRequestConfig where+        parseXML x+          = SpotFleetRequestConfig' <$>+              (x .@? "activityStatus") <*> (x .@ "createTime") <*>+                (x .@ "spotFleetRequestConfig")+                <*> (x .@ "spotFleetRequestId")+                <*> (x .@ "spotFleetRequestState")++instance Hashable SpotFleetRequestConfig where++instance NFData SpotFleetRequestConfig where++-- | Describes the configuration of a Spot fleet request.+--+--+--+-- /See:/ 'spotFleetRequestConfigData' smart constructor.+data SpotFleetRequestConfigData = SpotFleetRequestConfigData'+  { _sfrcdClientToken :: !(Maybe Text)+  , _sfrcdInstanceInterruptionBehavior :: !(Maybe InstanceInterruptionBehavior)+  , _sfrcdLoadBalancersConfig :: !(Maybe LoadBalancersConfig)+  , _sfrcdExcessCapacityTerminationPolicy :: !(Maybe ExcessCapacityTerminationPolicy)+  , _sfrcdValidUntil :: !(Maybe ISO8601)+  , _sfrcdTerminateInstancesWithExpiration :: !(Maybe Bool)+  , _sfrcdFulfilledCapacity :: !(Maybe Double)+  , _sfrcdType :: !(Maybe FleetType)+  , _sfrcdValidFrom :: !(Maybe ISO8601)+  , _sfrcdReplaceUnhealthyInstances :: !(Maybe Bool)+  , _sfrcdAllocationStrategy :: !(Maybe AllocationStrategy)+  , _sfrcdIAMFleetRole :: !Text+  , _sfrcdLaunchSpecifications :: !(List1 SpotFleetLaunchSpecification)+  , _sfrcdSpotPrice :: !Text+  , _sfrcdTargetCapacity :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotFleetRequestConfigData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfrcdClientToken' - A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+--+-- * 'sfrcdInstanceInterruptionBehavior' - Indicates whether a Spot instance stops or terminates when it is interrupted.+--+-- * 'sfrcdLoadBalancersConfig' - 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.+--+-- * 'sfrcdExcessCapacityTerminationPolicy' - 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.+--+-- * 'sfrcdValidUntil' - The end date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). At this point, no new Spot instance requests are placed or enabled to fulfill the request.+--+-- * 'sfrcdTerminateInstancesWithExpiration' - Indicates whether running Spot instances should be terminated when the Spot fleet request expires.+--+-- * 'sfrcdFulfilledCapacity' - The number of units fulfilled by this request compared to the set target capacity.+--+-- * 'sfrcdType' - The type of request. Indicates whether the fleet will only @request@ the target capacity or also attempt to @maintain@ it. When you @request@ a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to @maintain@ a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: @maintain@ .+--+-- * 'sfrcdValidFrom' - The start date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The default is to start fulfilling the request immediately.+--+-- * 'sfrcdReplaceUnhealthyInstances' - Indicates whether Spot fleet should replace unhealthy instances.+--+-- * 'sfrcdAllocationStrategy' - Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is @lowestPrice@ .+--+-- * 'sfrcdIAMFleetRole' - Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using 'CancelSpotFleetRequests' or when the Spot fleet request expires, if you set @terminateInstancesWithExpiration@ .+--+-- * 'sfrcdLaunchSpecifications' - Information about the launch specifications for the Spot fleet request.+--+-- * 'sfrcdSpotPrice' - The bid price per unit hour.+--+-- * 'sfrcdTargetCapacity' - 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.+spotFleetRequestConfigData+    :: Text -- ^ 'sfrcdIAMFleetRole'+    -> NonEmpty SpotFleetLaunchSpecification -- ^ 'sfrcdLaunchSpecifications'+    -> Text -- ^ 'sfrcdSpotPrice'+    -> Int -- ^ 'sfrcdTargetCapacity'+    -> SpotFleetRequestConfigData+spotFleetRequestConfigData pIAMFleetRole_ pLaunchSpecifications_ pSpotPrice_ pTargetCapacity_ =+  SpotFleetRequestConfigData'+  { _sfrcdClientToken = Nothing+  , _sfrcdInstanceInterruptionBehavior = Nothing+  , _sfrcdLoadBalancersConfig = Nothing+  , _sfrcdExcessCapacityTerminationPolicy = Nothing+  , _sfrcdValidUntil = Nothing+  , _sfrcdTerminateInstancesWithExpiration = Nothing+  , _sfrcdFulfilledCapacity = Nothing+  , _sfrcdType = Nothing+  , _sfrcdValidFrom = Nothing+  , _sfrcdReplaceUnhealthyInstances = Nothing+  , _sfrcdAllocationStrategy = Nothing+  , _sfrcdIAMFleetRole = pIAMFleetRole_+  , _sfrcdLaunchSpecifications = _List1 # pLaunchSpecifications_+  , _sfrcdSpotPrice = pSpotPrice_+  , _sfrcdTargetCapacity = pTargetCapacity_+  }+++-- | A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .+sfrcdClientToken :: Lens' SpotFleetRequestConfigData (Maybe Text)+sfrcdClientToken = lens _sfrcdClientToken (\ s a -> s{_sfrcdClientToken = a});++-- | Indicates whether a Spot instance stops or terminates when it is interrupted.+sfrcdInstanceInterruptionBehavior :: Lens' SpotFleetRequestConfigData (Maybe InstanceInterruptionBehavior)+sfrcdInstanceInterruptionBehavior = lens _sfrcdInstanceInterruptionBehavior (\ s a -> s{_sfrcdInstanceInterruptionBehavior = 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.+sfrcdLoadBalancersConfig :: Lens' SpotFleetRequestConfigData (Maybe LoadBalancersConfig)+sfrcdLoadBalancersConfig = lens _sfrcdLoadBalancersConfig (\ s a -> s{_sfrcdLoadBalancersConfig = 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.+sfrcdExcessCapacityTerminationPolicy :: Lens' SpotFleetRequestConfigData (Maybe ExcessCapacityTerminationPolicy)+sfrcdExcessCapacityTerminationPolicy = lens _sfrcdExcessCapacityTerminationPolicy (\ s a -> s{_sfrcdExcessCapacityTerminationPolicy = a});++-- | The end date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). At this point, no new Spot instance requests are placed or enabled to fulfill the request.+sfrcdValidUntil :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)+sfrcdValidUntil = lens _sfrcdValidUntil (\ s a -> s{_sfrcdValidUntil = a}) . mapping _Time;++-- | Indicates whether running Spot instances should be terminated when the Spot fleet request expires.+sfrcdTerminateInstancesWithExpiration :: Lens' SpotFleetRequestConfigData (Maybe Bool)+sfrcdTerminateInstancesWithExpiration = lens _sfrcdTerminateInstancesWithExpiration (\ s a -> s{_sfrcdTerminateInstancesWithExpiration = a});++-- | The number of units fulfilled by this request compared to the set target capacity.+sfrcdFulfilledCapacity :: Lens' SpotFleetRequestConfigData (Maybe Double)+sfrcdFulfilledCapacity = lens _sfrcdFulfilledCapacity (\ s a -> s{_sfrcdFulfilledCapacity = a});++-- | The type of request. Indicates whether the fleet will only @request@ the target capacity or also attempt to @maintain@ it. When you @request@ a certain target capacity, the fleet will only place the required bids. It will not attempt to replenish Spot instances if capacity is diminished, nor will it submit bids in alternative Spot pools if capacity is not available. When you want to @maintain@ a certain target capacity, fleet will place the required bids to meet this target capacity. It will also automatically replenish any interrupted instances. Default: @maintain@ .+sfrcdType :: Lens' SpotFleetRequestConfigData (Maybe FleetType)+sfrcdType = lens _sfrcdType (\ s a -> s{_sfrcdType = a});++-- | The start date and time of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The default is to start fulfilling the request immediately.+sfrcdValidFrom :: Lens' SpotFleetRequestConfigData (Maybe UTCTime)+sfrcdValidFrom = lens _sfrcdValidFrom (\ s a -> s{_sfrcdValidFrom = a}) . mapping _Time;++-- | Indicates whether Spot fleet should replace unhealthy instances.+sfrcdReplaceUnhealthyInstances :: Lens' SpotFleetRequestConfigData (Maybe Bool)+sfrcdReplaceUnhealthyInstances = lens _sfrcdReplaceUnhealthyInstances (\ s a -> s{_sfrcdReplaceUnhealthyInstances = a});++-- | Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is @lowestPrice@ .+sfrcdAllocationStrategy :: Lens' SpotFleetRequestConfigData (Maybe AllocationStrategy)+sfrcdAllocationStrategy = lens _sfrcdAllocationStrategy (\ s a -> s{_sfrcdAllocationStrategy = a});++-- | Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using 'CancelSpotFleetRequests' or when the Spot fleet request expires, if you set @terminateInstancesWithExpiration@ .+sfrcdIAMFleetRole :: Lens' SpotFleetRequestConfigData Text+sfrcdIAMFleetRole = lens _sfrcdIAMFleetRole (\ s a -> s{_sfrcdIAMFleetRole = a});++-- | Information about the launch specifications for the Spot fleet request.+sfrcdLaunchSpecifications :: Lens' SpotFleetRequestConfigData (NonEmpty SpotFleetLaunchSpecification)+sfrcdLaunchSpecifications = lens _sfrcdLaunchSpecifications (\ s a -> s{_sfrcdLaunchSpecifications = a}) . _List1;++-- | The bid price per unit hour.+sfrcdSpotPrice :: Lens' SpotFleetRequestConfigData Text+sfrcdSpotPrice = lens _sfrcdSpotPrice (\ s a -> s{_sfrcdSpotPrice = 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.+sfrcdTargetCapacity :: Lens' SpotFleetRequestConfigData Int+sfrcdTargetCapacity = lens _sfrcdTargetCapacity (\ s a -> s{_sfrcdTargetCapacity = a});++instance FromXML SpotFleetRequestConfigData where+        parseXML x+          = SpotFleetRequestConfigData' <$>+              (x .@? "clientToken") <*>+                (x .@? "instanceInterruptionBehavior")+                <*> (x .@? "loadBalancersConfig")+                <*> (x .@? "excessCapacityTerminationPolicy")+                <*> (x .@? "validUntil")+                <*> (x .@? "terminateInstancesWithExpiration")+                <*> (x .@? "fulfilledCapacity")+                <*> (x .@? "type")+                <*> (x .@? "validFrom")+                <*> (x .@? "replaceUnhealthyInstances")+                <*> (x .@? "allocationStrategy")+                <*> (x .@ "iamFleetRole")+                <*>+                (x .@? "launchSpecifications" .!@ mempty >>=+                   parseXMLList1 "item")+                <*> (x .@ "spotPrice")+                <*> (x .@ "targetCapacity")++instance Hashable SpotFleetRequestConfigData where++instance NFData SpotFleetRequestConfigData where++instance ToQuery SpotFleetRequestConfigData where+        toQuery SpotFleetRequestConfigData'{..}+          = mconcat+              ["ClientToken" =: _sfrcdClientToken,+               "InstanceInterruptionBehavior" =:+                 _sfrcdInstanceInterruptionBehavior,+               "LoadBalancersConfig" =: _sfrcdLoadBalancersConfig,+               "ExcessCapacityTerminationPolicy" =:+                 _sfrcdExcessCapacityTerminationPolicy,+               "ValidUntil" =: _sfrcdValidUntil,+               "TerminateInstancesWithExpiration" =:+                 _sfrcdTerminateInstancesWithExpiration,+               "FulfilledCapacity" =: _sfrcdFulfilledCapacity,+               "Type" =: _sfrcdType, "ValidFrom" =: _sfrcdValidFrom,+               "ReplaceUnhealthyInstances" =:+                 _sfrcdReplaceUnhealthyInstances,+               "AllocationStrategy" =: _sfrcdAllocationStrategy,+               "IamFleetRole" =: _sfrcdIAMFleetRole,+               toQueryList "LaunchSpecifications"+                 _sfrcdLaunchSpecifications,+               "SpotPrice" =: _sfrcdSpotPrice,+               "TargetCapacity" =: _sfrcdTargetCapacity]++-- | The tags for a Spot fleet resource.+--+--+--+-- /See:/ 'spotFleetTagSpecification' smart constructor.+data SpotFleetTagSpecification = SpotFleetTagSpecification'+  { _sftsResourceType :: !(Maybe ResourceType)+  , _sftsTags         :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotFleetTagSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sftsResourceType' - The type of resource. Currently, the only resource type that is supported is @instance@ .+--+-- * 'sftsTags' - The tags.+spotFleetTagSpecification+    :: SpotFleetTagSpecification+spotFleetTagSpecification =+  SpotFleetTagSpecification' {_sftsResourceType = Nothing, _sftsTags = Nothing}+++-- | The type of resource. Currently, the only resource type that is supported is @instance@ .+sftsResourceType :: Lens' SpotFleetTagSpecification (Maybe ResourceType)+sftsResourceType = lens _sftsResourceType (\ s a -> s{_sftsResourceType = a});++-- | The tags.+sftsTags :: Lens' SpotFleetTagSpecification [Tag]+sftsTags = lens _sftsTags (\ s a -> s{_sftsTags = a}) . _Default . _Coerce;++instance FromXML SpotFleetTagSpecification where+        parseXML x+          = SpotFleetTagSpecification' <$>+              (x .@? "resourceType") <*>+                (x .@? "tag" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable SpotFleetTagSpecification where++instance NFData SpotFleetTagSpecification where++instance ToQuery SpotFleetTagSpecification where+        toQuery SpotFleetTagSpecification'{..}+          = mconcat+              ["ResourceType" =: _sftsResourceType,+               toQuery (toQueryList "Tag" <$> _sftsTags)]++-- | Describes a Spot instance request.+--+--+--+-- /See:/ 'spotInstanceRequest' smart constructor.+data SpotInstanceRequest = SpotInstanceRequest'+  { _sirInstanceId                   :: !(Maybe Text)+  , _sirStatus                       :: !(Maybe SpotInstanceStatus)+  , _sirState                        :: !(Maybe SpotInstanceState)+  , _sirActualBlockHourlyPrice       :: !(Maybe Text)+  , _sirBlockDurationMinutes         :: !(Maybe Int)+  , _sirInstanceInterruptionBehavior :: !(Maybe InstanceInterruptionBehavior)+  , _sirProductDescription           :: !(Maybe RIProductDescription)+  , _sirSpotPrice                    :: !(Maybe Text)+  , _sirLaunchSpecification          :: !(Maybe LaunchSpecification)+  , _sirAvailabilityZoneGroup        :: !(Maybe Text)+  , _sirLaunchedAvailabilityZone     :: !(Maybe Text)+  , _sirValidUntil                   :: !(Maybe ISO8601)+  , _sirLaunchGroup                  :: !(Maybe Text)+  , _sirFault                        :: !(Maybe SpotInstanceStateFault)+  , _sirSpotInstanceRequestId        :: !(Maybe Text)+  , _sirType                         :: !(Maybe SpotInstanceType)+  , _sirValidFrom                    :: !(Maybe ISO8601)+  , _sirCreateTime                   :: !(Maybe ISO8601)+  , _sirTags                         :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotInstanceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sirInstanceId' - The instance ID, if an instance has been launched to fulfill the Spot instance request.+--+-- * 'sirStatus' - The status code and status message describing the Spot instance request.+--+-- * 'sirState' - The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the /Amazon Elastic Compute Cloud User Guide/ .+--+-- * 'sirActualBlockHourlyPrice' - 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.+--+-- * 'sirBlockDurationMinutes' - The duration for the Spot instance, in minutes.+--+-- * 'sirInstanceInterruptionBehavior' - Indicates whether a Spot instance stops or terminates when it is interrupted.+--+-- * 'sirProductDescription' - The product description associated with the Spot instance.+--+-- * 'sirSpotPrice' - The maximum hourly price (bid) for the Spot instance launched to fulfill the request.+--+-- * 'sirLaunchSpecification' - Additional information for launching instances.+--+-- * 'sirAvailabilityZoneGroup' - 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.+--+-- * 'sirLaunchedAvailabilityZone' - The Availability Zone in which the bid is launched.+--+-- * 'sirValidUntil' - The end date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ 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.+--+-- * 'sirLaunchGroup' - The instance launch group. Launch groups are Spot instances that launch together and terminate together.+--+-- * 'sirFault' - The fault codes for the Spot instance request, if any.+--+-- * 'sirSpotInstanceRequestId' - The ID of the Spot instance request.+--+-- * 'sirType' - The Spot instance request type.+--+-- * 'sirValidFrom' - The start date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The request becomes active at this date and time.+--+-- * 'sirCreateTime' - The date and time when the Spot instance request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+--+-- * 'sirTags' - Any tags assigned to the resource.+spotInstanceRequest+    :: SpotInstanceRequest+spotInstanceRequest =+  SpotInstanceRequest'+  { _sirInstanceId = Nothing+  , _sirStatus = Nothing+  , _sirState = Nothing+  , _sirActualBlockHourlyPrice = Nothing+  , _sirBlockDurationMinutes = Nothing+  , _sirInstanceInterruptionBehavior = Nothing+  , _sirProductDescription = Nothing+  , _sirSpotPrice = Nothing+  , _sirLaunchSpecification = Nothing+  , _sirAvailabilityZoneGroup = Nothing+  , _sirLaunchedAvailabilityZone = Nothing+  , _sirValidUntil = Nothing+  , _sirLaunchGroup = Nothing+  , _sirFault = Nothing+  , _sirSpotInstanceRequestId = Nothing+  , _sirType = Nothing+  , _sirValidFrom = Nothing+  , _sirCreateTime = Nothing+  , _sirTags = Nothing+  }+++-- | The instance ID, if an instance has been launched to fulfill the Spot instance request.+sirInstanceId :: Lens' SpotInstanceRequest (Maybe Text)+sirInstanceId = lens _sirInstanceId (\ s a -> s{_sirInstanceId = a});++-- | The status code and status message describing the Spot instance request.+sirStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)+sirStatus = lens _sirStatus (\ s a -> s{_sirStatus = a});++-- | The state of the Spot instance request. Spot bid status information can help you track your Spot instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the /Amazon Elastic Compute Cloud User Guide/ .+sirState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)+sirState = lens _sirState (\ s a -> s{_sirState = 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.+sirActualBlockHourlyPrice :: Lens' SpotInstanceRequest (Maybe Text)+sirActualBlockHourlyPrice = lens _sirActualBlockHourlyPrice (\ s a -> s{_sirActualBlockHourlyPrice = a});++-- | The duration for the Spot instance, in minutes.+sirBlockDurationMinutes :: Lens' SpotInstanceRequest (Maybe Int)+sirBlockDurationMinutes = lens _sirBlockDurationMinutes (\ s a -> s{_sirBlockDurationMinutes = a});++-- | Indicates whether a Spot instance stops or terminates when it is interrupted.+sirInstanceInterruptionBehavior :: Lens' SpotInstanceRequest (Maybe InstanceInterruptionBehavior)+sirInstanceInterruptionBehavior = lens _sirInstanceInterruptionBehavior (\ s a -> s{_sirInstanceInterruptionBehavior = a});++-- | The product description associated with the Spot instance.+sirProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)+sirProductDescription = lens _sirProductDescription (\ s a -> s{_sirProductDescription = a});++-- | The maximum hourly price (bid) for the Spot instance launched to fulfill the request.+sirSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)+sirSpotPrice = lens _sirSpotPrice (\ s a -> s{_sirSpotPrice = a});++-- | Additional information for launching instances.+sirLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)+sirLaunchSpecification = lens _sirLaunchSpecification (\ s a -> s{_sirLaunchSpecification = 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.+sirAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)+sirAvailabilityZoneGroup = lens _sirAvailabilityZoneGroup (\ s a -> s{_sirAvailabilityZoneGroup = a});++-- | The Availability Zone in which the bid is launched.+sirLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)+sirLaunchedAvailabilityZone = lens _sirLaunchedAvailabilityZone (\ s a -> s{_sirLaunchedAvailabilityZone = a});++-- | The end date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). If this is a one-time request, it remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached.+sirValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)+sirValidUntil = lens _sirValidUntil (\ s a -> s{_sirValidUntil = a}) . mapping _Time;++-- | The instance launch group. Launch groups are Spot instances that launch together and terminate together.+sirLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)+sirLaunchGroup = lens _sirLaunchGroup (\ s a -> s{_sirLaunchGroup = a});++-- | The fault codes for the Spot instance request, if any.+sirFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)+sirFault = lens _sirFault (\ s a -> s{_sirFault = a});++-- | The ID of the Spot instance request.+sirSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)+sirSpotInstanceRequestId = lens _sirSpotInstanceRequestId (\ s a -> s{_sirSpotInstanceRequestId = a});++-- | The Spot instance request type.+sirType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)+sirType = lens _sirType (\ s a -> s{_sirType = a});++-- | The start date of the request, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z). The request becomes active at this date and time.+sirValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)+sirValidFrom = lens _sirValidFrom (\ s a -> s{_sirValidFrom = a}) . mapping _Time;++-- | The date and time when the Spot instance request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+sirCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)+sirCreateTime = lens _sirCreateTime (\ s a -> s{_sirCreateTime = a}) . mapping _Time;++-- | Any tags assigned to the resource.+sirTags :: Lens' SpotInstanceRequest [Tag]+sirTags = lens _sirTags (\ s a -> s{_sirTags = a}) . _Default . _Coerce;++instance FromXML SpotInstanceRequest where+        parseXML x+          = SpotInstanceRequest' <$>+              (x .@? "instanceId") <*> (x .@? "status") <*>+                (x .@? "state")+                <*> (x .@? "actualBlockHourlyPrice")+                <*> (x .@? "blockDurationMinutes")+                <*> (x .@? "instanceInterruptionBehavior")+                <*> (x .@? "productDescription")+                <*> (x .@? "spotPrice")+                <*> (x .@? "launchSpecification")+                <*> (x .@? "availabilityZoneGroup")+                <*> (x .@? "launchedAvailabilityZone")+                <*> (x .@? "validUntil")+                <*> (x .@? "launchGroup")+                <*> (x .@? "fault")+                <*> (x .@? "spotInstanceRequestId")+                <*> (x .@? "type")+                <*> (x .@? "validFrom")+                <*> (x .@? "createTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable SpotInstanceRequest where++instance NFData SpotInstanceRequest where++-- | Describes a Spot instance state change.+--+--+--+-- /See:/ 'spotInstanceStateFault' smart constructor.+data SpotInstanceStateFault = SpotInstanceStateFault'+  { _sisfCode    :: !(Maybe Text)+  , _sisfMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotInstanceStateFault' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sisfCode' - The reason code for the Spot instance state change.+--+-- * 'sisfMessage' - The message for the Spot instance state change.+spotInstanceStateFault+    :: SpotInstanceStateFault+spotInstanceStateFault =+  SpotInstanceStateFault' {_sisfCode = Nothing, _sisfMessage = Nothing}+++-- | The reason code for the Spot instance state change.+sisfCode :: Lens' SpotInstanceStateFault (Maybe Text)+sisfCode = lens _sisfCode (\ s a -> s{_sisfCode = a});++-- | The message for the Spot instance state change.+sisfMessage :: Lens' SpotInstanceStateFault (Maybe Text)+sisfMessage = lens _sisfMessage (\ s a -> s{_sisfMessage = a});++instance FromXML SpotInstanceStateFault where+        parseXML x+          = SpotInstanceStateFault' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable SpotInstanceStateFault where++instance NFData SpotInstanceStateFault where++-- | Describes the status of a Spot instance request.+--+--+--+-- /See:/ 'spotInstanceStatus' smart constructor.+data SpotInstanceStatus = SpotInstanceStatus'+  { _sisUpdateTime :: !(Maybe ISO8601)+  , _sisCode       :: !(Maybe Text)+  , _sisMessage    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotInstanceStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sisUpdateTime' - The date and time of the most recent status update, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+--+-- * 'sisCode' - The status code. For a list of status codes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html#spot-instance-bid-status-understand Spot Bid Status Codes> in the /Amazon Elastic Compute Cloud User Guide/ .+--+-- * 'sisMessage' - The description for the status code.+spotInstanceStatus+    :: SpotInstanceStatus+spotInstanceStatus =+  SpotInstanceStatus'+  {_sisUpdateTime = Nothing, _sisCode = Nothing, _sisMessage = Nothing}+++-- | The date and time of the most recent status update, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)+sisUpdateTime = lens _sisUpdateTime (\ s a -> s{_sisUpdateTime = a}) . mapping _Time;++-- | The status code. For a list of status codes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html#spot-instance-bid-status-understand Spot Bid Status Codes> in the /Amazon Elastic Compute Cloud User Guide/ .+sisCode :: Lens' SpotInstanceStatus (Maybe Text)+sisCode = lens _sisCode (\ s a -> s{_sisCode = a});++-- | The description for the status code.+sisMessage :: Lens' SpotInstanceStatus (Maybe Text)+sisMessage = lens _sisMessage (\ s a -> s{_sisMessage = a});++instance FromXML SpotInstanceStatus where+        parseXML x+          = SpotInstanceStatus' <$>+              (x .@? "updateTime") <*> (x .@? "code") <*>+                (x .@? "message")++instance Hashable SpotInstanceStatus where++instance NFData SpotInstanceStatus where++-- | Describes Spot instance placement.+--+--+--+-- /See:/ 'spotPlacement' smart constructor.+data SpotPlacement = SpotPlacement'+  { _spAvailabilityZone :: !(Maybe Text)+  , _spTenancy          :: !(Maybe Tenancy)+  , _spGroupName        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotPlacement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spAvailabilityZone' - The Availability Zone. [Spot fleet only] To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b".+--+-- * 'spTenancy' - 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. The @host@ tenancy is not supported for Spot instances.+--+-- * 'spGroupName' - The name of the placement group (for cluster instances).+spotPlacement+    :: SpotPlacement+spotPlacement =+  SpotPlacement'+  {_spAvailabilityZone = Nothing, _spTenancy = Nothing, _spGroupName = Nothing}+++-- | 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)+spAvailabilityZone = lens _spAvailabilityZone (\ s a -> s{_spAvailabilityZone = 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. The @host@ tenancy is not supported for Spot instances.+spTenancy :: Lens' SpotPlacement (Maybe Tenancy)+spTenancy = lens _spTenancy (\ s a -> s{_spTenancy = a});++-- | The name of the placement group (for cluster instances).+spGroupName :: Lens' SpotPlacement (Maybe Text)+spGroupName = lens _spGroupName (\ s a -> s{_spGroupName = a});++instance FromXML SpotPlacement where+        parseXML x+          = SpotPlacement' <$>+              (x .@? "availabilityZone") <*> (x .@? "tenancy") <*>+                (x .@? "groupName")++instance Hashable SpotPlacement where++instance NFData SpotPlacement where++instance ToQuery SpotPlacement where+        toQuery SpotPlacement'{..}+          = mconcat+              ["AvailabilityZone" =: _spAvailabilityZone,+               "Tenancy" =: _spTenancy, "GroupName" =: _spGroupName]++-- | Describes the maximum hourly price (bid) for any Spot instance launched to fulfill the request.+--+--+--+-- /See:/ 'spotPrice' smart constructor.+data SpotPrice = SpotPrice'+  { _sProductDescription :: !(Maybe RIProductDescription)+  , _sSpotPrice          :: !(Maybe Text)+  , _sInstanceType       :: !(Maybe InstanceType)+  , _sAvailabilityZone   :: !(Maybe Text)+  , _sTimestamp          :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SpotPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sProductDescription' - A general description of the AMI.+--+-- * 'sSpotPrice' - The maximum price (bid) that you are willing to pay for a Spot instance.+--+-- * 'sInstanceType' - The instance type. Note that T2 and HS1 instance types are not supported.+--+-- * 'sAvailabilityZone' - The Availability Zone.+--+-- * 'sTimestamp' - The date and time the request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+spotPrice+    :: SpotPrice+spotPrice =+  SpotPrice'+  { _sProductDescription = Nothing+  , _sSpotPrice = Nothing+  , _sInstanceType = Nothing+  , _sAvailabilityZone = Nothing+  , _sTimestamp = Nothing+  }+++-- | A general description of the AMI.+sProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)+sProductDescription = lens _sProductDescription (\ s a -> s{_sProductDescription = a});++-- | The maximum price (bid) that you are willing to pay for a Spot instance.+sSpotPrice :: Lens' SpotPrice (Maybe Text)+sSpotPrice = lens _sSpotPrice (\ s a -> s{_sSpotPrice = a});++-- | The instance type. Note that T2 and HS1 instance types are not supported.+sInstanceType :: Lens' SpotPrice (Maybe InstanceType)+sInstanceType = lens _sInstanceType (\ s a -> s{_sInstanceType = a});++-- | The Availability Zone.+sAvailabilityZone :: Lens' SpotPrice (Maybe Text)+sAvailabilityZone = lens _sAvailabilityZone (\ s a -> s{_sAvailabilityZone = a});++-- | The date and time the request was created, in UTC format (for example, /YYYY/ -/MM/ -/DD/ T/HH/ :/MM/ :/SS/ Z).+sTimestamp :: Lens' SpotPrice (Maybe UTCTime)+sTimestamp = lens _sTimestamp (\ s a -> s{_sTimestamp = a}) . mapping _Time;++instance FromXML SpotPrice where+        parseXML x+          = SpotPrice' <$>+              (x .@? "productDescription") <*> (x .@? "spotPrice")+                <*> (x .@? "instanceType")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "timestamp")++instance Hashable SpotPrice where++instance NFData SpotPrice where++-- | Describes a stale rule in a security group.+--+--+--+-- /See:/ 'staleIPPermission' smart constructor.+data StaleIPPermission = StaleIPPermission'+  { _sipFromPort         :: !(Maybe Int)+  , _sipUserIdGroupPairs :: !(Maybe [UserIdGroupPair])+  , _sipPrefixListIds    :: !(Maybe [Text])+  , _sipIPProtocol       :: !(Maybe Text)+  , _sipToPort           :: !(Maybe Int)+  , _sipIPRanges         :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StaleIPPermission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sipFromPort' - The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.+--+-- * 'sipUserIdGroupPairs' - 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.+--+-- * 'sipPrefixListIds' - One or more prefix list IDs for an AWS service. Not applicable for stale security group rules.+--+-- * 'sipIPProtocol' - The IP protocol name (for @tcp@ , @udp@ , and @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers)> .+--+-- * 'sipToPort' - The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.+--+-- * 'sipIPRanges' - One or more IP ranges. Not applicable for stale security group rules.+staleIPPermission+    :: StaleIPPermission+staleIPPermission =+  StaleIPPermission'+  { _sipFromPort = Nothing+  , _sipUserIdGroupPairs = Nothing+  , _sipPrefixListIds = Nothing+  , _sipIPProtocol = Nothing+  , _sipToPort = Nothing+  , _sipIPRanges = Nothing+  }+++-- | The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.+sipFromPort :: Lens' StaleIPPermission (Maybe Int)+sipFromPort = lens _sipFromPort (\ s a -> s{_sipFromPort = 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.+sipUserIdGroupPairs :: Lens' StaleIPPermission [UserIdGroupPair]+sipUserIdGroupPairs = lens _sipUserIdGroupPairs (\ s a -> s{_sipUserIdGroupPairs = a}) . _Default . _Coerce;++-- | One or more prefix list IDs for an AWS service. Not applicable for stale security group rules.+sipPrefixListIds :: Lens' StaleIPPermission [Text]+sipPrefixListIds = lens _sipPrefixListIds (\ s a -> s{_sipPrefixListIds = a}) . _Default . _Coerce;++-- | The IP protocol name (for @tcp@ , @udp@ , and @icmp@ ) or number (see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers)> .+sipIPProtocol :: Lens' StaleIPPermission (Maybe Text)+sipIPProtocol = lens _sipIPProtocol (\ s a -> s{_sipIPProtocol = a});++-- | The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of @-1@ indicates all ICMP types.+sipToPort :: Lens' StaleIPPermission (Maybe Int)+sipToPort = lens _sipToPort (\ s a -> s{_sipToPort = a});++-- | One or more IP ranges. Not applicable for stale security group rules.+sipIPRanges :: Lens' StaleIPPermission [Text]+sipIPRanges = lens _sipIPRanges (\ s a -> s{_sipIPRanges = a}) . _Default . _Coerce;++instance FromXML StaleIPPermission where+        parseXML x+          = StaleIPPermission' <$>+              (x .@? "fromPort") <*>+                (x .@? "groups" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "prefixListIds" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "ipProtocol")+                <*> (x .@? "toPort")+                <*>+                (x .@? "ipRanges" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable StaleIPPermission where++instance NFData StaleIPPermission where++-- | Describes a stale security group (a security group that contains stale rules).+--+--+--+-- /See:/ 'staleSecurityGroup' smart constructor.+data StaleSecurityGroup = StaleSecurityGroup'+  { _ssgVPCId                    :: !(Maybe Text)+  , _ssgGroupName                :: !(Maybe Text)+  , _ssgStaleIPPermissionsEgress :: !(Maybe [StaleIPPermission])+  , _ssgStaleIPPermissions       :: !(Maybe [StaleIPPermission])+  , _ssgDescription              :: !(Maybe Text)+  , _ssgGroupId                  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StaleSecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssgVPCId' - The ID of the VPC for the security group.+--+-- * 'ssgGroupName' - The name of the security group.+--+-- * 'ssgStaleIPPermissionsEgress' - Information about the stale outbound rules in the security group.+--+-- * 'ssgStaleIPPermissions' - Information about the stale inbound rules in the security group.+--+-- * 'ssgDescription' - The description of the security group.+--+-- * 'ssgGroupId' - The ID of the security group.+staleSecurityGroup+    :: Text -- ^ 'ssgGroupId'+    -> StaleSecurityGroup+staleSecurityGroup pGroupId_ =+  StaleSecurityGroup'+  { _ssgVPCId = Nothing+  , _ssgGroupName = Nothing+  , _ssgStaleIPPermissionsEgress = Nothing+  , _ssgStaleIPPermissions = Nothing+  , _ssgDescription = Nothing+  , _ssgGroupId = pGroupId_+  }+++-- | The ID of the VPC for the security group.+ssgVPCId :: Lens' StaleSecurityGroup (Maybe Text)+ssgVPCId = lens _ssgVPCId (\ s a -> s{_ssgVPCId = a});++-- | The name of the security group.+ssgGroupName :: Lens' StaleSecurityGroup (Maybe Text)+ssgGroupName = lens _ssgGroupName (\ s a -> s{_ssgGroupName = a});++-- | Information about the stale outbound rules in the security group.+ssgStaleIPPermissionsEgress :: Lens' StaleSecurityGroup [StaleIPPermission]+ssgStaleIPPermissionsEgress = lens _ssgStaleIPPermissionsEgress (\ s a -> s{_ssgStaleIPPermissionsEgress = a}) . _Default . _Coerce;++-- | Information about the stale inbound rules in the security group.+ssgStaleIPPermissions :: Lens' StaleSecurityGroup [StaleIPPermission]+ssgStaleIPPermissions = lens _ssgStaleIPPermissions (\ s a -> s{_ssgStaleIPPermissions = a}) . _Default . _Coerce;++-- | The description of the security group.+ssgDescription :: Lens' StaleSecurityGroup (Maybe Text)+ssgDescription = lens _ssgDescription (\ s a -> s{_ssgDescription = a});++-- | The ID of the security group.+ssgGroupId :: Lens' StaleSecurityGroup Text+ssgGroupId = lens _ssgGroupId (\ s a -> s{_ssgGroupId = a});++instance FromXML StaleSecurityGroup where+        parseXML x+          = StaleSecurityGroup' <$>+              (x .@? "vpcId") <*> (x .@? "groupName") <*>+                (x .@? "staleIpPermissionsEgress" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "staleIpPermissions" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "description")+                <*> (x .@ "groupId")++instance Hashable StaleSecurityGroup where++instance NFData StaleSecurityGroup where++-- | Describes a state change.+--+--+--+-- /See:/ 'stateReason' smart constructor.+data StateReason = StateReason'+  { _srCode    :: !(Maybe Text)+  , _srMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StateReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srCode' - The reason code for the state change.+--+-- * 'srMessage' - The message for the state change.     * @Server.InsufficientInstanceCapacity@ : There was insufficient instance capacity to satisfy the launch request.     * @Server.InternalError@ : An internal error occurred during instance launch, resulting in termination.     * @Server.ScheduledStop@ : The instance was stopped due to a scheduled retirement.     * @Server.SpotInstanceTermination@ : A Spot Instance was terminated due to an increase in the market price.     * @Client.InternalError@ : A client error caused the instance to terminate on launch.     * @Client.InstanceInitiatedShutdown@ : The instance was shut down using the @shutdown -h@ command from the instance.     * @Client.InstanceTerminated@ : The instance was terminated or rebooted during AMI creation.     * @Client.UserInitiatedShutdown@ : The instance was shut down using the Amazon EC2 API.     * @Client.VolumeLimitExceeded@ : The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.     * @Client.InvalidSnapshot.NotFound@ : The specified snapshot was not found.+stateReason+    :: StateReason+stateReason = StateReason' {_srCode = Nothing, _srMessage = Nothing}+++-- | The reason code for the state change.+srCode :: Lens' StateReason (Maybe Text)+srCode = lens _srCode (\ s a -> s{_srCode = a});++-- | The message for the state change.     * @Server.InsufficientInstanceCapacity@ : There was insufficient instance capacity to satisfy the launch request.     * @Server.InternalError@ : An internal error occurred during instance launch, resulting in termination.     * @Server.ScheduledStop@ : The instance was stopped due to a scheduled retirement.     * @Server.SpotInstanceTermination@ : A Spot Instance was terminated due to an increase in the market price.     * @Client.InternalError@ : A client error caused the instance to terminate on launch.     * @Client.InstanceInitiatedShutdown@ : The instance was shut down using the @shutdown -h@ command from the instance.     * @Client.InstanceTerminated@ : The instance was terminated or rebooted during AMI creation.     * @Client.UserInitiatedShutdown@ : The instance was shut down using the Amazon EC2 API.     * @Client.VolumeLimitExceeded@ : The limit on the number of EBS volumes or total storage was exceeded. Decrease usage or request an increase in your limits.     * @Client.InvalidSnapshot.NotFound@ : The specified snapshot was not found.+srMessage :: Lens' StateReason (Maybe Text)+srMessage = lens _srMessage (\ s a -> s{_srMessage = a});++instance FromXML StateReason where+        parseXML x+          = StateReason' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable StateReason where++instance NFData StateReason where++-- | Describes the storage location for an instance store-backed AMI.+--+--+--+-- /See:/ 'storage' smart constructor.+newtype Storage = Storage'+  { _sS3 :: Maybe S3Storage+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Storage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sS3' - An Amazon S3 storage location.+storage+    :: Storage+storage = Storage' {_sS3 = Nothing}+++-- | An Amazon S3 storage location.+sS3 :: Lens' Storage (Maybe S3Storage)+sS3 = lens _sS3 (\ s a -> s{_sS3 = a});++instance FromXML Storage where+        parseXML x = Storage' <$> (x .@? "S3")++instance Hashable Storage where++instance NFData Storage where++instance ToQuery Storage where+        toQuery Storage'{..} = mconcat ["S3" =: _sS3]++-- | Describes a storage location in Amazon S3.+--+--+--+-- /See:/ 'storageLocation' smart constructor.+data StorageLocation = StorageLocation'+  { _slBucket :: !(Maybe Text)+  , _slKey    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StorageLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slBucket' - The name of the S3 bucket.+--+-- * 'slKey' - The key.+storageLocation+    :: StorageLocation+storageLocation = StorageLocation' {_slBucket = Nothing, _slKey = Nothing}+++-- | The name of the S3 bucket.+slBucket :: Lens' StorageLocation (Maybe Text)+slBucket = lens _slBucket (\ s a -> s{_slBucket = a});++-- | The key.+slKey :: Lens' StorageLocation (Maybe Text)+slKey = lens _slKey (\ s a -> s{_slKey = a});++instance Hashable StorageLocation where++instance NFData StorageLocation where++instance ToQuery StorageLocation where+        toQuery StorageLocation'{..}+          = mconcat ["Bucket" =: _slBucket, "Key" =: _slKey]++-- | Describes a subnet.+--+--+--+-- /See:/ 'subnet' smart constructor.+data Subnet = Subnet'+  { _subIPv6CidrBlockAssociationSet :: !(Maybe [SubnetIPv6CidrBlockAssociation])+  , _subAssignIPv6AddressOnCreation :: !(Maybe Bool)+  , _subMapPublicIPOnLaunch         :: !(Maybe Bool)+  , _subDefaultForAz                :: !(Maybe Bool)+  , _subTags                        :: !(Maybe [Tag])+  , _subAvailabilityZone            :: !Text+  , _subAvailableIPAddressCount     :: !Int+  , _subCidrBlock                   :: !Text+  , _subState                       :: !SubnetState+  , _subSubnetId                    :: !Text+  , _subVPCId                       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Subnet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'subIPv6CidrBlockAssociationSet' - Information about the IPv6 CIDR blocks associated with the subnet.+--+-- * 'subAssignIPv6AddressOnCreation' - Indicates whether a network interface created in this subnet (including a network interface created by 'RunInstances' ) receives an IPv6 address.+--+-- * 'subMapPublicIPOnLaunch' - Indicates whether instances launched in this subnet receive a public IPv4 address.+--+-- * 'subDefaultForAz' - Indicates whether this is the default subnet for the Availability Zone.+--+-- * 'subTags' - Any tags assigned to the subnet.+--+-- * 'subAvailabilityZone' - The Availability Zone of the subnet.+--+-- * 'subAvailableIPAddressCount' - The number of unused private IPv4 addresses in the subnet. Note that the IPv4 addresses for any stopped instances are considered unavailable.+--+-- * 'subCidrBlock' - The IPv4 CIDR block assigned to the subnet.+--+-- * 'subState' - The current state of the subnet.+--+-- * 'subSubnetId' - The ID of the subnet.+--+-- * 'subVPCId' - The ID of the VPC the subnet is in.+subnet+    :: Text -- ^ 'subAvailabilityZone'+    -> Int -- ^ 'subAvailableIPAddressCount'+    -> Text -- ^ 'subCidrBlock'+    -> SubnetState -- ^ 'subState'+    -> Text -- ^ 'subSubnetId'+    -> Text -- ^ 'subVPCId'+    -> Subnet+subnet pAvailabilityZone_ pAvailableIPAddressCount_ pCidrBlock_ pState_ pSubnetId_ pVPCId_ =+  Subnet'+  { _subIPv6CidrBlockAssociationSet = Nothing+  , _subAssignIPv6AddressOnCreation = Nothing+  , _subMapPublicIPOnLaunch = Nothing+  , _subDefaultForAz = Nothing+  , _subTags = Nothing+  , _subAvailabilityZone = pAvailabilityZone_+  , _subAvailableIPAddressCount = pAvailableIPAddressCount_+  , _subCidrBlock = pCidrBlock_+  , _subState = pState_+  , _subSubnetId = pSubnetId_+  , _subVPCId = pVPCId_+  }+++-- | Information about the IPv6 CIDR blocks associated with the subnet.+subIPv6CidrBlockAssociationSet :: Lens' Subnet [SubnetIPv6CidrBlockAssociation]+subIPv6CidrBlockAssociationSet = lens _subIPv6CidrBlockAssociationSet (\ s a -> s{_subIPv6CidrBlockAssociationSet = a}) . _Default . _Coerce;++-- | Indicates whether a network interface created in this subnet (including a network interface created by 'RunInstances' ) receives an IPv6 address.+subAssignIPv6AddressOnCreation :: Lens' Subnet (Maybe Bool)+subAssignIPv6AddressOnCreation = lens _subAssignIPv6AddressOnCreation (\ s a -> s{_subAssignIPv6AddressOnCreation = a});++-- | Indicates whether instances launched in this subnet receive a public IPv4 address.+subMapPublicIPOnLaunch :: Lens' Subnet (Maybe Bool)+subMapPublicIPOnLaunch = lens _subMapPublicIPOnLaunch (\ s a -> s{_subMapPublicIPOnLaunch = a});++-- | Indicates whether this is the default subnet for the Availability Zone.+subDefaultForAz :: Lens' Subnet (Maybe Bool)+subDefaultForAz = lens _subDefaultForAz (\ s a -> s{_subDefaultForAz = a});++-- | Any tags assigned to the subnet.+subTags :: Lens' Subnet [Tag]+subTags = lens _subTags (\ s a -> s{_subTags = a}) . _Default . _Coerce;++-- | The Availability Zone of the subnet.+subAvailabilityZone :: Lens' Subnet Text+subAvailabilityZone = lens _subAvailabilityZone (\ s a -> s{_subAvailabilityZone = a});++-- | 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+subAvailableIPAddressCount = lens _subAvailableIPAddressCount (\ s a -> s{_subAvailableIPAddressCount = a});++-- | The IPv4 CIDR block assigned to the subnet.+subCidrBlock :: Lens' Subnet Text+subCidrBlock = lens _subCidrBlock (\ s a -> s{_subCidrBlock = a});++-- | The current state of the subnet.+subState :: Lens' Subnet SubnetState+subState = lens _subState (\ s a -> s{_subState = a});++-- | The ID of the subnet.+subSubnetId :: Lens' Subnet Text+subSubnetId = lens _subSubnetId (\ s a -> s{_subSubnetId = a});++-- | The ID of the VPC the subnet is in.+subVPCId :: Lens' Subnet Text+subVPCId = lens _subVPCId (\ s a -> s{_subVPCId = a});++instance FromXML Subnet where+        parseXML x+          = Subnet' <$>+              (x .@? "ipv6CidrBlockAssociationSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "assignIpv6AddressOnCreation")+                <*> (x .@? "mapPublicIpOnLaunch")+                <*> (x .@? "defaultForAz")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "availabilityZone")+                <*> (x .@ "availableIpAddressCount")+                <*> (x .@ "cidrBlock")+                <*> (x .@ "state")+                <*> (x .@ "subnetId")+                <*> (x .@ "vpcId")++instance Hashable Subnet where++instance NFData Subnet where++-- | Describes the state of a CIDR block.+--+--+--+-- /See:/ 'subnetCidrBlockState' smart constructor.+data SubnetCidrBlockState = SubnetCidrBlockState'+  { _scbsState         :: !(Maybe SubnetCidrBlockStateCode)+  , _scbsStatusMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SubnetCidrBlockState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scbsState' - The state of a CIDR block.+--+-- * 'scbsStatusMessage' - A message about the status of the CIDR block, if applicable.+subnetCidrBlockState+    :: SubnetCidrBlockState+subnetCidrBlockState =+  SubnetCidrBlockState' {_scbsState = Nothing, _scbsStatusMessage = Nothing}+++-- | The state of a CIDR block.+scbsState :: Lens' SubnetCidrBlockState (Maybe SubnetCidrBlockStateCode)+scbsState = lens _scbsState (\ s a -> s{_scbsState = a});++-- | A message about the status of the CIDR block, if applicable.+scbsStatusMessage :: Lens' SubnetCidrBlockState (Maybe Text)+scbsStatusMessage = lens _scbsStatusMessage (\ s a -> s{_scbsStatusMessage = a});++instance FromXML SubnetCidrBlockState where+        parseXML x+          = SubnetCidrBlockState' <$>+              (x .@? "state") <*> (x .@? "statusMessage")++instance Hashable SubnetCidrBlockState where++instance NFData SubnetCidrBlockState where++-- | Describes an IPv6 CIDR block associated with a subnet.+--+--+--+-- /See:/ 'subnetIPv6CidrBlockAssociation' smart constructor.+data SubnetIPv6CidrBlockAssociation = SubnetIPv6CidrBlockAssociation'+  { _sicbaAssociationId      :: !(Maybe Text)+  , _sicbaIPv6CidrBlock      :: !(Maybe Text)+  , _sicbaIPv6CidrBlockState :: !(Maybe SubnetCidrBlockState)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SubnetIPv6CidrBlockAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sicbaAssociationId' - The association ID for the CIDR block.+--+-- * 'sicbaIPv6CidrBlock' - The IPv6 CIDR block.+--+-- * 'sicbaIPv6CidrBlockState' - Information about the state of the CIDR block.+subnetIPv6CidrBlockAssociation+    :: SubnetIPv6CidrBlockAssociation+subnetIPv6CidrBlockAssociation =+  SubnetIPv6CidrBlockAssociation'+  { _sicbaAssociationId = Nothing+  , _sicbaIPv6CidrBlock = Nothing+  , _sicbaIPv6CidrBlockState = Nothing+  }+++-- | The association ID for the CIDR block.+sicbaAssociationId :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)+sicbaAssociationId = lens _sicbaAssociationId (\ s a -> s{_sicbaAssociationId = a});++-- | The IPv6 CIDR block.+sicbaIPv6CidrBlock :: Lens' SubnetIPv6CidrBlockAssociation (Maybe Text)+sicbaIPv6CidrBlock = lens _sicbaIPv6CidrBlock (\ s a -> s{_sicbaIPv6CidrBlock = a});++-- | Information about the state of the CIDR block.+sicbaIPv6CidrBlockState :: Lens' SubnetIPv6CidrBlockAssociation (Maybe SubnetCidrBlockState)+sicbaIPv6CidrBlockState = lens _sicbaIPv6CidrBlockState (\ s a -> s{_sicbaIPv6CidrBlockState = a});++instance FromXML SubnetIPv6CidrBlockAssociation where+        parseXML x+          = SubnetIPv6CidrBlockAssociation' <$>+              (x .@? "associationId") <*> (x .@? "ipv6CidrBlock")+                <*> (x .@? "ipv6CidrBlockState")++instance Hashable SubnetIPv6CidrBlockAssociation+         where++instance NFData SubnetIPv6CidrBlockAssociation where++-- | Describes a tag.+--+--+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+  { _tagKey   :: !Text+  , _tagValue :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagKey' - The key of the tag. Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with @aws:@+--+-- * 'tagValue' - The value of the tag. Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.+tag+    :: Text -- ^ 'tagKey'+    -> Text -- ^ 'tagValue'+    -> Tag+tag pKey_ pValue_ = Tag' {_tagKey = pKey_, _tagValue = pValue_}+++-- | The key of the tag. Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with @aws:@+tagKey :: Lens' Tag Text+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++-- | The value of the tag. Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.+tagValue :: Lens' Tag Text+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++instance FromXML Tag where+        parseXML x = Tag' <$> (x .@ "key") <*> (x .@ "value")++instance Hashable Tag where++instance NFData Tag where++instance ToQuery Tag where+        toQuery Tag'{..}+          = mconcat ["Key" =: _tagKey, "Value" =: _tagValue]++-- | Describes a tag.+--+--+--+-- /See:/ 'tagDescription' smart constructor.+data TagDescription = TagDescription'+  { _tdResourceId   :: !Text+  , _tdResourceType :: !ResourceType+  , _tdKey          :: !Text+  , _tdValue        :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TagDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdResourceId' - The ID of the resource. For example, @ami-1a2b3c4d@ .+--+-- * 'tdResourceType' - The resource type.+--+-- * 'tdKey' - The tag key.+--+-- * 'tdValue' - The tag value.+tagDescription+    :: Text -- ^ 'tdResourceId'+    -> ResourceType -- ^ 'tdResourceType'+    -> Text -- ^ 'tdKey'+    -> Text -- ^ 'tdValue'+    -> TagDescription+tagDescription pResourceId_ pResourceType_ pKey_ pValue_ =+  TagDescription'+  { _tdResourceId = pResourceId_+  , _tdResourceType = pResourceType_+  , _tdKey = pKey_+  , _tdValue = pValue_+  }+++-- | The ID of the resource. For example, @ami-1a2b3c4d@ .+tdResourceId :: Lens' TagDescription Text+tdResourceId = lens _tdResourceId (\ s a -> s{_tdResourceId = a});++-- | The resource type.+tdResourceType :: Lens' TagDescription ResourceType+tdResourceType = lens _tdResourceType (\ s a -> s{_tdResourceType = a});++-- | The tag key.+tdKey :: Lens' TagDescription Text+tdKey = lens _tdKey (\ s a -> s{_tdKey = a});++-- | The tag value.+tdValue :: Lens' TagDescription Text+tdValue = lens _tdValue (\ s a -> s{_tdValue = a});++instance FromXML TagDescription where+        parseXML x+          = TagDescription' <$>+              (x .@ "resourceId") <*> (x .@ "resourceType") <*>+                (x .@ "key")+                <*> (x .@ "value")++instance Hashable TagDescription where++instance NFData TagDescription where++-- | The tags to apply to a resource when the resource is being created.+--+--+--+-- /See:/ 'tagSpecification' smart constructor.+data TagSpecification = TagSpecification'+  { _tsResourceType :: !(Maybe ResourceType)+  , _tsTags         :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TagSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsResourceType' - The type of resource to tag. Currently, the resource types that support tagging on creation are @instance@ and @volume@ .+--+-- * 'tsTags' - The tags to apply to the resource.+tagSpecification+    :: TagSpecification+tagSpecification =+  TagSpecification' {_tsResourceType = Nothing, _tsTags = Nothing}+++-- | The type of resource to tag. Currently, the resource types that support tagging on creation are @instance@ and @volume@ .+tsResourceType :: Lens' TagSpecification (Maybe ResourceType)+tsResourceType = lens _tsResourceType (\ s a -> s{_tsResourceType = a});++-- | The tags to apply to the resource.+tsTags :: Lens' TagSpecification [Tag]+tsTags = lens _tsTags (\ s a -> s{_tsTags = a}) . _Default . _Coerce;++instance Hashable TagSpecification where++instance NFData TagSpecification where++instance ToQuery TagSpecification where+        toQuery TagSpecification'{..}+          = mconcat+              ["ResourceType" =: _tsResourceType,+               toQuery (toQueryList "Tag" <$> _tsTags)]++-- | Information about the Convertible Reserved Instance offering.+--+--+--+-- /See:/ 'targetConfiguration' smart constructor.+data TargetConfiguration = TargetConfiguration'+  { _tcInstanceCount :: !(Maybe Int)+  , _tcOfferingId    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TargetConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcInstanceCount' - The number of instances the Convertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request+--+-- * 'tcOfferingId' - The ID of the Convertible Reserved Instance offering.+targetConfiguration+    :: TargetConfiguration+targetConfiguration =+  TargetConfiguration' {_tcInstanceCount = Nothing, _tcOfferingId = Nothing}+++-- | 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)+tcInstanceCount = lens _tcInstanceCount (\ s a -> s{_tcInstanceCount = a});++-- | The ID of the Convertible Reserved Instance offering.+tcOfferingId :: Lens' TargetConfiguration (Maybe Text)+tcOfferingId = lens _tcOfferingId (\ s a -> s{_tcOfferingId = a});++instance FromXML TargetConfiguration where+        parseXML x+          = TargetConfiguration' <$>+              (x .@? "instanceCount") <*> (x .@? "offeringId")++instance Hashable TargetConfiguration where++instance NFData TargetConfiguration where++-- | Details about the target configuration.+--+--+--+-- /See:/ 'targetConfigurationRequest' smart constructor.+data TargetConfigurationRequest = TargetConfigurationRequest'+  { _tcrInstanceCount :: !(Maybe Int)+  , _tcrOfferingId    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TargetConfigurationRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcrInstanceCount' - The number of instances the Covertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request+--+-- * 'tcrOfferingId' - The Convertible Reserved Instance offering ID.+targetConfigurationRequest+    :: Text -- ^ 'tcrOfferingId'+    -> TargetConfigurationRequest+targetConfigurationRequest pOfferingId_ =+  TargetConfigurationRequest'+  {_tcrInstanceCount = Nothing, _tcrOfferingId = pOfferingId_}+++-- | 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)+tcrInstanceCount = lens _tcrInstanceCount (\ s a -> s{_tcrInstanceCount = a});++-- | The Convertible Reserved Instance offering ID.+tcrOfferingId :: Lens' TargetConfigurationRequest Text+tcrOfferingId = lens _tcrOfferingId (\ s a -> s{_tcrOfferingId = a});++instance Hashable TargetConfigurationRequest where++instance NFData TargetConfigurationRequest where++instance ToQuery TargetConfigurationRequest where+        toQuery TargetConfigurationRequest'{..}+          = mconcat+              ["InstanceCount" =: _tcrInstanceCount,+               "OfferingId" =: _tcrOfferingId]++-- | Describes a load balancer target group.+--+--+--+-- /See:/ 'targetGroup' smart constructor.+newtype TargetGroup = TargetGroup'+  { _tgARN :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TargetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tgARN' - The Amazon Resource Name (ARN) of the target group.+targetGroup+    :: Text -- ^ 'tgARN'+    -> TargetGroup+targetGroup pARN_ = TargetGroup' {_tgARN = pARN_}+++-- | The Amazon Resource Name (ARN) of the target group.+tgARN :: Lens' TargetGroup Text+tgARN = lens _tgARN (\ s a -> s{_tgARN = a});++instance FromXML TargetGroup where+        parseXML x = TargetGroup' <$> (x .@ "arn")++instance Hashable TargetGroup where++instance NFData TargetGroup where++instance ToQuery TargetGroup where+        toQuery TargetGroup'{..} = mconcat ["Arn" =: _tgARN]++-- | Describes the target groups to attach to a Spot fleet. Spot fleet registers the running Spot instances with these target groups.+--+--+--+-- /See:/ 'targetGroupsConfig' smart constructor.+newtype TargetGroupsConfig = TargetGroupsConfig'+  { _tgcTargetGroups :: List1 TargetGroup+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TargetGroupsConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tgcTargetGroups' - One or more target groups.+targetGroupsConfig+    :: NonEmpty TargetGroup -- ^ 'tgcTargetGroups'+    -> TargetGroupsConfig+targetGroupsConfig pTargetGroups_ =+  TargetGroupsConfig' {_tgcTargetGroups = _List1 # pTargetGroups_}+++-- | One or more target groups.+tgcTargetGroups :: Lens' TargetGroupsConfig (NonEmpty TargetGroup)+tgcTargetGroups = lens _tgcTargetGroups (\ s a -> s{_tgcTargetGroups = a}) . _List1;++instance FromXML TargetGroupsConfig where+        parseXML x+          = TargetGroupsConfig' <$>+              (x .@? "targetGroups" .!@ mempty >>=+                 parseXMLList1 "item")++instance Hashable TargetGroupsConfig where++instance NFData TargetGroupsConfig where++instance ToQuery TargetGroupsConfig where+        toQuery TargetGroupsConfig'{..}+          = mconcat+              [toQueryList "TargetGroups" _tgcTargetGroups]++-- | The total value of the new Convertible Reserved Instances.+--+--+--+-- /See:/ 'targetReservationValue' smart constructor.+data TargetReservationValue = TargetReservationValue'+  { _trvReservationValue    :: !(Maybe ReservationValue)+  , _trvTargetConfiguration :: !(Maybe TargetConfiguration)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TargetReservationValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trvReservationValue' - 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.+--+-- * 'trvTargetConfiguration' - The configuration of the Convertible Reserved Instances that make up the exchange.+targetReservationValue+    :: TargetReservationValue+targetReservationValue =+  TargetReservationValue'+  {_trvReservationValue = Nothing, _trvTargetConfiguration = Nothing}+++-- | 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)+trvReservationValue = lens _trvReservationValue (\ s a -> s{_trvReservationValue = a});++-- | The configuration of the Convertible Reserved Instances that make up the exchange.+trvTargetConfiguration :: Lens' TargetReservationValue (Maybe TargetConfiguration)+trvTargetConfiguration = lens _trvTargetConfiguration (\ s a -> s{_trvTargetConfiguration = a});++instance FromXML TargetReservationValue where+        parseXML x+          = TargetReservationValue' <$>+              (x .@? "reservationValue") <*>+                (x .@? "targetConfiguration")++instance Hashable TargetReservationValue where++instance NFData TargetReservationValue where++-- | Information about items that were not successfully processed in a batch call.+--+--+--+-- /See:/ 'unsuccessfulItem' smart constructor.+data UnsuccessfulItem = UnsuccessfulItem'+  { _uiResourceId :: !(Maybe Text)+  , _uiError      :: !UnsuccessfulItemError+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UnsuccessfulItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uiResourceId' - The ID of the resource.+--+-- * 'uiError' - Information about the error.+unsuccessfulItem+    :: UnsuccessfulItemError -- ^ 'uiError'+    -> UnsuccessfulItem+unsuccessfulItem pError_ =+  UnsuccessfulItem' {_uiResourceId = Nothing, _uiError = pError_}+++-- | The ID of the resource.+uiResourceId :: Lens' UnsuccessfulItem (Maybe Text)+uiResourceId = lens _uiResourceId (\ s a -> s{_uiResourceId = a});++-- | Information about the error.+uiError :: Lens' UnsuccessfulItem UnsuccessfulItemError+uiError = lens _uiError (\ s a -> s{_uiError = a});++instance FromXML UnsuccessfulItem where+        parseXML x+          = UnsuccessfulItem' <$>+              (x .@? "resourceId") <*> (x .@ "error")++instance Hashable UnsuccessfulItem where++instance NFData UnsuccessfulItem where++-- | Information about the error that occurred. For more information about errors, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html Error Codes> .+--+--+--+-- /See:/ 'unsuccessfulItemError' smart constructor.+data UnsuccessfulItemError = UnsuccessfulItemError'+  { _uieCode    :: !Text+  , _uieMessage :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UnsuccessfulItemError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uieCode' - The error code.+--+-- * 'uieMessage' - The error message accompanying the error code.+unsuccessfulItemError+    :: Text -- ^ 'uieCode'+    -> Text -- ^ 'uieMessage'+    -> UnsuccessfulItemError+unsuccessfulItemError pCode_ pMessage_ =+  UnsuccessfulItemError' {_uieCode = pCode_, _uieMessage = pMessage_}+++-- | The error code.+uieCode :: Lens' UnsuccessfulItemError Text+uieCode = lens _uieCode (\ s a -> s{_uieCode = a});++-- | The error message accompanying the error code.+uieMessage :: Lens' UnsuccessfulItemError Text+uieMessage = lens _uieMessage (\ s a -> s{_uieMessage = a});++instance FromXML UnsuccessfulItemError where+        parseXML x+          = UnsuccessfulItemError' <$>+              (x .@ "code") <*> (x .@ "message")++instance Hashable UnsuccessfulItemError where++instance NFData UnsuccessfulItemError where++-- | Describes the S3 bucket for the disk image.+--+--+--+-- /See:/ 'userBucket' smart constructor.+data UserBucket = UserBucket'+  { _ubS3Key    :: !(Maybe Text)+  , _ubS3Bucket :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubS3Key' - The file name of the disk image.+--+-- * 'ubS3Bucket' - The name of the S3 bucket where the disk image is located.+userBucket+    :: UserBucket+userBucket = UserBucket' {_ubS3Key = Nothing, _ubS3Bucket = Nothing}+++-- | The file name of the disk image.+ubS3Key :: Lens' UserBucket (Maybe Text)+ubS3Key = lens _ubS3Key (\ s a -> s{_ubS3Key = a});++-- | The name of the S3 bucket where the disk image is located.+ubS3Bucket :: Lens' UserBucket (Maybe Text)+ubS3Bucket = lens _ubS3Bucket (\ s a -> s{_ubS3Bucket = a});++instance Hashable UserBucket where++instance NFData UserBucket where++instance ToQuery UserBucket where+        toQuery UserBucket'{..}+          = mconcat+              ["S3Key" =: _ubS3Key, "S3Bucket" =: _ubS3Bucket]++-- | Describes the S3 bucket for the disk image.+--+--+--+-- /See:/ 'userBucketDetails' smart constructor.+data UserBucketDetails = UserBucketDetails'+  { _ubdS3Key    :: !(Maybe Text)+  , _ubdS3Bucket :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserBucketDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubdS3Key' - The file name of the disk image.+--+-- * 'ubdS3Bucket' - The S3 bucket from which the disk image was created.+userBucketDetails+    :: UserBucketDetails+userBucketDetails =+  UserBucketDetails' {_ubdS3Key = Nothing, _ubdS3Bucket = Nothing}+++-- | The file name of the disk image.+ubdS3Key :: Lens' UserBucketDetails (Maybe Text)+ubdS3Key = lens _ubdS3Key (\ s a -> s{_ubdS3Key = a});++-- | The S3 bucket from which the disk image was created.+ubdS3Bucket :: Lens' UserBucketDetails (Maybe Text)+ubdS3Bucket = lens _ubdS3Bucket (\ s a -> s{_ubdS3Bucket = a});++instance FromXML UserBucketDetails where+        parseXML x+          = UserBucketDetails' <$>+              (x .@? "s3Key") <*> (x .@? "s3Bucket")++instance Hashable UserBucketDetails where++instance NFData UserBucketDetails where++-- | Describes the user data for an instance.+--+--+--+-- /See:/ 'userData' smart constructor.+newtype UserData = UserData'+  { _udData :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udData' - 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.+userData+    :: UserData+userData = UserData' {_udData = Nothing}+++-- | 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)+udData = lens _udData (\ s a -> s{_udData = a});++instance Hashable UserData where++instance NFData UserData where++instance ToQuery UserData where+        toQuery UserData'{..} = mconcat ["Data" =: _udData]++-- | Describes a security group and AWS account ID pair.+--+--+--+-- /See:/ 'userIdGroupPair' smart constructor.+data UserIdGroupPair = UserIdGroupPair'+  { _uigpVPCPeeringConnectionId :: !(Maybe Text)+  , _uigpVPCId                  :: !(Maybe Text)+  , _uigpUserId                 :: !(Maybe Text)+  , _uigpGroupId                :: !(Maybe Text)+  , _uigpGroupName              :: !(Maybe Text)+  , _uigpDescription            :: !(Maybe Text)+  , _uigpPeeringStatus          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserIdGroupPair' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uigpVPCPeeringConnectionId' - The ID of the VPC peering connection, if applicable.+--+-- * 'uigpVPCId' - The ID of the VPC for the referenced security group, if applicable.+--+-- * 'uigpUserId' - The ID of an AWS account. For a referenced security group in another VPC, the account ID of the referenced security group is returned. [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account.+--+-- * 'uigpGroupId' - The ID of the security group.+--+-- * 'uigpGroupName' - 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.+--+-- * 'uigpDescription' - 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 ._-:/()#,@[]+=;{}!$*+--+-- * 'uigpPeeringStatus' - The status of a VPC peering connection, if applicable.+userIdGroupPair+    :: UserIdGroupPair+userIdGroupPair =+  UserIdGroupPair'+  { _uigpVPCPeeringConnectionId = Nothing+  , _uigpVPCId = Nothing+  , _uigpUserId = Nothing+  , _uigpGroupId = Nothing+  , _uigpGroupName = Nothing+  , _uigpDescription = Nothing+  , _uigpPeeringStatus = Nothing+  }+++-- | The ID of the VPC peering connection, if applicable.+uigpVPCPeeringConnectionId :: Lens' UserIdGroupPair (Maybe Text)+uigpVPCPeeringConnectionId = lens _uigpVPCPeeringConnectionId (\ s a -> s{_uigpVPCPeeringConnectionId = a});++-- | The ID of the VPC for the referenced security group, if applicable.+uigpVPCId :: Lens' UserIdGroupPair (Maybe Text)+uigpVPCId = lens _uigpVPCId (\ s a -> s{_uigpVPCId = a});++-- | The ID of an AWS account. For a referenced security group in another VPC, the account ID of the referenced security group is returned. [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account.+uigpUserId :: Lens' UserIdGroupPair (Maybe Text)+uigpUserId = lens _uigpUserId (\ s a -> s{_uigpUserId = a});++-- | The ID of the security group.+uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)+uigpGroupId = lens _uigpGroupId (\ s a -> s{_uigpGroupId = 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.+uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)+uigpGroupName = lens _uigpGroupName (\ s a -> s{_uigpGroupName = 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 ._-:/()#,@[]+=;{}!$*+uigpDescription :: Lens' UserIdGroupPair (Maybe Text)+uigpDescription = lens _uigpDescription (\ s a -> s{_uigpDescription = a});++-- | The status of a VPC peering connection, if applicable.+uigpPeeringStatus :: Lens' UserIdGroupPair (Maybe Text)+uigpPeeringStatus = lens _uigpPeeringStatus (\ s a -> s{_uigpPeeringStatus = a});++instance FromXML UserIdGroupPair where+        parseXML x+          = UserIdGroupPair' <$>+              (x .@? "vpcPeeringConnectionId") <*> (x .@? "vpcId")+                <*> (x .@? "userId")+                <*> (x .@? "groupId")+                <*> (x .@? "groupName")+                <*> (x .@? "description")+                <*> (x .@? "peeringStatus")++instance Hashable UserIdGroupPair where++instance NFData UserIdGroupPair where++instance ToQuery UserIdGroupPair where+        toQuery UserIdGroupPair'{..}+          = mconcat+              ["VpcPeeringConnectionId" =:+                 _uigpVPCPeeringConnectionId,+               "VpcId" =: _uigpVPCId, "UserId" =: _uigpUserId,+               "GroupId" =: _uigpGroupId,+               "GroupName" =: _uigpGroupName,+               "Description" =: _uigpDescription,+               "PeeringStatus" =: _uigpPeeringStatus]++-- | Describes telemetry for a VPN tunnel.+--+--+--+-- /See:/ 'vgwTelemetry' smart constructor.+data VGWTelemetry = VGWTelemetry'+  { _vtStatus             :: !(Maybe TelemetryStatus)+  , _vtOutsideIPAddress   :: !(Maybe Text)+  , _vtLastStatusChange   :: !(Maybe ISO8601)+  , _vtAcceptedRouteCount :: !(Maybe Int)+  , _vtStatusMessage      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VGWTelemetry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtStatus' - The status of the VPN tunnel.+--+-- * 'vtOutsideIPAddress' - The Internet-routable IP address of the virtual private gateway's outside interface.+--+-- * 'vtLastStatusChange' - The date and time of the last change in status.+--+-- * 'vtAcceptedRouteCount' - The number of accepted routes.+--+-- * 'vtStatusMessage' - If an error occurs, a description of the error.+vgwTelemetry+    :: VGWTelemetry+vgwTelemetry =+  VGWTelemetry'+  { _vtStatus = Nothing+  , _vtOutsideIPAddress = Nothing+  , _vtLastStatusChange = Nothing+  , _vtAcceptedRouteCount = Nothing+  , _vtStatusMessage = Nothing+  }+++-- | The status of the VPN tunnel.+vtStatus :: Lens' VGWTelemetry (Maybe TelemetryStatus)+vtStatus = lens _vtStatus (\ s a -> s{_vtStatus = a});++-- | The Internet-routable IP address of the virtual private gateway's outside interface.+vtOutsideIPAddress :: Lens' VGWTelemetry (Maybe Text)+vtOutsideIPAddress = lens _vtOutsideIPAddress (\ s a -> s{_vtOutsideIPAddress = a});++-- | The date and time of the last change in status.+vtLastStatusChange :: Lens' VGWTelemetry (Maybe UTCTime)+vtLastStatusChange = lens _vtLastStatusChange (\ s a -> s{_vtLastStatusChange = a}) . mapping _Time;++-- | The number of accepted routes.+vtAcceptedRouteCount :: Lens' VGWTelemetry (Maybe Int)+vtAcceptedRouteCount = lens _vtAcceptedRouteCount (\ s a -> s{_vtAcceptedRouteCount = a});++-- | If an error occurs, a description of the error.+vtStatusMessage :: Lens' VGWTelemetry (Maybe Text)+vtStatusMessage = lens _vtStatusMessage (\ s a -> s{_vtStatusMessage = a});++instance FromXML VGWTelemetry where+        parseXML x+          = VGWTelemetry' <$>+              (x .@? "status") <*> (x .@? "outsideIpAddress") <*>+                (x .@? "lastStatusChange")+                <*> (x .@? "acceptedRouteCount")+                <*> (x .@? "statusMessage")++instance Hashable VGWTelemetry where++instance NFData VGWTelemetry where++-- | Describes a VPC.+--+--+--+-- /See:/ 'vpc' smart constructor.+data VPC = VPC'+  { _vpcIPv6CidrBlockAssociationSet :: !(Maybe [VPCIPv6CidrBlockAssociation])+  , _vpcCidrBlockAssociationSet     :: !(Maybe [VPCCidrBlockAssociation])+  , _vpcTags                        :: !(Maybe [Tag])+  , _vpcIsDefault                   :: !(Maybe Bool)+  , _vpcCidrBlock                   :: !Text+  , _vpcDHCPOptionsId               :: !Text+  , _vpcInstanceTenancy             :: !Tenancy+  , _vpcState                       :: !VPCState+  , _vpcVPCId                       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPC' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcIPv6CidrBlockAssociationSet' - Information about the IPv6 CIDR blocks associated with the VPC.+--+-- * 'vpcCidrBlockAssociationSet' - Information about the IPv4 CIDR blocks associated with the VPC.+--+-- * 'vpcTags' - Any tags assigned to the VPC.+--+-- * 'vpcIsDefault' - Indicates whether the VPC is the default VPC.+--+-- * 'vpcCidrBlock' - The primary IPv4 CIDR block for the VPC.+--+-- * 'vpcDHCPOptionsId' - The ID of the set of DHCP options you've associated with the VPC (or @default@ if the default options are associated with the VPC).+--+-- * 'vpcInstanceTenancy' - The allowed tenancy of instances launched into the VPC.+--+-- * 'vpcState' - The current state of the VPC.+--+-- * 'vpcVPCId' - The ID of the VPC.+vpc+    :: Text -- ^ 'vpcCidrBlock'+    -> Text -- ^ 'vpcDHCPOptionsId'+    -> Tenancy -- ^ 'vpcInstanceTenancy'+    -> VPCState -- ^ 'vpcState'+    -> Text -- ^ 'vpcVPCId'+    -> VPC+vpc pCidrBlock_ pDHCPOptionsId_ pInstanceTenancy_ pState_ pVPCId_ =+  VPC'+  { _vpcIPv6CidrBlockAssociationSet = Nothing+  , _vpcCidrBlockAssociationSet = Nothing+  , _vpcTags = Nothing+  , _vpcIsDefault = Nothing+  , _vpcCidrBlock = pCidrBlock_+  , _vpcDHCPOptionsId = pDHCPOptionsId_+  , _vpcInstanceTenancy = pInstanceTenancy_+  , _vpcState = pState_+  , _vpcVPCId = pVPCId_+  }+++-- | Information about the IPv6 CIDR blocks associated with the VPC.+vpcIPv6CidrBlockAssociationSet :: Lens' VPC [VPCIPv6CidrBlockAssociation]+vpcIPv6CidrBlockAssociationSet = lens _vpcIPv6CidrBlockAssociationSet (\ s a -> s{_vpcIPv6CidrBlockAssociationSet = a}) . _Default . _Coerce;++-- | Information about the IPv4 CIDR blocks associated with the VPC.+vpcCidrBlockAssociationSet :: Lens' VPC [VPCCidrBlockAssociation]+vpcCidrBlockAssociationSet = lens _vpcCidrBlockAssociationSet (\ s a -> s{_vpcCidrBlockAssociationSet = a}) . _Default . _Coerce;++-- | Any tags assigned to the VPC.+vpcTags :: Lens' VPC [Tag]+vpcTags = lens _vpcTags (\ s a -> s{_vpcTags = a}) . _Default . _Coerce;++-- | Indicates whether the VPC is the default VPC.+vpcIsDefault :: Lens' VPC (Maybe Bool)+vpcIsDefault = lens _vpcIsDefault (\ s a -> s{_vpcIsDefault = a});++-- | The primary IPv4 CIDR block for the VPC.+vpcCidrBlock :: Lens' VPC Text+vpcCidrBlock = lens _vpcCidrBlock (\ s a -> s{_vpcCidrBlock = a});++-- | The ID of the set of DHCP options you've associated with the VPC (or @default@ if the default options are associated with the VPC).+vpcDHCPOptionsId :: Lens' VPC Text+vpcDHCPOptionsId = lens _vpcDHCPOptionsId (\ s a -> s{_vpcDHCPOptionsId = a});++-- | The allowed tenancy of instances launched into the VPC.+vpcInstanceTenancy :: Lens' VPC Tenancy+vpcInstanceTenancy = lens _vpcInstanceTenancy (\ s a -> s{_vpcInstanceTenancy = a});++-- | The current state of the VPC.+vpcState :: Lens' VPC VPCState+vpcState = lens _vpcState (\ s a -> s{_vpcState = a});++-- | The ID of the VPC.+vpcVPCId :: Lens' VPC Text+vpcVPCId = lens _vpcVPCId (\ s a -> s{_vpcVPCId = a});++instance FromXML VPC where+        parseXML x+          = VPC' <$>+              (x .@? "ipv6CidrBlockAssociationSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*>+                (x .@? "cidrBlockAssociationSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "isDefault")+                <*> (x .@ "cidrBlock")+                <*> (x .@ "dhcpOptionsId")+                <*> (x .@ "instanceTenancy")+                <*> (x .@ "state")+                <*> (x .@ "vpcId")++instance Hashable VPC where++instance NFData VPC where++-- | Describes an attachment between a virtual private gateway and a VPC.+--+--+--+-- /See:/ 'vpcAttachment' smart constructor.+data VPCAttachment = VPCAttachment'+  { _vaState :: !(Maybe AttachmentStatus)+  , _vaVPCId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vaState' - The current state of the attachment.+--+-- * 'vaVPCId' - The ID of the VPC.+vpcAttachment+    :: VPCAttachment+vpcAttachment = VPCAttachment' {_vaState = Nothing, _vaVPCId = Nothing}+++-- | The current state of the attachment.+vaState :: Lens' VPCAttachment (Maybe AttachmentStatus)+vaState = lens _vaState (\ s a -> s{_vaState = a});++-- | The ID of the VPC.+vaVPCId :: Lens' VPCAttachment (Maybe Text)+vaVPCId = lens _vaVPCId (\ s a -> s{_vaVPCId = a});++instance FromXML VPCAttachment where+        parseXML x+          = VPCAttachment' <$>+              (x .@? "state") <*> (x .@? "vpcId")++instance Hashable VPCAttachment where++instance NFData VPCAttachment where++-- | Describes an IPv4 CIDR block associated with a VPC.+--+--+--+-- /See:/ 'vpcCidrBlockAssociation' smart constructor.+data VPCCidrBlockAssociation = VPCCidrBlockAssociation'+  { _vcbaAssociationId  :: !(Maybe Text)+  , _vcbaCidrBlockState :: !(Maybe VPCCidrBlockState)+  , _vcbaCidrBlock      :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCCidrBlockAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcbaAssociationId' - The association ID for the IPv4 CIDR block.+--+-- * 'vcbaCidrBlockState' - Information about the state of the CIDR block.+--+-- * 'vcbaCidrBlock' - The IPv4 CIDR block.+vpcCidrBlockAssociation+    :: VPCCidrBlockAssociation+vpcCidrBlockAssociation =+  VPCCidrBlockAssociation'+  { _vcbaAssociationId = Nothing+  , _vcbaCidrBlockState = Nothing+  , _vcbaCidrBlock = Nothing+  }+++-- | The association ID for the IPv4 CIDR block.+vcbaAssociationId :: Lens' VPCCidrBlockAssociation (Maybe Text)+vcbaAssociationId = lens _vcbaAssociationId (\ s a -> s{_vcbaAssociationId = a});++-- | Information about the state of the CIDR block.+vcbaCidrBlockState :: Lens' VPCCidrBlockAssociation (Maybe VPCCidrBlockState)+vcbaCidrBlockState = lens _vcbaCidrBlockState (\ s a -> s{_vcbaCidrBlockState = a});++-- | The IPv4 CIDR block.+vcbaCidrBlock :: Lens' VPCCidrBlockAssociation (Maybe Text)+vcbaCidrBlock = lens _vcbaCidrBlock (\ s a -> s{_vcbaCidrBlock = a});++instance FromXML VPCCidrBlockAssociation where+        parseXML x+          = VPCCidrBlockAssociation' <$>+              (x .@? "associationId") <*> (x .@? "cidrBlockState")+                <*> (x .@? "cidrBlock")++instance Hashable VPCCidrBlockAssociation where++instance NFData VPCCidrBlockAssociation where++-- | Describes the state of a CIDR block.+--+--+--+-- /See:/ 'vpcCidrBlockState' smart constructor.+data VPCCidrBlockState = VPCCidrBlockState'+  { _vcbsState         :: !(Maybe VPCCidrBlockStateCode)+  , _vcbsStatusMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCCidrBlockState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcbsState' - The state of the CIDR block.+--+-- * 'vcbsStatusMessage' - A message about the status of the CIDR block, if applicable.+vpcCidrBlockState+    :: VPCCidrBlockState+vpcCidrBlockState =+  VPCCidrBlockState' {_vcbsState = Nothing, _vcbsStatusMessage = Nothing}+++-- | The state of the CIDR block.+vcbsState :: Lens' VPCCidrBlockState (Maybe VPCCidrBlockStateCode)+vcbsState = lens _vcbsState (\ s a -> s{_vcbsState = a});++-- | A message about the status of the CIDR block, if applicable.+vcbsStatusMessage :: Lens' VPCCidrBlockState (Maybe Text)+vcbsStatusMessage = lens _vcbsStatusMessage (\ s a -> s{_vcbsStatusMessage = a});++instance FromXML VPCCidrBlockState where+        parseXML x+          = VPCCidrBlockState' <$>+              (x .@? "state") <*> (x .@? "statusMessage")++instance Hashable VPCCidrBlockState where++instance NFData VPCCidrBlockState where++-- | Describes whether a VPC is enabled for ClassicLink.+--+--+--+-- /See:/ 'vpcClassicLink' smart constructor.+data VPCClassicLink = VPCClassicLink'+  { _vclVPCId              :: !(Maybe Text)+  , _vclTags               :: !(Maybe [Tag])+  , _vclClassicLinkEnabled :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCClassicLink' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vclVPCId' - The ID of the VPC.+--+-- * 'vclTags' - Any tags assigned to the VPC.+--+-- * 'vclClassicLinkEnabled' - Indicates whether the VPC is enabled for ClassicLink.+vpcClassicLink+    :: VPCClassicLink+vpcClassicLink =+  VPCClassicLink'+  {_vclVPCId = Nothing, _vclTags = Nothing, _vclClassicLinkEnabled = Nothing}+++-- | The ID of the VPC.+vclVPCId :: Lens' VPCClassicLink (Maybe Text)+vclVPCId = lens _vclVPCId (\ s a -> s{_vclVPCId = a});++-- | Any tags assigned to the VPC.+vclTags :: Lens' VPCClassicLink [Tag]+vclTags = lens _vclTags (\ s a -> s{_vclTags = a}) . _Default . _Coerce;++-- | Indicates whether the VPC is enabled for ClassicLink.+vclClassicLinkEnabled :: Lens' VPCClassicLink (Maybe Bool)+vclClassicLinkEnabled = lens _vclClassicLinkEnabled (\ s a -> s{_vclClassicLinkEnabled = a});++instance FromXML VPCClassicLink where+        parseXML x+          = VPCClassicLink' <$>+              (x .@? "vpcId") <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "classicLinkEnabled")++instance Hashable VPCClassicLink where++instance NFData VPCClassicLink where++-- | Describes a VPC endpoint.+--+--+--+-- /See:/ 'vpcEndpoint' smart constructor.+data VPCEndpoint = VPCEndpoint'+  { _veGroups              :: !(Maybe [SecurityGroupIdentifier])+  , _veState               :: !(Maybe State)+  , _vePolicyDocument      :: !(Maybe Text)+  , _veSubnetIds           :: !(Maybe [Text])+  , _veNetworkInterfaceIds :: !(Maybe [Text])+  , _veVPCId               :: !(Maybe Text)+  , _veDNSEntries          :: !(Maybe [DNSEntry])+  , _veVPCEndpointType     :: !(Maybe VPCEndpointType)+  , _vePrivateDNSEnabled   :: !(Maybe Bool)+  , _veCreationTimestamp   :: !(Maybe ISO8601)+  , _veServiceName         :: !(Maybe Text)+  , _veVPCEndpointId       :: !(Maybe Text)+  , _veRouteTableIds       :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCEndpoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'veGroups' - (Interface endpoint) Information about the security groups associated with the network interface.+--+-- * 'veState' - The state of the VPC endpoint.+--+-- * 'vePolicyDocument' - The policy document associated with the endpoint, if applicable.+--+-- * 'veSubnetIds' - (Interface endpoint) One or more subnets in which the endpoint is located.+--+-- * 'veNetworkInterfaceIds' - (Interface endpoint) One or more network interfaces for the endpoint.+--+-- * 'veVPCId' - The ID of the VPC to which the endpoint is associated.+--+-- * 'veDNSEntries' - (Interface endpoint) The DNS entries for the endpoint.+--+-- * 'veVPCEndpointType' - The type of endpoint.+--+-- * 'vePrivateDNSEnabled' - (Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.+--+-- * 'veCreationTimestamp' - The date and time the VPC endpoint was created.+--+-- * 'veServiceName' - The name of the AWS service to which the endpoint is associated.+--+-- * 'veVPCEndpointId' - The ID of the VPC endpoint.+--+-- * 'veRouteTableIds' - (Gateway endpoint) One or more route tables associated with the endpoint.+vpcEndpoint+    :: VPCEndpoint+vpcEndpoint =+  VPCEndpoint'+  { _veGroups = Nothing+  , _veState = Nothing+  , _vePolicyDocument = Nothing+  , _veSubnetIds = Nothing+  , _veNetworkInterfaceIds = Nothing+  , _veVPCId = Nothing+  , _veDNSEntries = Nothing+  , _veVPCEndpointType = Nothing+  , _vePrivateDNSEnabled = Nothing+  , _veCreationTimestamp = Nothing+  , _veServiceName = Nothing+  , _veVPCEndpointId = Nothing+  , _veRouteTableIds = Nothing+  }+++-- | (Interface endpoint) Information about the security groups associated with the network interface.+veGroups :: Lens' VPCEndpoint [SecurityGroupIdentifier]+veGroups = lens _veGroups (\ s a -> s{_veGroups = a}) . _Default . _Coerce;++-- | The state of the VPC endpoint.+veState :: Lens' VPCEndpoint (Maybe State)+veState = lens _veState (\ s a -> s{_veState = a});++-- | The policy document associated with the endpoint, if applicable.+vePolicyDocument :: Lens' VPCEndpoint (Maybe Text)+vePolicyDocument = lens _vePolicyDocument (\ s a -> s{_vePolicyDocument = a});++-- | (Interface endpoint) One or more subnets in which the endpoint is located.+veSubnetIds :: Lens' VPCEndpoint [Text]+veSubnetIds = lens _veSubnetIds (\ s a -> s{_veSubnetIds = a}) . _Default . _Coerce;++-- | (Interface endpoint) One or more network interfaces for the endpoint.+veNetworkInterfaceIds :: Lens' VPCEndpoint [Text]+veNetworkInterfaceIds = lens _veNetworkInterfaceIds (\ s a -> s{_veNetworkInterfaceIds = a}) . _Default . _Coerce;++-- | The ID of the VPC to which the endpoint is associated.+veVPCId :: Lens' VPCEndpoint (Maybe Text)+veVPCId = lens _veVPCId (\ s a -> s{_veVPCId = a});++-- | (Interface endpoint) The DNS entries for the endpoint.+veDNSEntries :: Lens' VPCEndpoint [DNSEntry]+veDNSEntries = lens _veDNSEntries (\ s a -> s{_veDNSEntries = a}) . _Default . _Coerce;++-- | The type of endpoint.+veVPCEndpointType :: Lens' VPCEndpoint (Maybe VPCEndpointType)+veVPCEndpointType = lens _veVPCEndpointType (\ s a -> s{_veVPCEndpointType = a});++-- | (Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.+vePrivateDNSEnabled :: Lens' VPCEndpoint (Maybe Bool)+vePrivateDNSEnabled = lens _vePrivateDNSEnabled (\ s a -> s{_vePrivateDNSEnabled = a});++-- | The date and time the VPC endpoint was created.+veCreationTimestamp :: Lens' VPCEndpoint (Maybe UTCTime)+veCreationTimestamp = lens _veCreationTimestamp (\ s a -> s{_veCreationTimestamp = a}) . mapping _Time;++-- | The name of the AWS service to which the endpoint is associated.+veServiceName :: Lens' VPCEndpoint (Maybe Text)+veServiceName = lens _veServiceName (\ s a -> s{_veServiceName = a});++-- | The ID of the VPC endpoint.+veVPCEndpointId :: Lens' VPCEndpoint (Maybe Text)+veVPCEndpointId = lens _veVPCEndpointId (\ s a -> s{_veVPCEndpointId = a});++-- | (Gateway endpoint) One or more route tables associated with the endpoint.+veRouteTableIds :: Lens' VPCEndpoint [Text]+veRouteTableIds = lens _veRouteTableIds (\ s a -> s{_veRouteTableIds = a}) . _Default . _Coerce;++instance FromXML VPCEndpoint where+        parseXML x+          = VPCEndpoint' <$>+              (x .@? "groupSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "state")+                <*> (x .@? "policyDocument")+                <*>+                (x .@? "subnetIdSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "networkInterfaceIdSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*>+                (x .@? "dnsEntrySet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpcEndpointType")+                <*> (x .@? "privateDnsEnabled")+                <*> (x .@? "creationTimestamp")+                <*> (x .@? "serviceName")+                <*> (x .@? "vpcEndpointId")+                <*>+                (x .@? "routeTableIdSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPCEndpoint where++instance NFData VPCEndpoint where++-- | Describes an IPv6 CIDR block associated with a VPC.+--+--+--+-- /See:/ 'vpcIPv6CidrBlockAssociation' smart constructor.+data VPCIPv6CidrBlockAssociation = VPCIPv6CidrBlockAssociation'+  { _vicbaAssociationId      :: !(Maybe Text)+  , _vicbaIPv6CidrBlock      :: !(Maybe Text)+  , _vicbaIPv6CidrBlockState :: !(Maybe VPCCidrBlockState)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCIPv6CidrBlockAssociation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vicbaAssociationId' - The association ID for the IPv6 CIDR block.+--+-- * 'vicbaIPv6CidrBlock' - The IPv6 CIDR block.+--+-- * 'vicbaIPv6CidrBlockState' - Information about the state of the CIDR block.+vpcIPv6CidrBlockAssociation+    :: VPCIPv6CidrBlockAssociation+vpcIPv6CidrBlockAssociation =+  VPCIPv6CidrBlockAssociation'+  { _vicbaAssociationId = Nothing+  , _vicbaIPv6CidrBlock = Nothing+  , _vicbaIPv6CidrBlockState = Nothing+  }+++-- | The association ID for the IPv6 CIDR block.+vicbaAssociationId :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)+vicbaAssociationId = lens _vicbaAssociationId (\ s a -> s{_vicbaAssociationId = a});++-- | The IPv6 CIDR block.+vicbaIPv6CidrBlock :: Lens' VPCIPv6CidrBlockAssociation (Maybe Text)+vicbaIPv6CidrBlock = lens _vicbaIPv6CidrBlock (\ s a -> s{_vicbaIPv6CidrBlock = a});++-- | Information about the state of the CIDR block.+vicbaIPv6CidrBlockState :: Lens' VPCIPv6CidrBlockAssociation (Maybe VPCCidrBlockState)+vicbaIPv6CidrBlockState = lens _vicbaIPv6CidrBlockState (\ s a -> s{_vicbaIPv6CidrBlockState = a});++instance FromXML VPCIPv6CidrBlockAssociation where+        parseXML x+          = VPCIPv6CidrBlockAssociation' <$>+              (x .@? "associationId") <*> (x .@? "ipv6CidrBlock")+                <*> (x .@? "ipv6CidrBlockState")++instance Hashable VPCIPv6CidrBlockAssociation where++instance NFData VPCIPv6CidrBlockAssociation where++-- | Describes a VPC peering connection.+--+--+--+-- /See:/ 'vpcPeeringConnection' smart constructor.+data VPCPeeringConnection = VPCPeeringConnection'+  { _vpcpcVPCPeeringConnectionId :: !(Maybe Text)+  , _vpcpcStatus                 :: !(Maybe VPCPeeringConnectionStateReason)+  , _vpcpcAccepterVPCInfo        :: !(Maybe VPCPeeringConnectionVPCInfo)+  , _vpcpcRequesterVPCInfo       :: !(Maybe VPCPeeringConnectionVPCInfo)+  , _vpcpcExpirationTime         :: !(Maybe ISO8601)+  , _vpcpcTags                   :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCPeeringConnection' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcpcVPCPeeringConnectionId' - The ID of the VPC peering connection.+--+-- * 'vpcpcStatus' - The status of the VPC peering connection.+--+-- * 'vpcpcAccepterVPCInfo' - Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.+--+-- * 'vpcpcRequesterVPCInfo' - Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.+--+-- * 'vpcpcExpirationTime' - The time that an unaccepted VPC peering connection will expire.+--+-- * 'vpcpcTags' - Any tags assigned to the resource.+vpcPeeringConnection+    :: VPCPeeringConnection+vpcPeeringConnection =+  VPCPeeringConnection'+  { _vpcpcVPCPeeringConnectionId = Nothing+  , _vpcpcStatus = Nothing+  , _vpcpcAccepterVPCInfo = Nothing+  , _vpcpcRequesterVPCInfo = Nothing+  , _vpcpcExpirationTime = Nothing+  , _vpcpcTags = Nothing+  }+++-- | The ID of the VPC peering connection.+vpcpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)+vpcpcVPCPeeringConnectionId = lens _vpcpcVPCPeeringConnectionId (\ s a -> s{_vpcpcVPCPeeringConnectionId = a});++-- | The status of the VPC peering connection.+vpcpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStateReason)+vpcpcStatus = lens _vpcpcStatus (\ s a -> s{_vpcpcStatus = a});++-- | Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.+vpcpcAccepterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)+vpcpcAccepterVPCInfo = lens _vpcpcAccepterVPCInfo (\ s a -> s{_vpcpcAccepterVPCInfo = a});++-- | Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.+vpcpcRequesterVPCInfo :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionVPCInfo)+vpcpcRequesterVPCInfo = lens _vpcpcRequesterVPCInfo (\ s a -> s{_vpcpcRequesterVPCInfo = a});++-- | The time that an unaccepted VPC peering connection will expire.+vpcpcExpirationTime :: Lens' VPCPeeringConnection (Maybe UTCTime)+vpcpcExpirationTime = lens _vpcpcExpirationTime (\ s a -> s{_vpcpcExpirationTime = a}) . mapping _Time;++-- | Any tags assigned to the resource.+vpcpcTags :: Lens' VPCPeeringConnection [Tag]+vpcpcTags = lens _vpcpcTags (\ s a -> s{_vpcpcTags = a}) . _Default . _Coerce;++instance FromXML VPCPeeringConnection where+        parseXML x+          = VPCPeeringConnection' <$>+              (x .@? "vpcPeeringConnectionId") <*> (x .@? "status")+                <*> (x .@? "accepterVpcInfo")+                <*> (x .@? "requesterVpcInfo")+                <*> (x .@? "expirationTime")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPCPeeringConnection where++instance NFData VPCPeeringConnection where++-- | Describes the VPC peering connection options.+--+--+--+-- /See:/ 'vpcPeeringConnectionOptionsDescription' smart constructor.+data VPCPeeringConnectionOptionsDescription = VPCPeeringConnectionOptionsDescription'+  { _vpcodAllowEgressFromLocalVPCToRemoteClassicLink :: !(Maybe Bool)+  , _vpcodAllowEgressFromLocalClassicLinkToRemoteVPC :: !(Maybe Bool)+  , _vpcodAllowDNSResolutionFromRemoteVPC            :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCPeeringConnectionOptionsDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcodAllowEgressFromLocalVPCToRemoteClassicLink' - Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.+--+-- * 'vpcodAllowEgressFromLocalClassicLinkToRemoteVPC' - Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.+--+-- * 'vpcodAllowDNSResolutionFromRemoteVPC' - Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.+vpcPeeringConnectionOptionsDescription+    :: VPCPeeringConnectionOptionsDescription+vpcPeeringConnectionOptionsDescription =+  VPCPeeringConnectionOptionsDescription'+  { _vpcodAllowEgressFromLocalVPCToRemoteClassicLink = Nothing+  , _vpcodAllowEgressFromLocalClassicLinkToRemoteVPC = Nothing+  , _vpcodAllowDNSResolutionFromRemoteVPC = Nothing+  }+++-- | 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)+vpcodAllowEgressFromLocalVPCToRemoteClassicLink = lens _vpcodAllowEgressFromLocalVPCToRemoteClassicLink (\ s a -> s{_vpcodAllowEgressFromLocalVPCToRemoteClassicLink = a});++-- | Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.+vpcodAllowEgressFromLocalClassicLinkToRemoteVPC :: Lens' VPCPeeringConnectionOptionsDescription (Maybe Bool)+vpcodAllowEgressFromLocalClassicLinkToRemoteVPC = lens _vpcodAllowEgressFromLocalClassicLinkToRemoteVPC (\ s a -> s{_vpcodAllowEgressFromLocalClassicLinkToRemoteVPC = a});++-- | 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)+vpcodAllowDNSResolutionFromRemoteVPC = lens _vpcodAllowDNSResolutionFromRemoteVPC (\ s a -> s{_vpcodAllowDNSResolutionFromRemoteVPC = a});++instance FromXML+           VPCPeeringConnectionOptionsDescription+         where+        parseXML x+          = VPCPeeringConnectionOptionsDescription' <$>+              (x .@? "allowEgressFromLocalVpcToRemoteClassicLink")+                <*>+                (x .@? "allowEgressFromLocalClassicLinkToRemoteVpc")+                <*> (x .@? "allowDnsResolutionFromRemoteVpc")++instance Hashable+           VPCPeeringConnectionOptionsDescription+         where++instance NFData+           VPCPeeringConnectionOptionsDescription+         where++-- | Describes the status of a VPC peering connection.+--+--+--+-- /See:/ 'vpcPeeringConnectionStateReason' smart constructor.+data VPCPeeringConnectionStateReason = VPCPeeringConnectionStateReason'+  { _vpcsrCode    :: !(Maybe VPCPeeringConnectionStateReasonCode)+  , _vpcsrMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCPeeringConnectionStateReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcsrCode' - The status of the VPC peering connection.+--+-- * 'vpcsrMessage' - A message that provides more information about the status, if applicable.+vpcPeeringConnectionStateReason+    :: VPCPeeringConnectionStateReason+vpcPeeringConnectionStateReason =+  VPCPeeringConnectionStateReason'+  {_vpcsrCode = Nothing, _vpcsrMessage = Nothing}+++-- | The status of the VPC peering connection.+vpcsrCode :: Lens' VPCPeeringConnectionStateReason (Maybe VPCPeeringConnectionStateReasonCode)+vpcsrCode = lens _vpcsrCode (\ s a -> s{_vpcsrCode = a});++-- | A message that provides more information about the status, if applicable.+vpcsrMessage :: Lens' VPCPeeringConnectionStateReason (Maybe Text)+vpcsrMessage = lens _vpcsrMessage (\ s a -> s{_vpcsrMessage = a});++instance FromXML VPCPeeringConnectionStateReason+         where+        parseXML x+          = VPCPeeringConnectionStateReason' <$>+              (x .@? "code") <*> (x .@? "message")++instance Hashable VPCPeeringConnectionStateReason+         where++instance NFData VPCPeeringConnectionStateReason where++-- | Describes a VPC in a VPC peering connection.+--+--+--+-- /See:/ 'vpcPeeringConnectionVPCInfo' smart constructor.+data VPCPeeringConnectionVPCInfo = VPCPeeringConnectionVPCInfo'+  { _vpcviCidrBlockSet     :: !(Maybe [CidrBlock])+  , _vpcviVPCId            :: !(Maybe Text)+  , _vpcviOwnerId          :: !(Maybe Text)+  , _vpcviPeeringOptions   :: !(Maybe VPCPeeringConnectionOptionsDescription)+  , _vpcviCidrBlock        :: !(Maybe Text)+  , _vpcviIPv6CidrBlockSet :: !(Maybe [IPv6CidrBlock])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPCPeeringConnectionVPCInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vpcviCidrBlockSet' - Information about the IPv4 CIDR blocks for the VPC.+--+-- * 'vpcviVPCId' - The ID of the VPC.+--+-- * 'vpcviOwnerId' - The AWS account ID of the VPC owner.+--+-- * 'vpcviPeeringOptions' - Information about the VPC peering connection options for the accepter or requester VPC.+--+-- * 'vpcviCidrBlock' - The IPv4 CIDR block for the VPC.+--+-- * 'vpcviIPv6CidrBlockSet' - The IPv6 CIDR block for the VPC.+vpcPeeringConnectionVPCInfo+    :: VPCPeeringConnectionVPCInfo+vpcPeeringConnectionVPCInfo =+  VPCPeeringConnectionVPCInfo'+  { _vpcviCidrBlockSet = Nothing+  , _vpcviVPCId = Nothing+  , _vpcviOwnerId = Nothing+  , _vpcviPeeringOptions = Nothing+  , _vpcviCidrBlock = Nothing+  , _vpcviIPv6CidrBlockSet = Nothing+  }+++-- | Information about the IPv4 CIDR blocks for the VPC.+vpcviCidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [CidrBlock]+vpcviCidrBlockSet = lens _vpcviCidrBlockSet (\ s a -> s{_vpcviCidrBlockSet = a}) . _Default . _Coerce;++-- | The ID of the VPC.+vpcviVPCId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)+vpcviVPCId = lens _vpcviVPCId (\ s a -> s{_vpcviVPCId = a});++-- | The AWS account ID of the VPC owner.+vpcviOwnerId :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)+vpcviOwnerId = lens _vpcviOwnerId (\ s a -> s{_vpcviOwnerId = a});++-- | Information about the VPC peering connection options for the accepter or requester VPC.+vpcviPeeringOptions :: Lens' VPCPeeringConnectionVPCInfo (Maybe VPCPeeringConnectionOptionsDescription)+vpcviPeeringOptions = lens _vpcviPeeringOptions (\ s a -> s{_vpcviPeeringOptions = a});++-- | The IPv4 CIDR block for the VPC.+vpcviCidrBlock :: Lens' VPCPeeringConnectionVPCInfo (Maybe Text)+vpcviCidrBlock = lens _vpcviCidrBlock (\ s a -> s{_vpcviCidrBlock = a});++-- | The IPv6 CIDR block for the VPC.+vpcviIPv6CidrBlockSet :: Lens' VPCPeeringConnectionVPCInfo [IPv6CidrBlock]+vpcviIPv6CidrBlockSet = lens _vpcviIPv6CidrBlockSet (\ s a -> s{_vpcviIPv6CidrBlockSet = a}) . _Default . _Coerce;++instance FromXML VPCPeeringConnectionVPCInfo where+        parseXML x+          = VPCPeeringConnectionVPCInfo' <$>+              (x .@? "cidrBlockSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "vpcId")+                <*> (x .@? "ownerId")+                <*> (x .@? "peeringOptions")+                <*> (x .@? "cidrBlock")+                <*>+                (x .@? "ipv6CidrBlockSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPCPeeringConnectionVPCInfo where++instance NFData VPCPeeringConnectionVPCInfo where++-- | Describes a VPN connection.+--+--+--+-- /See:/ 'vpnConnection' smart constructor.+data VPNConnection = VPNConnection'+  { _vcCustomerGatewayConfiguration :: !(Maybe Text)+  , _vcRoutes                       :: !(Maybe [VPNStaticRoute])+  , _vcVPNGatewayId                 :: !(Maybe Text)+  , _vcCategory                     :: !(Maybe Text)+  , _vcOptions                      :: !(Maybe VPNConnectionOptions)+  , _vcTags                         :: !(Maybe [Tag])+  , _vcVGWTelemetry                 :: !(Maybe [VGWTelemetry])+  , _vcVPNConnectionId              :: !Text+  , _vcCustomerGatewayId            :: !Text+  , _vcState                        :: !VPNState+  , _vcType                         :: !GatewayType+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPNConnection' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcCustomerGatewayConfiguration' - The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the 'CreateVpnConnection' response; however, it's present in the 'DescribeVpnConnections' response only if the VPN connection is in the @pending@ or @available@ state.+--+-- * 'vcRoutes' - The static routes associated with the VPN connection.+--+-- * 'vcVPNGatewayId' - The ID of the virtual private gateway at the AWS side of the VPN connection.+--+-- * 'vcCategory' - The category of the VPN connection. A value of @VPN@ indicates an AWS VPN connection. A value of @VPN-Classic@ indicates an AWS Classic VPN connection. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html#vpn-categories AWS Managed VPN Categories> in the /Amazon Virtual Private Cloud User Guide/ .+--+-- * 'vcOptions' - The VPN connection options.+--+-- * 'vcTags' - Any tags assigned to the VPN connection.+--+-- * 'vcVGWTelemetry' - Information about the VPN tunnel.+--+-- * 'vcVPNConnectionId' - The ID of the VPN connection.+--+-- * 'vcCustomerGatewayId' - The ID of the customer gateway at your end of the VPN connection.+--+-- * 'vcState' - The current state of the VPN connection.+--+-- * 'vcType' - The type of VPN connection.+vpnConnection+    :: Text -- ^ 'vcVPNConnectionId'+    -> Text -- ^ 'vcCustomerGatewayId'+    -> VPNState -- ^ 'vcState'+    -> GatewayType -- ^ 'vcType'+    -> VPNConnection+vpnConnection pVPNConnectionId_ pCustomerGatewayId_ pState_ pType_ =+  VPNConnection'+  { _vcCustomerGatewayConfiguration = Nothing+  , _vcRoutes = Nothing+  , _vcVPNGatewayId = Nothing+  , _vcCategory = Nothing+  , _vcOptions = Nothing+  , _vcTags = Nothing+  , _vcVGWTelemetry = Nothing+  , _vcVPNConnectionId = pVPNConnectionId_+  , _vcCustomerGatewayId = pCustomerGatewayId_+  , _vcState = pState_+  , _vcType = pType_+  }+++-- | The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the 'CreateVpnConnection' response; however, it's present in the 'DescribeVpnConnections' response only if the VPN connection is in the @pending@ or @available@ state.+vcCustomerGatewayConfiguration :: Lens' VPNConnection (Maybe Text)+vcCustomerGatewayConfiguration = lens _vcCustomerGatewayConfiguration (\ s a -> s{_vcCustomerGatewayConfiguration = a});++-- | The static routes associated with the VPN connection.+vcRoutes :: Lens' VPNConnection [VPNStaticRoute]+vcRoutes = lens _vcRoutes (\ s a -> s{_vcRoutes = a}) . _Default . _Coerce;++-- | The ID of the virtual private gateway at the AWS side of the VPN connection.+vcVPNGatewayId :: Lens' VPNConnection (Maybe Text)+vcVPNGatewayId = lens _vcVPNGatewayId (\ s a -> s{_vcVPNGatewayId = a});++-- | The category of the VPN connection. A value of @VPN@ indicates an AWS VPN connection. A value of @VPN-Classic@ indicates an AWS Classic VPN connection. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html#vpn-categories AWS Managed VPN Categories> in the /Amazon Virtual Private Cloud User Guide/ .+vcCategory :: Lens' VPNConnection (Maybe Text)+vcCategory = lens _vcCategory (\ s a -> s{_vcCategory = a});++-- | The VPN connection options.+vcOptions :: Lens' VPNConnection (Maybe VPNConnectionOptions)+vcOptions = lens _vcOptions (\ s a -> s{_vcOptions = a});++-- | Any tags assigned to the VPN connection.+vcTags :: Lens' VPNConnection [Tag]+vcTags = lens _vcTags (\ s a -> s{_vcTags = a}) . _Default . _Coerce;++-- | Information about the VPN tunnel.+vcVGWTelemetry :: Lens' VPNConnection [VGWTelemetry]+vcVGWTelemetry = lens _vcVGWTelemetry (\ s a -> s{_vcVGWTelemetry = a}) . _Default . _Coerce;++-- | The ID of the VPN connection.+vcVPNConnectionId :: Lens' VPNConnection Text+vcVPNConnectionId = lens _vcVPNConnectionId (\ s a -> s{_vcVPNConnectionId = a});++-- | The ID of the customer gateway at your end of the VPN connection.+vcCustomerGatewayId :: Lens' VPNConnection Text+vcCustomerGatewayId = lens _vcCustomerGatewayId (\ s a -> s{_vcCustomerGatewayId = a});++-- | The current state of the VPN connection.+vcState :: Lens' VPNConnection VPNState+vcState = lens _vcState (\ s a -> s{_vcState = a});++-- | The type of VPN connection.+vcType :: Lens' VPNConnection GatewayType+vcType = lens _vcType (\ s a -> s{_vcType = a});++instance FromXML VPNConnection where+        parseXML x+          = VPNConnection' <$>+              (x .@? "customerGatewayConfiguration") <*>+                (x .@? "routes" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpnGatewayId")+                <*> (x .@? "category")+                <*> (x .@? "options")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "vgwTelemetry" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "vpnConnectionId")+                <*> (x .@ "customerGatewayId")+                <*> (x .@ "state")+                <*> (x .@ "type")++instance Hashable VPNConnection where++instance NFData VPNConnection where++-- | Describes VPN connection options.+--+--+--+-- /See:/ 'vpnConnectionOptions' smart constructor.+newtype VPNConnectionOptions = VPNConnectionOptions'+  { _vcoStaticRoutesOnly :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPNConnectionOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcoStaticRoutesOnly' - Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.+vpnConnectionOptions+    :: VPNConnectionOptions+vpnConnectionOptions = VPNConnectionOptions' {_vcoStaticRoutesOnly = Nothing}+++-- | 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)+vcoStaticRoutesOnly = lens _vcoStaticRoutesOnly (\ s a -> s{_vcoStaticRoutesOnly = a});++instance FromXML VPNConnectionOptions where+        parseXML x+          = VPNConnectionOptions' <$>+              (x .@? "staticRoutesOnly")++instance Hashable VPNConnectionOptions where++instance NFData VPNConnectionOptions where++-- | Describes VPN connection options.+--+--+--+-- /See:/ 'vpnConnectionOptionsSpecification' smart constructor.+data VPNConnectionOptionsSpecification = VPNConnectionOptionsSpecification'+  { _vcosTunnelOptions    :: !(Maybe [VPNTunnelOptionsSpecification])+  , _vcosStaticRoutesOnly :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPNConnectionOptionsSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcosTunnelOptions' - The tunnel options for the VPN connection.+--+-- * 'vcosStaticRoutesOnly' - 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 @true@ . Default: @false@+vpnConnectionOptionsSpecification+    :: VPNConnectionOptionsSpecification+vpnConnectionOptionsSpecification =+  VPNConnectionOptionsSpecification'+  {_vcosTunnelOptions = Nothing, _vcosStaticRoutesOnly = Nothing}+++-- | The tunnel options for the VPN connection.+vcosTunnelOptions :: Lens' VPNConnectionOptionsSpecification [VPNTunnelOptionsSpecification]+vcosTunnelOptions = lens _vcosTunnelOptions (\ s a -> s{_vcosTunnelOptions = a}) . _Default . _Coerce;++-- | 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 @true@ . Default: @false@+vcosStaticRoutesOnly :: Lens' VPNConnectionOptionsSpecification (Maybe Bool)+vcosStaticRoutesOnly = lens _vcosStaticRoutesOnly (\ s a -> s{_vcosStaticRoutesOnly = a});++instance Hashable VPNConnectionOptionsSpecification+         where++instance NFData VPNConnectionOptionsSpecification+         where++instance ToQuery VPNConnectionOptionsSpecification+         where+        toQuery VPNConnectionOptionsSpecification'{..}+          = mconcat+              [toQuery+                 (toQueryList "TunnelOptions" <$> _vcosTunnelOptions),+               "StaticRoutesOnly" =: _vcosStaticRoutesOnly]++-- | Describes a virtual private gateway.+--+--+--+-- /See:/ 'vpnGateway' smart constructor.+data VPNGateway = VPNGateway'+  { _vgState            :: !(Maybe VPNState)+  , _vgVPCAttachments   :: !(Maybe [VPCAttachment])+  , _vgVPNGatewayId     :: !(Maybe Text)+  , _vgAmazonSideASN    :: !(Maybe Integer)+  , _vgAvailabilityZone :: !(Maybe Text)+  , _vgType             :: !(Maybe GatewayType)+  , _vgTags             :: !(Maybe [Tag])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPNGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vgState' - The current state of the virtual private gateway.+--+-- * 'vgVPCAttachments' - Any VPCs attached to the virtual private gateway.+--+-- * 'vgVPNGatewayId' - The ID of the virtual private gateway.+--+-- * 'vgAmazonSideASN' - The private Autonomous System Number (ASN) for the Amazon side of a BGP session.+--+-- * 'vgAvailabilityZone' - The Availability Zone where the virtual private gateway was created, if applicable. This field may be empty or not returned.+--+-- * 'vgType' - The type of VPN connection the virtual private gateway supports.+--+-- * 'vgTags' - Any tags assigned to the virtual private gateway.+vpnGateway+    :: VPNGateway+vpnGateway =+  VPNGateway'+  { _vgState = Nothing+  , _vgVPCAttachments = Nothing+  , _vgVPNGatewayId = Nothing+  , _vgAmazonSideASN = Nothing+  , _vgAvailabilityZone = Nothing+  , _vgType = Nothing+  , _vgTags = Nothing+  }+++-- | The current state of the virtual private gateway.+vgState :: Lens' VPNGateway (Maybe VPNState)+vgState = lens _vgState (\ s a -> s{_vgState = a});++-- | Any VPCs attached to the virtual private gateway.+vgVPCAttachments :: Lens' VPNGateway [VPCAttachment]+vgVPCAttachments = lens _vgVPCAttachments (\ s a -> s{_vgVPCAttachments = a}) . _Default . _Coerce;++-- | The ID of the virtual private gateway.+vgVPNGatewayId :: Lens' VPNGateway (Maybe Text)+vgVPNGatewayId = lens _vgVPNGatewayId (\ s a -> s{_vgVPNGatewayId = a});++-- | The private Autonomous System Number (ASN) for the Amazon side of a BGP session.+vgAmazonSideASN :: Lens' VPNGateway (Maybe Integer)+vgAmazonSideASN = lens _vgAmazonSideASN (\ s a -> s{_vgAmazonSideASN = a});++-- | 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)+vgAvailabilityZone = lens _vgAvailabilityZone (\ s a -> s{_vgAvailabilityZone = a});++-- | The type of VPN connection the virtual private gateway supports.+vgType :: Lens' VPNGateway (Maybe GatewayType)+vgType = lens _vgType (\ s a -> s{_vgType = a});++-- | Any tags assigned to the virtual private gateway.+vgTags :: Lens' VPNGateway [Tag]+vgTags = lens _vgTags (\ s a -> s{_vgTags = a}) . _Default . _Coerce;++instance FromXML VPNGateway where+        parseXML x+          = VPNGateway' <$>+              (x .@? "state") <*>+                (x .@? "attachments" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "vpnGatewayId")+                <*> (x .@? "amazonSideAsn")+                <*> (x .@? "availabilityZone")+                <*> (x .@? "type")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VPNGateway where++instance NFData VPNGateway where++-- | Describes a static route for a VPN connection.+--+--+--+-- /See:/ 'vpnStaticRoute' smart constructor.+data VPNStaticRoute = VPNStaticRoute'+  { _vsrState                :: !(Maybe VPNState)+  , _vsrSource               :: !(Maybe VPNStaticRouteSource)+  , _vsrDestinationCidrBlock :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPNStaticRoute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsrState' - The current state of the static route.+--+-- * 'vsrSource' - Indicates how the routes were provided.+--+-- * 'vsrDestinationCidrBlock' - The CIDR block associated with the local subnet of the customer data center.+vpnStaticRoute+    :: VPNStaticRoute+vpnStaticRoute =+  VPNStaticRoute'+  { _vsrState = Nothing+  , _vsrSource = Nothing+  , _vsrDestinationCidrBlock = Nothing+  }+++-- | The current state of the static route.+vsrState :: Lens' VPNStaticRoute (Maybe VPNState)+vsrState = lens _vsrState (\ s a -> s{_vsrState = a});++-- | Indicates how the routes were provided.+vsrSource :: Lens' VPNStaticRoute (Maybe VPNStaticRouteSource)+vsrSource = lens _vsrSource (\ s a -> s{_vsrSource = a});++-- | The CIDR block associated with the local subnet of the customer data center.+vsrDestinationCidrBlock :: Lens' VPNStaticRoute (Maybe Text)+vsrDestinationCidrBlock = lens _vsrDestinationCidrBlock (\ s a -> s{_vsrDestinationCidrBlock = a});++instance FromXML VPNStaticRoute where+        parseXML x+          = VPNStaticRoute' <$>+              (x .@? "state") <*> (x .@? "source") <*>+                (x .@? "destinationCidrBlock")++instance Hashable VPNStaticRoute where++instance NFData VPNStaticRoute where++-- | The tunnel options for a VPN connection.+--+--+--+-- /See:/ 'vpnTunnelOptionsSpecification' smart constructor.+data VPNTunnelOptionsSpecification = VPNTunnelOptionsSpecification'+  { _vtosTunnelInsideCidr :: !(Maybe Text)+  , _vtosPreSharedKey     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VPNTunnelOptionsSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtosTunnelInsideCidr' - 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 /30 CIDR block from the @169.254.0.0/16@ range. The following CIDR blocks are reserved and cannot be used:     * @169.254.0.0/30@      * @169.254.1.0/30@      * @169.254.2.0/30@      * @169.254.3.0/30@      * @169.254.4.0/30@      * @169.254.5.0/30@      * @169.254.169.252/30@+--+-- * 'vtosPreSharedKey' - 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).+vpnTunnelOptionsSpecification+    :: VPNTunnelOptionsSpecification+vpnTunnelOptionsSpecification =+  VPNTunnelOptionsSpecification'+  {_vtosTunnelInsideCidr = Nothing, _vtosPreSharedKey = Nothing}+++-- | 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 /30 CIDR block from the @169.254.0.0/16@ range. The following CIDR blocks are reserved and cannot be used:     * @169.254.0.0/30@      * @169.254.1.0/30@      * @169.254.2.0/30@      * @169.254.3.0/30@      * @169.254.4.0/30@      * @169.254.5.0/30@      * @169.254.169.252/30@+vtosTunnelInsideCidr :: Lens' VPNTunnelOptionsSpecification (Maybe Text)+vtosTunnelInsideCidr = lens _vtosTunnelInsideCidr (\ s a -> s{_vtosTunnelInsideCidr = 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).+vtosPreSharedKey :: Lens' VPNTunnelOptionsSpecification (Maybe Text)+vtosPreSharedKey = lens _vtosPreSharedKey (\ s a -> s{_vtosPreSharedKey = a});++instance Hashable VPNTunnelOptionsSpecification where++instance NFData VPNTunnelOptionsSpecification where++instance ToQuery VPNTunnelOptionsSpecification where+        toQuery VPNTunnelOptionsSpecification'{..}+          = mconcat+              ["TunnelInsideCidr" =: _vtosTunnelInsideCidr,+               "PreSharedKey" =: _vtosPreSharedKey]++-- | Describes a volume.+--+--+--+-- /See:/ 'volume' smart constructor.+data Volume = Volume'+  { _vAttachments      :: !(Maybe [VolumeAttachment])+  , _vIOPS             :: !(Maybe Int)+  , _vKMSKeyId         :: !(Maybe Text)+  , _vTags             :: !(Maybe [Tag])+  , _vAvailabilityZone :: !Text+  , _vCreateTime       :: !ISO8601+  , _vEncrypted        :: !Bool+  , _vSize             :: !Int+  , _vSnapshotId       :: !Text+  , _vState            :: !VolumeState+  , _vVolumeId         :: !Text+  , _vVolumeType       :: !VolumeType+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Volume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vAttachments' - Information about the volume attachments.+--+-- * 'vIOPS' - The number of 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/O credits for bursting. For more information on General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for @gp2@ volumes. 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.+--+-- * 'vKMSKeyId' - 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.+--+-- * 'vTags' - Any tags assigned to the volume.+--+-- * 'vAvailabilityZone' - The Availability Zone for the volume.+--+-- * 'vCreateTime' - The time stamp when volume creation was initiated.+--+-- * 'vEncrypted' - Indicates whether the volume will be encrypted.+--+-- * 'vSize' - The size of the volume, in GiBs.+--+-- * 'vSnapshotId' - The snapshot from which the volume was created, if applicable.+--+-- * 'vState' - The volume state.+--+-- * 'vVolumeId' - The ID of the volume.+--+-- * 'vVolumeType' - The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes.+volume+    :: Text -- ^ 'vAvailabilityZone'+    -> UTCTime -- ^ 'vCreateTime'+    -> Bool -- ^ 'vEncrypted'+    -> Int -- ^ 'vSize'+    -> Text -- ^ 'vSnapshotId'+    -> VolumeState -- ^ 'vState'+    -> Text -- ^ 'vVolumeId'+    -> VolumeType -- ^ 'vVolumeType'+    -> Volume+volume pAvailabilityZone_ pCreateTime_ pEncrypted_ pSize_ pSnapshotId_ pState_ pVolumeId_ pVolumeType_ =+  Volume'+  { _vAttachments = Nothing+  , _vIOPS = Nothing+  , _vKMSKeyId = Nothing+  , _vTags = Nothing+  , _vAvailabilityZone = pAvailabilityZone_+  , _vCreateTime = _Time # pCreateTime_+  , _vEncrypted = pEncrypted_+  , _vSize = pSize_+  , _vSnapshotId = pSnapshotId_+  , _vState = pState_+  , _vVolumeId = pVolumeId_+  , _vVolumeType = pVolumeType_+  }+++-- | Information about the volume attachments.+vAttachments :: Lens' Volume [VolumeAttachment]+vAttachments = lens _vAttachments (\ s a -> s{_vAttachments = a}) . _Default . _Coerce;++-- | The number of 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/O credits for bursting. For more information on General Purpose SSD baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBS Volume Types> in the /Amazon Elastic Compute Cloud User Guide/ . Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for @gp2@ volumes. 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.+vIOPS :: Lens' Volume (Maybe Int)+vIOPS = lens _vIOPS (\ s a -> s{_vIOPS = 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.+vKMSKeyId :: Lens' Volume (Maybe Text)+vKMSKeyId = lens _vKMSKeyId (\ s a -> s{_vKMSKeyId = a});++-- | Any tags assigned to the volume.+vTags :: Lens' Volume [Tag]+vTags = lens _vTags (\ s a -> s{_vTags = a}) . _Default . _Coerce;++-- | The Availability Zone for the volume.+vAvailabilityZone :: Lens' Volume Text+vAvailabilityZone = lens _vAvailabilityZone (\ s a -> s{_vAvailabilityZone = a});++-- | The time stamp when volume creation was initiated.+vCreateTime :: Lens' Volume UTCTime+vCreateTime = lens _vCreateTime (\ s a -> s{_vCreateTime = a}) . _Time;++-- | Indicates whether the volume will be encrypted.+vEncrypted :: Lens' Volume Bool+vEncrypted = lens _vEncrypted (\ s a -> s{_vEncrypted = a});++-- | The size of the volume, in GiBs.+vSize :: Lens' Volume Int+vSize = lens _vSize (\ s a -> s{_vSize = a});++-- | The snapshot from which the volume was created, if applicable.+vSnapshotId :: Lens' Volume Text+vSnapshotId = lens _vSnapshotId (\ s a -> s{_vSnapshotId = a});++-- | The volume state.+vState :: Lens' Volume VolumeState+vState = lens _vState (\ s a -> s{_vState = a});++-- | The ID of the volume.+vVolumeId :: Lens' Volume Text+vVolumeId = lens _vVolumeId (\ s a -> s{_vVolumeId = a});++-- | The volume type. This can be @gp2@ for General Purpose SSD, @io1@ for Provisioned IOPS SSD, @st1@ for Throughput Optimized HDD, @sc1@ for Cold HDD, or @standard@ for Magnetic volumes.+vVolumeType :: Lens' Volume VolumeType+vVolumeType = lens _vVolumeType (\ s a -> s{_vVolumeType = a});++instance FromXML Volume where+        parseXML x+          = Volume' <$>+              (x .@? "attachmentSet" .!@ mempty >>=+                 may (parseXMLList "item"))+                <*> (x .@? "iops")+                <*> (x .@? "kmsKeyId")+                <*>+                (x .@? "tagSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@ "availabilityZone")+                <*> (x .@ "createTime")+                <*> (x .@ "encrypted")+                <*> (x .@ "size")+                <*> (x .@ "snapshotId")+                <*> (x .@ "status")+                <*> (x .@ "volumeId")+                <*> (x .@ "volumeType")++instance Hashable Volume where++instance NFData Volume where++-- | Describes volume attachment details.+--+--+--+-- /See:/ 'volumeAttachment' smart constructor.+data VolumeAttachment = VolumeAttachment'+  { _volInstanceId          :: !(Maybe Text)+  , _volDeleteOnTermination :: !(Maybe Bool)+  , _volState               :: !(Maybe VolumeAttachmentState)+  , _volDevice              :: !(Maybe Text)+  , _volVolumeId            :: !(Maybe Text)+  , _volAttachTime          :: !(Maybe ISO8601)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'volInstanceId' - The ID of the instance.+--+-- * 'volDeleteOnTermination' - Indicates whether the EBS volume is deleted on instance termination.+--+-- * 'volState' - The attachment state of the volume.+--+-- * 'volDevice' - The device name.+--+-- * 'volVolumeId' - The ID of the volume.+--+-- * 'volAttachTime' - The time stamp when the attachment initiated.+volumeAttachment+    :: VolumeAttachment+volumeAttachment =+  VolumeAttachment'+  { _volInstanceId = Nothing+  , _volDeleteOnTermination = Nothing+  , _volState = Nothing+  , _volDevice = Nothing+  , _volVolumeId = Nothing+  , _volAttachTime = Nothing+  }+++-- | The ID of the instance.+volInstanceId :: Lens' VolumeAttachment (Maybe Text)+volInstanceId = lens _volInstanceId (\ s a -> s{_volInstanceId = a});++-- | Indicates whether the EBS volume is deleted on instance termination.+volDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)+volDeleteOnTermination = lens _volDeleteOnTermination (\ s a -> s{_volDeleteOnTermination = a});++-- | The attachment state of the volume.+volState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)+volState = lens _volState (\ s a -> s{_volState = a});++-- | The device name.+volDevice :: Lens' VolumeAttachment (Maybe Text)+volDevice = lens _volDevice (\ s a -> s{_volDevice = a});++-- | The ID of the volume.+volVolumeId :: Lens' VolumeAttachment (Maybe Text)+volVolumeId = lens _volVolumeId (\ s a -> s{_volVolumeId = a});++-- | The time stamp when the attachment initiated.+volAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)+volAttachTime = lens _volAttachTime (\ s a -> s{_volAttachTime = a}) . mapping _Time;++instance FromXML VolumeAttachment where+        parseXML x+          = VolumeAttachment' <$>+              (x .@? "instanceId") <*>+                (x .@? "deleteOnTermination")+                <*> (x .@? "status")+                <*> (x .@? "device")+                <*> (x .@? "volumeId")+                <*> (x .@? "attachTime")++instance Hashable VolumeAttachment where++instance NFData VolumeAttachment where++-- | Describes an EBS volume.+--+--+--+-- /See:/ 'volumeDetail' smart constructor.+newtype VolumeDetail = VolumeDetail'+  { _vdSize :: Integer+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vdSize' - The size of the volume, in GiB.+volumeDetail+    :: Integer -- ^ 'vdSize'+    -> VolumeDetail+volumeDetail pSize_ = VolumeDetail' {_vdSize = pSize_}+++-- | The size of the volume, in GiB.+vdSize :: Lens' VolumeDetail Integer+vdSize = lens _vdSize (\ s a -> s{_vdSize = a});++instance Hashable VolumeDetail where++instance NFData VolumeDetail where++instance ToQuery VolumeDetail where+        toQuery VolumeDetail'{..}+          = mconcat ["Size" =: _vdSize]++-- | Describes the modification status of an EBS volume.+--+--+-- If the volume has never been modified, some element values will be null.+--+--+-- /See:/ 'volumeModification' smart constructor.+data VolumeModification = VolumeModification'+  { _vmProgress           :: !(Maybe Integer)+  , _vmStartTime          :: !(Maybe ISO8601)+  , _vmModificationState  :: !(Maybe VolumeModificationState)+  , _vmTargetVolumeType   :: !(Maybe VolumeType)+  , _vmOriginalVolumeType :: !(Maybe VolumeType)+  , _vmTargetSize         :: !(Maybe Int)+  , _vmTargetIOPS         :: !(Maybe Int)+  , _vmOriginalSize       :: !(Maybe Int)+  , _vmOriginalIOPS       :: !(Maybe Int)+  , _vmStatusMessage      :: !(Maybe Text)+  , _vmEndTime            :: !(Maybe ISO8601)+  , _vmVolumeId           :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeModification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vmProgress' - Modification progress from 0 to 100%.+--+-- * 'vmStartTime' - Modification start time+--+-- * 'vmModificationState' - Current state of modification. Modification state is null for unmodified volumes.+--+-- * 'vmTargetVolumeType' - Target EBS volume type of the volume being modified.+--+-- * 'vmOriginalVolumeType' - Original EBS volume type of the volume being modified.+--+-- * 'vmTargetSize' - Target size of the volume being modified.+--+-- * 'vmTargetIOPS' - Target IOPS rate of the volume being modified.+--+-- * 'vmOriginalSize' - Original size of the volume being modified.+--+-- * 'vmOriginalIOPS' - Original IOPS rate of the volume being modified.+--+-- * 'vmStatusMessage' - Generic status message on modification progress or failure.+--+-- * 'vmEndTime' - Modification completion or failure time.+--+-- * 'vmVolumeId' - ID of the volume being modified.+volumeModification+    :: VolumeModification+volumeModification =+  VolumeModification'+  { _vmProgress = Nothing+  , _vmStartTime = Nothing+  , _vmModificationState = Nothing+  , _vmTargetVolumeType = Nothing+  , _vmOriginalVolumeType = Nothing+  , _vmTargetSize = Nothing+  , _vmTargetIOPS = Nothing+  , _vmOriginalSize = Nothing+  , _vmOriginalIOPS = Nothing+  , _vmStatusMessage = Nothing+  , _vmEndTime = Nothing+  , _vmVolumeId = Nothing+  }+++-- | Modification progress from 0 to 100%.+vmProgress :: Lens' VolumeModification (Maybe Integer)+vmProgress = lens _vmProgress (\ s a -> s{_vmProgress = a});++-- | Modification start time+vmStartTime :: Lens' VolumeModification (Maybe UTCTime)+vmStartTime = lens _vmStartTime (\ s a -> s{_vmStartTime = a}) . mapping _Time;++-- | Current state of modification. Modification state is null for unmodified volumes.+vmModificationState :: Lens' VolumeModification (Maybe VolumeModificationState)+vmModificationState = lens _vmModificationState (\ s a -> s{_vmModificationState = a});++-- | Target EBS volume type of the volume being modified.+vmTargetVolumeType :: Lens' VolumeModification (Maybe VolumeType)+vmTargetVolumeType = lens _vmTargetVolumeType (\ s a -> s{_vmTargetVolumeType = a});++-- | Original EBS volume type of the volume being modified.+vmOriginalVolumeType :: Lens' VolumeModification (Maybe VolumeType)+vmOriginalVolumeType = lens _vmOriginalVolumeType (\ s a -> s{_vmOriginalVolumeType = a});++-- | Target size of the volume being modified.+vmTargetSize :: Lens' VolumeModification (Maybe Int)+vmTargetSize = lens _vmTargetSize (\ s a -> s{_vmTargetSize = a});++-- | Target IOPS rate of the volume being modified.+vmTargetIOPS :: Lens' VolumeModification (Maybe Int)+vmTargetIOPS = lens _vmTargetIOPS (\ s a -> s{_vmTargetIOPS = a});++-- | Original size of the volume being modified.+vmOriginalSize :: Lens' VolumeModification (Maybe Int)+vmOriginalSize = lens _vmOriginalSize (\ s a -> s{_vmOriginalSize = a});++-- | Original IOPS rate of the volume being modified.+vmOriginalIOPS :: Lens' VolumeModification (Maybe Int)+vmOriginalIOPS = lens _vmOriginalIOPS (\ s a -> s{_vmOriginalIOPS = a});++-- | Generic status message on modification progress or failure.+vmStatusMessage :: Lens' VolumeModification (Maybe Text)+vmStatusMessage = lens _vmStatusMessage (\ s a -> s{_vmStatusMessage = a});++-- | Modification completion or failure time.+vmEndTime :: Lens' VolumeModification (Maybe UTCTime)+vmEndTime = lens _vmEndTime (\ s a -> s{_vmEndTime = a}) . mapping _Time;++-- | ID of the volume being modified.+vmVolumeId :: Lens' VolumeModification (Maybe Text)+vmVolumeId = lens _vmVolumeId (\ s a -> s{_vmVolumeId = a});++instance FromXML VolumeModification where+        parseXML x+          = VolumeModification' <$>+              (x .@? "progress") <*> (x .@? "startTime") <*>+                (x .@? "modificationState")+                <*> (x .@? "targetVolumeType")+                <*> (x .@? "originalVolumeType")+                <*> (x .@? "targetSize")+                <*> (x .@? "targetIops")+                <*> (x .@? "originalSize")+                <*> (x .@? "originalIops")+                <*> (x .@? "statusMessage")+                <*> (x .@? "endTime")+                <*> (x .@? "volumeId")++instance Hashable VolumeModification where++instance NFData VolumeModification where++-- | Describes a volume status operation code.+--+--+--+-- /See:/ 'volumeStatusAction' smart constructor.+data VolumeStatusAction = VolumeStatusAction'+  { _vsaEventType   :: !(Maybe Text)+  , _vsaCode        :: !(Maybe Text)+  , _vsaDescription :: !(Maybe Text)+  , _vsaEventId     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeStatusAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsaEventType' - The event type associated with this operation.+--+-- * 'vsaCode' - The code identifying the operation, for example, @enable-volume-io@ .+--+-- * 'vsaDescription' - A description of the operation.+--+-- * 'vsaEventId' - The ID of the event associated with this operation.+volumeStatusAction+    :: VolumeStatusAction+volumeStatusAction =+  VolumeStatusAction'+  { _vsaEventType = Nothing+  , _vsaCode = Nothing+  , _vsaDescription = Nothing+  , _vsaEventId = Nothing+  }+++-- | The event type associated with this operation.+vsaEventType :: Lens' VolumeStatusAction (Maybe Text)+vsaEventType = lens _vsaEventType (\ s a -> s{_vsaEventType = a});++-- | The code identifying the operation, for example, @enable-volume-io@ .+vsaCode :: Lens' VolumeStatusAction (Maybe Text)+vsaCode = lens _vsaCode (\ s a -> s{_vsaCode = a});++-- | A description of the operation.+vsaDescription :: Lens' VolumeStatusAction (Maybe Text)+vsaDescription = lens _vsaDescription (\ s a -> s{_vsaDescription = a});++-- | The ID of the event associated with this operation.+vsaEventId :: Lens' VolumeStatusAction (Maybe Text)+vsaEventId = lens _vsaEventId (\ s a -> s{_vsaEventId = a});++instance FromXML VolumeStatusAction where+        parseXML x+          = VolumeStatusAction' <$>+              (x .@? "eventType") <*> (x .@? "code") <*>+                (x .@? "description")+                <*> (x .@? "eventId")++instance Hashable VolumeStatusAction where++instance NFData VolumeStatusAction where++-- | Describes a volume status.+--+--+--+-- /See:/ 'volumeStatusDetails' smart constructor.+data VolumeStatusDetails = VolumeStatusDetails'+  { _vsdStatus :: !(Maybe Text)+  , _vsdName   :: !(Maybe VolumeStatusName)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeStatusDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsdStatus' - The intended status of the volume status.+--+-- * 'vsdName' - The name of the volume status.+volumeStatusDetails+    :: VolumeStatusDetails+volumeStatusDetails =+  VolumeStatusDetails' {_vsdStatus = Nothing, _vsdName = Nothing}+++-- | The intended status of the volume status.+vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)+vsdStatus = lens _vsdStatus (\ s a -> s{_vsdStatus = a});++-- | The name of the volume status.+vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)+vsdName = lens _vsdName (\ s a -> s{_vsdName = a});++instance FromXML VolumeStatusDetails where+        parseXML x+          = VolumeStatusDetails' <$>+              (x .@? "status") <*> (x .@? "name")++instance Hashable VolumeStatusDetails where++instance NFData VolumeStatusDetails where++-- | Describes a volume status event.+--+--+--+-- /See:/ 'volumeStatusEvent' smart constructor.+data VolumeStatusEvent = VolumeStatusEvent'+  { _vseNotBefore   :: !(Maybe ISO8601)+  , _vseEventType   :: !(Maybe Text)+  , _vseDescription :: !(Maybe Text)+  , _vseNotAfter    :: !(Maybe ISO8601)+  , _vseEventId     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeStatusEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vseNotBefore' - The earliest start time of the event.+--+-- * 'vseEventType' - The type of this event.+--+-- * 'vseDescription' - A description of the event.+--+-- * 'vseNotAfter' - The latest end time of the event.+--+-- * 'vseEventId' - The ID of this event.+volumeStatusEvent+    :: VolumeStatusEvent+volumeStatusEvent =+  VolumeStatusEvent'+  { _vseNotBefore = Nothing+  , _vseEventType = Nothing+  , _vseDescription = Nothing+  , _vseNotAfter = Nothing+  , _vseEventId = Nothing+  }+++-- | The earliest start time of the event.+vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)+vseNotBefore = lens _vseNotBefore (\ s a -> s{_vseNotBefore = a}) . mapping _Time;++-- | The type of this event.+vseEventType :: Lens' VolumeStatusEvent (Maybe Text)+vseEventType = lens _vseEventType (\ s a -> s{_vseEventType = a});++-- | A description of the event.+vseDescription :: Lens' VolumeStatusEvent (Maybe Text)+vseDescription = lens _vseDescription (\ s a -> s{_vseDescription = a});++-- | The latest end time of the event.+vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)+vseNotAfter = lens _vseNotAfter (\ s a -> s{_vseNotAfter = a}) . mapping _Time;++-- | The ID of this event.+vseEventId :: Lens' VolumeStatusEvent (Maybe Text)+vseEventId = lens _vseEventId (\ s a -> s{_vseEventId = a});++instance FromXML VolumeStatusEvent where+        parseXML x+          = VolumeStatusEvent' <$>+              (x .@? "notBefore") <*> (x .@? "eventType") <*>+                (x .@? "description")+                <*> (x .@? "notAfter")+                <*> (x .@? "eventId")++instance Hashable VolumeStatusEvent where++instance NFData VolumeStatusEvent where++-- | Describes the status of a volume.+--+--+--+-- /See:/ 'volumeStatusInfo' smart constructor.+data VolumeStatusInfo = VolumeStatusInfo'+  { _vsiStatus  :: !(Maybe VolumeStatusInfoStatus)+  , _vsiDetails :: !(Maybe [VolumeStatusDetails])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeStatusInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsiStatus' - The status of the volume.+--+-- * 'vsiDetails' - The details of the volume status.+volumeStatusInfo+    :: VolumeStatusInfo+volumeStatusInfo =+  VolumeStatusInfo' {_vsiStatus = Nothing, _vsiDetails = Nothing}+++-- | The status of the volume.+vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)+vsiStatus = lens _vsiStatus (\ s a -> s{_vsiStatus = a});++-- | The details of the volume status.+vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]+vsiDetails = lens _vsiDetails (\ s a -> s{_vsiDetails = a}) . _Default . _Coerce;++instance FromXML VolumeStatusInfo where+        parseXML x+          = VolumeStatusInfo' <$>+              (x .@? "status") <*>+                (x .@? "details" .!@ mempty >>=+                   may (parseXMLList "item"))++instance Hashable VolumeStatusInfo where++instance NFData VolumeStatusInfo where++-- | Describes the volume status.+--+--+--+-- /See:/ 'volumeStatusItem' smart constructor.+data VolumeStatusItem = VolumeStatusItem'+  { _vsiVolumeStatus     :: !(Maybe VolumeStatusInfo)+  , _vsiActions          :: !(Maybe [VolumeStatusAction])+  , _vsiEvents           :: !(Maybe [VolumeStatusEvent])+  , _vsiAvailabilityZone :: !(Maybe Text)+  , _vsiVolumeId         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeStatusItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsiVolumeStatus' - The volume status.+--+-- * 'vsiActions' - The details of the operation.+--+-- * 'vsiEvents' - A list of events associated with the volume.+--+-- * 'vsiAvailabilityZone' - The Availability Zone of the volume.+--+-- * 'vsiVolumeId' - The volume ID.+volumeStatusItem+    :: VolumeStatusItem+volumeStatusItem =+  VolumeStatusItem'+  { _vsiVolumeStatus = Nothing+  , _vsiActions = Nothing+  , _vsiEvents = Nothing+  , _vsiAvailabilityZone = Nothing+  , _vsiVolumeId = Nothing+  }+++-- | The volume status.+vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)+vsiVolumeStatus = lens _vsiVolumeStatus (\ s a -> s{_vsiVolumeStatus = a});++-- | The details of the operation.+vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]+vsiActions = lens _vsiActions (\ s a -> s{_vsiActions = a}) . _Default . _Coerce;++-- | A list of events associated with the volume.+vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]+vsiEvents = lens _vsiEvents (\ s a -> s{_vsiEvents = a}) . _Default . _Coerce;++-- | The Availability Zone of the volume.+vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)+vsiAvailabilityZone = lens _vsiAvailabilityZone (\ s a -> s{_vsiAvailabilityZone = a});++-- | The volume ID.+vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)+vsiVolumeId = lens _vsiVolumeId (\ s a -> s{_vsiVolumeId = a});++instance FromXML VolumeStatusItem where+        parseXML x+          = VolumeStatusItem' <$>+              (x .@? "volumeStatus") <*>+                (x .@? "actionsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*>+                (x .@? "eventsSet" .!@ mempty >>=+                   may (parseXMLList "item"))+                <*> (x .@? "availabilityZone")+                <*> (x .@? "volumeId")++instance Hashable VolumeStatusItem where++instance NFData VolumeStatusItem where
gen/Network/AWS/EC2/Types/Sum.hs view
@@ -9,3024 +9,3601 @@  -- | -- Module      : Network.AWS.EC2.Types.Sum--- Copyright   : (c) 2013-2016 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.EC2.Types.Sum where--import           Network.AWS.EC2.Internal-import           Network.AWS.Prelude--data AccountAttributeName-    = DefaultVPC-    | SupportedPlatforms-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AccountAttributeName where-    parser = takeLowerText >>= \case-        "default-vpc" -> pure DefaultVPC-        "supported-platforms" -> pure SupportedPlatforms-        e -> fromTextError $ "Failure parsing AccountAttributeName from value: '" <> e-           <> "'. Accepted values: default-vpc, supported-platforms"--instance ToText AccountAttributeName where-    toText = \case-        DefaultVPC -> "default-vpc"-        SupportedPlatforms -> "supported-platforms"--instance Hashable     AccountAttributeName-instance NFData       AccountAttributeName-instance ToByteString AccountAttributeName-instance ToQuery      AccountAttributeName-instance ToHeader     AccountAttributeName--data ActivityStatus-    = Error'-    | Fulfilled-    | PendingFulfillment-    | PendingTermination-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ActivityStatus where-    parser = takeLowerText >>= \case-        "error" -> pure Error'-        "fulfilled" -> pure Fulfilled-        "pending_fulfillment" -> pure PendingFulfillment-        "pending_termination" -> pure PendingTermination-        e -> fromTextError $ "Failure parsing ActivityStatus from value: '" <> e-           <> "'. Accepted values: error, fulfilled, pending_fulfillment, pending_termination"--instance ToText ActivityStatus where-    toText = \case-        Error' -> "error"-        Fulfilled -> "fulfilled"-        PendingFulfillment -> "pending_fulfillment"-        PendingTermination -> "pending_termination"--instance Hashable     ActivityStatus-instance NFData       ActivityStatus-instance ToByteString ActivityStatus-instance ToQuery      ActivityStatus-instance ToHeader     ActivityStatus--instance FromXML ActivityStatus where-    parseXML = parseXMLText "ActivityStatus"--data AddressStatus-    = InClassic-    | InVPC-    | MoveInProgress-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AddressStatus where-    parser = takeLowerText >>= \case-        "inclassic" -> pure InClassic-        "invpc" -> pure InVPC-        "moveinprogress" -> pure MoveInProgress-        e -> fromTextError $ "Failure parsing AddressStatus from value: '" <> e-           <> "'. Accepted values: inclassic, invpc, moveinprogress"--instance ToText AddressStatus where-    toText = \case-        InClassic -> "InClassic"-        InVPC -> "InVpc"-        MoveInProgress -> "MoveInProgress"--instance Hashable     AddressStatus-instance NFData       AddressStatus-instance ToByteString AddressStatus-instance ToQuery      AddressStatus-instance ToHeader     AddressStatus--instance FromXML AddressStatus where-    parseXML = parseXMLText "AddressStatus"--data Affinity-    = ADefault-    | AHost-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText Affinity where-    parser = takeLowerText >>= \case-        "default" -> pure ADefault-        "host" -> pure AHost-        e -> fromTextError $ "Failure parsing Affinity from value: '" <> e-           <> "'. Accepted values: default, host"--instance ToText Affinity where-    toText = \case-        ADefault -> "default"-        AHost -> "host"--instance Hashable     Affinity-instance NFData       Affinity-instance ToByteString Affinity-instance ToQuery      Affinity-instance ToHeader     Affinity--data AllocationState-    = ASAvailable-    | ASPermanentFailure-    | ASReleased-    | ASReleasedPermanentFailure-    | ASUnderAssessment-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AllocationState where-    parser = takeLowerText >>= \case-        "available" -> pure ASAvailable-        "permanent-failure" -> pure ASPermanentFailure-        "released" -> pure ASReleased-        "released-permanent-failure" -> pure ASReleasedPermanentFailure-        "under-assessment" -> pure ASUnderAssessment-        e -> fromTextError $ "Failure parsing AllocationState from value: '" <> e-           <> "'. Accepted values: available, permanent-failure, released, released-permanent-failure, under-assessment"--instance ToText AllocationState where-    toText = \case-        ASAvailable -> "available"-        ASPermanentFailure -> "permanent-failure"-        ASReleased -> "released"-        ASReleasedPermanentFailure -> "released-permanent-failure"-        ASUnderAssessment -> "under-assessment"--instance Hashable     AllocationState-instance NFData       AllocationState-instance ToByteString AllocationState-instance ToQuery      AllocationState-instance ToHeader     AllocationState--instance FromXML AllocationState where-    parseXML = parseXMLText "AllocationState"--data AllocationStrategy-    = Diversified-    | LowestPrice-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AllocationStrategy where-    parser = takeLowerText >>= \case-        "diversified" -> pure Diversified-        "lowestprice" -> pure LowestPrice-        e -> fromTextError $ "Failure parsing AllocationStrategy from value: '" <> e-           <> "'. Accepted values: diversified, lowestprice"--instance ToText AllocationStrategy where-    toText = \case-        Diversified -> "diversified"-        LowestPrice -> "lowestPrice"--instance Hashable     AllocationStrategy-instance NFData       AllocationStrategy-instance ToByteString AllocationStrategy-instance ToQuery      AllocationStrategy-instance ToHeader     AllocationStrategy--instance FromXML AllocationStrategy where-    parseXML = parseXMLText "AllocationStrategy"--data ArchitectureValues-    = I386-    | X86_64-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ArchitectureValues where-    parser = takeLowerText >>= \case-        "i386" -> pure I386-        "x86_64" -> pure X86_64-        e -> fromTextError $ "Failure parsing ArchitectureValues from value: '" <> e-           <> "'. Accepted values: i386, x86_64"--instance ToText ArchitectureValues where-    toText = \case-        I386 -> "i386"-        X86_64 -> "x86_64"--instance Hashable     ArchitectureValues-instance NFData       ArchitectureValues-instance ToByteString ArchitectureValues-instance ToQuery      ArchitectureValues-instance ToHeader     ArchitectureValues--instance FromXML ArchitectureValues where-    parseXML = parseXMLText "ArchitectureValues"--data AttachmentStatus-    = AAttached-    | AAttaching-    | AAvailable-    | ABusy-    | ADetached-    | ADetaching-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AttachmentStatus where-    parser = takeLowerText >>= \case-        "attached" -> pure AAttached-        "attaching" -> pure AAttaching-        "available" -> pure AAvailable-        "busy" -> pure ABusy-        "detached" -> pure ADetached-        "detaching" -> pure ADetaching-        e -> fromTextError $ "Failure parsing AttachmentStatus from value: '" <> e-           <> "'. Accepted values: attached, attaching, available, busy, detached, detaching"--instance ToText AttachmentStatus where-    toText = \case-        AAttached -> "attached"-        AAttaching -> "attaching"-        AAvailable -> "available"-        ABusy -> "busy"-        ADetached -> "detached"-        ADetaching -> "detaching"--instance Hashable     AttachmentStatus-instance NFData       AttachmentStatus-instance ToByteString AttachmentStatus-instance ToQuery      AttachmentStatus-instance ToHeader     AttachmentStatus--instance FromXML AttachmentStatus where-    parseXML = parseXMLText "AttachmentStatus"--data AutoPlacement-    = ON-    | Off-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AutoPlacement where-    parser = takeLowerText >>= \case-        "on" -> pure ON-        "off" -> pure Off-        e -> fromTextError $ "Failure parsing AutoPlacement from value: '" <> e-           <> "'. Accepted values: on, off"--instance ToText AutoPlacement where-    toText = \case-        ON -> "on"-        Off -> "off"--instance Hashable     AutoPlacement-instance NFData       AutoPlacement-instance ToByteString AutoPlacement-instance ToQuery      AutoPlacement-instance ToHeader     AutoPlacement--instance FromXML AutoPlacement where-    parseXML = parseXMLText "AutoPlacement"--data AvailabilityZoneState-    = AZSAvailable-    | AZSImpaired-    | AZSInformation-    | AZSUnavailable-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText AvailabilityZoneState where-    parser = takeLowerText >>= \case-        "available" -> pure AZSAvailable-        "impaired" -> pure AZSImpaired-        "information" -> pure AZSInformation-        "unavailable" -> pure AZSUnavailable-        e -> fromTextError $ "Failure parsing AvailabilityZoneState from value: '" <> e-           <> "'. Accepted values: available, impaired, information, unavailable"--instance ToText AvailabilityZoneState where-    toText = \case-        AZSAvailable -> "available"-        AZSImpaired -> "impaired"-        AZSInformation -> "information"-        AZSUnavailable -> "unavailable"--instance Hashable     AvailabilityZoneState-instance NFData       AvailabilityZoneState-instance ToByteString AvailabilityZoneState-instance ToQuery      AvailabilityZoneState-instance ToHeader     AvailabilityZoneState--instance FromXML AvailabilityZoneState where-    parseXML = parseXMLText "AvailabilityZoneState"--data BatchState-    = BSActive-    | BSCancelled-    | BSCancelledRunning-    | BSCancelledTerminating-    | BSFailed-    | BSModifying-    | BSSubmitted-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText BatchState where-    parser = takeLowerText >>= \case-        "active" -> pure BSActive-        "cancelled" -> pure BSCancelled-        "cancelled_running" -> pure BSCancelledRunning-        "cancelled_terminating" -> pure BSCancelledTerminating-        "failed" -> pure BSFailed-        "modifying" -> pure BSModifying-        "submitted" -> pure BSSubmitted-        e -> fromTextError $ "Failure parsing BatchState from value: '" <> e-           <> "'. Accepted values: active, cancelled, cancelled_running, cancelled_terminating, failed, modifying, submitted"--instance ToText BatchState where-    toText = \case-        BSActive -> "active"-        BSCancelled -> "cancelled"-        BSCancelledRunning -> "cancelled_running"-        BSCancelledTerminating -> "cancelled_terminating"-        BSFailed -> "failed"-        BSModifying -> "modifying"-        BSSubmitted -> "submitted"--instance Hashable     BatchState-instance NFData       BatchState-instance ToByteString BatchState-instance ToQuery      BatchState-instance ToHeader     BatchState--instance FromXML BatchState where-    parseXML = parseXMLText "BatchState"--data BundleTaskState-    = BTSBundling-    | BTSCancelling-    | BTSComplete-    | BTSFailed-    | BTSPending-    | BTSStoring-    | BTSWaitingForShutdown-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText BundleTaskState where-    parser = takeLowerText >>= \case-        "bundling" -> pure BTSBundling-        "cancelling" -> pure BTSCancelling-        "complete" -> pure BTSComplete-        "failed" -> pure BTSFailed-        "pending" -> pure BTSPending-        "storing" -> pure BTSStoring-        "waiting-for-shutdown" -> pure BTSWaitingForShutdown-        e -> fromTextError $ "Failure parsing BundleTaskState from value: '" <> e-           <> "'. Accepted values: bundling, cancelling, complete, failed, pending, storing, waiting-for-shutdown"--instance ToText BundleTaskState where-    toText = \case-        BTSBundling -> "bundling"-        BTSCancelling -> "cancelling"-        BTSComplete -> "complete"-        BTSFailed -> "failed"-        BTSPending -> "pending"-        BTSStoring -> "storing"-        BTSWaitingForShutdown -> "waiting-for-shutdown"--instance Hashable     BundleTaskState-instance NFData       BundleTaskState-instance ToByteString BundleTaskState-instance ToQuery      BundleTaskState-instance ToHeader     BundleTaskState--instance FromXML BundleTaskState where-    parseXML = parseXMLText "BundleTaskState"--data CancelBatchErrorCode-    = FleetRequestIdDoesNotExist-    | FleetRequestIdMalformed-    | FleetRequestNotInCancellableState-    | UnexpectedError-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText CancelBatchErrorCode where-    parser = takeLowerText >>= \case-        "fleetrequestiddoesnotexist" -> pure FleetRequestIdDoesNotExist-        "fleetrequestidmalformed" -> pure FleetRequestIdMalformed-        "fleetrequestnotincancellablestate" -> pure FleetRequestNotInCancellableState-        "unexpectederror" -> pure UnexpectedError-        e -> fromTextError $ "Failure parsing CancelBatchErrorCode from value: '" <> e-           <> "'. Accepted values: fleetrequestiddoesnotexist, fleetrequestidmalformed, fleetrequestnotincancellablestate, unexpectederror"--instance ToText CancelBatchErrorCode where-    toText = \case-        FleetRequestIdDoesNotExist -> "fleetRequestIdDoesNotExist"-        FleetRequestIdMalformed -> "fleetRequestIdMalformed"-        FleetRequestNotInCancellableState -> "fleetRequestNotInCancellableState"-        UnexpectedError -> "unexpectedError"--instance Hashable     CancelBatchErrorCode-instance NFData       CancelBatchErrorCode-instance ToByteString CancelBatchErrorCode-instance ToQuery      CancelBatchErrorCode-instance ToHeader     CancelBatchErrorCode--instance FromXML CancelBatchErrorCode where-    parseXML = parseXMLText "CancelBatchErrorCode"--data CancelSpotInstanceRequestState-    = CSIRSActive-    | CSIRSCancelled-    | CSIRSClosed-    | CSIRSCompleted-    | CSIRSOpen-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText CancelSpotInstanceRequestState where-    parser = takeLowerText >>= \case-        "active" -> pure CSIRSActive-        "cancelled" -> pure CSIRSCancelled-        "closed" -> pure CSIRSClosed-        "completed" -> pure CSIRSCompleted-        "open" -> pure CSIRSOpen-        e -> fromTextError $ "Failure parsing CancelSpotInstanceRequestState from value: '" <> e-           <> "'. Accepted values: active, cancelled, closed, completed, open"--instance ToText CancelSpotInstanceRequestState where-    toText = \case-        CSIRSActive -> "active"-        CSIRSCancelled -> "cancelled"-        CSIRSClosed -> "closed"-        CSIRSCompleted -> "completed"-        CSIRSOpen -> "open"--instance Hashable     CancelSpotInstanceRequestState-instance NFData       CancelSpotInstanceRequestState-instance ToByteString CancelSpotInstanceRequestState-instance ToQuery      CancelSpotInstanceRequestState-instance ToHeader     CancelSpotInstanceRequestState--instance FromXML CancelSpotInstanceRequestState where-    parseXML = parseXMLText "CancelSpotInstanceRequestState"--data ContainerFormat =-    Ova-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ContainerFormat where-    parser = takeLowerText >>= \case-        "ova" -> pure Ova-        e -> fromTextError $ "Failure parsing ContainerFormat from value: '" <> e-           <> "'. Accepted values: ova"--instance ToText ContainerFormat where-    toText = \case-        Ova -> "ova"--instance Hashable     ContainerFormat-instance NFData       ContainerFormat-instance ToByteString ContainerFormat-instance ToQuery      ContainerFormat-instance ToHeader     ContainerFormat--instance FromXML ContainerFormat where-    parseXML = parseXMLText "ContainerFormat"--data ConversionTaskState-    = CTSActive-    | CTSCancelled-    | CTSCancelling-    | CTSCompleted-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ConversionTaskState where-    parser = takeLowerText >>= \case-        "active" -> pure CTSActive-        "cancelled" -> pure CTSCancelled-        "cancelling" -> pure CTSCancelling-        "completed" -> pure CTSCompleted-        e -> fromTextError $ "Failure parsing ConversionTaskState from value: '" <> e-           <> "'. Accepted values: active, cancelled, cancelling, completed"--instance ToText ConversionTaskState where-    toText = \case-        CTSActive -> "active"-        CTSCancelled -> "cancelled"-        CTSCancelling -> "cancelling"-        CTSCompleted -> "completed"--instance Hashable     ConversionTaskState-instance NFData       ConversionTaskState-instance ToByteString ConversionTaskState-instance ToQuery      ConversionTaskState-instance ToHeader     ConversionTaskState--instance FromXML ConversionTaskState where-    parseXML = parseXMLText "ConversionTaskState"--data CurrencyCodeValues =-    Usd-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText CurrencyCodeValues where-    parser = takeLowerText >>= \case-        "usd" -> pure Usd-        e -> fromTextError $ "Failure parsing CurrencyCodeValues from value: '" <> e-           <> "'. Accepted values: usd"--instance ToText CurrencyCodeValues where-    toText = \case-        Usd -> "USD"--instance Hashable     CurrencyCodeValues-instance NFData       CurrencyCodeValues-instance ToByteString CurrencyCodeValues-instance ToQuery      CurrencyCodeValues-instance ToHeader     CurrencyCodeValues--instance FromXML CurrencyCodeValues where-    parseXML = parseXMLText "CurrencyCodeValues"--data DatafeedSubscriptionState-    = DSSActive-    | DSSInactive-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText DatafeedSubscriptionState where-    parser = takeLowerText >>= \case-        "active" -> pure DSSActive-        "inactive" -> pure DSSInactive-        e -> fromTextError $ "Failure parsing DatafeedSubscriptionState from value: '" <> e-           <> "'. Accepted values: active, inactive"--instance ToText DatafeedSubscriptionState where-    toText = \case-        DSSActive -> "Active"-        DSSInactive -> "Inactive"--instance Hashable     DatafeedSubscriptionState-instance NFData       DatafeedSubscriptionState-instance ToByteString DatafeedSubscriptionState-instance ToQuery      DatafeedSubscriptionState-instance ToHeader     DatafeedSubscriptionState--instance FromXML DatafeedSubscriptionState where-    parseXML = parseXMLText "DatafeedSubscriptionState"--data DeviceType-    = EBS-    | InstanceStore-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText DeviceType where-    parser = takeLowerText >>= \case-        "ebs" -> pure EBS-        "instance-store" -> pure InstanceStore-        e -> fromTextError $ "Failure parsing DeviceType from value: '" <> e-           <> "'. Accepted values: ebs, instance-store"--instance ToText DeviceType where-    toText = \case-        EBS -> "ebs"-        InstanceStore -> "instance-store"--instance Hashable     DeviceType-instance NFData       DeviceType-instance ToByteString DeviceType-instance ToQuery      DeviceType-instance ToHeader     DeviceType--instance FromXML DeviceType where-    parseXML = parseXMLText "DeviceType"--data DiskImageFormat-    = Raw-    | VHD-    | VMDK-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText DiskImageFormat where-    parser = takeLowerText >>= \case-        "raw" -> pure Raw-        "vhd" -> pure VHD-        "vmdk" -> pure VMDK-        e -> fromTextError $ "Failure parsing DiskImageFormat from value: '" <> e-           <> "'. Accepted values: raw, vhd, vmdk"--instance ToText DiskImageFormat where-    toText = \case-        Raw -> "RAW"-        VHD -> "VHD"-        VMDK -> "VMDK"--instance Hashable     DiskImageFormat-instance NFData       DiskImageFormat-instance ToByteString DiskImageFormat-instance ToQuery      DiskImageFormat-instance ToHeader     DiskImageFormat--instance FromXML DiskImageFormat where-    parseXML = parseXMLText "DiskImageFormat"--data DomainType-    = DTStandard-    | DTVPC-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText DomainType where-    parser = takeLowerText >>= \case-        "standard" -> pure DTStandard-        "vpc" -> pure DTVPC-        e -> fromTextError $ "Failure parsing DomainType from value: '" <> e-           <> "'. Accepted values: standard, vpc"--instance ToText DomainType where-    toText = \case-        DTStandard -> "standard"-        DTVPC -> "vpc"--instance Hashable     DomainType-instance NFData       DomainType-instance ToByteString DomainType-instance ToQuery      DomainType-instance ToHeader     DomainType--instance FromXML DomainType where-    parseXML = parseXMLText "DomainType"--data EventCode-    = InstanceReboot-    | InstanceRetirement-    | InstanceStop-    | SystemMaintenance-    | SystemReboot-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText EventCode where-    parser = takeLowerText >>= \case-        "instance-reboot" -> pure InstanceReboot-        "instance-retirement" -> pure InstanceRetirement-        "instance-stop" -> pure InstanceStop-        "system-maintenance" -> pure SystemMaintenance-        "system-reboot" -> pure SystemReboot-        e -> fromTextError $ "Failure parsing EventCode from value: '" <> e-           <> "'. Accepted values: instance-reboot, instance-retirement, instance-stop, system-maintenance, system-reboot"--instance ToText EventCode where-    toText = \case-        InstanceReboot -> "instance-reboot"-        InstanceRetirement -> "instance-retirement"-        InstanceStop -> "instance-stop"-        SystemMaintenance -> "system-maintenance"-        SystemReboot -> "system-reboot"--instance Hashable     EventCode-instance NFData       EventCode-instance ToByteString EventCode-instance ToQuery      EventCode-instance ToHeader     EventCode--instance FromXML EventCode where-    parseXML = parseXMLText "EventCode"--data EventType-    = ETError'-    | ETFleetRequestChange-    | ETInstanceChange-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText EventType where-    parser = takeLowerText >>= \case-        "error" -> pure ETError'-        "fleetrequestchange" -> pure ETFleetRequestChange-        "instancechange" -> pure ETInstanceChange-        e -> fromTextError $ "Failure parsing EventType from value: '" <> e-           <> "'. Accepted values: error, fleetrequestchange, instancechange"--instance ToText EventType where-    toText = \case-        ETError' -> "error"-        ETFleetRequestChange -> "fleetRequestChange"-        ETInstanceChange -> "instanceChange"--instance Hashable     EventType-instance NFData       EventType-instance ToByteString EventType-instance ToQuery      EventType-instance ToHeader     EventType--instance FromXML EventType where-    parseXML = parseXMLText "EventType"--data ExcessCapacityTerminationPolicy-    = ECTPDefault-    | ECTPNoTermination-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ExcessCapacityTerminationPolicy where-    parser = takeLowerText >>= \case-        "default" -> pure ECTPDefault-        "notermination" -> pure ECTPNoTermination-        e -> fromTextError $ "Failure parsing ExcessCapacityTerminationPolicy from value: '" <> e-           <> "'. Accepted values: default, notermination"--instance ToText ExcessCapacityTerminationPolicy where-    toText = \case-        ECTPDefault -> "default"-        ECTPNoTermination -> "noTermination"--instance Hashable     ExcessCapacityTerminationPolicy-instance NFData       ExcessCapacityTerminationPolicy-instance ToByteString ExcessCapacityTerminationPolicy-instance ToQuery      ExcessCapacityTerminationPolicy-instance ToHeader     ExcessCapacityTerminationPolicy--instance FromXML ExcessCapacityTerminationPolicy where-    parseXML = parseXMLText "ExcessCapacityTerminationPolicy"--data ExportEnvironment-    = Citrix-    | Microsoft-    | VMware-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ExportEnvironment where-    parser = takeLowerText >>= \case-        "citrix" -> pure Citrix-        "microsoft" -> pure Microsoft-        "vmware" -> pure VMware-        e -> fromTextError $ "Failure parsing ExportEnvironment from value: '" <> e-           <> "'. Accepted values: citrix, microsoft, vmware"--instance ToText ExportEnvironment where-    toText = \case-        Citrix -> "citrix"-        Microsoft -> "microsoft"-        VMware -> "vmware"--instance Hashable     ExportEnvironment-instance NFData       ExportEnvironment-instance ToByteString ExportEnvironment-instance ToQuery      ExportEnvironment-instance ToHeader     ExportEnvironment--instance FromXML ExportEnvironment where-    parseXML = parseXMLText "ExportEnvironment"--data ExportTaskState-    = ETSActive-    | ETSCancelled-    | ETSCancelling-    | ETSCompleted-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ExportTaskState where-    parser = takeLowerText >>= \case-        "active" -> pure ETSActive-        "cancelled" -> pure ETSCancelled-        "cancelling" -> pure ETSCancelling-        "completed" -> pure ETSCompleted-        e -> fromTextError $ "Failure parsing ExportTaskState from value: '" <> e-           <> "'. Accepted values: active, cancelled, cancelling, completed"--instance ToText ExportTaskState where-    toText = \case-        ETSActive -> "active"-        ETSCancelled -> "cancelled"-        ETSCancelling -> "cancelling"-        ETSCompleted -> "completed"--instance Hashable     ExportTaskState-instance NFData       ExportTaskState-instance ToByteString ExportTaskState-instance ToQuery      ExportTaskState-instance ToHeader     ExportTaskState--instance FromXML ExportTaskState where-    parseXML = parseXMLText "ExportTaskState"--data FleetType-    = FTMaintain-    | FTRequest-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText FleetType where-    parser = takeLowerText >>= \case-        "maintain" -> pure FTMaintain-        "request" -> pure FTRequest-        e -> fromTextError $ "Failure parsing FleetType from value: '" <> e-           <> "'. Accepted values: maintain, request"--instance ToText FleetType where-    toText = \case-        FTMaintain -> "maintain"-        FTRequest -> "request"--instance Hashable     FleetType-instance NFData       FleetType-instance ToByteString FleetType-instance ToQuery      FleetType-instance ToHeader     FleetType--instance FromXML FleetType where-    parseXML = parseXMLText "FleetType"--data FlowLogsResourceType-    = FLRTNetworkInterface-    | FLRTSubnet-    | FLRTVPC-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText FlowLogsResourceType where-    parser = takeLowerText >>= \case-        "networkinterface" -> pure FLRTNetworkInterface-        "subnet" -> pure FLRTSubnet-        "vpc" -> pure FLRTVPC-        e -> fromTextError $ "Failure parsing FlowLogsResourceType from value: '" <> e-           <> "'. Accepted values: networkinterface, subnet, vpc"--instance ToText FlowLogsResourceType where-    toText = \case-        FLRTNetworkInterface -> "NetworkInterface"-        FLRTSubnet -> "Subnet"-        FLRTVPC -> "VPC"--instance Hashable     FlowLogsResourceType-instance NFData       FlowLogsResourceType-instance ToByteString FlowLogsResourceType-instance ToQuery      FlowLogsResourceType-instance ToHeader     FlowLogsResourceType--data GatewayType =-    IPsec_1-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText GatewayType where-    parser = takeLowerText >>= \case-        "ipsec.1" -> pure IPsec_1-        e -> fromTextError $ "Failure parsing GatewayType from value: '" <> e-           <> "'. Accepted values: ipsec.1"--instance ToText GatewayType where-    toText = \case-        IPsec_1 -> "ipsec.1"--instance Hashable     GatewayType-instance NFData       GatewayType-instance ToByteString GatewayType-instance ToQuery      GatewayType-instance ToHeader     GatewayType--instance FromXML GatewayType where-    parseXML = parseXMLText "GatewayType"--data HostTenancy-    = HTDedicated-    | HTHost-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText HostTenancy where-    parser = takeLowerText >>= \case-        "dedicated" -> pure HTDedicated-        "host" -> pure HTHost-        e -> fromTextError $ "Failure parsing HostTenancy from value: '" <> e-           <> "'. Accepted values: dedicated, host"--instance ToText HostTenancy where-    toText = \case-        HTDedicated -> "dedicated"-        HTHost -> "host"--instance Hashable     HostTenancy-instance NFData       HostTenancy-instance ToByteString HostTenancy-instance ToQuery      HostTenancy-instance ToHeader     HostTenancy--data HypervisorType-    = Ovm-    | Xen-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText HypervisorType where-    parser = takeLowerText >>= \case-        "ovm" -> pure Ovm-        "xen" -> pure Xen-        e -> fromTextError $ "Failure parsing HypervisorType from value: '" <> e-           <> "'. Accepted values: ovm, xen"--instance ToText HypervisorType where-    toText = \case-        Ovm -> "ovm"-        Xen -> "xen"--instance Hashable     HypervisorType-instance NFData       HypervisorType-instance ToByteString HypervisorType-instance ToQuery      HypervisorType-instance ToHeader     HypervisorType--instance FromXML HypervisorType where-    parseXML = parseXMLText "HypervisorType"--data ImageAttributeName-    = BlockDeviceMapping-    | Description-    | Kernel-    | LaunchPermission-    | ProductCodes-    | RAMDisk-    | SRIOVNetSupport-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ImageAttributeName where-    parser = takeLowerText >>= \case-        "blockdevicemapping" -> pure BlockDeviceMapping-        "description" -> pure Description-        "kernel" -> pure Kernel-        "launchpermission" -> pure LaunchPermission-        "productcodes" -> pure ProductCodes-        "ramdisk" -> pure RAMDisk-        "sriovnetsupport" -> pure SRIOVNetSupport-        e -> fromTextError $ "Failure parsing ImageAttributeName from value: '" <> e-           <> "'. Accepted values: blockdevicemapping, description, kernel, launchpermission, productcodes, ramdisk, sriovnetsupport"--instance ToText ImageAttributeName where-    toText = \case-        BlockDeviceMapping -> "blockDeviceMapping"-        Description -> "description"-        Kernel -> "kernel"-        LaunchPermission -> "launchPermission"-        ProductCodes -> "productCodes"-        RAMDisk -> "ramdisk"-        SRIOVNetSupport -> "sriovNetSupport"--instance Hashable     ImageAttributeName-instance NFData       ImageAttributeName-instance ToByteString ImageAttributeName-instance ToQuery      ImageAttributeName-instance ToHeader     ImageAttributeName--data ImageState-    = ISAvailable-    | ISDeregistered-    | ISError'-    | ISFailed-    | ISInvalid-    | ISPending-    | ISTransient-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ImageState where-    parser = takeLowerText >>= \case-        "available" -> pure ISAvailable-        "deregistered" -> pure ISDeregistered-        "error" -> pure ISError'-        "failed" -> pure ISFailed-        "invalid" -> pure ISInvalid-        "pending" -> pure ISPending-        "transient" -> pure ISTransient-        e -> fromTextError $ "Failure parsing ImageState from value: '" <> e-           <> "'. Accepted values: available, deregistered, error, failed, invalid, pending, transient"--instance ToText ImageState where-    toText = \case-        ISAvailable -> "available"-        ISDeregistered -> "deregistered"-        ISError' -> "error"-        ISFailed -> "failed"-        ISInvalid -> "invalid"-        ISPending -> "pending"-        ISTransient -> "transient"--instance Hashable     ImageState-instance NFData       ImageState-instance ToByteString ImageState-instance ToQuery      ImageState-instance ToHeader     ImageState--instance FromXML ImageState where-    parseXML = parseXMLText "ImageState"--data ImageTypeValues-    = ITVKernel-    | ITVMachine-    | ITVRAMDisk-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ImageTypeValues where-    parser = takeLowerText >>= \case-        "kernel" -> pure ITVKernel-        "machine" -> pure ITVMachine-        "ramdisk" -> pure ITVRAMDisk-        e -> fromTextError $ "Failure parsing ImageTypeValues from value: '" <> e-           <> "'. Accepted values: kernel, machine, ramdisk"--instance ToText ImageTypeValues where-    toText = \case-        ITVKernel -> "kernel"-        ITVMachine -> "machine"-        ITVRAMDisk -> "ramdisk"--instance Hashable     ImageTypeValues-instance NFData       ImageTypeValues-instance ToByteString ImageTypeValues-instance ToQuery      ImageTypeValues-instance ToHeader     ImageTypeValues--instance FromXML ImageTypeValues where-    parseXML = parseXMLText "ImageTypeValues"--data InstanceAttributeName-    = IANBlockDeviceMapping-    | IANDisableAPITermination-    | IANEBSOptimized-    | IANEnaSupport-    | IANGroupSet-    | IANInstanceInitiatedShutdownBehavior-    | IANInstanceType-    | IANKernel-    | IANProductCodes-    | IANRAMDisk-    | IANRootDeviceName-    | IANSRIOVNetSupport-    | IANSourceDestCheck-    | IANUserData-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText InstanceAttributeName where-    parser = takeLowerText >>= \case-        "blockdevicemapping" -> pure IANBlockDeviceMapping-        "disableapitermination" -> pure IANDisableAPITermination-        "ebsoptimized" -> pure IANEBSOptimized-        "enasupport" -> pure IANEnaSupport-        "groupset" -> pure IANGroupSet-        "instanceinitiatedshutdownbehavior" -> pure IANInstanceInitiatedShutdownBehavior-        "instancetype" -> pure IANInstanceType-        "kernel" -> pure IANKernel-        "productcodes" -> pure IANProductCodes-        "ramdisk" -> pure IANRAMDisk-        "rootdevicename" -> pure IANRootDeviceName-        "sriovnetsupport" -> pure IANSRIOVNetSupport-        "sourcedestcheck" -> pure IANSourceDestCheck-        "userdata" -> pure IANUserData-        e -> fromTextError $ "Failure parsing InstanceAttributeName from value: '" <> e-           <> "'. Accepted values: blockdevicemapping, disableapitermination, ebsoptimized, enasupport, groupset, instanceinitiatedshutdownbehavior, instancetype, kernel, productcodes, ramdisk, rootdevicename, sriovnetsupport, sourcedestcheck, userdata"--instance ToText InstanceAttributeName where-    toText = \case-        IANBlockDeviceMapping -> "blockDeviceMapping"-        IANDisableAPITermination -> "disableApiTermination"-        IANEBSOptimized -> "ebsOptimized"-        IANEnaSupport -> "enaSupport"-        IANGroupSet -> "groupSet"-        IANInstanceInitiatedShutdownBehavior -> "instanceInitiatedShutdownBehavior"-        IANInstanceType -> "instanceType"-        IANKernel -> "kernel"-        IANProductCodes -> "productCodes"-        IANRAMDisk -> "ramdisk"-        IANRootDeviceName -> "rootDeviceName"-        IANSRIOVNetSupport -> "sriovNetSupport"-        IANSourceDestCheck -> "sourceDestCheck"-        IANUserData -> "userData"--instance Hashable     InstanceAttributeName-instance NFData       InstanceAttributeName-instance ToByteString InstanceAttributeName-instance ToQuery      InstanceAttributeName-instance ToHeader     InstanceAttributeName--data InstanceLifecycleType-    = Scheduled-    | Spot-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText InstanceLifecycleType where-    parser = takeLowerText >>= \case-        "scheduled" -> pure Scheduled-        "spot" -> pure Spot-        e -> fromTextError $ "Failure parsing InstanceLifecycleType from value: '" <> e-           <> "'. Accepted values: scheduled, spot"--instance ToText InstanceLifecycleType where-    toText = \case-        Scheduled -> "scheduled"-        Spot -> "spot"--instance Hashable     InstanceLifecycleType-instance NFData       InstanceLifecycleType-instance ToByteString InstanceLifecycleType-instance ToQuery      InstanceLifecycleType-instance ToHeader     InstanceLifecycleType--instance FromXML InstanceLifecycleType where-    parseXML = parseXMLText "InstanceLifecycleType"--data InstanceStateName-    = ISNPending-    | ISNRunning-    | ISNShuttingDown-    | ISNStopped-    | ISNStopping-    | ISNTerminated-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText InstanceStateName where-    parser = takeLowerText >>= \case-        "pending" -> pure ISNPending-        "running" -> pure ISNRunning-        "shutting-down" -> pure ISNShuttingDown-        "stopped" -> pure ISNStopped-        "stopping" -> pure ISNStopping-        "terminated" -> pure ISNTerminated-        e -> fromTextError $ "Failure parsing InstanceStateName from value: '" <> e-           <> "'. Accepted values: pending, running, shutting-down, stopped, stopping, terminated"--instance ToText InstanceStateName where-    toText = \case-        ISNPending -> "pending"-        ISNRunning -> "running"-        ISNShuttingDown -> "shutting-down"-        ISNStopped -> "stopped"-        ISNStopping -> "stopping"-        ISNTerminated -> "terminated"--instance Hashable     InstanceStateName-instance NFData       InstanceStateName-instance ToByteString InstanceStateName-instance ToQuery      InstanceStateName-instance ToHeader     InstanceStateName--instance FromXML InstanceStateName where-    parseXML = parseXMLText "InstanceStateName"--data InstanceType-    = C1_Medium-    | C1_XLarge-    | C3_2XLarge-    | C3_4XLarge-    | C3_8XLarge-    | C3_Large-    | C3_XLarge-    | C4_2XLarge-    | C4_4XLarge-    | C4_8XLarge-    | C4_Large-    | C4_XLarge-    | CC1_4XLarge-    | CC2_8XLarge-    | CG1_4XLarge-    | CR1_8XLarge-    | D2_2XLarge-    | D2_4XLarge-    | D2_8XLarge-    | D2_XLarge-    | F1_16XLarge-    | F1_2XLarge-    | G2_2XLarge-    | G2_8XLarge-    | HI1_4XLarge-    | HS1_8XLarge-    | I2_2XLarge-    | I2_4XLarge-    | I2_8XLarge-    | I2_XLarge-    | M1_Large-    | M1_Medium-    | M1_Small-    | M1_XLarge-    | M2_2XLarge-    | M2_4XLarge-    | M2_XLarge-    | M3_2XLarge-    | M3_Large-    | M3_Medium-    | M3_XLarge-    | M4_10XLarge-    | M4_16XLarge-    | M4_2XLarge-    | M4_4XLarge-    | M4_Large-    | M4_XLarge-    | P2_16XLarge-    | P2_8XLarge-    | P2_XLarge-    | R3_2XLarge-    | R3_4XLarge-    | R3_8XLarge-    | R3_Large-    | R3_XLarge-    | T1_Micro-    | T2_Large-    | T2_Medium-    | T2_Micro-    | T2_Nano-    | T2_Small-    | X1_16XLarge-    | X1_32XLarge-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText InstanceType where-    parser = takeLowerText >>= \case-        "c1.medium" -> pure C1_Medium-        "c1.xlarge" -> pure C1_XLarge-        "c3.2xlarge" -> pure C3_2XLarge-        "c3.4xlarge" -> pure C3_4XLarge-        "c3.8xlarge" -> pure C3_8XLarge-        "c3.large" -> pure C3_Large-        "c3.xlarge" -> pure C3_XLarge-        "c4.2xlarge" -> pure C4_2XLarge-        "c4.4xlarge" -> pure C4_4XLarge-        "c4.8xlarge" -> pure C4_8XLarge-        "c4.large" -> pure C4_Large-        "c4.xlarge" -> pure C4_XLarge-        "cc1.4xlarge" -> pure CC1_4XLarge-        "cc2.8xlarge" -> pure CC2_8XLarge-        "cg1.4xlarge" -> pure CG1_4XLarge-        "cr1.8xlarge" -> pure CR1_8XLarge-        "d2.2xlarge" -> pure D2_2XLarge-        "d2.4xlarge" -> pure D2_4XLarge-        "d2.8xlarge" -> pure D2_8XLarge-        "d2.xlarge" -> pure D2_XLarge-        "f1.16xlarge" -> pure F1_16XLarge-        "f1.2xlarge" -> pure F1_2XLarge-        "g2.2xlarge" -> pure G2_2XLarge-        "g2.8xlarge" -> pure G2_8XLarge-        "hi1.4xlarge" -> pure HI1_4XLarge-        "hs1.8xlarge" -> pure HS1_8XLarge-        "i2.2xlarge" -> pure I2_2XLarge-        "i2.4xlarge" -> pure I2_4XLarge-        "i2.8xlarge" -> pure I2_8XLarge-        "i2.xlarge" -> pure I2_XLarge-        "m1.large" -> pure M1_Large-        "m1.medium" -> pure M1_Medium-        "m1.small" -> pure M1_Small-        "m1.xlarge" -> pure M1_XLarge-        "m2.2xlarge" -> pure M2_2XLarge-        "m2.4xlarge" -> pure M2_4XLarge-        "m2.xlarge" -> pure M2_XLarge-        "m3.2xlarge" -> pure M3_2XLarge-        "m3.large" -> pure M3_Large-        "m3.medium" -> pure M3_Medium-        "m3.xlarge" -> pure M3_XLarge-        "m4.10xlarge" -> pure M4_10XLarge-        "m4.16xlarge" -> pure M4_16XLarge-        "m4.2xlarge" -> pure M4_2XLarge-        "m4.4xlarge" -> pure M4_4XLarge-        "m4.large" -> pure M4_Large-        "m4.xlarge" -> pure M4_XLarge-        "p2.16xlarge" -> pure P2_16XLarge-        "p2.8xlarge" -> pure P2_8XLarge-        "p2.xlarge" -> pure P2_XLarge-        "r3.2xlarge" -> pure R3_2XLarge-        "r3.4xlarge" -> pure R3_4XLarge-        "r3.8xlarge" -> pure R3_8XLarge-        "r3.large" -> pure R3_Large-        "r3.xlarge" -> pure R3_XLarge-        "t1.micro" -> pure T1_Micro-        "t2.large" -> pure T2_Large-        "t2.medium" -> pure T2_Medium-        "t2.micro" -> pure T2_Micro-        "t2.nano" -> pure T2_Nano-        "t2.small" -> pure T2_Small-        "x1.16xlarge" -> pure X1_16XLarge-        "x1.32xlarge" -> pure X1_32XLarge-        e -> fromTextError $ "Failure parsing InstanceType from value: '" <> e-           <> "'. Accepted values: c1.medium, c1.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c3.large, c3.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c4.large, c4.xlarge, cc1.4xlarge, cc2.8xlarge, cg1.4xlarge, cr1.8xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, d2.xlarge, f1.16xlarge, f1.2xlarge, g2.2xlarge, g2.8xlarge, hi1.4xlarge, hs1.8xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i2.xlarge, m1.large, m1.medium, m1.small, m1.xlarge, m2.2xlarge, m2.4xlarge, m2.xlarge, m3.2xlarge, m3.large, m3.medium, m3.xlarge, m4.10xlarge, m4.16xlarge, m4.2xlarge, m4.4xlarge, m4.large, m4.xlarge, p2.16xlarge, p2.8xlarge, p2.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r3.large, r3.xlarge, t1.micro, t2.large, t2.medium, t2.micro, t2.nano, t2.small, x1.16xlarge, x1.32xlarge"--instance ToText InstanceType where-    toText = \case-        C1_Medium -> "c1.medium"-        C1_XLarge -> "c1.xlarge"-        C3_2XLarge -> "c3.2xlarge"-        C3_4XLarge -> "c3.4xlarge"-        C3_8XLarge -> "c3.8xlarge"-        C3_Large -> "c3.large"-        C3_XLarge -> "c3.xlarge"-        C4_2XLarge -> "c4.2xlarge"-        C4_4XLarge -> "c4.4xlarge"-        C4_8XLarge -> "c4.8xlarge"-        C4_Large -> "c4.large"-        C4_XLarge -> "c4.xlarge"-        CC1_4XLarge -> "cc1.4xlarge"-        CC2_8XLarge -> "cc2.8xlarge"-        CG1_4XLarge -> "cg1.4xlarge"-        CR1_8XLarge -> "cr1.8xlarge"-        D2_2XLarge -> "d2.2xlarge"-        D2_4XLarge -> "d2.4xlarge"-        D2_8XLarge -> "d2.8xlarge"-        D2_XLarge -> "d2.xlarge"-        F1_16XLarge -> "f1.16xlarge"-        F1_2XLarge -> "f1.2xlarge"-        G2_2XLarge -> "g2.2xlarge"-        G2_8XLarge -> "g2.8xlarge"-        HI1_4XLarge -> "hi1.4xlarge"-        HS1_8XLarge -> "hs1.8xlarge"-        I2_2XLarge -> "i2.2xlarge"-        I2_4XLarge -> "i2.4xlarge"-        I2_8XLarge -> "i2.8xlarge"-        I2_XLarge -> "i2.xlarge"-        M1_Large -> "m1.large"-        M1_Medium -> "m1.medium"-        M1_Small -> "m1.small"-        M1_XLarge -> "m1.xlarge"-        M2_2XLarge -> "m2.2xlarge"-        M2_4XLarge -> "m2.4xlarge"-        M2_XLarge -> "m2.xlarge"-        M3_2XLarge -> "m3.2xlarge"-        M3_Large -> "m3.large"-        M3_Medium -> "m3.medium"-        M3_XLarge -> "m3.xlarge"-        M4_10XLarge -> "m4.10xlarge"-        M4_16XLarge -> "m4.16xlarge"-        M4_2XLarge -> "m4.2xlarge"-        M4_4XLarge -> "m4.4xlarge"-        M4_Large -> "m4.large"-        M4_XLarge -> "m4.xlarge"-        P2_16XLarge -> "p2.16xlarge"-        P2_8XLarge -> "p2.8xlarge"-        P2_XLarge -> "p2.xlarge"-        R3_2XLarge -> "r3.2xlarge"-        R3_4XLarge -> "r3.4xlarge"-        R3_8XLarge -> "r3.8xlarge"-        R3_Large -> "r3.large"-        R3_XLarge -> "r3.xlarge"-        T1_Micro -> "t1.micro"-        T2_Large -> "t2.large"-        T2_Medium -> "t2.medium"-        T2_Micro -> "t2.micro"-        T2_Nano -> "t2.nano"-        T2_Small -> "t2.small"-        X1_16XLarge -> "x1.16xlarge"-        X1_32XLarge -> "x1.32xlarge"--instance Hashable     InstanceType-instance NFData       InstanceType-instance ToByteString InstanceType-instance ToQuery      InstanceType-instance ToHeader     InstanceType--instance FromXML InstanceType where-    parseXML = parseXMLText "InstanceType"--data ListingState-    = LAvailable-    | LCancelled-    | LPending-    | LSold-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ListingState where-    parser = takeLowerText >>= \case-        "available" -> pure LAvailable-        "cancelled" -> pure LCancelled-        "pending" -> pure LPending-        "sold" -> pure LSold-        e -> fromTextError $ "Failure parsing ListingState from value: '" <> e-           <> "'. Accepted values: available, cancelled, pending, sold"--instance ToText ListingState where-    toText = \case-        LAvailable -> "available"-        LCancelled -> "cancelled"-        LPending -> "pending"-        LSold -> "sold"--instance Hashable     ListingState-instance NFData       ListingState-instance ToByteString ListingState-instance ToQuery      ListingState-instance ToHeader     ListingState--instance FromXML ListingState where-    parseXML = parseXMLText "ListingState"--data ListingStatus-    = LSActive-    | LSCancelled-    | LSClosed-    | LSPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ListingStatus where-    parser = takeLowerText >>= \case-        "active" -> pure LSActive-        "cancelled" -> pure LSCancelled-        "closed" -> pure LSClosed-        "pending" -> pure LSPending-        e -> fromTextError $ "Failure parsing ListingStatus from value: '" <> e-           <> "'. Accepted values: active, cancelled, closed, pending"--instance ToText ListingStatus where-    toText = \case-        LSActive -> "active"-        LSCancelled -> "cancelled"-        LSClosed -> "closed"-        LSPending -> "pending"--instance Hashable     ListingStatus-instance NFData       ListingStatus-instance ToByteString ListingStatus-instance ToQuery      ListingStatus-instance ToHeader     ListingStatus--instance FromXML ListingStatus where-    parseXML = parseXMLText "ListingStatus"--data MonitoringState-    = MSDisabled-    | MSDisabling-    | MSEnabled-    | MSPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText MonitoringState where-    parser = takeLowerText >>= \case-        "disabled" -> pure MSDisabled-        "disabling" -> pure MSDisabling-        "enabled" -> pure MSEnabled-        "pending" -> pure MSPending-        e -> fromTextError $ "Failure parsing MonitoringState from value: '" <> e-           <> "'. Accepted values: disabled, disabling, enabled, pending"--instance ToText MonitoringState where-    toText = \case-        MSDisabled -> "disabled"-        MSDisabling -> "disabling"-        MSEnabled -> "enabled"-        MSPending -> "pending"--instance Hashable     MonitoringState-instance NFData       MonitoringState-instance ToByteString MonitoringState-instance ToQuery      MonitoringState-instance ToHeader     MonitoringState--instance FromXML MonitoringState where-    parseXML = parseXMLText "MonitoringState"--data MoveStatus-    = MovingToVPC-    | RestoringToClassic-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText MoveStatus where-    parser = takeLowerText >>= \case-        "movingtovpc" -> pure MovingToVPC-        "restoringtoclassic" -> pure RestoringToClassic-        e -> fromTextError $ "Failure parsing MoveStatus from value: '" <> e-           <> "'. Accepted values: movingtovpc, restoringtoclassic"--instance ToText MoveStatus where-    toText = \case-        MovingToVPC -> "movingToVpc"-        RestoringToClassic -> "restoringToClassic"--instance Hashable     MoveStatus-instance NFData       MoveStatus-instance ToByteString MoveStatus-instance ToQuery      MoveStatus-instance ToHeader     MoveStatus--instance FromXML MoveStatus where-    parseXML = parseXMLText "MoveStatus"--data NatGatewayState-    = NGSAvailable-    | NGSDeleted-    | NGSDeleting-    | NGSFailed-    | NGSPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText NatGatewayState where-    parser = takeLowerText >>= \case-        "available" -> pure NGSAvailable-        "deleted" -> pure NGSDeleted-        "deleting" -> pure NGSDeleting-        "failed" -> pure NGSFailed-        "pending" -> pure NGSPending-        e -> fromTextError $ "Failure parsing NatGatewayState from value: '" <> e-           <> "'. Accepted values: available, deleted, deleting, failed, pending"--instance ToText NatGatewayState where-    toText = \case-        NGSAvailable -> "available"-        NGSDeleted -> "deleted"-        NGSDeleting -> "deleting"-        NGSFailed -> "failed"-        NGSPending -> "pending"--instance Hashable     NatGatewayState-instance NFData       NatGatewayState-instance ToByteString NatGatewayState-instance ToQuery      NatGatewayState-instance ToHeader     NatGatewayState--instance FromXML NatGatewayState where-    parseXML = parseXMLText "NatGatewayState"--data NetworkInterfaceAttribute-    = NIAAttachment-    | NIADescription-    | NIAGroupSet-    | NIASourceDestCheck-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText NetworkInterfaceAttribute where-    parser = takeLowerText >>= \case-        "attachment" -> pure NIAAttachment-        "description" -> pure NIADescription-        "groupset" -> pure NIAGroupSet-        "sourcedestcheck" -> pure NIASourceDestCheck-        e -> fromTextError $ "Failure parsing NetworkInterfaceAttribute from value: '" <> e-           <> "'. Accepted values: attachment, description, groupset, sourcedestcheck"--instance ToText NetworkInterfaceAttribute where-    toText = \case-        NIAAttachment -> "attachment"-        NIADescription -> "description"-        NIAGroupSet -> "groupSet"-        NIASourceDestCheck -> "sourceDestCheck"--instance Hashable     NetworkInterfaceAttribute-instance NFData       NetworkInterfaceAttribute-instance ToByteString NetworkInterfaceAttribute-instance ToQuery      NetworkInterfaceAttribute-instance ToHeader     NetworkInterfaceAttribute--data NetworkInterfaceStatus-    = NISAttaching-    | NISAvailable-    | NISDetaching-    | NISInUse-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText NetworkInterfaceStatus where-    parser = takeLowerText >>= \case-        "attaching" -> pure NISAttaching-        "available" -> pure NISAvailable-        "detaching" -> pure NISDetaching-        "in-use" -> pure NISInUse-        e -> fromTextError $ "Failure parsing NetworkInterfaceStatus from value: '" <> e-           <> "'. Accepted values: attaching, available, detaching, in-use"--instance ToText NetworkInterfaceStatus where-    toText = \case-        NISAttaching -> "attaching"-        NISAvailable -> "available"-        NISDetaching -> "detaching"-        NISInUse -> "in-use"--instance Hashable     NetworkInterfaceStatus-instance NFData       NetworkInterfaceStatus-instance ToByteString NetworkInterfaceStatus-instance ToQuery      NetworkInterfaceStatus-instance ToHeader     NetworkInterfaceStatus--instance FromXML NetworkInterfaceStatus where-    parseXML = parseXMLText "NetworkInterfaceStatus"--data NetworkInterfaceType-    = Interface-    | NatGateway-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText NetworkInterfaceType where-    parser = takeLowerText >>= \case-        "interface" -> pure Interface-        "natgateway" -> pure NatGateway-        e -> fromTextError $ "Failure parsing NetworkInterfaceType from value: '" <> e-           <> "'. Accepted values: interface, natgateway"--instance ToText NetworkInterfaceType where-    toText = \case-        Interface -> "interface"-        NatGateway -> "natGateway"--instance Hashable     NetworkInterfaceType-instance NFData       NetworkInterfaceType-instance ToByteString NetworkInterfaceType-instance ToQuery      NetworkInterfaceType-instance ToHeader     NetworkInterfaceType--instance FromXML NetworkInterfaceType where-    parseXML = parseXMLText "NetworkInterfaceType"--data OfferingClassType-    = Convertible-    | Standard-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText OfferingClassType where-    parser = takeLowerText >>= \case-        "convertible" -> pure Convertible-        "standard" -> pure Standard-        e -> fromTextError $ "Failure parsing OfferingClassType from value: '" <> e-           <> "'. Accepted values: convertible, standard"--instance ToText OfferingClassType where-    toText = \case-        Convertible -> "convertible"-        Standard -> "standard"--instance Hashable     OfferingClassType-instance NFData       OfferingClassType-instance ToByteString OfferingClassType-instance ToQuery      OfferingClassType-instance ToHeader     OfferingClassType--instance FromXML OfferingClassType where-    parseXML = parseXMLText "OfferingClassType"--data OfferingTypeValues-    = AllUpfront-    | HeavyUtilization-    | LightUtilization-    | MediumUtilization-    | NoUpfront-    | PartialUpfront-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText OfferingTypeValues where-    parser = takeLowerText >>= \case-        "all upfront" -> pure AllUpfront-        "heavy utilization" -> pure HeavyUtilization-        "light utilization" -> pure LightUtilization-        "medium utilization" -> pure MediumUtilization-        "no upfront" -> pure NoUpfront-        "partial upfront" -> pure PartialUpfront-        e -> fromTextError $ "Failure parsing OfferingTypeValues from value: '" <> e-           <> "'. Accepted values: all upfront, heavy utilization, light utilization, medium utilization, no upfront, partial upfront"--instance ToText OfferingTypeValues where-    toText = \case-        AllUpfront -> "All Upfront"-        HeavyUtilization -> "Heavy Utilization"-        LightUtilization -> "Light Utilization"-        MediumUtilization -> "Medium Utilization"-        NoUpfront -> "No Upfront"-        PartialUpfront -> "Partial Upfront"--instance Hashable     OfferingTypeValues-instance NFData       OfferingTypeValues-instance ToByteString OfferingTypeValues-instance ToQuery      OfferingTypeValues-instance ToHeader     OfferingTypeValues--instance FromXML OfferingTypeValues where-    parseXML = parseXMLText "OfferingTypeValues"--data OperationType-    = Add-    | Remove-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText OperationType where-    parser = takeLowerText >>= \case-        "add" -> pure Add-        "remove" -> pure Remove-        e -> fromTextError $ "Failure parsing OperationType from value: '" <> e-           <> "'. Accepted values: add, remove"--instance ToText OperationType where-    toText = \case-        Add -> "add"-        Remove -> "remove"--instance Hashable     OperationType-instance NFData       OperationType-instance ToByteString OperationType-instance ToQuery      OperationType-instance ToHeader     OperationType--data PaymentOption-    = POAllUpfront-    | PONoUpfront-    | POPartialUpfront-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText PaymentOption where-    parser = takeLowerText >>= \case-        "allupfront" -> pure POAllUpfront-        "noupfront" -> pure PONoUpfront-        "partialupfront" -> pure POPartialUpfront-        e -> fromTextError $ "Failure parsing PaymentOption from value: '" <> e-           <> "'. Accepted values: allupfront, noupfront, partialupfront"--instance ToText PaymentOption where-    toText = \case-        POAllUpfront -> "AllUpfront"-        PONoUpfront -> "NoUpfront"-        POPartialUpfront -> "PartialUpfront"--instance Hashable     PaymentOption-instance NFData       PaymentOption-instance ToByteString PaymentOption-instance ToQuery      PaymentOption-instance ToHeader     PaymentOption--instance FromXML PaymentOption where-    parseXML = parseXMLText "PaymentOption"--data PermissionGroup =-    All-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText PermissionGroup where-    parser = takeLowerText >>= \case-        "all" -> pure All-        e -> fromTextError $ "Failure parsing PermissionGroup from value: '" <> e-           <> "'. Accepted values: all"--instance ToText PermissionGroup where-    toText = \case-        All -> "all"--instance Hashable     PermissionGroup-instance NFData       PermissionGroup-instance ToByteString PermissionGroup-instance ToQuery      PermissionGroup-instance ToHeader     PermissionGroup--instance FromXML PermissionGroup where-    parseXML = parseXMLText "PermissionGroup"--data PlacementGroupState-    = Available-    | Deleted-    | Deleting-    | Pending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText PlacementGroupState where-    parser = takeLowerText >>= \case-        "available" -> pure Available-        "deleted" -> pure Deleted-        "deleting" -> pure Deleting-        "pending" -> pure Pending-        e -> fromTextError $ "Failure parsing PlacementGroupState from value: '" <> e-           <> "'. Accepted values: available, deleted, deleting, pending"--instance ToText PlacementGroupState where-    toText = \case-        Available -> "available"-        Deleted -> "deleted"-        Deleting -> "deleting"-        Pending -> "pending"--instance Hashable     PlacementGroupState-instance NFData       PlacementGroupState-instance ToByteString PlacementGroupState-instance ToQuery      PlacementGroupState-instance ToHeader     PlacementGroupState--instance FromXML PlacementGroupState where-    parseXML = parseXMLText "PlacementGroupState"--data PlacementStrategy =-    Cluster-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText PlacementStrategy where-    parser = takeLowerText >>= \case-        "cluster" -> pure Cluster-        e -> fromTextError $ "Failure parsing PlacementStrategy from value: '" <> e-           <> "'. Accepted values: cluster"--instance ToText PlacementStrategy where-    toText = \case-        Cluster -> "cluster"--instance Hashable     PlacementStrategy-instance NFData       PlacementStrategy-instance ToByteString PlacementStrategy-instance ToQuery      PlacementStrategy-instance ToHeader     PlacementStrategy--instance FromXML PlacementStrategy where-    parseXML = parseXMLText "PlacementStrategy"--data PlatformValues =-    Windows-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText PlatformValues where-    parser = takeLowerText >>= \case-        "windows" -> pure Windows-        e -> fromTextError $ "Failure parsing PlatformValues from value: '" <> e-           <> "'. Accepted values: windows"--instance ToText PlatformValues where-    toText = \case-        Windows -> "Windows"--instance Hashable     PlatformValues-instance NFData       PlatformValues-instance ToByteString PlatformValues-instance ToQuery      PlatformValues-instance ToHeader     PlatformValues--instance FromXML PlatformValues where-    parseXML = parseXMLText "PlatformValues"--data ProductCodeValues-    = Devpay-    | Marketplace-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ProductCodeValues where-    parser = takeLowerText >>= \case-        "devpay" -> pure Devpay-        "marketplace" -> pure Marketplace-        e -> fromTextError $ "Failure parsing ProductCodeValues from value: '" <> e-           <> "'. Accepted values: devpay, marketplace"--instance ToText ProductCodeValues where-    toText = \case-        Devpay -> "devpay"-        Marketplace -> "marketplace"--instance Hashable     ProductCodeValues-instance NFData       ProductCodeValues-instance ToByteString ProductCodeValues-instance ToQuery      ProductCodeValues-instance ToHeader     ProductCodeValues--instance FromXML ProductCodeValues where-    parseXML = parseXMLText "ProductCodeValues"--data RIProductDescription-    = RIDLinuxUnix-    | RIDLinuxUnixAmazonVPC-    | RIDWindows-    | RIDWindowsAmazonVPC-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText RIProductDescription where-    parser = takeLowerText >>= \case-        "linux/unix" -> pure RIDLinuxUnix-        "linux/unix (amazon vpc)" -> pure RIDLinuxUnixAmazonVPC-        "windows" -> pure RIDWindows-        "windows (amazon vpc)" -> pure RIDWindowsAmazonVPC-        e -> fromTextError $ "Failure parsing RIProductDescription from value: '" <> e-           <> "'. Accepted values: linux/unix, linux/unix (amazon vpc), windows, windows (amazon vpc)"--instance ToText RIProductDescription where-    toText = \case-        RIDLinuxUnix -> "Linux/UNIX"-        RIDLinuxUnixAmazonVPC -> "Linux/UNIX (Amazon VPC)"-        RIDWindows -> "Windows"-        RIDWindowsAmazonVPC -> "Windows (Amazon VPC)"--instance Hashable     RIProductDescription-instance NFData       RIProductDescription-instance ToByteString RIProductDescription-instance ToQuery      RIProductDescription-instance ToHeader     RIProductDescription--instance FromXML RIProductDescription where-    parseXML = parseXMLText "RIProductDescription"--data RecurringChargeFrequency =-    Hourly-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText RecurringChargeFrequency where-    parser = takeLowerText >>= \case-        "hourly" -> pure Hourly-        e -> fromTextError $ "Failure parsing RecurringChargeFrequency from value: '" <> e-           <> "'. Accepted values: hourly"--instance ToText RecurringChargeFrequency where-    toText = \case-        Hourly -> "Hourly"--instance Hashable     RecurringChargeFrequency-instance NFData       RecurringChargeFrequency-instance ToByteString RecurringChargeFrequency-instance ToQuery      RecurringChargeFrequency-instance ToHeader     RecurringChargeFrequency--instance FromXML RecurringChargeFrequency where-    parseXML = parseXMLText "RecurringChargeFrequency"--data ReportInstanceReasonCodes-    = InstanceStuckInState-    | NotAcceptingCredentials-    | Other-    | PasswordNotAvailable-    | PerformanceEBSVolume-    | PerformanceInstanceStore-    | PerformanceNetwork-    | PerformanceOther-    | Unresponsive-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ReportInstanceReasonCodes where-    parser = takeLowerText >>= \case-        "instance-stuck-in-state" -> pure InstanceStuckInState-        "not-accepting-credentials" -> pure NotAcceptingCredentials-        "other" -> pure Other-        "password-not-available" -> pure PasswordNotAvailable-        "performance-ebs-volume" -> pure PerformanceEBSVolume-        "performance-instance-store" -> pure PerformanceInstanceStore-        "performance-network" -> pure PerformanceNetwork-        "performance-other" -> pure PerformanceOther-        "unresponsive" -> pure Unresponsive-        e -> fromTextError $ "Failure parsing ReportInstanceReasonCodes from value: '" <> e-           <> "'. Accepted values: instance-stuck-in-state, not-accepting-credentials, other, password-not-available, performance-ebs-volume, performance-instance-store, performance-network, performance-other, unresponsive"--instance ToText ReportInstanceReasonCodes where-    toText = \case-        InstanceStuckInState -> "instance-stuck-in-state"-        NotAcceptingCredentials -> "not-accepting-credentials"-        Other -> "other"-        PasswordNotAvailable -> "password-not-available"-        PerformanceEBSVolume -> "performance-ebs-volume"-        PerformanceInstanceStore -> "performance-instance-store"-        PerformanceNetwork -> "performance-network"-        PerformanceOther -> "performance-other"-        Unresponsive -> "unresponsive"--instance Hashable     ReportInstanceReasonCodes-instance NFData       ReportInstanceReasonCodes-instance ToByteString ReportInstanceReasonCodes-instance ToQuery      ReportInstanceReasonCodes-instance ToHeader     ReportInstanceReasonCodes--data ReportStatusType-    = RSTImpaired-    | RSTOK-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ReportStatusType where-    parser = takeLowerText >>= \case-        "impaired" -> pure RSTImpaired-        "ok" -> pure RSTOK-        e -> fromTextError $ "Failure parsing ReportStatusType from value: '" <> e-           <> "'. Accepted values: impaired, ok"--instance ToText ReportStatusType where-    toText = \case-        RSTImpaired -> "impaired"-        RSTOK -> "ok"--instance Hashable     ReportStatusType-instance NFData       ReportStatusType-instance ToByteString ReportStatusType-instance ToQuery      ReportStatusType-instance ToHeader     ReportStatusType--data ReservationState-    = RSActive-    | RSPaymentFailed-    | RSPaymentPending-    | RSRetired-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ReservationState where-    parser = takeLowerText >>= \case-        "active" -> pure RSActive-        "payment-failed" -> pure RSPaymentFailed-        "payment-pending" -> pure RSPaymentPending-        "retired" -> pure RSRetired-        e -> fromTextError $ "Failure parsing ReservationState from value: '" <> e-           <> "'. Accepted values: active, payment-failed, payment-pending, retired"--instance ToText ReservationState where-    toText = \case-        RSActive -> "active"-        RSPaymentFailed -> "payment-failed"-        RSPaymentPending -> "payment-pending"-        RSRetired -> "retired"--instance Hashable     ReservationState-instance NFData       ReservationState-instance ToByteString ReservationState-instance ToQuery      ReservationState-instance ToHeader     ReservationState--instance FromXML ReservationState where-    parseXML = parseXMLText "ReservationState"--data ReservedInstanceState-    = Active-    | PaymentFailed-    | PaymentPending-    | Retired-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ReservedInstanceState where-    parser = takeLowerText >>= \case-        "active" -> pure Active-        "payment-failed" -> pure PaymentFailed-        "payment-pending" -> pure PaymentPending-        "retired" -> pure Retired-        e -> fromTextError $ "Failure parsing ReservedInstanceState from value: '" <> e-           <> "'. Accepted values: active, payment-failed, payment-pending, retired"--instance ToText ReservedInstanceState where-    toText = \case-        Active -> "active"-        PaymentFailed -> "payment-failed"-        PaymentPending -> "payment-pending"-        Retired -> "retired"--instance Hashable     ReservedInstanceState-instance NFData       ReservedInstanceState-instance ToByteString ReservedInstanceState-instance ToQuery      ReservedInstanceState-instance ToHeader     ReservedInstanceState--instance FromXML ReservedInstanceState where-    parseXML = parseXMLText "ReservedInstanceState"--data ResetImageAttributeName =-    RIANLaunchPermission-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ResetImageAttributeName where-    parser = takeLowerText >>= \case-        "launchpermission" -> pure RIANLaunchPermission-        e -> fromTextError $ "Failure parsing ResetImageAttributeName from value: '" <> e-           <> "'. Accepted values: launchpermission"--instance ToText ResetImageAttributeName where-    toText = \case-        RIANLaunchPermission -> "launchPermission"--instance Hashable     ResetImageAttributeName-instance NFData       ResetImageAttributeName-instance ToByteString ResetImageAttributeName-instance ToQuery      ResetImageAttributeName-instance ToHeader     ResetImageAttributeName--data ResourceType-    = CustomerGateway-    | DHCPOptions-    | Image-    | Instance-    | InternetGateway-    | NetworkACL-    | NetworkInterface-    | ReservedInstances-    | RouteTable-    | SecurityGroup-    | Snapshot-    | SpotInstancesRequest-    | Subnet-    | VPC-    | VPNConnection-    | VPNGateway-    | Volume-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ResourceType where-    parser = takeLowerText >>= \case-        "customer-gateway" -> pure CustomerGateway-        "dhcp-options" -> pure DHCPOptions-        "image" -> pure Image-        "instance" -> pure Instance-        "internet-gateway" -> pure InternetGateway-        "network-acl" -> pure NetworkACL-        "network-interface" -> pure NetworkInterface-        "reserved-instances" -> pure ReservedInstances-        "route-table" -> pure RouteTable-        "security-group" -> pure SecurityGroup-        "snapshot" -> pure Snapshot-        "spot-instances-request" -> pure SpotInstancesRequest-        "subnet" -> pure Subnet-        "vpc" -> pure VPC-        "vpn-connection" -> pure VPNConnection-        "vpn-gateway" -> pure VPNGateway-        "volume" -> pure Volume-        e -> fromTextError $ "Failure parsing ResourceType from value: '" <> e-           <> "'. Accepted values: customer-gateway, dhcp-options, image, instance, internet-gateway, network-acl, network-interface, reserved-instances, route-table, security-group, snapshot, spot-instances-request, subnet, vpc, vpn-connection, vpn-gateway, volume"--instance ToText ResourceType where-    toText = \case-        CustomerGateway -> "customer-gateway"-        DHCPOptions -> "dhcp-options"-        Image -> "image"-        Instance -> "instance"-        InternetGateway -> "internet-gateway"-        NetworkACL -> "network-acl"-        NetworkInterface -> "network-interface"-        ReservedInstances -> "reserved-instances"-        RouteTable -> "route-table"-        SecurityGroup -> "security-group"-        Snapshot -> "snapshot"-        SpotInstancesRequest -> "spot-instances-request"-        Subnet -> "subnet"-        VPC -> "vpc"-        VPNConnection -> "vpn-connection"-        VPNGateway -> "vpn-gateway"-        Volume -> "volume"--instance Hashable     ResourceType-instance NFData       ResourceType-instance ToByteString ResourceType-instance ToQuery      ResourceType-instance ToHeader     ResourceType--instance FromXML ResourceType where-    parseXML = parseXMLText "ResourceType"--data RouteOrigin-    = CreateRoute-    | CreateRouteTable-    | EnableVGWRoutePropagation-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText RouteOrigin where-    parser = takeLowerText >>= \case-        "createroute" -> pure CreateRoute-        "createroutetable" -> pure CreateRouteTable-        "enablevgwroutepropagation" -> pure EnableVGWRoutePropagation-        e -> fromTextError $ "Failure parsing RouteOrigin from value: '" <> e-           <> "'. Accepted values: createroute, createroutetable, enablevgwroutepropagation"--instance ToText RouteOrigin where-    toText = \case-        CreateRoute -> "CreateRoute"-        CreateRouteTable -> "CreateRouteTable"-        EnableVGWRoutePropagation -> "EnableVgwRoutePropagation"--instance Hashable     RouteOrigin-instance NFData       RouteOrigin-instance ToByteString RouteOrigin-instance ToQuery      RouteOrigin-instance ToHeader     RouteOrigin--instance FromXML RouteOrigin where-    parseXML = parseXMLText "RouteOrigin"--data RouteState-    = RActive-    | RBlackhole-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText RouteState where-    parser = takeLowerText >>= \case-        "active" -> pure RActive-        "blackhole" -> pure RBlackhole-        e -> fromTextError $ "Failure parsing RouteState from value: '" <> e-           <> "'. Accepted values: active, blackhole"--instance ToText RouteState where-    toText = \case-        RActive -> "active"-        RBlackhole -> "blackhole"--instance Hashable     RouteState-instance NFData       RouteState-instance ToByteString RouteState-instance ToQuery      RouteState-instance ToHeader     RouteState--instance FromXML RouteState where-    parseXML = parseXMLText "RouteState"--data RuleAction-    = Allow-    | Deny-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText RuleAction where-    parser = takeLowerText >>= \case-        "allow" -> pure Allow-        "deny" -> pure Deny-        e -> fromTextError $ "Failure parsing RuleAction from value: '" <> e-           <> "'. Accepted values: allow, deny"--instance ToText RuleAction where-    toText = \case-        Allow -> "allow"-        Deny -> "deny"--instance Hashable     RuleAction-instance NFData       RuleAction-instance ToByteString RuleAction-instance ToQuery      RuleAction-instance ToHeader     RuleAction--instance FromXML RuleAction where-    parseXML = parseXMLText "RuleAction"--data Scope-    = AvailabilityZone-    | Region-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText Scope where-    parser = takeLowerText >>= \case-        "availability zone" -> pure AvailabilityZone-        "region" -> pure Region-        e -> fromTextError $ "Failure parsing Scope from value: '" <> e-           <> "'. Accepted values: availability zone, region"--instance ToText Scope where-    toText = \case-        AvailabilityZone -> "Availability Zone"-        Region -> "Region"--instance Hashable     Scope-instance NFData       Scope-instance ToByteString Scope-instance ToQuery      Scope-instance ToHeader     Scope--instance FromXML Scope where-    parseXML = parseXMLText "Scope"--data ShutdownBehavior-    = Stop-    | Terminate-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText ShutdownBehavior where-    parser = takeLowerText >>= \case-        "stop" -> pure Stop-        "terminate" -> pure Terminate-        e -> fromTextError $ "Failure parsing ShutdownBehavior from value: '" <> e-           <> "'. Accepted values: stop, terminate"--instance ToText ShutdownBehavior where-    toText = \case-        Stop -> "stop"-        Terminate -> "terminate"--instance Hashable     ShutdownBehavior-instance NFData       ShutdownBehavior-instance ToByteString ShutdownBehavior-instance ToQuery      ShutdownBehavior-instance ToHeader     ShutdownBehavior--data SnapshotAttributeName-    = SANCreateVolumePermission-    | SANProductCodes-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SnapshotAttributeName where-    parser = takeLowerText >>= \case-        "createvolumepermission" -> pure SANCreateVolumePermission-        "productcodes" -> pure SANProductCodes-        e -> fromTextError $ "Failure parsing SnapshotAttributeName from value: '" <> e-           <> "'. Accepted values: createvolumepermission, productcodes"--instance ToText SnapshotAttributeName where-    toText = \case-        SANCreateVolumePermission -> "createVolumePermission"-        SANProductCodes -> "productCodes"--instance Hashable     SnapshotAttributeName-instance NFData       SnapshotAttributeName-instance ToByteString SnapshotAttributeName-instance ToQuery      SnapshotAttributeName-instance ToHeader     SnapshotAttributeName--data SnapshotState-    = SSCompleted-    | SSError'-    | SSPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SnapshotState where-    parser = takeLowerText >>= \case-        "completed" -> pure SSCompleted-        "error" -> pure SSError'-        "pending" -> pure SSPending-        e -> fromTextError $ "Failure parsing SnapshotState from value: '" <> e-           <> "'. Accepted values: completed, error, pending"--instance ToText SnapshotState where-    toText = \case-        SSCompleted -> "completed"-        SSError' -> "error"-        SSPending -> "pending"--instance Hashable     SnapshotState-instance NFData       SnapshotState-instance ToByteString SnapshotState-instance ToQuery      SnapshotState-instance ToHeader     SnapshotState--instance FromXML SnapshotState where-    parseXML = parseXMLText "SnapshotState"--data SpotInstanceState-    = SISActive-    | SISCancelled-    | SISClosed-    | SISFailed-    | SISOpen-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SpotInstanceState where-    parser = takeLowerText >>= \case-        "active" -> pure SISActive-        "cancelled" -> pure SISCancelled-        "closed" -> pure SISClosed-        "failed" -> pure SISFailed-        "open" -> pure SISOpen-        e -> fromTextError $ "Failure parsing SpotInstanceState from value: '" <> e-           <> "'. Accepted values: active, cancelled, closed, failed, open"--instance ToText SpotInstanceState where-    toText = \case-        SISActive -> "active"-        SISCancelled -> "cancelled"-        SISClosed -> "closed"-        SISFailed -> "failed"-        SISOpen -> "open"--instance Hashable     SpotInstanceState-instance NFData       SpotInstanceState-instance ToByteString SpotInstanceState-instance ToQuery      SpotInstanceState-instance ToHeader     SpotInstanceState--instance FromXML SpotInstanceState where-    parseXML = parseXMLText "SpotInstanceState"--data SpotInstanceType-    = OneTime-    | Persistent-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SpotInstanceType where-    parser = takeLowerText >>= \case-        "one-time" -> pure OneTime-        "persistent" -> pure Persistent-        e -> fromTextError $ "Failure parsing SpotInstanceType from value: '" <> e-           <> "'. Accepted values: one-time, persistent"--instance ToText SpotInstanceType where-    toText = \case-        OneTime -> "one-time"-        Persistent -> "persistent"--instance Hashable     SpotInstanceType-instance NFData       SpotInstanceType-instance ToByteString SpotInstanceType-instance ToQuery      SpotInstanceType-instance ToHeader     SpotInstanceType--instance FromXML SpotInstanceType where-    parseXML = parseXMLText "SpotInstanceType"--data State-    = SAvailable-    | SDeleted-    | SDeleting-    | SPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText State where-    parser = takeLowerText >>= \case-        "available" -> pure SAvailable-        "deleted" -> pure SDeleted-        "deleting" -> pure SDeleting-        "pending" -> pure SPending-        e -> fromTextError $ "Failure parsing State from value: '" <> e-           <> "'. Accepted values: available, deleted, deleting, pending"--instance ToText State where-    toText = \case-        SAvailable -> "Available"-        SDeleted -> "Deleted"-        SDeleting -> "Deleting"-        SPending -> "Pending"--instance Hashable     State-instance NFData       State-instance ToByteString State-instance ToQuery      State-instance ToHeader     State--instance FromXML State where-    parseXML = parseXMLText "State"--data StatusName =-    Reachability-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText StatusName where-    parser = takeLowerText >>= \case-        "reachability" -> pure Reachability-        e -> fromTextError $ "Failure parsing StatusName from value: '" <> e-           <> "'. Accepted values: reachability"--instance ToText StatusName where-    toText = \case-        Reachability -> "reachability"--instance Hashable     StatusName-instance NFData       StatusName-instance ToByteString StatusName-instance ToQuery      StatusName-instance ToHeader     StatusName--instance FromXML StatusName where-    parseXML = parseXMLText "StatusName"--data StatusType-    = STFailed-    | STInitializing-    | STInsufficientData-    | STPassed-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText StatusType where-    parser = takeLowerText >>= \case-        "failed" -> pure STFailed-        "initializing" -> pure STInitializing-        "insufficient-data" -> pure STInsufficientData-        "passed" -> pure STPassed-        e -> fromTextError $ "Failure parsing StatusType from value: '" <> e-           <> "'. Accepted values: failed, initializing, insufficient-data, passed"--instance ToText StatusType where-    toText = \case-        STFailed -> "failed"-        STInitializing -> "initializing"-        STInsufficientData -> "insufficient-data"-        STPassed -> "passed"--instance Hashable     StatusType-instance NFData       StatusType-instance ToByteString StatusType-instance ToQuery      StatusType-instance ToHeader     StatusType--instance FromXML StatusType where-    parseXML = parseXMLText "StatusType"--data SubnetCidrBlockStateCode-    = Associated-    | Associating-    | Disassociated-    | Disassociating-    | Failed-    | Failing-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SubnetCidrBlockStateCode where-    parser = takeLowerText >>= \case-        "associated" -> pure Associated-        "associating" -> pure Associating-        "disassociated" -> pure Disassociated-        "disassociating" -> pure Disassociating-        "failed" -> pure Failed-        "failing" -> pure Failing-        e -> fromTextError $ "Failure parsing SubnetCidrBlockStateCode from value: '" <> e-           <> "'. Accepted values: associated, associating, disassociated, disassociating, failed, failing"--instance ToText SubnetCidrBlockStateCode where-    toText = \case-        Associated -> "associated"-        Associating -> "associating"-        Disassociated -> "disassociated"-        Disassociating -> "disassociating"-        Failed -> "failed"-        Failing -> "failing"--instance Hashable     SubnetCidrBlockStateCode-instance NFData       SubnetCidrBlockStateCode-instance ToByteString SubnetCidrBlockStateCode-instance ToQuery      SubnetCidrBlockStateCode-instance ToHeader     SubnetCidrBlockStateCode--instance FromXML SubnetCidrBlockStateCode where-    parseXML = parseXMLText "SubnetCidrBlockStateCode"--data SubnetState-    = SubAvailable-    | SubPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SubnetState where-    parser = takeLowerText >>= \case-        "available" -> pure SubAvailable-        "pending" -> pure SubPending-        e -> fromTextError $ "Failure parsing SubnetState from value: '" <> e-           <> "'. Accepted values: available, pending"--instance ToText SubnetState where-    toText = \case-        SubAvailable -> "available"-        SubPending -> "pending"--instance Hashable     SubnetState-instance NFData       SubnetState-instance ToByteString SubnetState-instance ToQuery      SubnetState-instance ToHeader     SubnetState--instance FromXML SubnetState where-    parseXML = parseXMLText "SubnetState"--data SummaryStatus-    = SSImpaired-    | SSInitializing-    | SSInsufficientData-    | SSNotApplicable-    | SSOK-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText SummaryStatus where-    parser = takeLowerText >>= \case-        "impaired" -> pure SSImpaired-        "initializing" -> pure SSInitializing-        "insufficient-data" -> pure SSInsufficientData-        "not-applicable" -> pure SSNotApplicable-        "ok" -> pure SSOK-        e -> fromTextError $ "Failure parsing SummaryStatus from value: '" <> e-           <> "'. Accepted values: impaired, initializing, insufficient-data, not-applicable, ok"--instance ToText SummaryStatus where-    toText = \case-        SSImpaired -> "impaired"-        SSInitializing -> "initializing"-        SSInsufficientData -> "insufficient-data"-        SSNotApplicable -> "not-applicable"-        SSOK -> "ok"--instance Hashable     SummaryStatus-instance NFData       SummaryStatus-instance ToByteString SummaryStatus-instance ToQuery      SummaryStatus-instance ToHeader     SummaryStatus--instance FromXML SummaryStatus where-    parseXML = parseXMLText "SummaryStatus"--data TelemetryStatus-    = Down-    | UP-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText TelemetryStatus where-    parser = takeLowerText >>= \case-        "down" -> pure Down-        "up" -> pure UP-        e -> fromTextError $ "Failure parsing TelemetryStatus from value: '" <> e-           <> "'. Accepted values: down, up"--instance ToText TelemetryStatus where-    toText = \case-        Down -> "DOWN"-        UP -> "UP"--instance Hashable     TelemetryStatus-instance NFData       TelemetryStatus-instance ToByteString TelemetryStatus-instance ToQuery      TelemetryStatus-instance ToHeader     TelemetryStatus--instance FromXML TelemetryStatus where-    parseXML = parseXMLText "TelemetryStatus"--data Tenancy-    = Dedicated-    | Default-    | Host-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText Tenancy where-    parser = takeLowerText >>= \case-        "dedicated" -> pure Dedicated-        "default" -> pure Default-        "host" -> pure Host-        e -> fromTextError $ "Failure parsing Tenancy from value: '" <> e-           <> "'. Accepted values: dedicated, default, host"--instance ToText Tenancy where-    toText = \case-        Dedicated -> "dedicated"-        Default -> "default"-        Host -> "host"--instance Hashable     Tenancy-instance NFData       Tenancy-instance ToByteString Tenancy-instance ToQuery      Tenancy-instance ToHeader     Tenancy--instance FromXML Tenancy where-    parseXML = parseXMLText "Tenancy"--data TrafficType-    = TTAccept-    | TTAll-    | TTReject-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText TrafficType where-    parser = takeLowerText >>= \case-        "accept" -> pure TTAccept-        "all" -> pure TTAll-        "reject" -> pure TTReject-        e -> fromTextError $ "Failure parsing TrafficType from value: '" <> e-           <> "'. Accepted values: accept, all, reject"--instance ToText TrafficType where-    toText = \case-        TTAccept -> "ACCEPT"-        TTAll -> "ALL"-        TTReject -> "REJECT"--instance Hashable     TrafficType-instance NFData       TrafficType-instance ToByteString TrafficType-instance ToQuery      TrafficType-instance ToHeader     TrafficType--instance FromXML TrafficType where-    parseXML = parseXMLText "TrafficType"--data VPCAttributeName-    = EnableDNSHostnames-    | EnableDNSSupport-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VPCAttributeName where-    parser = takeLowerText >>= \case-        "enablednshostnames" -> pure EnableDNSHostnames-        "enablednssupport" -> pure EnableDNSSupport-        e -> fromTextError $ "Failure parsing VPCAttributeName from value: '" <> e-           <> "'. Accepted values: enablednshostnames, enablednssupport"--instance ToText VPCAttributeName where-    toText = \case-        EnableDNSHostnames -> "enableDnsHostnames"-        EnableDNSSupport -> "enableDnsSupport"--instance Hashable     VPCAttributeName-instance NFData       VPCAttributeName-instance ToByteString VPCAttributeName-instance ToQuery      VPCAttributeName-instance ToHeader     VPCAttributeName--data VPCCidrBlockStateCode-    = VCBSCAssociated-    | VCBSCAssociating-    | VCBSCDisassociated-    | VCBSCDisassociating-    | VCBSCFailed-    | VCBSCFailing-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VPCCidrBlockStateCode where-    parser = takeLowerText >>= \case-        "associated" -> pure VCBSCAssociated-        "associating" -> pure VCBSCAssociating-        "disassociated" -> pure VCBSCDisassociated-        "disassociating" -> pure VCBSCDisassociating-        "failed" -> pure VCBSCFailed-        "failing" -> pure VCBSCFailing-        e -> fromTextError $ "Failure parsing VPCCidrBlockStateCode from value: '" <> e-           <> "'. Accepted values: associated, associating, disassociated, disassociating, failed, failing"--instance ToText VPCCidrBlockStateCode where-    toText = \case-        VCBSCAssociated -> "associated"-        VCBSCAssociating -> "associating"-        VCBSCDisassociated -> "disassociated"-        VCBSCDisassociating -> "disassociating"-        VCBSCFailed -> "failed"-        VCBSCFailing -> "failing"--instance Hashable     VPCCidrBlockStateCode-instance NFData       VPCCidrBlockStateCode-instance ToByteString VPCCidrBlockStateCode-instance ToQuery      VPCCidrBlockStateCode-instance ToHeader     VPCCidrBlockStateCode--instance FromXML VPCCidrBlockStateCode where-    parseXML = parseXMLText "VPCCidrBlockStateCode"--data VPCPeeringConnectionStateReasonCode-    = VPCSRCActive-    | VPCSRCDeleted-    | VPCSRCDeleting-    | VPCSRCExpired-    | VPCSRCFailed-    | VPCSRCInitiatingRequest-    | VPCSRCPendingAcceptance-    | VPCSRCProvisioning-    | VPCSRCRejected-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VPCPeeringConnectionStateReasonCode where-    parser = takeLowerText >>= \case-        "active" -> pure VPCSRCActive-        "deleted" -> pure VPCSRCDeleted-        "deleting" -> pure VPCSRCDeleting-        "expired" -> pure VPCSRCExpired-        "failed" -> pure VPCSRCFailed-        "initiating-request" -> pure VPCSRCInitiatingRequest-        "pending-acceptance" -> pure VPCSRCPendingAcceptance-        "provisioning" -> pure VPCSRCProvisioning-        "rejected" -> pure VPCSRCRejected-        e -> fromTextError $ "Failure parsing VPCPeeringConnectionStateReasonCode from value: '" <> e-           <> "'. Accepted values: active, deleted, deleting, expired, failed, initiating-request, pending-acceptance, provisioning, rejected"--instance ToText VPCPeeringConnectionStateReasonCode where-    toText = \case-        VPCSRCActive -> "active"-        VPCSRCDeleted -> "deleted"-        VPCSRCDeleting -> "deleting"-        VPCSRCExpired -> "expired"-        VPCSRCFailed -> "failed"-        VPCSRCInitiatingRequest -> "initiating-request"-        VPCSRCPendingAcceptance -> "pending-acceptance"-        VPCSRCProvisioning -> "provisioning"-        VPCSRCRejected -> "rejected"--instance Hashable     VPCPeeringConnectionStateReasonCode-instance NFData       VPCPeeringConnectionStateReasonCode-instance ToByteString VPCPeeringConnectionStateReasonCode-instance ToQuery      VPCPeeringConnectionStateReasonCode-instance ToHeader     VPCPeeringConnectionStateReasonCode--instance FromXML VPCPeeringConnectionStateReasonCode where-    parseXML = parseXMLText "VPCPeeringConnectionStateReasonCode"--data VPCState-    = VPCSAvailable-    | VPCSPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VPCState where-    parser = takeLowerText >>= \case-        "available" -> pure VPCSAvailable-        "pending" -> pure VPCSPending-        e -> fromTextError $ "Failure parsing VPCState from value: '" <> e-           <> "'. Accepted values: available, pending"--instance ToText VPCState where-    toText = \case-        VPCSAvailable -> "available"-        VPCSPending -> "pending"--instance Hashable     VPCState-instance NFData       VPCState-instance ToByteString VPCState-instance ToQuery      VPCState-instance ToHeader     VPCState--instance FromXML VPCState where-    parseXML = parseXMLText "VPCState"--data VPNState-    = VSAvailable-    | VSDeleted-    | VSDeleting-    | VSPending-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VPNState where-    parser = takeLowerText >>= \case-        "available" -> pure VSAvailable-        "deleted" -> pure VSDeleted-        "deleting" -> pure VSDeleting-        "pending" -> pure VSPending-        e -> fromTextError $ "Failure parsing VPNState from value: '" <> e-           <> "'. Accepted values: available, deleted, deleting, pending"--instance ToText VPNState where-    toText = \case-        VSAvailable -> "available"-        VSDeleted -> "deleted"-        VSDeleting -> "deleting"-        VSPending -> "pending"--instance Hashable     VPNState-instance NFData       VPNState-instance ToByteString VPNState-instance ToQuery      VPNState-instance ToHeader     VPNState--instance FromXML VPNState where-    parseXML = parseXMLText "VPNState"--data VPNStaticRouteSource =-    Static-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VPNStaticRouteSource where-    parser = takeLowerText >>= \case-        "static" -> pure Static-        e -> fromTextError $ "Failure parsing VPNStaticRouteSource from value: '" <> e-           <> "'. Accepted values: static"--instance ToText VPNStaticRouteSource where-    toText = \case-        Static -> "Static"--instance Hashable     VPNStaticRouteSource-instance NFData       VPNStaticRouteSource-instance ToByteString VPNStaticRouteSource-instance ToQuery      VPNStaticRouteSource-instance ToHeader     VPNStaticRouteSource--instance FromXML VPNStaticRouteSource where-    parseXML = parseXMLText "VPNStaticRouteSource"--data VirtualizationType-    = HVM-    | Paravirtual-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VirtualizationType where-    parser = takeLowerText >>= \case-        "hvm" -> pure HVM-        "paravirtual" -> pure Paravirtual-        e -> fromTextError $ "Failure parsing VirtualizationType from value: '" <> e-           <> "'. Accepted values: hvm, paravirtual"--instance ToText VirtualizationType where-    toText = \case-        HVM -> "hvm"-        Paravirtual -> "paravirtual"--instance Hashable     VirtualizationType-instance NFData       VirtualizationType-instance ToByteString VirtualizationType-instance ToQuery      VirtualizationType-instance ToHeader     VirtualizationType--instance FromXML VirtualizationType where-    parseXML = parseXMLText "VirtualizationType"--data VolumeAttachmentState-    = VAttached-    | VAttaching-    | VBusy-    | VDetached-    | VDetaching-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VolumeAttachmentState where-    parser = takeLowerText >>= \case-        "attached" -> pure VAttached-        "attaching" -> pure VAttaching-        "busy" -> pure VBusy-        "detached" -> pure VDetached-        "detaching" -> pure VDetaching-        e -> fromTextError $ "Failure parsing VolumeAttachmentState from value: '" <> e-           <> "'. Accepted values: attached, attaching, busy, detached, detaching"--instance ToText VolumeAttachmentState where-    toText = \case-        VAttached -> "attached"-        VAttaching -> "attaching"-        VBusy -> "busy"-        VDetached -> "detached"-        VDetaching -> "detaching"--instance Hashable     VolumeAttachmentState-instance NFData       VolumeAttachmentState-instance ToByteString VolumeAttachmentState-instance ToQuery      VolumeAttachmentState-instance ToHeader     VolumeAttachmentState--instance FromXML VolumeAttachmentState where-    parseXML = parseXMLText "VolumeAttachmentState"--data VolumeAttributeName-    = VANAutoEnableIO-    | VANProductCodes-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VolumeAttributeName where-    parser = takeLowerText >>= \case-        "autoenableio" -> pure VANAutoEnableIO-        "productcodes" -> pure VANProductCodes-        e -> fromTextError $ "Failure parsing VolumeAttributeName from value: '" <> e-           <> "'. Accepted values: autoenableio, productcodes"--instance ToText VolumeAttributeName where-    toText = \case-        VANAutoEnableIO -> "autoEnableIO"-        VANProductCodes -> "productCodes"--instance Hashable     VolumeAttributeName-instance NFData       VolumeAttributeName-instance ToByteString VolumeAttributeName-instance ToQuery      VolumeAttributeName-instance ToHeader     VolumeAttributeName--data VolumeState-    = VAvailable-    | VCreating-    | VDeleted-    | VDeleting-    | VError'-    | VInUse-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VolumeState where-    parser = takeLowerText >>= \case-        "available" -> pure VAvailable-        "creating" -> pure VCreating-        "deleted" -> pure VDeleted-        "deleting" -> pure VDeleting-        "error" -> pure VError'-        "in-use" -> pure VInUse-        e -> fromTextError $ "Failure parsing VolumeState from value: '" <> e-           <> "'. Accepted values: available, creating, deleted, deleting, error, in-use"--instance ToText VolumeState where-    toText = \case-        VAvailable -> "available"-        VCreating -> "creating"-        VDeleted -> "deleted"-        VDeleting -> "deleting"-        VError' -> "error"-        VInUse -> "in-use"--instance Hashable     VolumeState-instance NFData       VolumeState-instance ToByteString VolumeState-instance ToQuery      VolumeState-instance ToHeader     VolumeState--instance FromXML VolumeState where-    parseXML = parseXMLText "VolumeState"--data VolumeStatusInfoStatus-    = Impaired-    | InsufficientData-    | OK-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VolumeStatusInfoStatus where-    parser = takeLowerText >>= \case-        "impaired" -> pure Impaired-        "insufficient-data" -> pure InsufficientData-        "ok" -> pure OK-        e -> fromTextError $ "Failure parsing VolumeStatusInfoStatus from value: '" <> e-           <> "'. Accepted values: impaired, insufficient-data, ok"--instance ToText VolumeStatusInfoStatus where-    toText = \case-        Impaired -> "impaired"-        InsufficientData -> "insufficient-data"-        OK -> "ok"--instance Hashable     VolumeStatusInfoStatus-instance NFData       VolumeStatusInfoStatus-instance ToByteString VolumeStatusInfoStatus-instance ToQuery      VolumeStatusInfoStatus-instance ToHeader     VolumeStatusInfoStatus--instance FromXML VolumeStatusInfoStatus where-    parseXML = parseXMLText "VolumeStatusInfoStatus"--data VolumeStatusName-    = IOEnabled-    | IOPerformance-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VolumeStatusName where-    parser = takeLowerText >>= \case-        "io-enabled" -> pure IOEnabled-        "io-performance" -> pure IOPerformance-        e -> fromTextError $ "Failure parsing VolumeStatusName from value: '" <> e-           <> "'. Accepted values: io-enabled, io-performance"--instance ToText VolumeStatusName where-    toText = \case-        IOEnabled -> "io-enabled"-        IOPerformance -> "io-performance"--instance Hashable     VolumeStatusName-instance NFData       VolumeStatusName-instance ToByteString VolumeStatusName-instance ToQuery      VolumeStatusName-instance ToHeader     VolumeStatusName--instance FromXML VolumeStatusName where-    parseXML = parseXMLText "VolumeStatusName"--data VolumeType-    = VTGP2-    | VTIO1-    | VTSC1-    | VTST1-    | VTStandard-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)--instance FromText VolumeType where-    parser = takeLowerText >>= \case-        "gp2" -> pure VTGP2-        "io1" -> pure VTIO1-        "sc1" -> pure VTSC1-        "st1" -> pure VTST1-        "standard" -> pure VTStandard-        e -> fromTextError $ "Failure parsing VolumeType from value: '" <> e-           <> "'. Accepted values: gp2, io1, sc1, st1, standard"--instance ToText VolumeType where-    toText = \case-        VTGP2 -> "gp2"-        VTIO1 -> "io1"-        VTSC1 -> "sc1"-        VTST1 -> "st1"-        VTStandard -> "standard"+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.EC2.Types.Sum where++import Network.AWS.EC2.Internal+import Network.AWS.Prelude++data AccountAttributeName+  = DefaultVPC+  | SupportedPlatforms+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AccountAttributeName where+    parser = takeLowerText >>= \case+        "default-vpc" -> pure DefaultVPC+        "supported-platforms" -> pure SupportedPlatforms+        e -> fromTextError $ "Failure parsing AccountAttributeName from value: '" <> e+           <> "'. Accepted values: default-vpc, supported-platforms"++instance ToText AccountAttributeName where+    toText = \case+        DefaultVPC -> "default-vpc"+        SupportedPlatforms -> "supported-platforms"++instance Hashable     AccountAttributeName+instance NFData       AccountAttributeName+instance ToByteString AccountAttributeName+instance ToQuery      AccountAttributeName+instance ToHeader     AccountAttributeName++data ActivityStatus+  = Error'+  | Fulfilled+  | PendingFulfillment+  | PendingTermination+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ActivityStatus where+    parser = takeLowerText >>= \case+        "error" -> pure Error'+        "fulfilled" -> pure Fulfilled+        "pending_fulfillment" -> pure PendingFulfillment+        "pending_termination" -> pure PendingTermination+        e -> fromTextError $ "Failure parsing ActivityStatus from value: '" <> e+           <> "'. Accepted values: error, fulfilled, pending_fulfillment, pending_termination"++instance ToText ActivityStatus where+    toText = \case+        Error' -> "error"+        Fulfilled -> "fulfilled"+        PendingFulfillment -> "pending_fulfillment"+        PendingTermination -> "pending_termination"++instance Hashable     ActivityStatus+instance NFData       ActivityStatus+instance ToByteString ActivityStatus+instance ToQuery      ActivityStatus+instance ToHeader     ActivityStatus++instance FromXML ActivityStatus where+    parseXML = parseXMLText "ActivityStatus"++data AddressStatus+  = InClassic+  | InVPC+  | MoveInProgress+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AddressStatus where+    parser = takeLowerText >>= \case+        "inclassic" -> pure InClassic+        "invpc" -> pure InVPC+        "moveinprogress" -> pure MoveInProgress+        e -> fromTextError $ "Failure parsing AddressStatus from value: '" <> e+           <> "'. Accepted values: inclassic, invpc, moveinprogress"++instance ToText AddressStatus where+    toText = \case+        InClassic -> "InClassic"+        InVPC -> "InVpc"+        MoveInProgress -> "MoveInProgress"++instance Hashable     AddressStatus+instance NFData       AddressStatus+instance ToByteString AddressStatus+instance ToQuery      AddressStatus+instance ToHeader     AddressStatus++instance FromXML AddressStatus where+    parseXML = parseXMLText "AddressStatus"++data Affinity+  = ADefault+  | AHost+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Affinity where+    parser = takeLowerText >>= \case+        "default" -> pure ADefault+        "host" -> pure AHost+        e -> fromTextError $ "Failure parsing Affinity from value: '" <> e+           <> "'. Accepted values: default, host"++instance ToText Affinity where+    toText = \case+        ADefault -> "default"+        AHost -> "host"++instance Hashable     Affinity+instance NFData       Affinity+instance ToByteString Affinity+instance ToQuery      Affinity+instance ToHeader     Affinity++data AllocationState+  = ASAvailable+  | ASPermanentFailure+  | ASReleased+  | ASReleasedPermanentFailure+  | ASUnderAssessment+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AllocationState where+    parser = takeLowerText >>= \case+        "available" -> pure ASAvailable+        "permanent-failure" -> pure ASPermanentFailure+        "released" -> pure ASReleased+        "released-permanent-failure" -> pure ASReleasedPermanentFailure+        "under-assessment" -> pure ASUnderAssessment+        e -> fromTextError $ "Failure parsing AllocationState from value: '" <> e+           <> "'. Accepted values: available, permanent-failure, released, released-permanent-failure, under-assessment"++instance ToText AllocationState where+    toText = \case+        ASAvailable -> "available"+        ASPermanentFailure -> "permanent-failure"+        ASReleased -> "released"+        ASReleasedPermanentFailure -> "released-permanent-failure"+        ASUnderAssessment -> "under-assessment"++instance Hashable     AllocationState+instance NFData       AllocationState+instance ToByteString AllocationState+instance ToQuery      AllocationState+instance ToHeader     AllocationState++instance FromXML AllocationState where+    parseXML = parseXMLText "AllocationState"++data AllocationStrategy+  = Diversified+  | LowestPrice+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AllocationStrategy where+    parser = takeLowerText >>= \case+        "diversified" -> pure Diversified+        "lowestprice" -> pure LowestPrice+        e -> fromTextError $ "Failure parsing AllocationStrategy from value: '" <> e+           <> "'. Accepted values: diversified, lowestprice"++instance ToText AllocationStrategy where+    toText = \case+        Diversified -> "diversified"+        LowestPrice -> "lowestPrice"++instance Hashable     AllocationStrategy+instance NFData       AllocationStrategy+instance ToByteString AllocationStrategy+instance ToQuery      AllocationStrategy+instance ToHeader     AllocationStrategy++instance FromXML AllocationStrategy where+    parseXML = parseXMLText "AllocationStrategy"++data ArchitectureValues+  = I386+  | X86_64+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ArchitectureValues where+    parser = takeLowerText >>= \case+        "i386" -> pure I386+        "x86_64" -> pure X86_64+        e -> fromTextError $ "Failure parsing ArchitectureValues from value: '" <> e+           <> "'. Accepted values: i386, x86_64"++instance ToText ArchitectureValues where+    toText = \case+        I386 -> "i386"+        X86_64 -> "x86_64"++instance Hashable     ArchitectureValues+instance NFData       ArchitectureValues+instance ToByteString ArchitectureValues+instance ToQuery      ArchitectureValues+instance ToHeader     ArchitectureValues++instance FromXML ArchitectureValues where+    parseXML = parseXMLText "ArchitectureValues"++data AttachmentStatus+  = AAttached+  | AAttaching+  | AAvailable+  | ABusy+  | ADetached+  | ADetaching+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AttachmentStatus where+    parser = takeLowerText >>= \case+        "attached" -> pure AAttached+        "attaching" -> pure AAttaching+        "available" -> pure AAvailable+        "busy" -> pure ABusy+        "detached" -> pure ADetached+        "detaching" -> pure ADetaching+        e -> fromTextError $ "Failure parsing AttachmentStatus from value: '" <> e+           <> "'. Accepted values: attached, attaching, available, busy, detached, detaching"++instance ToText AttachmentStatus where+    toText = \case+        AAttached -> "attached"+        AAttaching -> "attaching"+        AAvailable -> "available"+        ABusy -> "busy"+        ADetached -> "detached"+        ADetaching -> "detaching"++instance Hashable     AttachmentStatus+instance NFData       AttachmentStatus+instance ToByteString AttachmentStatus+instance ToQuery      AttachmentStatus+instance ToHeader     AttachmentStatus++instance FromXML AttachmentStatus where+    parseXML = parseXMLText "AttachmentStatus"++data AutoPlacement+  = ON+  | Off+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AutoPlacement where+    parser = takeLowerText >>= \case+        "on" -> pure ON+        "off" -> pure Off+        e -> fromTextError $ "Failure parsing AutoPlacement from value: '" <> e+           <> "'. Accepted values: on, off"++instance ToText AutoPlacement where+    toText = \case+        ON -> "on"+        Off -> "off"++instance Hashable     AutoPlacement+instance NFData       AutoPlacement+instance ToByteString AutoPlacement+instance ToQuery      AutoPlacement+instance ToHeader     AutoPlacement++instance FromXML AutoPlacement where+    parseXML = parseXMLText "AutoPlacement"++data AvailabilityZoneState+  = AZSAvailable+  | AZSImpaired+  | AZSInformation+  | AZSUnavailable+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText AvailabilityZoneState where+    parser = takeLowerText >>= \case+        "available" -> pure AZSAvailable+        "impaired" -> pure AZSImpaired+        "information" -> pure AZSInformation+        "unavailable" -> pure AZSUnavailable+        e -> fromTextError $ "Failure parsing AvailabilityZoneState from value: '" <> e+           <> "'. Accepted values: available, impaired, information, unavailable"++instance ToText AvailabilityZoneState where+    toText = \case+        AZSAvailable -> "available"+        AZSImpaired -> "impaired"+        AZSInformation -> "information"+        AZSUnavailable -> "unavailable"++instance Hashable     AvailabilityZoneState+instance NFData       AvailabilityZoneState+instance ToByteString AvailabilityZoneState+instance ToQuery      AvailabilityZoneState+instance ToHeader     AvailabilityZoneState++instance FromXML AvailabilityZoneState where+    parseXML = parseXMLText "AvailabilityZoneState"++data BatchState+  = BSActive+  | BSCancelled+  | BSCancelledRunning+  | BSCancelledTerminating+  | BSFailed+  | BSModifying+  | BSSubmitted+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BatchState where+    parser = takeLowerText >>= \case+        "active" -> pure BSActive+        "cancelled" -> pure BSCancelled+        "cancelled_running" -> pure BSCancelledRunning+        "cancelled_terminating" -> pure BSCancelledTerminating+        "failed" -> pure BSFailed+        "modifying" -> pure BSModifying+        "submitted" -> pure BSSubmitted+        e -> fromTextError $ "Failure parsing BatchState from value: '" <> e+           <> "'. Accepted values: active, cancelled, cancelled_running, cancelled_terminating, failed, modifying, submitted"++instance ToText BatchState where+    toText = \case+        BSActive -> "active"+        BSCancelled -> "cancelled"+        BSCancelledRunning -> "cancelled_running"+        BSCancelledTerminating -> "cancelled_terminating"+        BSFailed -> "failed"+        BSModifying -> "modifying"+        BSSubmitted -> "submitted"++instance Hashable     BatchState+instance NFData       BatchState+instance ToByteString BatchState+instance ToQuery      BatchState+instance ToHeader     BatchState++instance FromXML BatchState where+    parseXML = parseXMLText "BatchState"++data BundleTaskState+  = BTSBundling+  | BTSCancelling+  | BTSComplete+  | BTSFailed+  | BTSPending+  | BTSStoring+  | BTSWaitingForShutdown+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText BundleTaskState where+    parser = takeLowerText >>= \case+        "bundling" -> pure BTSBundling+        "cancelling" -> pure BTSCancelling+        "complete" -> pure BTSComplete+        "failed" -> pure BTSFailed+        "pending" -> pure BTSPending+        "storing" -> pure BTSStoring+        "waiting-for-shutdown" -> pure BTSWaitingForShutdown+        e -> fromTextError $ "Failure parsing BundleTaskState from value: '" <> e+           <> "'. Accepted values: bundling, cancelling, complete, failed, pending, storing, waiting-for-shutdown"++instance ToText BundleTaskState where+    toText = \case+        BTSBundling -> "bundling"+        BTSCancelling -> "cancelling"+        BTSComplete -> "complete"+        BTSFailed -> "failed"+        BTSPending -> "pending"+        BTSStoring -> "storing"+        BTSWaitingForShutdown -> "waiting-for-shutdown"++instance Hashable     BundleTaskState+instance NFData       BundleTaskState+instance ToByteString BundleTaskState+instance ToQuery      BundleTaskState+instance ToHeader     BundleTaskState++instance FromXML BundleTaskState where+    parseXML = parseXMLText "BundleTaskState"++data CancelBatchErrorCode+  = FleetRequestIdDoesNotExist+  | FleetRequestIdMalformed+  | FleetRequestNotInCancellableState+  | UnexpectedError+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText CancelBatchErrorCode where+    parser = takeLowerText >>= \case+        "fleetrequestiddoesnotexist" -> pure FleetRequestIdDoesNotExist+        "fleetrequestidmalformed" -> pure FleetRequestIdMalformed+        "fleetrequestnotincancellablestate" -> pure FleetRequestNotInCancellableState+        "unexpectederror" -> pure UnexpectedError+        e -> fromTextError $ "Failure parsing CancelBatchErrorCode from value: '" <> e+           <> "'. Accepted values: fleetrequestiddoesnotexist, fleetrequestidmalformed, fleetrequestnotincancellablestate, unexpectederror"++instance ToText CancelBatchErrorCode where+    toText = \case+        FleetRequestIdDoesNotExist -> "fleetRequestIdDoesNotExist"+        FleetRequestIdMalformed -> "fleetRequestIdMalformed"+        FleetRequestNotInCancellableState -> "fleetRequestNotInCancellableState"+        UnexpectedError -> "unexpectedError"++instance Hashable     CancelBatchErrorCode+instance NFData       CancelBatchErrorCode+instance ToByteString CancelBatchErrorCode+instance ToQuery      CancelBatchErrorCode+instance ToHeader     CancelBatchErrorCode++instance FromXML CancelBatchErrorCode where+    parseXML = parseXMLText "CancelBatchErrorCode"++data CancelSpotInstanceRequestState+  = CSIRSActive+  | CSIRSCancelled+  | CSIRSClosed+  | CSIRSCompleted+  | CSIRSOpen+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText CancelSpotInstanceRequestState where+    parser = takeLowerText >>= \case+        "active" -> pure CSIRSActive+        "cancelled" -> pure CSIRSCancelled+        "closed" -> pure CSIRSClosed+        "completed" -> pure CSIRSCompleted+        "open" -> pure CSIRSOpen+        e -> fromTextError $ "Failure parsing CancelSpotInstanceRequestState from value: '" <> e+           <> "'. Accepted values: active, cancelled, closed, completed, open"++instance ToText CancelSpotInstanceRequestState where+    toText = \case+        CSIRSActive -> "active"+        CSIRSCancelled -> "cancelled"+        CSIRSClosed -> "closed"+        CSIRSCompleted -> "completed"+        CSIRSOpen -> "open"++instance Hashable     CancelSpotInstanceRequestState+instance NFData       CancelSpotInstanceRequestState+instance ToByteString CancelSpotInstanceRequestState+instance ToQuery      CancelSpotInstanceRequestState+instance ToHeader     CancelSpotInstanceRequestState++instance FromXML CancelSpotInstanceRequestState where+    parseXML = parseXMLText "CancelSpotInstanceRequestState"++data ContainerFormat =+  Ova+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ContainerFormat where+    parser = takeLowerText >>= \case+        "ova" -> pure Ova+        e -> fromTextError $ "Failure parsing ContainerFormat from value: '" <> e+           <> "'. Accepted values: ova"++instance ToText ContainerFormat where+    toText = \case+        Ova -> "ova"++instance Hashable     ContainerFormat+instance NFData       ContainerFormat+instance ToByteString ContainerFormat+instance ToQuery      ContainerFormat+instance ToHeader     ContainerFormat++instance FromXML ContainerFormat where+    parseXML = parseXMLText "ContainerFormat"++data ConversionTaskState+  = CTSActive+  | CTSCancelled+  | CTSCancelling+  | CTSCompleted+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ConversionTaskState where+    parser = takeLowerText >>= \case+        "active" -> pure CTSActive+        "cancelled" -> pure CTSCancelled+        "cancelling" -> pure CTSCancelling+        "completed" -> pure CTSCompleted+        e -> fromTextError $ "Failure parsing ConversionTaskState from value: '" <> e+           <> "'. Accepted values: active, cancelled, cancelling, completed"++instance ToText ConversionTaskState where+    toText = \case+        CTSActive -> "active"+        CTSCancelled -> "cancelled"+        CTSCancelling -> "cancelling"+        CTSCompleted -> "completed"++instance Hashable     ConversionTaskState+instance NFData       ConversionTaskState+instance ToByteString ConversionTaskState+instance ToQuery      ConversionTaskState+instance ToHeader     ConversionTaskState++instance FromXML ConversionTaskState where+    parseXML = parseXMLText "ConversionTaskState"++data CurrencyCodeValues =+  Usd+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText CurrencyCodeValues where+    parser = takeLowerText >>= \case+        "usd" -> pure Usd+        e -> fromTextError $ "Failure parsing CurrencyCodeValues from value: '" <> e+           <> "'. Accepted values: usd"++instance ToText CurrencyCodeValues where+    toText = \case+        Usd -> "USD"++instance Hashable     CurrencyCodeValues+instance NFData       CurrencyCodeValues+instance ToByteString CurrencyCodeValues+instance ToQuery      CurrencyCodeValues+instance ToHeader     CurrencyCodeValues++instance FromXML CurrencyCodeValues where+    parseXML = parseXMLText "CurrencyCodeValues"++data DatafeedSubscriptionState+  = DSSActive+  | DSSInactive+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DatafeedSubscriptionState where+    parser = takeLowerText >>= \case+        "active" -> pure DSSActive+        "inactive" -> pure DSSInactive+        e -> fromTextError $ "Failure parsing DatafeedSubscriptionState from value: '" <> e+           <> "'. Accepted values: active, inactive"++instance ToText DatafeedSubscriptionState where+    toText = \case+        DSSActive -> "Active"+        DSSInactive -> "Inactive"++instance Hashable     DatafeedSubscriptionState+instance NFData       DatafeedSubscriptionState+instance ToByteString DatafeedSubscriptionState+instance ToQuery      DatafeedSubscriptionState+instance ToHeader     DatafeedSubscriptionState++instance FromXML DatafeedSubscriptionState where+    parseXML = parseXMLText "DatafeedSubscriptionState"++data DeviceType+  = EBS+  | InstanceStore+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DeviceType where+    parser = takeLowerText >>= \case+        "ebs" -> pure EBS+        "instance-store" -> pure InstanceStore+        e -> fromTextError $ "Failure parsing DeviceType from value: '" <> e+           <> "'. Accepted values: ebs, instance-store"++instance ToText DeviceType where+    toText = \case+        EBS -> "ebs"+        InstanceStore -> "instance-store"++instance Hashable     DeviceType+instance NFData       DeviceType+instance ToByteString DeviceType+instance ToQuery      DeviceType+instance ToHeader     DeviceType++instance FromXML DeviceType where+    parseXML = parseXMLText "DeviceType"++data DiskImageFormat+  = Raw+  | VHD+  | VMDK+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DiskImageFormat where+    parser = takeLowerText >>= \case+        "raw" -> pure Raw+        "vhd" -> pure VHD+        "vmdk" -> pure VMDK+        e -> fromTextError $ "Failure parsing DiskImageFormat from value: '" <> e+           <> "'. Accepted values: raw, vhd, vmdk"++instance ToText DiskImageFormat where+    toText = \case+        Raw -> "RAW"+        VHD -> "VHD"+        VMDK -> "VMDK"++instance Hashable     DiskImageFormat+instance NFData       DiskImageFormat+instance ToByteString DiskImageFormat+instance ToQuery      DiskImageFormat+instance ToHeader     DiskImageFormat++instance FromXML DiskImageFormat where+    parseXML = parseXMLText "DiskImageFormat"++data DomainType+  = DTStandard+  | DTVPC+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DomainType where+    parser = takeLowerText >>= \case+        "standard" -> pure DTStandard+        "vpc" -> pure DTVPC+        e -> fromTextError $ "Failure parsing DomainType from value: '" <> e+           <> "'. Accepted values: standard, vpc"++instance ToText DomainType where+    toText = \case+        DTStandard -> "standard"+        DTVPC -> "vpc"++instance Hashable     DomainType+instance NFData       DomainType+instance ToByteString DomainType+instance ToQuery      DomainType+instance ToHeader     DomainType++instance FromXML DomainType where+    parseXML = parseXMLText "DomainType"++data ElasticGpuState =+  Attached+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ElasticGpuState where+    parser = takeLowerText >>= \case+        "attached" -> pure Attached+        e -> fromTextError $ "Failure parsing ElasticGpuState from value: '" <> e+           <> "'. Accepted values: attached"++instance ToText ElasticGpuState where+    toText = \case+        Attached -> "ATTACHED"++instance Hashable     ElasticGpuState+instance NFData       ElasticGpuState+instance ToByteString ElasticGpuState+instance ToQuery      ElasticGpuState+instance ToHeader     ElasticGpuState++instance FromXML ElasticGpuState where+    parseXML = parseXMLText "ElasticGpuState"++data ElasticGpuStatus+  = EGSImpaired+  | EGSOK+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ElasticGpuStatus where+    parser = takeLowerText >>= \case+        "impaired" -> pure EGSImpaired+        "ok" -> pure EGSOK+        e -> fromTextError $ "Failure parsing ElasticGpuStatus from value: '" <> e+           <> "'. Accepted values: impaired, ok"++instance ToText ElasticGpuStatus where+    toText = \case+        EGSImpaired -> "IMPAIRED"+        EGSOK -> "OK"++instance Hashable     ElasticGpuStatus+instance NFData       ElasticGpuStatus+instance ToByteString ElasticGpuStatus+instance ToQuery      ElasticGpuStatus+instance ToHeader     ElasticGpuStatus++instance FromXML ElasticGpuStatus where+    parseXML = parseXMLText "ElasticGpuStatus"++data EventCode+  = InstanceReboot+  | InstanceRetirement+  | InstanceStop+  | SystemMaintenance+  | SystemReboot+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText EventCode where+    parser = takeLowerText >>= \case+        "instance-reboot" -> pure InstanceReboot+        "instance-retirement" -> pure InstanceRetirement+        "instance-stop" -> pure InstanceStop+        "system-maintenance" -> pure SystemMaintenance+        "system-reboot" -> pure SystemReboot+        e -> fromTextError $ "Failure parsing EventCode from value: '" <> e+           <> "'. Accepted values: instance-reboot, instance-retirement, instance-stop, system-maintenance, system-reboot"++instance ToText EventCode where+    toText = \case+        InstanceReboot -> "instance-reboot"+        InstanceRetirement -> "instance-retirement"+        InstanceStop -> "instance-stop"+        SystemMaintenance -> "system-maintenance"+        SystemReboot -> "system-reboot"++instance Hashable     EventCode+instance NFData       EventCode+instance ToByteString EventCode+instance ToQuery      EventCode+instance ToHeader     EventCode++instance FromXML EventCode where+    parseXML = parseXMLText "EventCode"++data EventType+  = ETError'+  | ETFleetRequestChange+  | ETInstanceChange+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText EventType where+    parser = takeLowerText >>= \case+        "error" -> pure ETError'+        "fleetrequestchange" -> pure ETFleetRequestChange+        "instancechange" -> pure ETInstanceChange+        e -> fromTextError $ "Failure parsing EventType from value: '" <> e+           <> "'. Accepted values: error, fleetrequestchange, instancechange"++instance ToText EventType where+    toText = \case+        ETError' -> "error"+        ETFleetRequestChange -> "fleetRequestChange"+        ETInstanceChange -> "instanceChange"++instance Hashable     EventType+instance NFData       EventType+instance ToByteString EventType+instance ToQuery      EventType+instance ToHeader     EventType++instance FromXML EventType where+    parseXML = parseXMLText "EventType"++data ExcessCapacityTerminationPolicy+  = ECTPDefault+  | ECTPNoTermination+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ExcessCapacityTerminationPolicy where+    parser = takeLowerText >>= \case+        "default" -> pure ECTPDefault+        "notermination" -> pure ECTPNoTermination+        e -> fromTextError $ "Failure parsing ExcessCapacityTerminationPolicy from value: '" <> e+           <> "'. Accepted values: default, notermination"++instance ToText ExcessCapacityTerminationPolicy where+    toText = \case+        ECTPDefault -> "default"+        ECTPNoTermination -> "noTermination"++instance Hashable     ExcessCapacityTerminationPolicy+instance NFData       ExcessCapacityTerminationPolicy+instance ToByteString ExcessCapacityTerminationPolicy+instance ToQuery      ExcessCapacityTerminationPolicy+instance ToHeader     ExcessCapacityTerminationPolicy++instance FromXML ExcessCapacityTerminationPolicy where+    parseXML = parseXMLText "ExcessCapacityTerminationPolicy"++data ExportEnvironment+  = Citrix+  | Microsoft+  | VMware+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ExportEnvironment where+    parser = takeLowerText >>= \case+        "citrix" -> pure Citrix+        "microsoft" -> pure Microsoft+        "vmware" -> pure VMware+        e -> fromTextError $ "Failure parsing ExportEnvironment from value: '" <> e+           <> "'. Accepted values: citrix, microsoft, vmware"++instance ToText ExportEnvironment where+    toText = \case+        Citrix -> "citrix"+        Microsoft -> "microsoft"+        VMware -> "vmware"++instance Hashable     ExportEnvironment+instance NFData       ExportEnvironment+instance ToByteString ExportEnvironment+instance ToQuery      ExportEnvironment+instance ToHeader     ExportEnvironment++instance FromXML ExportEnvironment where+    parseXML = parseXMLText "ExportEnvironment"++data ExportTaskState+  = ETSActive+  | ETSCancelled+  | ETSCancelling+  | ETSCompleted+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ExportTaskState where+    parser = takeLowerText >>= \case+        "active" -> pure ETSActive+        "cancelled" -> pure ETSCancelled+        "cancelling" -> pure ETSCancelling+        "completed" -> pure ETSCompleted+        e -> fromTextError $ "Failure parsing ExportTaskState from value: '" <> e+           <> "'. Accepted values: active, cancelled, cancelling, completed"++instance ToText ExportTaskState where+    toText = \case+        ETSActive -> "active"+        ETSCancelled -> "cancelled"+        ETSCancelling -> "cancelling"+        ETSCompleted -> "completed"++instance Hashable     ExportTaskState+instance NFData       ExportTaskState+instance ToByteString ExportTaskState+instance ToQuery      ExportTaskState+instance ToHeader     ExportTaskState++instance FromXML ExportTaskState where+    parseXML = parseXMLText "ExportTaskState"++data FleetType+  = FTMaintain+  | FTRequest+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FleetType where+    parser = takeLowerText >>= \case+        "maintain" -> pure FTMaintain+        "request" -> pure FTRequest+        e -> fromTextError $ "Failure parsing FleetType from value: '" <> e+           <> "'. Accepted values: maintain, request"++instance ToText FleetType where+    toText = \case+        FTMaintain -> "maintain"+        FTRequest -> "request"++instance Hashable     FleetType+instance NFData       FleetType+instance ToByteString FleetType+instance ToQuery      FleetType+instance ToHeader     FleetType++instance FromXML FleetType where+    parseXML = parseXMLText "FleetType"++data FlowLogsResourceType+  = FLRTNetworkInterface+  | FLRTSubnet+  | FLRTVPC+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FlowLogsResourceType where+    parser = takeLowerText >>= \case+        "networkinterface" -> pure FLRTNetworkInterface+        "subnet" -> pure FLRTSubnet+        "vpc" -> pure FLRTVPC+        e -> fromTextError $ "Failure parsing FlowLogsResourceType from value: '" <> e+           <> "'. Accepted values: networkinterface, subnet, vpc"++instance ToText FlowLogsResourceType where+    toText = \case+        FLRTNetworkInterface -> "NetworkInterface"+        FLRTSubnet -> "Subnet"+        FLRTVPC -> "VPC"++instance Hashable     FlowLogsResourceType+instance NFData       FlowLogsResourceType+instance ToByteString FlowLogsResourceType+instance ToQuery      FlowLogsResourceType+instance ToHeader     FlowLogsResourceType++data FpgaImageAttributeName+  = FIANDescription+  | FIANLoadPermission+  | FIANName+  | FIANProductCodes+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FpgaImageAttributeName where+    parser = takeLowerText >>= \case+        "description" -> pure FIANDescription+        "loadpermission" -> pure FIANLoadPermission+        "name" -> pure FIANName+        "productcodes" -> pure FIANProductCodes+        e -> fromTextError $ "Failure parsing FpgaImageAttributeName from value: '" <> e+           <> "'. Accepted values: description, loadpermission, name, productcodes"++instance ToText FpgaImageAttributeName where+    toText = \case+        FIANDescription -> "description"+        FIANLoadPermission -> "loadPermission"+        FIANName -> "name"+        FIANProductCodes -> "productCodes"++instance Hashable     FpgaImageAttributeName+instance NFData       FpgaImageAttributeName+instance ToByteString FpgaImageAttributeName+instance ToQuery      FpgaImageAttributeName+instance ToHeader     FpgaImageAttributeName++data FpgaImageStateCode+  = FISCAvailable+  | FISCFailed+  | FISCPending+  | FISCUnavailable+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FpgaImageStateCode where+    parser = takeLowerText >>= \case+        "available" -> pure FISCAvailable+        "failed" -> pure FISCFailed+        "pending" -> pure FISCPending+        "unavailable" -> pure FISCUnavailable+        e -> fromTextError $ "Failure parsing FpgaImageStateCode from value: '" <> e+           <> "'. Accepted values: available, failed, pending, unavailable"++instance ToText FpgaImageStateCode where+    toText = \case+        FISCAvailable -> "available"+        FISCFailed -> "failed"+        FISCPending -> "pending"+        FISCUnavailable -> "unavailable"++instance Hashable     FpgaImageStateCode+instance NFData       FpgaImageStateCode+instance ToByteString FpgaImageStateCode+instance ToQuery      FpgaImageStateCode+instance ToHeader     FpgaImageStateCode++instance FromXML FpgaImageStateCode where+    parseXML = parseXMLText "FpgaImageStateCode"++data GatewayType =+  IPsec_1+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText GatewayType where+    parser = takeLowerText >>= \case+        "ipsec.1" -> pure IPsec_1+        e -> fromTextError $ "Failure parsing GatewayType from value: '" <> e+           <> "'. Accepted values: ipsec.1"++instance ToText GatewayType where+    toText = \case+        IPsec_1 -> "ipsec.1"++instance Hashable     GatewayType+instance NFData       GatewayType+instance ToByteString GatewayType+instance ToQuery      GatewayType+instance ToHeader     GatewayType++instance FromXML GatewayType where+    parseXML = parseXMLText "GatewayType"++data HostTenancy+  = HTDedicated+  | HTHost+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HostTenancy where+    parser = takeLowerText >>= \case+        "dedicated" -> pure HTDedicated+        "host" -> pure HTHost+        e -> fromTextError $ "Failure parsing HostTenancy from value: '" <> e+           <> "'. Accepted values: dedicated, host"++instance ToText HostTenancy where+    toText = \case+        HTDedicated -> "dedicated"+        HTHost -> "host"++instance Hashable     HostTenancy+instance NFData       HostTenancy+instance ToByteString HostTenancy+instance ToQuery      HostTenancy+instance ToHeader     HostTenancy++data HypervisorType+  = Ovm+  | Xen+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HypervisorType where+    parser = takeLowerText >>= \case+        "ovm" -> pure Ovm+        "xen" -> pure Xen+        e -> fromTextError $ "Failure parsing HypervisorType from value: '" <> e+           <> "'. Accepted values: ovm, xen"++instance ToText HypervisorType where+    toText = \case+        Ovm -> "ovm"+        Xen -> "xen"++instance Hashable     HypervisorType+instance NFData       HypervisorType+instance ToByteString HypervisorType+instance ToQuery      HypervisorType+instance ToHeader     HypervisorType++instance FromXML HypervisorType where+    parseXML = parseXMLText "HypervisorType"++data IAMInstanceProfileAssociationState+  = Associated+  | Associating+  | Disassociated+  | Disassociating+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText IAMInstanceProfileAssociationState where+    parser = takeLowerText >>= \case+        "associated" -> pure Associated+        "associating" -> pure Associating+        "disassociated" -> pure Disassociated+        "disassociating" -> pure Disassociating+        e -> fromTextError $ "Failure parsing IAMInstanceProfileAssociationState from value: '" <> e+           <> "'. Accepted values: associated, associating, disassociated, disassociating"++instance ToText IAMInstanceProfileAssociationState where+    toText = \case+        Associated -> "associated"+        Associating -> "associating"+        Disassociated -> "disassociated"+        Disassociating -> "disassociating"++instance Hashable     IAMInstanceProfileAssociationState+instance NFData       IAMInstanceProfileAssociationState+instance ToByteString IAMInstanceProfileAssociationState+instance ToQuery      IAMInstanceProfileAssociationState+instance ToHeader     IAMInstanceProfileAssociationState++instance FromXML IAMInstanceProfileAssociationState where+    parseXML = parseXMLText "IAMInstanceProfileAssociationState"++data ImageAttributeName+  = BlockDeviceMapping+  | Description+  | Kernel+  | LaunchPermission+  | ProductCodes+  | RAMDisk+  | SRIOVNetSupport+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ImageAttributeName where+    parser = takeLowerText >>= \case+        "blockdevicemapping" -> pure BlockDeviceMapping+        "description" -> pure Description+        "kernel" -> pure Kernel+        "launchpermission" -> pure LaunchPermission+        "productcodes" -> pure ProductCodes+        "ramdisk" -> pure RAMDisk+        "sriovnetsupport" -> pure SRIOVNetSupport+        e -> fromTextError $ "Failure parsing ImageAttributeName from value: '" <> e+           <> "'. Accepted values: blockdevicemapping, description, kernel, launchpermission, productcodes, ramdisk, sriovnetsupport"++instance ToText ImageAttributeName where+    toText = \case+        BlockDeviceMapping -> "blockDeviceMapping"+        Description -> "description"+        Kernel -> "kernel"+        LaunchPermission -> "launchPermission"+        ProductCodes -> "productCodes"+        RAMDisk -> "ramdisk"+        SRIOVNetSupport -> "sriovNetSupport"++instance Hashable     ImageAttributeName+instance NFData       ImageAttributeName+instance ToByteString ImageAttributeName+instance ToQuery      ImageAttributeName+instance ToHeader     ImageAttributeName++data ImageState+  = ISAvailable+  | ISDeregistered+  | ISError'+  | ISFailed+  | ISInvalid+  | ISPending+  | ISTransient+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ImageState where+    parser = takeLowerText >>= \case+        "available" -> pure ISAvailable+        "deregistered" -> pure ISDeregistered+        "error" -> pure ISError'+        "failed" -> pure ISFailed+        "invalid" -> pure ISInvalid+        "pending" -> pure ISPending+        "transient" -> pure ISTransient+        e -> fromTextError $ "Failure parsing ImageState from value: '" <> e+           <> "'. Accepted values: available, deregistered, error, failed, invalid, pending, transient"++instance ToText ImageState where+    toText = \case+        ISAvailable -> "available"+        ISDeregistered -> "deregistered"+        ISError' -> "error"+        ISFailed -> "failed"+        ISInvalid -> "invalid"+        ISPending -> "pending"+        ISTransient -> "transient"++instance Hashable     ImageState+instance NFData       ImageState+instance ToByteString ImageState+instance ToQuery      ImageState+instance ToHeader     ImageState++instance FromXML ImageState where+    parseXML = parseXMLText "ImageState"++data ImageTypeValues+  = ITVKernel+  | ITVMachine+  | ITVRAMDisk+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ImageTypeValues where+    parser = takeLowerText >>= \case+        "kernel" -> pure ITVKernel+        "machine" -> pure ITVMachine+        "ramdisk" -> pure ITVRAMDisk+        e -> fromTextError $ "Failure parsing ImageTypeValues from value: '" <> e+           <> "'. Accepted values: kernel, machine, ramdisk"++instance ToText ImageTypeValues where+    toText = \case+        ITVKernel -> "kernel"+        ITVMachine -> "machine"+        ITVRAMDisk -> "ramdisk"++instance Hashable     ImageTypeValues+instance NFData       ImageTypeValues+instance ToByteString ImageTypeValues+instance ToQuery      ImageTypeValues+instance ToHeader     ImageTypeValues++instance FromXML ImageTypeValues where+    parseXML = parseXMLText "ImageTypeValues"++data InstanceAttributeName+  = IANBlockDeviceMapping+  | IANDisableAPITermination+  | IANEBSOptimized+  | IANEnaSupport+  | IANGroupSet+  | IANInstanceInitiatedShutdownBehavior+  | IANInstanceType+  | IANKernel+  | IANProductCodes+  | IANRAMDisk+  | IANRootDeviceName+  | IANSRIOVNetSupport+  | IANSourceDestCheck+  | IANUserData+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InstanceAttributeName where+    parser = takeLowerText >>= \case+        "blockdevicemapping" -> pure IANBlockDeviceMapping+        "disableapitermination" -> pure IANDisableAPITermination+        "ebsoptimized" -> pure IANEBSOptimized+        "enasupport" -> pure IANEnaSupport+        "groupset" -> pure IANGroupSet+        "instanceinitiatedshutdownbehavior" -> pure IANInstanceInitiatedShutdownBehavior+        "instancetype" -> pure IANInstanceType+        "kernel" -> pure IANKernel+        "productcodes" -> pure IANProductCodes+        "ramdisk" -> pure IANRAMDisk+        "rootdevicename" -> pure IANRootDeviceName+        "sriovnetsupport" -> pure IANSRIOVNetSupport+        "sourcedestcheck" -> pure IANSourceDestCheck+        "userdata" -> pure IANUserData+        e -> fromTextError $ "Failure parsing InstanceAttributeName from value: '" <> e+           <> "'. Accepted values: blockdevicemapping, disableapitermination, ebsoptimized, enasupport, groupset, instanceinitiatedshutdownbehavior, instancetype, kernel, productcodes, ramdisk, rootdevicename, sriovnetsupport, sourcedestcheck, userdata"++instance ToText InstanceAttributeName where+    toText = \case+        IANBlockDeviceMapping -> "blockDeviceMapping"+        IANDisableAPITermination -> "disableApiTermination"+        IANEBSOptimized -> "ebsOptimized"+        IANEnaSupport -> "enaSupport"+        IANGroupSet -> "groupSet"+        IANInstanceInitiatedShutdownBehavior -> "instanceInitiatedShutdownBehavior"+        IANInstanceType -> "instanceType"+        IANKernel -> "kernel"+        IANProductCodes -> "productCodes"+        IANRAMDisk -> "ramdisk"+        IANRootDeviceName -> "rootDeviceName"+        IANSRIOVNetSupport -> "sriovNetSupport"+        IANSourceDestCheck -> "sourceDestCheck"+        IANUserData -> "userData"++instance Hashable     InstanceAttributeName+instance NFData       InstanceAttributeName+instance ToByteString InstanceAttributeName+instance ToQuery      InstanceAttributeName+instance ToHeader     InstanceAttributeName++data InstanceHealthStatus+  = Healthy+  | Unhealthy+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InstanceHealthStatus where+    parser = takeLowerText >>= \case+        "healthy" -> pure Healthy+        "unhealthy" -> pure Unhealthy+        e -> fromTextError $ "Failure parsing InstanceHealthStatus from value: '" <> e+           <> "'. Accepted values: healthy, unhealthy"++instance ToText InstanceHealthStatus where+    toText = \case+        Healthy -> "healthy"+        Unhealthy -> "unhealthy"++instance Hashable     InstanceHealthStatus+instance NFData       InstanceHealthStatus+instance ToByteString InstanceHealthStatus+instance ToQuery      InstanceHealthStatus+instance ToHeader     InstanceHealthStatus++instance FromXML InstanceHealthStatus where+    parseXML = parseXMLText "InstanceHealthStatus"++data InstanceInterruptionBehavior+  = IIBStop+  | IIBTerminate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InstanceInterruptionBehavior where+    parser = takeLowerText >>= \case+        "stop" -> pure IIBStop+        "terminate" -> pure IIBTerminate+        e -> fromTextError $ "Failure parsing InstanceInterruptionBehavior from value: '" <> e+           <> "'. Accepted values: stop, terminate"++instance ToText InstanceInterruptionBehavior where+    toText = \case+        IIBStop -> "stop"+        IIBTerminate -> "terminate"++instance Hashable     InstanceInterruptionBehavior+instance NFData       InstanceInterruptionBehavior+instance ToByteString InstanceInterruptionBehavior+instance ToQuery      InstanceInterruptionBehavior+instance ToHeader     InstanceInterruptionBehavior++instance FromXML InstanceInterruptionBehavior where+    parseXML = parseXMLText "InstanceInterruptionBehavior"++data InstanceLifecycleType+  = Scheduled+  | Spot+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InstanceLifecycleType where+    parser = takeLowerText >>= \case+        "scheduled" -> pure Scheduled+        "spot" -> pure Spot+        e -> fromTextError $ "Failure parsing InstanceLifecycleType from value: '" <> e+           <> "'. Accepted values: scheduled, spot"++instance ToText InstanceLifecycleType where+    toText = \case+        Scheduled -> "scheduled"+        Spot -> "spot"++instance Hashable     InstanceLifecycleType+instance NFData       InstanceLifecycleType+instance ToByteString InstanceLifecycleType+instance ToQuery      InstanceLifecycleType+instance ToHeader     InstanceLifecycleType++instance FromXML InstanceLifecycleType where+    parseXML = parseXMLText "InstanceLifecycleType"++data InstanceStateName+  = ISNPending+  | ISNRunning+  | ISNShuttingDown+  | ISNStopped+  | ISNStopping+  | ISNTerminated+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InstanceStateName where+    parser = takeLowerText >>= \case+        "pending" -> pure ISNPending+        "running" -> pure ISNRunning+        "shutting-down" -> pure ISNShuttingDown+        "stopped" -> pure ISNStopped+        "stopping" -> pure ISNStopping+        "terminated" -> pure ISNTerminated+        e -> fromTextError $ "Failure parsing InstanceStateName from value: '" <> e+           <> "'. Accepted values: pending, running, shutting-down, stopped, stopping, terminated"++instance ToText InstanceStateName where+    toText = \case+        ISNPending -> "pending"+        ISNRunning -> "running"+        ISNShuttingDown -> "shutting-down"+        ISNStopped -> "stopped"+        ISNStopping -> "stopping"+        ISNTerminated -> "terminated"++instance Hashable     InstanceStateName+instance NFData       InstanceStateName+instance ToByteString InstanceStateName+instance ToQuery      InstanceStateName+instance ToHeader     InstanceStateName++instance FromXML InstanceStateName where+    parseXML = parseXMLText "InstanceStateName"++data InstanceType+  = C1_Medium+  | C1_XLarge+  | C3_2XLarge+  | C3_4XLarge+  | C3_8XLarge+  | C3_Large+  | C3_XLarge+  | C4_2XLarge+  | C4_4XLarge+  | C4_8XLarge+  | C4_Large+  | C4_XLarge+  | C5_18XLarge+  | C5_2XLarge+  | C5_4XLarge+  | C5_9XLarge+  | C5_Large+  | C5_XLarge+  | CC1_4XLarge+  | CC2_8XLarge+  | CG1_4XLarge+  | CR1_8XLarge+  | D2_2XLarge+  | D2_4XLarge+  | D2_8XLarge+  | D2_XLarge+  | F1_16XLarge+  | F1_2XLarge+  | G2_2XLarge+  | G2_8XLarge+  | G3_16XLarge+  | G3_4XLarge+  | G3_8XLarge+  | HI1_4XLarge+  | HS1_8XLarge+  | I2_2XLarge+  | I2_4XLarge+  | I2_8XLarge+  | I2_XLarge+  | I3_16XLarge+  | I3_2XLarge+  | I3_4XLarge+  | I3_8XLarge+  | I3_Large+  | I3_XLarge+  | M1_Large+  | M1_Medium+  | M1_Small+  | M1_XLarge+  | M2_2XLarge+  | M2_4XLarge+  | M2_XLarge+  | M3_2XLarge+  | M3_Large+  | M3_Medium+  | M3_XLarge+  | M4_10XLarge+  | M4_16XLarge+  | M4_2XLarge+  | M4_4XLarge+  | M4_Large+  | M4_XLarge+  | P2_16XLarge+  | P2_8XLarge+  | P2_XLarge+  | P3_16XLarge+  | P3_2XLarge+  | P3_8XLarge+  | R3_2XLarge+  | R3_4XLarge+  | R3_8XLarge+  | R3_Large+  | R3_XLarge+  | R4_16XLarge+  | R4_2XLarge+  | R4_4XLarge+  | R4_8XLarge+  | R4_Large+  | R4_XLarge+  | T1_Micro+  | T2_2XLarge+  | T2_Large+  | T2_Medium+  | T2_Micro+  | T2_Nano+  | T2_Small+  | T2_XLarge+  | X1_16XLarge+  | X1_32XLarge+  | X1e_32XLarge+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InstanceType where+    parser = takeLowerText >>= \case+        "c1.medium" -> pure C1_Medium+        "c1.xlarge" -> pure C1_XLarge+        "c3.2xlarge" -> pure C3_2XLarge+        "c3.4xlarge" -> pure C3_4XLarge+        "c3.8xlarge" -> pure C3_8XLarge+        "c3.large" -> pure C3_Large+        "c3.xlarge" -> pure C3_XLarge+        "c4.2xlarge" -> pure C4_2XLarge+        "c4.4xlarge" -> pure C4_4XLarge+        "c4.8xlarge" -> pure C4_8XLarge+        "c4.large" -> pure C4_Large+        "c4.xlarge" -> pure C4_XLarge+        "c5.18xlarge" -> pure C5_18XLarge+        "c5.2xlarge" -> pure C5_2XLarge+        "c5.4xlarge" -> pure C5_4XLarge+        "c5.9xlarge" -> pure C5_9XLarge+        "c5.large" -> pure C5_Large+        "c5.xlarge" -> pure C5_XLarge+        "cc1.4xlarge" -> pure CC1_4XLarge+        "cc2.8xlarge" -> pure CC2_8XLarge+        "cg1.4xlarge" -> pure CG1_4XLarge+        "cr1.8xlarge" -> pure CR1_8XLarge+        "d2.2xlarge" -> pure D2_2XLarge+        "d2.4xlarge" -> pure D2_4XLarge+        "d2.8xlarge" -> pure D2_8XLarge+        "d2.xlarge" -> pure D2_XLarge+        "f1.16xlarge" -> pure F1_16XLarge+        "f1.2xlarge" -> pure F1_2XLarge+        "g2.2xlarge" -> pure G2_2XLarge+        "g2.8xlarge" -> pure G2_8XLarge+        "g3.16xlarge" -> pure G3_16XLarge+        "g3.4xlarge" -> pure G3_4XLarge+        "g3.8xlarge" -> pure G3_8XLarge+        "hi1.4xlarge" -> pure HI1_4XLarge+        "hs1.8xlarge" -> pure HS1_8XLarge+        "i2.2xlarge" -> pure I2_2XLarge+        "i2.4xlarge" -> pure I2_4XLarge+        "i2.8xlarge" -> pure I2_8XLarge+        "i2.xlarge" -> pure I2_XLarge+        "i3.16xlarge" -> pure I3_16XLarge+        "i3.2xlarge" -> pure I3_2XLarge+        "i3.4xlarge" -> pure I3_4XLarge+        "i3.8xlarge" -> pure I3_8XLarge+        "i3.large" -> pure I3_Large+        "i3.xlarge" -> pure I3_XLarge+        "m1.large" -> pure M1_Large+        "m1.medium" -> pure M1_Medium+        "m1.small" -> pure M1_Small+        "m1.xlarge" -> pure M1_XLarge+        "m2.2xlarge" -> pure M2_2XLarge+        "m2.4xlarge" -> pure M2_4XLarge+        "m2.xlarge" -> pure M2_XLarge+        "m3.2xlarge" -> pure M3_2XLarge+        "m3.large" -> pure M3_Large+        "m3.medium" -> pure M3_Medium+        "m3.xlarge" -> pure M3_XLarge+        "m4.10xlarge" -> pure M4_10XLarge+        "m4.16xlarge" -> pure M4_16XLarge+        "m4.2xlarge" -> pure M4_2XLarge+        "m4.4xlarge" -> pure M4_4XLarge+        "m4.large" -> pure M4_Large+        "m4.xlarge" -> pure M4_XLarge+        "p2.16xlarge" -> pure P2_16XLarge+        "p2.8xlarge" -> pure P2_8XLarge+        "p2.xlarge" -> pure P2_XLarge+        "p3.16xlarge" -> pure P3_16XLarge+        "p3.2xlarge" -> pure P3_2XLarge+        "p3.8xlarge" -> pure P3_8XLarge+        "r3.2xlarge" -> pure R3_2XLarge+        "r3.4xlarge" -> pure R3_4XLarge+        "r3.8xlarge" -> pure R3_8XLarge+        "r3.large" -> pure R3_Large+        "r3.xlarge" -> pure R3_XLarge+        "r4.16xlarge" -> pure R4_16XLarge+        "r4.2xlarge" -> pure R4_2XLarge+        "r4.4xlarge" -> pure R4_4XLarge+        "r4.8xlarge" -> pure R4_8XLarge+        "r4.large" -> pure R4_Large+        "r4.xlarge" -> pure R4_XLarge+        "t1.micro" -> pure T1_Micro+        "t2.2xlarge" -> pure T2_2XLarge+        "t2.large" -> pure T2_Large+        "t2.medium" -> pure T2_Medium+        "t2.micro" -> pure T2_Micro+        "t2.nano" -> pure T2_Nano+        "t2.small" -> pure T2_Small+        "t2.xlarge" -> pure T2_XLarge+        "x1.16xlarge" -> pure X1_16XLarge+        "x1.32xlarge" -> pure X1_32XLarge+        "x1e.32xlarge" -> pure X1e_32XLarge+        e -> fromTextError $ "Failure parsing InstanceType from value: '" <> e+           <> "'. Accepted values: c1.medium, c1.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c3.large, c3.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c4.large, c4.xlarge, c5.18xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.large, c5.xlarge, cc1.4xlarge, cc2.8xlarge, cg1.4xlarge, cr1.8xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, d2.xlarge, f1.16xlarge, f1.2xlarge, g2.2xlarge, g2.8xlarge, g3.16xlarge, g3.4xlarge, g3.8xlarge, hi1.4xlarge, hs1.8xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i2.xlarge, i3.16xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.large, i3.xlarge, m1.large, m1.medium, m1.small, m1.xlarge, m2.2xlarge, m2.4xlarge, m2.xlarge, m3.2xlarge, m3.large, m3.medium, m3.xlarge, m4.10xlarge, m4.16xlarge, m4.2xlarge, m4.4xlarge, m4.large, m4.xlarge, p2.16xlarge, p2.8xlarge, p2.xlarge, p3.16xlarge, p3.2xlarge, p3.8xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r3.large, r3.xlarge, r4.16xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.large, r4.xlarge, t1.micro, t2.2xlarge, t2.large, t2.medium, t2.micro, t2.nano, t2.small, t2.xlarge, x1.16xlarge, x1.32xlarge, x1e.32xlarge"++instance ToText InstanceType where+    toText = \case+        C1_Medium -> "c1.medium"+        C1_XLarge -> "c1.xlarge"+        C3_2XLarge -> "c3.2xlarge"+        C3_4XLarge -> "c3.4xlarge"+        C3_8XLarge -> "c3.8xlarge"+        C3_Large -> "c3.large"+        C3_XLarge -> "c3.xlarge"+        C4_2XLarge -> "c4.2xlarge"+        C4_4XLarge -> "c4.4xlarge"+        C4_8XLarge -> "c4.8xlarge"+        C4_Large -> "c4.large"+        C4_XLarge -> "c4.xlarge"+        C5_18XLarge -> "c5.18xlarge"+        C5_2XLarge -> "c5.2xlarge"+        C5_4XLarge -> "c5.4xlarge"+        C5_9XLarge -> "c5.9xlarge"+        C5_Large -> "c5.large"+        C5_XLarge -> "c5.xlarge"+        CC1_4XLarge -> "cc1.4xlarge"+        CC2_8XLarge -> "cc2.8xlarge"+        CG1_4XLarge -> "cg1.4xlarge"+        CR1_8XLarge -> "cr1.8xlarge"+        D2_2XLarge -> "d2.2xlarge"+        D2_4XLarge -> "d2.4xlarge"+        D2_8XLarge -> "d2.8xlarge"+        D2_XLarge -> "d2.xlarge"+        F1_16XLarge -> "f1.16xlarge"+        F1_2XLarge -> "f1.2xlarge"+        G2_2XLarge -> "g2.2xlarge"+        G2_8XLarge -> "g2.8xlarge"+        G3_16XLarge -> "g3.16xlarge"+        G3_4XLarge -> "g3.4xlarge"+        G3_8XLarge -> "g3.8xlarge"+        HI1_4XLarge -> "hi1.4xlarge"+        HS1_8XLarge -> "hs1.8xlarge"+        I2_2XLarge -> "i2.2xlarge"+        I2_4XLarge -> "i2.4xlarge"+        I2_8XLarge -> "i2.8xlarge"+        I2_XLarge -> "i2.xlarge"+        I3_16XLarge -> "i3.16xlarge"+        I3_2XLarge -> "i3.2xlarge"+        I3_4XLarge -> "i3.4xlarge"+        I3_8XLarge -> "i3.8xlarge"+        I3_Large -> "i3.large"+        I3_XLarge -> "i3.xlarge"+        M1_Large -> "m1.large"+        M1_Medium -> "m1.medium"+        M1_Small -> "m1.small"+        M1_XLarge -> "m1.xlarge"+        M2_2XLarge -> "m2.2xlarge"+        M2_4XLarge -> "m2.4xlarge"+        M2_XLarge -> "m2.xlarge"+        M3_2XLarge -> "m3.2xlarge"+        M3_Large -> "m3.large"+        M3_Medium -> "m3.medium"+        M3_XLarge -> "m3.xlarge"+        M4_10XLarge -> "m4.10xlarge"+        M4_16XLarge -> "m4.16xlarge"+        M4_2XLarge -> "m4.2xlarge"+        M4_4XLarge -> "m4.4xlarge"+        M4_Large -> "m4.large"+        M4_XLarge -> "m4.xlarge"+        P2_16XLarge -> "p2.16xlarge"+        P2_8XLarge -> "p2.8xlarge"+        P2_XLarge -> "p2.xlarge"+        P3_16XLarge -> "p3.16xlarge"+        P3_2XLarge -> "p3.2xlarge"+        P3_8XLarge -> "p3.8xlarge"+        R3_2XLarge -> "r3.2xlarge"+        R3_4XLarge -> "r3.4xlarge"+        R3_8XLarge -> "r3.8xlarge"+        R3_Large -> "r3.large"+        R3_XLarge -> "r3.xlarge"+        R4_16XLarge -> "r4.16xlarge"+        R4_2XLarge -> "r4.2xlarge"+        R4_4XLarge -> "r4.4xlarge"+        R4_8XLarge -> "r4.8xlarge"+        R4_Large -> "r4.large"+        R4_XLarge -> "r4.xlarge"+        T1_Micro -> "t1.micro"+        T2_2XLarge -> "t2.2xlarge"+        T2_Large -> "t2.large"+        T2_Medium -> "t2.medium"+        T2_Micro -> "t2.micro"+        T2_Nano -> "t2.nano"+        T2_Small -> "t2.small"+        T2_XLarge -> "t2.xlarge"+        X1_16XLarge -> "x1.16xlarge"+        X1_32XLarge -> "x1.32xlarge"+        X1e_32XLarge -> "x1e.32xlarge"++instance Hashable     InstanceType+instance NFData       InstanceType+instance ToByteString InstanceType+instance ToQuery      InstanceType+instance ToHeader     InstanceType++instance FromXML InstanceType where+    parseXML = parseXMLText "InstanceType"++data InterfacePermissionType+  = EIPAssociate+  | InstanceAttach+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText InterfacePermissionType where+    parser = takeLowerText >>= \case+        "eip-associate" -> pure EIPAssociate+        "instance-attach" -> pure InstanceAttach+        e -> fromTextError $ "Failure parsing InterfacePermissionType from value: '" <> e+           <> "'. Accepted values: eip-associate, instance-attach"++instance ToText InterfacePermissionType where+    toText = \case+        EIPAssociate -> "EIP-ASSOCIATE"+        InstanceAttach -> "INSTANCE-ATTACH"++instance Hashable     InterfacePermissionType+instance NFData       InterfacePermissionType+instance ToByteString InterfacePermissionType+instance ToQuery      InterfacePermissionType+instance ToHeader     InterfacePermissionType++instance FromXML InterfacePermissionType where+    parseXML = parseXMLText "InterfacePermissionType"++data ListingState+  = LAvailable+  | LCancelled+  | LPending+  | LSold+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ListingState where+    parser = takeLowerText >>= \case+        "available" -> pure LAvailable+        "cancelled" -> pure LCancelled+        "pending" -> pure LPending+        "sold" -> pure LSold+        e -> fromTextError $ "Failure parsing ListingState from value: '" <> e+           <> "'. Accepted values: available, cancelled, pending, sold"++instance ToText ListingState where+    toText = \case+        LAvailable -> "available"+        LCancelled -> "cancelled"+        LPending -> "pending"+        LSold -> "sold"++instance Hashable     ListingState+instance NFData       ListingState+instance ToByteString ListingState+instance ToQuery      ListingState+instance ToHeader     ListingState++instance FromXML ListingState where+    parseXML = parseXMLText "ListingState"++data ListingStatus+  = LSActive+  | LSCancelled+  | LSClosed+  | LSPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ListingStatus where+    parser = takeLowerText >>= \case+        "active" -> pure LSActive+        "cancelled" -> pure LSCancelled+        "closed" -> pure LSClosed+        "pending" -> pure LSPending+        e -> fromTextError $ "Failure parsing ListingStatus from value: '" <> e+           <> "'. Accepted values: active, cancelled, closed, pending"++instance ToText ListingStatus where+    toText = \case+        LSActive -> "active"+        LSCancelled -> "cancelled"+        LSClosed -> "closed"+        LSPending -> "pending"++instance Hashable     ListingStatus+instance NFData       ListingStatus+instance ToByteString ListingStatus+instance ToQuery      ListingStatus+instance ToHeader     ListingStatus++instance FromXML ListingStatus where+    parseXML = parseXMLText "ListingStatus"++data MonitoringState+  = MSDisabled+  | MSDisabling+  | MSEnabled+  | MSPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MonitoringState where+    parser = takeLowerText >>= \case+        "disabled" -> pure MSDisabled+        "disabling" -> pure MSDisabling+        "enabled" -> pure MSEnabled+        "pending" -> pure MSPending+        e -> fromTextError $ "Failure parsing MonitoringState from value: '" <> e+           <> "'. Accepted values: disabled, disabling, enabled, pending"++instance ToText MonitoringState where+    toText = \case+        MSDisabled -> "disabled"+        MSDisabling -> "disabling"+        MSEnabled -> "enabled"+        MSPending -> "pending"++instance Hashable     MonitoringState+instance NFData       MonitoringState+instance ToByteString MonitoringState+instance ToQuery      MonitoringState+instance ToHeader     MonitoringState++instance FromXML MonitoringState where+    parseXML = parseXMLText "MonitoringState"++data MoveStatus+  = MovingToVPC+  | RestoringToClassic+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MoveStatus where+    parser = takeLowerText >>= \case+        "movingtovpc" -> pure MovingToVPC+        "restoringtoclassic" -> pure RestoringToClassic+        e -> fromTextError $ "Failure parsing MoveStatus from value: '" <> e+           <> "'. Accepted values: movingtovpc, restoringtoclassic"++instance ToText MoveStatus where+    toText = \case+        MovingToVPC -> "movingToVpc"+        RestoringToClassic -> "restoringToClassic"++instance Hashable     MoveStatus+instance NFData       MoveStatus+instance ToByteString MoveStatus+instance ToQuery      MoveStatus+instance ToHeader     MoveStatus++instance FromXML MoveStatus where+    parseXML = parseXMLText "MoveStatus"++data NatGatewayState+  = NGSAvailable+  | NGSDeleted+  | NGSDeleting+  | NGSFailed+  | NGSPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NatGatewayState where+    parser = takeLowerText >>= \case+        "available" -> pure NGSAvailable+        "deleted" -> pure NGSDeleted+        "deleting" -> pure NGSDeleting+        "failed" -> pure NGSFailed+        "pending" -> pure NGSPending+        e -> fromTextError $ "Failure parsing NatGatewayState from value: '" <> e+           <> "'. Accepted values: available, deleted, deleting, failed, pending"++instance ToText NatGatewayState where+    toText = \case+        NGSAvailable -> "available"+        NGSDeleted -> "deleted"+        NGSDeleting -> "deleting"+        NGSFailed -> "failed"+        NGSPending -> "pending"++instance Hashable     NatGatewayState+instance NFData       NatGatewayState+instance ToByteString NatGatewayState+instance ToQuery      NatGatewayState+instance ToHeader     NatGatewayState++instance FromXML NatGatewayState where+    parseXML = parseXMLText "NatGatewayState"++data NetworkInterfaceAttribute+  = NIAAttachment+  | NIADescription+  | NIAGroupSet+  | NIASourceDestCheck+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NetworkInterfaceAttribute where+    parser = takeLowerText >>= \case+        "attachment" -> pure NIAAttachment+        "description" -> pure NIADescription+        "groupset" -> pure NIAGroupSet+        "sourcedestcheck" -> pure NIASourceDestCheck+        e -> fromTextError $ "Failure parsing NetworkInterfaceAttribute from value: '" <> e+           <> "'. Accepted values: attachment, description, groupset, sourcedestcheck"++instance ToText NetworkInterfaceAttribute where+    toText = \case+        NIAAttachment -> "attachment"+        NIADescription -> "description"+        NIAGroupSet -> "groupSet"+        NIASourceDestCheck -> "sourceDestCheck"++instance Hashable     NetworkInterfaceAttribute+instance NFData       NetworkInterfaceAttribute+instance ToByteString NetworkInterfaceAttribute+instance ToQuery      NetworkInterfaceAttribute+instance ToHeader     NetworkInterfaceAttribute++data NetworkInterfacePermissionStateCode+  = NIPSCGranted+  | NIPSCPending+  | NIPSCRevoked+  | NIPSCRevoking+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NetworkInterfacePermissionStateCode where+    parser = takeLowerText >>= \case+        "granted" -> pure NIPSCGranted+        "pending" -> pure NIPSCPending+        "revoked" -> pure NIPSCRevoked+        "revoking" -> pure NIPSCRevoking+        e -> fromTextError $ "Failure parsing NetworkInterfacePermissionStateCode from value: '" <> e+           <> "'. Accepted values: granted, pending, revoked, revoking"++instance ToText NetworkInterfacePermissionStateCode where+    toText = \case+        NIPSCGranted -> "granted"+        NIPSCPending -> "pending"+        NIPSCRevoked -> "revoked"+        NIPSCRevoking -> "revoking"++instance Hashable     NetworkInterfacePermissionStateCode+instance NFData       NetworkInterfacePermissionStateCode+instance ToByteString NetworkInterfacePermissionStateCode+instance ToQuery      NetworkInterfacePermissionStateCode+instance ToHeader     NetworkInterfacePermissionStateCode++instance FromXML NetworkInterfacePermissionStateCode where+    parseXML = parseXMLText "NetworkInterfacePermissionStateCode"++data NetworkInterfaceStatus+  = NISAttaching+  | NISAvailable+  | NISDetaching+  | NISInUse+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NetworkInterfaceStatus where+    parser = takeLowerText >>= \case+        "attaching" -> pure NISAttaching+        "available" -> pure NISAvailable+        "detaching" -> pure NISDetaching+        "in-use" -> pure NISInUse+        e -> fromTextError $ "Failure parsing NetworkInterfaceStatus from value: '" <> e+           <> "'. Accepted values: attaching, available, detaching, in-use"++instance ToText NetworkInterfaceStatus where+    toText = \case+        NISAttaching -> "attaching"+        NISAvailable -> "available"+        NISDetaching -> "detaching"+        NISInUse -> "in-use"++instance Hashable     NetworkInterfaceStatus+instance NFData       NetworkInterfaceStatus+instance ToByteString NetworkInterfaceStatus+instance ToQuery      NetworkInterfaceStatus+instance ToHeader     NetworkInterfaceStatus++instance FromXML NetworkInterfaceStatus where+    parseXML = parseXMLText "NetworkInterfaceStatus"++data NetworkInterfaceType+  = NITInterface+  | NITNatGateway+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NetworkInterfaceType where+    parser = takeLowerText >>= \case+        "interface" -> pure NITInterface+        "natgateway" -> pure NITNatGateway+        e -> fromTextError $ "Failure parsing NetworkInterfaceType from value: '" <> e+           <> "'. Accepted values: interface, natgateway"++instance ToText NetworkInterfaceType where+    toText = \case+        NITInterface -> "interface"+        NITNatGateway -> "natGateway"++instance Hashable     NetworkInterfaceType+instance NFData       NetworkInterfaceType+instance ToByteString NetworkInterfaceType+instance ToQuery      NetworkInterfaceType+instance ToHeader     NetworkInterfaceType++instance FromXML NetworkInterfaceType where+    parseXML = parseXMLText "NetworkInterfaceType"++data OfferingClassType+  = OCTConvertible+  | OCTStandard+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OfferingClassType where+    parser = takeLowerText >>= \case+        "convertible" -> pure OCTConvertible+        "standard" -> pure OCTStandard+        e -> fromTextError $ "Failure parsing OfferingClassType from value: '" <> e+           <> "'. Accepted values: convertible, standard"++instance ToText OfferingClassType where+    toText = \case+        OCTConvertible -> "convertible"+        OCTStandard -> "standard"++instance Hashable     OfferingClassType+instance NFData       OfferingClassType+instance ToByteString OfferingClassType+instance ToQuery      OfferingClassType+instance ToHeader     OfferingClassType++instance FromXML OfferingClassType where+    parseXML = parseXMLText "OfferingClassType"++data OfferingTypeValues+  = AllUpfront+  | HeavyUtilization+  | LightUtilization+  | MediumUtilization+  | NoUpfront+  | PartialUpfront+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OfferingTypeValues where+    parser = takeLowerText >>= \case+        "all upfront" -> pure AllUpfront+        "heavy utilization" -> pure HeavyUtilization+        "light utilization" -> pure LightUtilization+        "medium utilization" -> pure MediumUtilization+        "no upfront" -> pure NoUpfront+        "partial upfront" -> pure PartialUpfront+        e -> fromTextError $ "Failure parsing OfferingTypeValues from value: '" <> e+           <> "'. Accepted values: all upfront, heavy utilization, light utilization, medium utilization, no upfront, partial upfront"++instance ToText OfferingTypeValues where+    toText = \case+        AllUpfront -> "All Upfront"+        HeavyUtilization -> "Heavy Utilization"+        LightUtilization -> "Light Utilization"+        MediumUtilization -> "Medium Utilization"+        NoUpfront -> "No Upfront"+        PartialUpfront -> "Partial Upfront"++instance Hashable     OfferingTypeValues+instance NFData       OfferingTypeValues+instance ToByteString OfferingTypeValues+instance ToQuery      OfferingTypeValues+instance ToHeader     OfferingTypeValues++instance FromXML OfferingTypeValues where+    parseXML = parseXMLText "OfferingTypeValues"++data OperationType+  = Add+  | Remove+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OperationType where+    parser = takeLowerText >>= \case+        "add" -> pure Add+        "remove" -> pure Remove+        e -> fromTextError $ "Failure parsing OperationType from value: '" <> e+           <> "'. Accepted values: add, remove"++instance ToText OperationType where+    toText = \case+        Add -> "add"+        Remove -> "remove"++instance Hashable     OperationType+instance NFData       OperationType+instance ToByteString OperationType+instance ToQuery      OperationType+instance ToHeader     OperationType++data PaymentOption+  = POAllUpfront+  | PONoUpfront+  | POPartialUpfront+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PaymentOption where+    parser = takeLowerText >>= \case+        "allupfront" -> pure POAllUpfront+        "noupfront" -> pure PONoUpfront+        "partialupfront" -> pure POPartialUpfront+        e -> fromTextError $ "Failure parsing PaymentOption from value: '" <> e+           <> "'. Accepted values: allupfront, noupfront, partialupfront"++instance ToText PaymentOption where+    toText = \case+        POAllUpfront -> "AllUpfront"+        PONoUpfront -> "NoUpfront"+        POPartialUpfront -> "PartialUpfront"++instance Hashable     PaymentOption+instance NFData       PaymentOption+instance ToByteString PaymentOption+instance ToQuery      PaymentOption+instance ToHeader     PaymentOption++instance FromXML PaymentOption where+    parseXML = parseXMLText "PaymentOption"++data PermissionGroup =+  All+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PermissionGroup where+    parser = takeLowerText >>= \case+        "all" -> pure All+        e -> fromTextError $ "Failure parsing PermissionGroup from value: '" <> e+           <> "'. Accepted values: all"++instance ToText PermissionGroup where+    toText = \case+        All -> "all"++instance Hashable     PermissionGroup+instance NFData       PermissionGroup+instance ToByteString PermissionGroup+instance ToQuery      PermissionGroup+instance ToHeader     PermissionGroup++instance FromXML PermissionGroup where+    parseXML = parseXMLText "PermissionGroup"++data PlacementGroupState+  = Available+  | Deleted+  | Deleting+  | Pending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PlacementGroupState where+    parser = takeLowerText >>= \case+        "available" -> pure Available+        "deleted" -> pure Deleted+        "deleting" -> pure Deleting+        "pending" -> pure Pending+        e -> fromTextError $ "Failure parsing PlacementGroupState from value: '" <> e+           <> "'. Accepted values: available, deleted, deleting, pending"++instance ToText PlacementGroupState where+    toText = \case+        Available -> "available"+        Deleted -> "deleted"+        Deleting -> "deleting"+        Pending -> "pending"++instance Hashable     PlacementGroupState+instance NFData       PlacementGroupState+instance ToByteString PlacementGroupState+instance ToQuery      PlacementGroupState+instance ToHeader     PlacementGroupState++instance FromXML PlacementGroupState where+    parseXML = parseXMLText "PlacementGroupState"++data PlacementStrategy =+  Cluster+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PlacementStrategy where+    parser = takeLowerText >>= \case+        "cluster" -> pure Cluster+        e -> fromTextError $ "Failure parsing PlacementStrategy from value: '" <> e+           <> "'. Accepted values: cluster"++instance ToText PlacementStrategy where+    toText = \case+        Cluster -> "cluster"++instance Hashable     PlacementStrategy+instance NFData       PlacementStrategy+instance ToByteString PlacementStrategy+instance ToQuery      PlacementStrategy+instance ToHeader     PlacementStrategy++instance FromXML PlacementStrategy where+    parseXML = parseXMLText "PlacementStrategy"++data PlatformValues =+  Windows+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PlatformValues where+    parser = takeLowerText >>= \case+        "windows" -> pure Windows+        e -> fromTextError $ "Failure parsing PlatformValues from value: '" <> e+           <> "'. Accepted values: windows"++instance ToText PlatformValues where+    toText = \case+        Windows -> "Windows"++instance Hashable     PlatformValues+instance NFData       PlatformValues+instance ToByteString PlatformValues+instance ToQuery      PlatformValues+instance ToHeader     PlatformValues++instance FromXML PlatformValues where+    parseXML = parseXMLText "PlatformValues"++data ProductCodeValues+  = Devpay+  | Marketplace+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ProductCodeValues where+    parser = takeLowerText >>= \case+        "devpay" -> pure Devpay+        "marketplace" -> pure Marketplace+        e -> fromTextError $ "Failure parsing ProductCodeValues from value: '" <> e+           <> "'. Accepted values: devpay, marketplace"++instance ToText ProductCodeValues where+    toText = \case+        Devpay -> "devpay"+        Marketplace -> "marketplace"++instance Hashable     ProductCodeValues+instance NFData       ProductCodeValues+instance ToByteString ProductCodeValues+instance ToQuery      ProductCodeValues+instance ToHeader     ProductCodeValues++instance FromXML ProductCodeValues where+    parseXML = parseXMLText "ProductCodeValues"++data RIProductDescription+  = RIDLinuxUnix+  | RIDLinuxUnixAmazonVPC+  | RIDWindows+  | RIDWindowsAmazonVPC+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RIProductDescription where+    parser = takeLowerText >>= \case+        "linux/unix" -> pure RIDLinuxUnix+        "linux/unix (amazon vpc)" -> pure RIDLinuxUnixAmazonVPC+        "windows" -> pure RIDWindows+        "windows (amazon vpc)" -> pure RIDWindowsAmazonVPC+        e -> fromTextError $ "Failure parsing RIProductDescription from value: '" <> e+           <> "'. Accepted values: linux/unix, linux/unix (amazon vpc), windows, windows (amazon vpc)"++instance ToText RIProductDescription where+    toText = \case+        RIDLinuxUnix -> "Linux/UNIX"+        RIDLinuxUnixAmazonVPC -> "Linux/UNIX (Amazon VPC)"+        RIDWindows -> "Windows"+        RIDWindowsAmazonVPC -> "Windows (Amazon VPC)"++instance Hashable     RIProductDescription+instance NFData       RIProductDescription+instance ToByteString RIProductDescription+instance ToQuery      RIProductDescription+instance ToHeader     RIProductDescription++instance FromXML RIProductDescription where+    parseXML = parseXMLText "RIProductDescription"++data RecurringChargeFrequency =+  Hourly+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RecurringChargeFrequency where+    parser = takeLowerText >>= \case+        "hourly" -> pure Hourly+        e -> fromTextError $ "Failure parsing RecurringChargeFrequency from value: '" <> e+           <> "'. Accepted values: hourly"++instance ToText RecurringChargeFrequency where+    toText = \case+        Hourly -> "Hourly"++instance Hashable     RecurringChargeFrequency+instance NFData       RecurringChargeFrequency+instance ToByteString RecurringChargeFrequency+instance ToQuery      RecurringChargeFrequency+instance ToHeader     RecurringChargeFrequency++instance FromXML RecurringChargeFrequency where+    parseXML = parseXMLText "RecurringChargeFrequency"++data ReportInstanceReasonCodes+  = InstanceStuckInState+  | NotAcceptingCredentials+  | Other+  | PasswordNotAvailable+  | PerformanceEBSVolume+  | PerformanceInstanceStore+  | PerformanceNetwork+  | PerformanceOther+  | Unresponsive+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ReportInstanceReasonCodes where+    parser = takeLowerText >>= \case+        "instance-stuck-in-state" -> pure InstanceStuckInState+        "not-accepting-credentials" -> pure NotAcceptingCredentials+        "other" -> pure Other+        "password-not-available" -> pure PasswordNotAvailable+        "performance-ebs-volume" -> pure PerformanceEBSVolume+        "performance-instance-store" -> pure PerformanceInstanceStore+        "performance-network" -> pure PerformanceNetwork+        "performance-other" -> pure PerformanceOther+        "unresponsive" -> pure Unresponsive+        e -> fromTextError $ "Failure parsing ReportInstanceReasonCodes from value: '" <> e+           <> "'. Accepted values: instance-stuck-in-state, not-accepting-credentials, other, password-not-available, performance-ebs-volume, performance-instance-store, performance-network, performance-other, unresponsive"++instance ToText ReportInstanceReasonCodes where+    toText = \case+        InstanceStuckInState -> "instance-stuck-in-state"+        NotAcceptingCredentials -> "not-accepting-credentials"+        Other -> "other"+        PasswordNotAvailable -> "password-not-available"+        PerformanceEBSVolume -> "performance-ebs-volume"+        PerformanceInstanceStore -> "performance-instance-store"+        PerformanceNetwork -> "performance-network"+        PerformanceOther -> "performance-other"+        Unresponsive -> "unresponsive"++instance Hashable     ReportInstanceReasonCodes+instance NFData       ReportInstanceReasonCodes+instance ToByteString ReportInstanceReasonCodes+instance ToQuery      ReportInstanceReasonCodes+instance ToHeader     ReportInstanceReasonCodes++data ReportStatusType+  = RSTImpaired+  | RSTOK+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ReportStatusType where+    parser = takeLowerText >>= \case+        "impaired" -> pure RSTImpaired+        "ok" -> pure RSTOK+        e -> fromTextError $ "Failure parsing ReportStatusType from value: '" <> e+           <> "'. Accepted values: impaired, ok"++instance ToText ReportStatusType where+    toText = \case+        RSTImpaired -> "impaired"+        RSTOK -> "ok"++instance Hashable     ReportStatusType+instance NFData       ReportStatusType+instance ToByteString ReportStatusType+instance ToQuery      ReportStatusType+instance ToHeader     ReportStatusType++data ReservationState+  = RSActive+  | RSPaymentFailed+  | RSPaymentPending+  | RSRetired+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ReservationState where+    parser = takeLowerText >>= \case+        "active" -> pure RSActive+        "payment-failed" -> pure RSPaymentFailed+        "payment-pending" -> pure RSPaymentPending+        "retired" -> pure RSRetired+        e -> fromTextError $ "Failure parsing ReservationState from value: '" <> e+           <> "'. Accepted values: active, payment-failed, payment-pending, retired"++instance ToText ReservationState where+    toText = \case+        RSActive -> "active"+        RSPaymentFailed -> "payment-failed"+        RSPaymentPending -> "payment-pending"+        RSRetired -> "retired"++instance Hashable     ReservationState+instance NFData       ReservationState+instance ToByteString ReservationState+instance ToQuery      ReservationState+instance ToHeader     ReservationState++instance FromXML ReservationState where+    parseXML = parseXMLText "ReservationState"++data ReservedInstanceState+  = Active+  | PaymentFailed+  | PaymentPending+  | Retired+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ReservedInstanceState where+    parser = takeLowerText >>= \case+        "active" -> pure Active+        "payment-failed" -> pure PaymentFailed+        "payment-pending" -> pure PaymentPending+        "retired" -> pure Retired+        e -> fromTextError $ "Failure parsing ReservedInstanceState from value: '" <> e+           <> "'. Accepted values: active, payment-failed, payment-pending, retired"++instance ToText ReservedInstanceState where+    toText = \case+        Active -> "active"+        PaymentFailed -> "payment-failed"+        PaymentPending -> "payment-pending"+        Retired -> "retired"++instance Hashable     ReservedInstanceState+instance NFData       ReservedInstanceState+instance ToByteString ReservedInstanceState+instance ToQuery      ReservedInstanceState+instance ToHeader     ReservedInstanceState++instance FromXML ReservedInstanceState where+    parseXML = parseXMLText "ReservedInstanceState"++data ResetFpgaImageAttributeName =+  LoadPermission+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ResetFpgaImageAttributeName where+    parser = takeLowerText >>= \case+        "loadpermission" -> pure LoadPermission+        e -> fromTextError $ "Failure parsing ResetFpgaImageAttributeName from value: '" <> e+           <> "'. Accepted values: loadpermission"++instance ToText ResetFpgaImageAttributeName where+    toText = \case+        LoadPermission -> "loadPermission"++instance Hashable     ResetFpgaImageAttributeName+instance NFData       ResetFpgaImageAttributeName+instance ToByteString ResetFpgaImageAttributeName+instance ToQuery      ResetFpgaImageAttributeName+instance ToHeader     ResetFpgaImageAttributeName++data ResetImageAttributeName =+  RIANLaunchPermission+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ResetImageAttributeName where+    parser = takeLowerText >>= \case+        "launchpermission" -> pure RIANLaunchPermission+        e -> fromTextError $ "Failure parsing ResetImageAttributeName from value: '" <> e+           <> "'. Accepted values: launchpermission"++instance ToText ResetImageAttributeName where+    toText = \case+        RIANLaunchPermission -> "launchPermission"++instance Hashable     ResetImageAttributeName+instance NFData       ResetImageAttributeName+instance ToByteString ResetImageAttributeName+instance ToQuery      ResetImageAttributeName+instance ToHeader     ResetImageAttributeName++data ResourceType+  = CustomerGateway+  | DHCPOptions+  | Image+  | Instance+  | InternetGateway+  | NetworkACL+  | NetworkInterface+  | ReservedInstances+  | RouteTable+  | SecurityGroup+  | Snapshot+  | SpotInstancesRequest+  | Subnet+  | VPC+  | VPNConnection+  | VPNGateway+  | Volume+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ResourceType where+    parser = takeLowerText >>= \case+        "customer-gateway" -> pure CustomerGateway+        "dhcp-options" -> pure DHCPOptions+        "image" -> pure Image+        "instance" -> pure Instance+        "internet-gateway" -> pure InternetGateway+        "network-acl" -> pure NetworkACL+        "network-interface" -> pure NetworkInterface+        "reserved-instances" -> pure ReservedInstances+        "route-table" -> pure RouteTable+        "security-group" -> pure SecurityGroup+        "snapshot" -> pure Snapshot+        "spot-instances-request" -> pure SpotInstancesRequest+        "subnet" -> pure Subnet+        "vpc" -> pure VPC+        "vpn-connection" -> pure VPNConnection+        "vpn-gateway" -> pure VPNGateway+        "volume" -> pure Volume+        e -> fromTextError $ "Failure parsing ResourceType from value: '" <> e+           <> "'. Accepted values: customer-gateway, dhcp-options, image, instance, internet-gateway, network-acl, network-interface, reserved-instances, route-table, security-group, snapshot, spot-instances-request, subnet, vpc, vpn-connection, vpn-gateway, volume"++instance ToText ResourceType where+    toText = \case+        CustomerGateway -> "customer-gateway"+        DHCPOptions -> "dhcp-options"+        Image -> "image"+        Instance -> "instance"+        InternetGateway -> "internet-gateway"+        NetworkACL -> "network-acl"+        NetworkInterface -> "network-interface"+        ReservedInstances -> "reserved-instances"+        RouteTable -> "route-table"+        SecurityGroup -> "security-group"+        Snapshot -> "snapshot"+        SpotInstancesRequest -> "spot-instances-request"+        Subnet -> "subnet"+        VPC -> "vpc"+        VPNConnection -> "vpn-connection"+        VPNGateway -> "vpn-gateway"+        Volume -> "volume"++instance Hashable     ResourceType+instance NFData       ResourceType+instance ToByteString ResourceType+instance ToQuery      ResourceType+instance ToHeader     ResourceType++instance FromXML ResourceType where+    parseXML = parseXMLText "ResourceType"++data RouteOrigin+  = CreateRoute+  | CreateRouteTable+  | EnableVGWRoutePropagation+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RouteOrigin where+    parser = takeLowerText >>= \case+        "createroute" -> pure CreateRoute+        "createroutetable" -> pure CreateRouteTable+        "enablevgwroutepropagation" -> pure EnableVGWRoutePropagation+        e -> fromTextError $ "Failure parsing RouteOrigin from value: '" <> e+           <> "'. Accepted values: createroute, createroutetable, enablevgwroutepropagation"++instance ToText RouteOrigin where+    toText = \case+        CreateRoute -> "CreateRoute"+        CreateRouteTable -> "CreateRouteTable"+        EnableVGWRoutePropagation -> "EnableVgwRoutePropagation"++instance Hashable     RouteOrigin+instance NFData       RouteOrigin+instance ToByteString RouteOrigin+instance ToQuery      RouteOrigin+instance ToHeader     RouteOrigin++instance FromXML RouteOrigin where+    parseXML = parseXMLText "RouteOrigin"++data RouteState+  = RActive+  | RBlackhole+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RouteState where+    parser = takeLowerText >>= \case+        "active" -> pure RActive+        "blackhole" -> pure RBlackhole+        e -> fromTextError $ "Failure parsing RouteState from value: '" <> e+           <> "'. Accepted values: active, blackhole"++instance ToText RouteState where+    toText = \case+        RActive -> "active"+        RBlackhole -> "blackhole"++instance Hashable     RouteState+instance NFData       RouteState+instance ToByteString RouteState+instance ToQuery      RouteState+instance ToHeader     RouteState++instance FromXML RouteState where+    parseXML = parseXMLText "RouteState"++data RuleAction+  = Allow+  | Deny+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RuleAction where+    parser = takeLowerText >>= \case+        "allow" -> pure Allow+        "deny" -> pure Deny+        e -> fromTextError $ "Failure parsing RuleAction from value: '" <> e+           <> "'. Accepted values: allow, deny"++instance ToText RuleAction where+    toText = \case+        Allow -> "allow"+        Deny -> "deny"++instance Hashable     RuleAction+instance NFData       RuleAction+instance ToByteString RuleAction+instance ToQuery      RuleAction+instance ToHeader     RuleAction++instance FromXML RuleAction where+    parseXML = parseXMLText "RuleAction"++data Scope+  = AvailabilityZone+  | Region+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Scope where+    parser = takeLowerText >>= \case+        "availability zone" -> pure AvailabilityZone+        "region" -> pure Region+        e -> fromTextError $ "Failure parsing Scope from value: '" <> e+           <> "'. Accepted values: availability zone, region"++instance ToText Scope where+    toText = \case+        AvailabilityZone -> "Availability Zone"+        Region -> "Region"++instance Hashable     Scope+instance NFData       Scope+instance ToByteString Scope+instance ToQuery      Scope+instance ToHeader     Scope++instance FromXML Scope where+    parseXML = parseXMLText "Scope"++data ServiceType+  = Gateway+  | Interface+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ServiceType where+    parser = takeLowerText >>= \case+        "gateway" -> pure Gateway+        "interface" -> pure Interface+        e -> fromTextError $ "Failure parsing ServiceType from value: '" <> e+           <> "'. Accepted values: gateway, interface"++instance ToText ServiceType where+    toText = \case+        Gateway -> "Gateway"+        Interface -> "Interface"++instance Hashable     ServiceType+instance NFData       ServiceType+instance ToByteString ServiceType+instance ToQuery      ServiceType+instance ToHeader     ServiceType++instance FromXML ServiceType where+    parseXML = parseXMLText "ServiceType"++data ShutdownBehavior+  = Stop+  | Terminate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ShutdownBehavior where+    parser = takeLowerText >>= \case+        "stop" -> pure Stop+        "terminate" -> pure Terminate+        e -> fromTextError $ "Failure parsing ShutdownBehavior from value: '" <> e+           <> "'. Accepted values: stop, terminate"++instance ToText ShutdownBehavior where+    toText = \case+        Stop -> "stop"+        Terminate -> "terminate"++instance Hashable     ShutdownBehavior+instance NFData       ShutdownBehavior+instance ToByteString ShutdownBehavior+instance ToQuery      ShutdownBehavior+instance ToHeader     ShutdownBehavior++data SnapshotAttributeName+  = SANCreateVolumePermission+  | SANProductCodes+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SnapshotAttributeName where+    parser = takeLowerText >>= \case+        "createvolumepermission" -> pure SANCreateVolumePermission+        "productcodes" -> pure SANProductCodes+        e -> fromTextError $ "Failure parsing SnapshotAttributeName from value: '" <> e+           <> "'. Accepted values: createvolumepermission, productcodes"++instance ToText SnapshotAttributeName where+    toText = \case+        SANCreateVolumePermission -> "createVolumePermission"+        SANProductCodes -> "productCodes"++instance Hashable     SnapshotAttributeName+instance NFData       SnapshotAttributeName+instance ToByteString SnapshotAttributeName+instance ToQuery      SnapshotAttributeName+instance ToHeader     SnapshotAttributeName++data SnapshotState+  = SSCompleted+  | SSError'+  | SSPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SnapshotState where+    parser = takeLowerText >>= \case+        "completed" -> pure SSCompleted+        "error" -> pure SSError'+        "pending" -> pure SSPending+        e -> fromTextError $ "Failure parsing SnapshotState from value: '" <> e+           <> "'. Accepted values: completed, error, pending"++instance ToText SnapshotState where+    toText = \case+        SSCompleted -> "completed"+        SSError' -> "error"+        SSPending -> "pending"++instance Hashable     SnapshotState+instance NFData       SnapshotState+instance ToByteString SnapshotState+instance ToQuery      SnapshotState+instance ToHeader     SnapshotState++instance FromXML SnapshotState where+    parseXML = parseXMLText "SnapshotState"++data SpotInstanceState+  = SISActive+  | SISCancelled+  | SISClosed+  | SISFailed+  | SISOpen+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SpotInstanceState where+    parser = takeLowerText >>= \case+        "active" -> pure SISActive+        "cancelled" -> pure SISCancelled+        "closed" -> pure SISClosed+        "failed" -> pure SISFailed+        "open" -> pure SISOpen+        e -> fromTextError $ "Failure parsing SpotInstanceState from value: '" <> e+           <> "'. Accepted values: active, cancelled, closed, failed, open"++instance ToText SpotInstanceState where+    toText = \case+        SISActive -> "active"+        SISCancelled -> "cancelled"+        SISClosed -> "closed"+        SISFailed -> "failed"+        SISOpen -> "open"++instance Hashable     SpotInstanceState+instance NFData       SpotInstanceState+instance ToByteString SpotInstanceState+instance ToQuery      SpotInstanceState+instance ToHeader     SpotInstanceState++instance FromXML SpotInstanceState where+    parseXML = parseXMLText "SpotInstanceState"++data SpotInstanceType+  = OneTime+  | Persistent+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SpotInstanceType where+    parser = takeLowerText >>= \case+        "one-time" -> pure OneTime+        "persistent" -> pure Persistent+        e -> fromTextError $ "Failure parsing SpotInstanceType from value: '" <> e+           <> "'. Accepted values: one-time, persistent"++instance ToText SpotInstanceType where+    toText = \case+        OneTime -> "one-time"+        Persistent -> "persistent"++instance Hashable     SpotInstanceType+instance NFData       SpotInstanceType+instance ToByteString SpotInstanceType+instance ToQuery      SpotInstanceType+instance ToHeader     SpotInstanceType++instance FromXML SpotInstanceType where+    parseXML = parseXMLText "SpotInstanceType"++data State+  = SAvailable+  | SDeleted+  | SDeleting+  | SExpired+  | SFailed+  | SPending+  | SPendingAcceptance+  | SRejected+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText State where+    parser = takeLowerText >>= \case+        "available" -> pure SAvailable+        "deleted" -> pure SDeleted+        "deleting" -> pure SDeleting+        "expired" -> pure SExpired+        "failed" -> pure SFailed+        "pending" -> pure SPending+        "pendingacceptance" -> pure SPendingAcceptance+        "rejected" -> pure SRejected+        e -> fromTextError $ "Failure parsing State from value: '" <> e+           <> "'. Accepted values: available, deleted, deleting, expired, failed, pending, pendingacceptance, rejected"++instance ToText State where+    toText = \case+        SAvailable -> "Available"+        SDeleted -> "Deleted"+        SDeleting -> "Deleting"+        SExpired -> "Expired"+        SFailed -> "Failed"+        SPending -> "Pending"+        SPendingAcceptance -> "PendingAcceptance"+        SRejected -> "Rejected"++instance Hashable     State+instance NFData       State+instance ToByteString State+instance ToQuery      State+instance ToHeader     State++instance FromXML State where+    parseXML = parseXMLText "State"++data StatusName =+  Reachability+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText StatusName where+    parser = takeLowerText >>= \case+        "reachability" -> pure Reachability+        e -> fromTextError $ "Failure parsing StatusName from value: '" <> e+           <> "'. Accepted values: reachability"++instance ToText StatusName where+    toText = \case+        Reachability -> "reachability"++instance Hashable     StatusName+instance NFData       StatusName+instance ToByteString StatusName+instance ToQuery      StatusName+instance ToHeader     StatusName++instance FromXML StatusName where+    parseXML = parseXMLText "StatusName"++data StatusType+  = STFailed+  | STInitializing+  | STInsufficientData+  | STPassed+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText StatusType where+    parser = takeLowerText >>= \case+        "failed" -> pure STFailed+        "initializing" -> pure STInitializing+        "insufficient-data" -> pure STInsufficientData+        "passed" -> pure STPassed+        e -> fromTextError $ "Failure parsing StatusType from value: '" <> e+           <> "'. Accepted values: failed, initializing, insufficient-data, passed"++instance ToText StatusType where+    toText = \case+        STFailed -> "failed"+        STInitializing -> "initializing"+        STInsufficientData -> "insufficient-data"+        STPassed -> "passed"++instance Hashable     StatusType+instance NFData       StatusType+instance ToByteString StatusType+instance ToQuery      StatusType+instance ToHeader     StatusType++instance FromXML StatusType where+    parseXML = parseXMLText "StatusType"++data SubnetCidrBlockStateCode+  = SCBSCAssociated+  | SCBSCAssociating+  | SCBSCDisassociated+  | SCBSCDisassociating+  | SCBSCFailed+  | SCBSCFailing+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SubnetCidrBlockStateCode where+    parser = takeLowerText >>= \case+        "associated" -> pure SCBSCAssociated+        "associating" -> pure SCBSCAssociating+        "disassociated" -> pure SCBSCDisassociated+        "disassociating" -> pure SCBSCDisassociating+        "failed" -> pure SCBSCFailed+        "failing" -> pure SCBSCFailing+        e -> fromTextError $ "Failure parsing SubnetCidrBlockStateCode from value: '" <> e+           <> "'. Accepted values: associated, associating, disassociated, disassociating, failed, failing"++instance ToText SubnetCidrBlockStateCode where+    toText = \case+        SCBSCAssociated -> "associated"+        SCBSCAssociating -> "associating"+        SCBSCDisassociated -> "disassociated"+        SCBSCDisassociating -> "disassociating"+        SCBSCFailed -> "failed"+        SCBSCFailing -> "failing"++instance Hashable     SubnetCidrBlockStateCode+instance NFData       SubnetCidrBlockStateCode+instance ToByteString SubnetCidrBlockStateCode+instance ToQuery      SubnetCidrBlockStateCode+instance ToHeader     SubnetCidrBlockStateCode++instance FromXML SubnetCidrBlockStateCode where+    parseXML = parseXMLText "SubnetCidrBlockStateCode"++data SubnetState+  = SubAvailable+  | SubPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SubnetState where+    parser = takeLowerText >>= \case+        "available" -> pure SubAvailable+        "pending" -> pure SubPending+        e -> fromTextError $ "Failure parsing SubnetState from value: '" <> e+           <> "'. Accepted values: available, pending"++instance ToText SubnetState where+    toText = \case+        SubAvailable -> "available"+        SubPending -> "pending"++instance Hashable     SubnetState+instance NFData       SubnetState+instance ToByteString SubnetState+instance ToQuery      SubnetState+instance ToHeader     SubnetState++instance FromXML SubnetState where+    parseXML = parseXMLText "SubnetState"++data SummaryStatus+  = SSImpaired+  | SSInitializing+  | SSInsufficientData+  | SSNotApplicable+  | SSOK+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SummaryStatus where+    parser = takeLowerText >>= \case+        "impaired" -> pure SSImpaired+        "initializing" -> pure SSInitializing+        "insufficient-data" -> pure SSInsufficientData+        "not-applicable" -> pure SSNotApplicable+        "ok" -> pure SSOK+        e -> fromTextError $ "Failure parsing SummaryStatus from value: '" <> e+           <> "'. Accepted values: impaired, initializing, insufficient-data, not-applicable, ok"++instance ToText SummaryStatus where+    toText = \case+        SSImpaired -> "impaired"+        SSInitializing -> "initializing"+        SSInsufficientData -> "insufficient-data"+        SSNotApplicable -> "not-applicable"+        SSOK -> "ok"++instance Hashable     SummaryStatus+instance NFData       SummaryStatus+instance ToByteString SummaryStatus+instance ToQuery      SummaryStatus+instance ToHeader     SummaryStatus++instance FromXML SummaryStatus where+    parseXML = parseXMLText "SummaryStatus"++data TelemetryStatus+  = Down+  | UP+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TelemetryStatus where+    parser = takeLowerText >>= \case+        "down" -> pure Down+        "up" -> pure UP+        e -> fromTextError $ "Failure parsing TelemetryStatus from value: '" <> e+           <> "'. Accepted values: down, up"++instance ToText TelemetryStatus where+    toText = \case+        Down -> "DOWN"+        UP -> "UP"++instance Hashable     TelemetryStatus+instance NFData       TelemetryStatus+instance ToByteString TelemetryStatus+instance ToQuery      TelemetryStatus+instance ToHeader     TelemetryStatus++instance FromXML TelemetryStatus where+    parseXML = parseXMLText "TelemetryStatus"++data Tenancy+  = Dedicated+  | Default+  | Host+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Tenancy where+    parser = takeLowerText >>= \case+        "dedicated" -> pure Dedicated+        "default" -> pure Default+        "host" -> pure Host+        e -> fromTextError $ "Failure parsing Tenancy from value: '" <> e+           <> "'. Accepted values: dedicated, default, host"++instance ToText Tenancy where+    toText = \case+        Dedicated -> "dedicated"+        Default -> "default"+        Host -> "host"++instance Hashable     Tenancy+instance NFData       Tenancy+instance ToByteString Tenancy+instance ToQuery      Tenancy+instance ToHeader     Tenancy++instance FromXML Tenancy where+    parseXML = parseXMLText "Tenancy"++data TrafficType+  = TTAccept+  | TTAll+  | TTReject+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TrafficType where+    parser = takeLowerText >>= \case+        "accept" -> pure TTAccept+        "all" -> pure TTAll+        "reject" -> pure TTReject+        e -> fromTextError $ "Failure parsing TrafficType from value: '" <> e+           <> "'. Accepted values: accept, all, reject"++instance ToText TrafficType where+    toText = \case+        TTAccept -> "ACCEPT"+        TTAll -> "ALL"+        TTReject -> "REJECT"++instance Hashable     TrafficType+instance NFData       TrafficType+instance ToByteString TrafficType+instance ToQuery      TrafficType+instance ToHeader     TrafficType++instance FromXML TrafficType where+    parseXML = parseXMLText "TrafficType"++data VPCAttributeName+  = EnableDNSHostnames+  | EnableDNSSupport+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPCAttributeName where+    parser = takeLowerText >>= \case+        "enablednshostnames" -> pure EnableDNSHostnames+        "enablednssupport" -> pure EnableDNSSupport+        e -> fromTextError $ "Failure parsing VPCAttributeName from value: '" <> e+           <> "'. Accepted values: enablednshostnames, enablednssupport"++instance ToText VPCAttributeName where+    toText = \case+        EnableDNSHostnames -> "enableDnsHostnames"+        EnableDNSSupport -> "enableDnsSupport"++instance Hashable     VPCAttributeName+instance NFData       VPCAttributeName+instance ToByteString VPCAttributeName+instance ToQuery      VPCAttributeName+instance ToHeader     VPCAttributeName++data VPCCidrBlockStateCode+  = VCBSCAssociated+  | VCBSCAssociating+  | VCBSCDisassociated+  | VCBSCDisassociating+  | VCBSCFailed+  | VCBSCFailing+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPCCidrBlockStateCode where+    parser = takeLowerText >>= \case+        "associated" -> pure VCBSCAssociated+        "associating" -> pure VCBSCAssociating+        "disassociated" -> pure VCBSCDisassociated+        "disassociating" -> pure VCBSCDisassociating+        "failed" -> pure VCBSCFailed+        "failing" -> pure VCBSCFailing+        e -> fromTextError $ "Failure parsing VPCCidrBlockStateCode from value: '" <> e+           <> "'. Accepted values: associated, associating, disassociated, disassociating, failed, failing"++instance ToText VPCCidrBlockStateCode where+    toText = \case+        VCBSCAssociated -> "associated"+        VCBSCAssociating -> "associating"+        VCBSCDisassociated -> "disassociated"+        VCBSCDisassociating -> "disassociating"+        VCBSCFailed -> "failed"+        VCBSCFailing -> "failing"++instance Hashable     VPCCidrBlockStateCode+instance NFData       VPCCidrBlockStateCode+instance ToByteString VPCCidrBlockStateCode+instance ToQuery      VPCCidrBlockStateCode+instance ToHeader     VPCCidrBlockStateCode++instance FromXML VPCCidrBlockStateCode where+    parseXML = parseXMLText "VPCCidrBlockStateCode"++data VPCEndpointType+  = VETGateway+  | VETInterface+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPCEndpointType where+    parser = takeLowerText >>= \case+        "gateway" -> pure VETGateway+        "interface" -> pure VETInterface+        e -> fromTextError $ "Failure parsing VPCEndpointType from value: '" <> e+           <> "'. Accepted values: gateway, interface"++instance ToText VPCEndpointType where+    toText = \case+        VETGateway -> "Gateway"+        VETInterface -> "Interface"++instance Hashable     VPCEndpointType+instance NFData       VPCEndpointType+instance ToByteString VPCEndpointType+instance ToQuery      VPCEndpointType+instance ToHeader     VPCEndpointType++instance FromXML VPCEndpointType where+    parseXML = parseXMLText "VPCEndpointType"++data VPCPeeringConnectionStateReasonCode+  = VPCSRCActive+  | VPCSRCDeleted+  | VPCSRCDeleting+  | VPCSRCExpired+  | VPCSRCFailed+  | VPCSRCInitiatingRequest+  | VPCSRCPendingAcceptance+  | VPCSRCProvisioning+  | VPCSRCRejected+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPCPeeringConnectionStateReasonCode where+    parser = takeLowerText >>= \case+        "active" -> pure VPCSRCActive+        "deleted" -> pure VPCSRCDeleted+        "deleting" -> pure VPCSRCDeleting+        "expired" -> pure VPCSRCExpired+        "failed" -> pure VPCSRCFailed+        "initiating-request" -> pure VPCSRCInitiatingRequest+        "pending-acceptance" -> pure VPCSRCPendingAcceptance+        "provisioning" -> pure VPCSRCProvisioning+        "rejected" -> pure VPCSRCRejected+        e -> fromTextError $ "Failure parsing VPCPeeringConnectionStateReasonCode from value: '" <> e+           <> "'. Accepted values: active, deleted, deleting, expired, failed, initiating-request, pending-acceptance, provisioning, rejected"++instance ToText VPCPeeringConnectionStateReasonCode where+    toText = \case+        VPCSRCActive -> "active"+        VPCSRCDeleted -> "deleted"+        VPCSRCDeleting -> "deleting"+        VPCSRCExpired -> "expired"+        VPCSRCFailed -> "failed"+        VPCSRCInitiatingRequest -> "initiating-request"+        VPCSRCPendingAcceptance -> "pending-acceptance"+        VPCSRCProvisioning -> "provisioning"+        VPCSRCRejected -> "rejected"++instance Hashable     VPCPeeringConnectionStateReasonCode+instance NFData       VPCPeeringConnectionStateReasonCode+instance ToByteString VPCPeeringConnectionStateReasonCode+instance ToQuery      VPCPeeringConnectionStateReasonCode+instance ToHeader     VPCPeeringConnectionStateReasonCode++instance FromXML VPCPeeringConnectionStateReasonCode where+    parseXML = parseXMLText "VPCPeeringConnectionStateReasonCode"++data VPCState+  = VPCSAvailable+  | VPCSPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPCState where+    parser = takeLowerText >>= \case+        "available" -> pure VPCSAvailable+        "pending" -> pure VPCSPending+        e -> fromTextError $ "Failure parsing VPCState from value: '" <> e+           <> "'. Accepted values: available, pending"++instance ToText VPCState where+    toText = \case+        VPCSAvailable -> "available"+        VPCSPending -> "pending"++instance Hashable     VPCState+instance NFData       VPCState+instance ToByteString VPCState+instance ToQuery      VPCState+instance ToHeader     VPCState++instance FromXML VPCState where+    parseXML = parseXMLText "VPCState"++data VPCTenancy =+  VTDefault+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPCTenancy where+    parser = takeLowerText >>= \case+        "default" -> pure VTDefault+        e -> fromTextError $ "Failure parsing VPCTenancy from value: '" <> e+           <> "'. Accepted values: default"++instance ToText VPCTenancy where+    toText = \case+        VTDefault -> "default"++instance Hashable     VPCTenancy+instance NFData       VPCTenancy+instance ToByteString VPCTenancy+instance ToQuery      VPCTenancy+instance ToHeader     VPCTenancy++data VPNState+  = VSAvailable+  | VSDeleted+  | VSDeleting+  | VSPending+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPNState where+    parser = takeLowerText >>= \case+        "available" -> pure VSAvailable+        "deleted" -> pure VSDeleted+        "deleting" -> pure VSDeleting+        "pending" -> pure VSPending+        e -> fromTextError $ "Failure parsing VPNState from value: '" <> e+           <> "'. Accepted values: available, deleted, deleting, pending"++instance ToText VPNState where+    toText = \case+        VSAvailable -> "available"+        VSDeleted -> "deleted"+        VSDeleting -> "deleting"+        VSPending -> "pending"++instance Hashable     VPNState+instance NFData       VPNState+instance ToByteString VPNState+instance ToQuery      VPNState+instance ToHeader     VPNState++instance FromXML VPNState where+    parseXML = parseXMLText "VPNState"++data VPNStaticRouteSource =+  Static+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VPNStaticRouteSource where+    parser = takeLowerText >>= \case+        "static" -> pure Static+        e -> fromTextError $ "Failure parsing VPNStaticRouteSource from value: '" <> e+           <> "'. Accepted values: static"++instance ToText VPNStaticRouteSource where+    toText = \case+        Static -> "Static"++instance Hashable     VPNStaticRouteSource+instance NFData       VPNStaticRouteSource+instance ToByteString VPNStaticRouteSource+instance ToQuery      VPNStaticRouteSource+instance ToHeader     VPNStaticRouteSource++instance FromXML VPNStaticRouteSource where+    parseXML = parseXMLText "VPNStaticRouteSource"++data VirtualizationType+  = HVM+  | Paravirtual+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VirtualizationType where+    parser = takeLowerText >>= \case+        "hvm" -> pure HVM+        "paravirtual" -> pure Paravirtual+        e -> fromTextError $ "Failure parsing VirtualizationType from value: '" <> e+           <> "'. Accepted values: hvm, paravirtual"++instance ToText VirtualizationType where+    toText = \case+        HVM -> "hvm"+        Paravirtual -> "paravirtual"++instance Hashable     VirtualizationType+instance NFData       VirtualizationType+instance ToByteString VirtualizationType+instance ToQuery      VirtualizationType+instance ToHeader     VirtualizationType++instance FromXML VirtualizationType where+    parseXML = parseXMLText "VirtualizationType"++data VolumeAttachmentState+  = VAttached+  | VAttaching+  | VBusy+  | VDetached+  | VDetaching+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeAttachmentState where+    parser = takeLowerText >>= \case+        "attached" -> pure VAttached+        "attaching" -> pure VAttaching+        "busy" -> pure VBusy+        "detached" -> pure VDetached+        "detaching" -> pure VDetaching+        e -> fromTextError $ "Failure parsing VolumeAttachmentState from value: '" <> e+           <> "'. Accepted values: attached, attaching, busy, detached, detaching"++instance ToText VolumeAttachmentState where+    toText = \case+        VAttached -> "attached"+        VAttaching -> "attaching"+        VBusy -> "busy"+        VDetached -> "detached"+        VDetaching -> "detaching"++instance Hashable     VolumeAttachmentState+instance NFData       VolumeAttachmentState+instance ToByteString VolumeAttachmentState+instance ToQuery      VolumeAttachmentState+instance ToHeader     VolumeAttachmentState++instance FromXML VolumeAttachmentState where+    parseXML = parseXMLText "VolumeAttachmentState"++data VolumeAttributeName+  = VANAutoEnableIO+  | VANProductCodes+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeAttributeName where+    parser = takeLowerText >>= \case+        "autoenableio" -> pure VANAutoEnableIO+        "productcodes" -> pure VANProductCodes+        e -> fromTextError $ "Failure parsing VolumeAttributeName from value: '" <> e+           <> "'. Accepted values: autoenableio, productcodes"++instance ToText VolumeAttributeName where+    toText = \case+        VANAutoEnableIO -> "autoEnableIO"+        VANProductCodes -> "productCodes"++instance Hashable     VolumeAttributeName+instance NFData       VolumeAttributeName+instance ToByteString VolumeAttributeName+instance ToQuery      VolumeAttributeName+instance ToHeader     VolumeAttributeName++data VolumeModificationState+  = Completed+  | Failed+  | Modifying+  | Optimizing+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeModificationState where+    parser = takeLowerText >>= \case+        "completed" -> pure Completed+        "failed" -> pure Failed+        "modifying" -> pure Modifying+        "optimizing" -> pure Optimizing+        e -> fromTextError $ "Failure parsing VolumeModificationState from value: '" <> e+           <> "'. Accepted values: completed, failed, modifying, optimizing"++instance ToText VolumeModificationState where+    toText = \case+        Completed -> "completed"+        Failed -> "failed"+        Modifying -> "modifying"+        Optimizing -> "optimizing"++instance Hashable     VolumeModificationState+instance NFData       VolumeModificationState+instance ToByteString VolumeModificationState+instance ToQuery      VolumeModificationState+instance ToHeader     VolumeModificationState++instance FromXML VolumeModificationState where+    parseXML = parseXMLText "VolumeModificationState"++data VolumeState+  = VAvailable+  | VCreating+  | VDeleted+  | VDeleting+  | VError'+  | VInUse+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeState where+    parser = takeLowerText >>= \case+        "available" -> pure VAvailable+        "creating" -> pure VCreating+        "deleted" -> pure VDeleted+        "deleting" -> pure VDeleting+        "error" -> pure VError'+        "in-use" -> pure VInUse+        e -> fromTextError $ "Failure parsing VolumeState from value: '" <> e+           <> "'. Accepted values: available, creating, deleted, deleting, error, in-use"++instance ToText VolumeState where+    toText = \case+        VAvailable -> "available"+        VCreating -> "creating"+        VDeleted -> "deleted"+        VDeleting -> "deleting"+        VError' -> "error"+        VInUse -> "in-use"++instance Hashable     VolumeState+instance NFData       VolumeState+instance ToByteString VolumeState+instance ToQuery      VolumeState+instance ToHeader     VolumeState++instance FromXML VolumeState where+    parseXML = parseXMLText "VolumeState"++data VolumeStatusInfoStatus+  = Impaired+  | InsufficientData+  | OK+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeStatusInfoStatus where+    parser = takeLowerText >>= \case+        "impaired" -> pure Impaired+        "insufficient-data" -> pure InsufficientData+        "ok" -> pure OK+        e -> fromTextError $ "Failure parsing VolumeStatusInfoStatus from value: '" <> e+           <> "'. Accepted values: impaired, insufficient-data, ok"++instance ToText VolumeStatusInfoStatus where+    toText = \case+        Impaired -> "impaired"+        InsufficientData -> "insufficient-data"+        OK -> "ok"++instance Hashable     VolumeStatusInfoStatus+instance NFData       VolumeStatusInfoStatus+instance ToByteString VolumeStatusInfoStatus+instance ToQuery      VolumeStatusInfoStatus+instance ToHeader     VolumeStatusInfoStatus++instance FromXML VolumeStatusInfoStatus where+    parseXML = parseXMLText "VolumeStatusInfoStatus"++data VolumeStatusName+  = IOEnabled+  | IOPerformance+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeStatusName where+    parser = takeLowerText >>= \case+        "io-enabled" -> pure IOEnabled+        "io-performance" -> pure IOPerformance+        e -> fromTextError $ "Failure parsing VolumeStatusName from value: '" <> e+           <> "'. Accepted values: io-enabled, io-performance"++instance ToText VolumeStatusName where+    toText = \case+        IOEnabled -> "io-enabled"+        IOPerformance -> "io-performance"++instance Hashable     VolumeStatusName+instance NFData       VolumeStatusName+instance ToByteString VolumeStatusName+instance ToQuery      VolumeStatusName+instance ToHeader     VolumeStatusName++instance FromXML VolumeStatusName where+    parseXML = parseXMLText "VolumeStatusName"++data VolumeType+  = GP2+  | IO1+  | SC1+  | ST1+  | Standard+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText VolumeType where+    parser = takeLowerText >>= \case+        "gp2" -> pure GP2+        "io1" -> pure IO1+        "sc1" -> pure SC1+        "st1" -> pure ST1+        "standard" -> pure Standard+        e -> fromTextError $ "Failure parsing VolumeType from value: '" <> e+           <> "'. Accepted values: gp2, io1, sc1, st1, standard"++instance ToText VolumeType where+    toText = \case+        GP2 -> "gp2"+        IO1 -> "io1"+        SC1 -> "sc1"+        ST1 -> "st1"+        Standard -> "standard"  instance Hashable     VolumeType instance NFData       VolumeType
gen/Network/AWS/EC2/UnassignIPv6Addresses.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.UnassignIPv6Addresses--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,8 +27,8 @@       unassignIPv6Addresses     , UnassignIPv6Addresses     -- * Request Lenses-    , uiaNetworkInterfaceId     , uiaIPv6Addresses+    , uiaNetworkInterfaceId      -- * Destructuring the Response     , unassignIPv6AddressesResponse@@ -39,43 +39,43 @@     , uiarsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | /See:/ 'unassignIPv6Addresses' smart constructor. data UnassignIPv6Addresses = UnassignIPv6Addresses'-    { _uiaNetworkInterfaceId :: !Text-    , _uiaIPv6Addresses      :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _uiaIPv6Addresses      :: ![Text]+  , _uiaNetworkInterfaceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UnassignIPv6Addresses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'uiaNetworkInterfaceId' - The ID of the network interface.--- -- * 'uiaIPv6Addresses' - The IPv6 addresses to unassign from the network interface.+--+-- * 'uiaNetworkInterfaceId' - The ID of the network interface. unassignIPv6Addresses     :: Text -- ^ 'uiaNetworkInterfaceId'     -> UnassignIPv6Addresses unassignIPv6Addresses pNetworkInterfaceId_ =-    UnassignIPv6Addresses'-    { _uiaNetworkInterfaceId = pNetworkInterfaceId_-    , _uiaIPv6Addresses = mempty-    }+  UnassignIPv6Addresses'+  {_uiaIPv6Addresses = mempty, _uiaNetworkInterfaceId = pNetworkInterfaceId_} --- | The ID of the network interface.-uiaNetworkInterfaceId :: Lens' UnassignIPv6Addresses Text-uiaNetworkInterfaceId = lens _uiaNetworkInterfaceId (\ s a -> s{_uiaNetworkInterfaceId = a});  -- | The IPv6 addresses to unassign from the network interface. uiaIPv6Addresses :: Lens' UnassignIPv6Addresses [Text] uiaIPv6Addresses = lens _uiaIPv6Addresses (\ s a -> s{_uiaIPv6Addresses = a}) . _Coerce; +-- | The ID of the network interface.+uiaNetworkInterfaceId :: Lens' UnassignIPv6Addresses Text+uiaNetworkInterfaceId = lens _uiaNetworkInterfaceId (\ s a -> s{_uiaNetworkInterfaceId = a});+ instance AWSRequest UnassignIPv6Addresses where         type Rs UnassignIPv6Addresses =              UnassignIPv6AddressesResponse@@ -89,9 +89,9 @@                         may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable UnassignIPv6Addresses+instance Hashable UnassignIPv6Addresses where -instance NFData UnassignIPv6Addresses+instance NFData UnassignIPv6Addresses where  instance ToHeaders UnassignIPv6Addresses where         toHeaders = const mempty@@ -104,16 +104,17 @@           = mconcat               ["Action" =: ("UnassignIpv6Addresses" :: ByteString),                "Version" =: ("2016-11-15" :: ByteString),-               "NetworkInterfaceId" =: _uiaNetworkInterfaceId,-               toQueryList "Ipv6Addresses" _uiaIPv6Addresses]+               toQueryList "Ipv6Addresses" _uiaIPv6Addresses,+               "NetworkInterfaceId" =: _uiaNetworkInterfaceId]  -- | /See:/ 'unassignIPv6AddressesResponse' smart constructor. data UnassignIPv6AddressesResponse = UnassignIPv6AddressesResponse'-    { _uiarsNetworkInterfaceId      :: !(Maybe Text)-    , _uiarsUnassignedIPv6Addresses :: !(Maybe [Text])-    , _uiarsResponseStatus          :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _uiarsNetworkInterfaceId      :: !(Maybe Text)+  , _uiarsUnassignedIPv6Addresses :: !(Maybe [Text])+  , _uiarsResponseStatus          :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UnassignIPv6AddressesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -127,12 +128,13 @@     :: Int -- ^ 'uiarsResponseStatus'     -> UnassignIPv6AddressesResponse unassignIPv6AddressesResponse pResponseStatus_ =-    UnassignIPv6AddressesResponse'-    { _uiarsNetworkInterfaceId = Nothing-    , _uiarsUnassignedIPv6Addresses = Nothing-    , _uiarsResponseStatus = pResponseStatus_-    }+  UnassignIPv6AddressesResponse'+  { _uiarsNetworkInterfaceId = Nothing+  , _uiarsUnassignedIPv6Addresses = Nothing+  , _uiarsResponseStatus = pResponseStatus_+  } + -- | The ID of the network interface. uiarsNetworkInterfaceId :: Lens' UnassignIPv6AddressesResponse (Maybe Text) uiarsNetworkInterfaceId = lens _uiarsNetworkInterfaceId (\ s a -> s{_uiarsNetworkInterfaceId = a});@@ -145,4 +147,4 @@ uiarsResponseStatus :: Lens' UnassignIPv6AddressesResponse Int uiarsResponseStatus = lens _uiarsResponseStatus (\ s a -> s{_uiarsResponseStatus = a}); -instance NFData UnassignIPv6AddressesResponse+instance NFData UnassignIPv6AddressesResponse where
gen/Network/AWS/EC2/UnassignPrivateIPAddresses.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.UnassignPrivateIPAddresses--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -35,12 +35,12 @@     , UnassignPrivateIPAddressesResponse     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for UnassignPrivateIpAddresses. --@@ -48,10 +48,11 @@ -- -- /See:/ 'unassignPrivateIPAddresses' smart constructor. data UnassignPrivateIPAddresses = UnassignPrivateIPAddresses'-    { _upiaNetworkInterfaceId :: !Text-    , _upiaPrivateIPAddresses :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _upiaNetworkInterfaceId :: !Text+  , _upiaPrivateIPAddresses :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UnassignPrivateIPAddresses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,11 +64,12 @@     :: Text -- ^ 'upiaNetworkInterfaceId'     -> UnassignPrivateIPAddresses unassignPrivateIPAddresses pNetworkInterfaceId_ =-    UnassignPrivateIPAddresses'-    { _upiaNetworkInterfaceId = pNetworkInterfaceId_-    , _upiaPrivateIPAddresses = mempty-    }+  UnassignPrivateIPAddresses'+  { _upiaNetworkInterfaceId = pNetworkInterfaceId_+  , _upiaPrivateIPAddresses = mempty+  } + -- | The ID of the network interface. upiaNetworkInterfaceId :: Lens' UnassignPrivateIPAddresses Text upiaNetworkInterfaceId = lens _upiaNetworkInterfaceId (\ s a -> s{_upiaNetworkInterfaceId = a});@@ -83,9 +85,9 @@         response           = receiveNull UnassignPrivateIPAddressesResponse' -instance Hashable UnassignPrivateIPAddresses+instance Hashable UnassignPrivateIPAddresses where -instance NFData UnassignPrivateIPAddresses+instance NFData UnassignPrivateIPAddresses where  instance ToHeaders UnassignPrivateIPAddresses where         toHeaders = const mempty@@ -105,13 +107,16 @@  -- | /See:/ 'unassignPrivateIPAddressesResponse' smart constructor. data UnassignPrivateIPAddressesResponse =-    UnassignPrivateIPAddressesResponse'-    deriving (Eq,Read,Show,Data,Typeable,Generic)+  UnassignPrivateIPAddressesResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UnassignPrivateIPAddressesResponse' with the minimum fields required to make a request. -- unassignPrivateIPAddressesResponse     :: UnassignPrivateIPAddressesResponse unassignPrivateIPAddressesResponse = UnassignPrivateIPAddressesResponse' + instance NFData UnassignPrivateIPAddressesResponse+         where
gen/Network/AWS/EC2/UnmonitorInstances.hs view
@@ -12,9 +12,9 @@  -- | -- Module      : Network.AWS.EC2.UnmonitorInstances--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,12 +38,12 @@     , uirsResponseStatus     ) where -import           Network.AWS.EC2.Types-import           Network.AWS.EC2.Types.Product-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Request-import           Network.AWS.Response+import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response  -- | Contains the parameters for UnmonitorInstances. --@@ -51,10 +51,11 @@ -- -- /See:/ 'unmonitorInstances' smart constructor. data UnmonitorInstances = UnmonitorInstances'-    { _uiDryRun      :: !(Maybe Bool)-    , _uiInstanceIds :: ![Text]-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _uiDryRun      :: !(Maybe Bool)+  , _uiInstanceIds :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UnmonitorInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@ unmonitorInstances     :: UnmonitorInstances unmonitorInstances =-    UnmonitorInstances'-    { _uiDryRun = Nothing-    , _uiInstanceIds = mempty-    }+  UnmonitorInstances' {_uiDryRun = Nothing, _uiInstanceIds = mempty} + -- | Checks whether you have the required permissions for the action, 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@ . uiDryRun :: Lens' UnmonitorInstances (Maybe Bool) uiDryRun = lens _uiDryRun (\ s a -> s{_uiDryRun = a});@@ -90,9 +89,9 @@                       may (parseXMLList "item"))                      <*> (pure (fromEnum s))) -instance Hashable UnmonitorInstances+instance Hashable UnmonitorInstances where -instance NFData UnmonitorInstances+instance NFData UnmonitorInstances where  instance ToHeaders UnmonitorInstances where         toHeaders = const mempty@@ -114,10 +113,11 @@ -- -- /See:/ 'unmonitorInstancesResponse' smart constructor. data UnmonitorInstancesResponse = UnmonitorInstancesResponse'-    { _uirsInstanceMonitorings :: !(Maybe [InstanceMonitoring])-    , _uirsResponseStatus      :: !Int-    } deriving (Eq,Read,Show,Data,Typeable,Generic)+  { _uirsInstanceMonitorings :: !(Maybe [InstanceMonitoring])+  , _uirsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UnmonitorInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -129,11 +129,10 @@     :: Int -- ^ 'uirsResponseStatus'     -> UnmonitorInstancesResponse unmonitorInstancesResponse pResponseStatus_ =-    UnmonitorInstancesResponse'-    { _uirsInstanceMonitorings = Nothing-    , _uirsResponseStatus = pResponseStatus_-    }+  UnmonitorInstancesResponse'+  {_uirsInstanceMonitorings = Nothing, _uirsResponseStatus = pResponseStatus_} + -- | The monitoring information. uirsInstanceMonitorings :: Lens' UnmonitorInstancesResponse [InstanceMonitoring] uirsInstanceMonitorings = lens _uirsInstanceMonitorings (\ s a -> s{_uirsInstanceMonitorings = a}) . _Default . _Coerce;@@ -142,4 +141,4 @@ uirsResponseStatus :: Lens' UnmonitorInstancesResponse Int uirsResponseStatus = lens _uirsResponseStatus (\ s a -> s{_uirsResponseStatus = a}); -instance NFData UnmonitorInstancesResponse+instance NFData UnmonitorInstancesResponse where
+ gen/Network/AWS/EC2/UpdateSecurityGroupRuleDescriptionsEgress.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsEgress+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- [EC2-VPC only] 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.+--+--+-- 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+    (+    -- * Creating a Request+      updateSecurityGroupRuleDescriptionsEgress+    , UpdateSecurityGroupRuleDescriptionsEgress+    -- * Request Lenses+    , usgrdeGroupId+    , usgrdeGroupName+    , usgrdeDryRun+    , usgrdeIPPermissions++    -- * Destructuring the Response+    , updateSecurityGroupRuleDescriptionsEgressResponse+    , UpdateSecurityGroupRuleDescriptionsEgressResponse+    -- * Response Lenses+    , usgrdersReturn+    , usgrdersResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for UpdateSecurityGroupRuleDescriptionsEgress.+--+--+--+-- /See:/ 'updateSecurityGroupRuleDescriptionsEgress' smart constructor.+data UpdateSecurityGroupRuleDescriptionsEgress = UpdateSecurityGroupRuleDescriptionsEgress'+  { _usgrdeGroupId       :: !(Maybe Text)+  , _usgrdeGroupName     :: !(Maybe Text)+  , _usgrdeDryRun        :: !(Maybe Bool)+  , _usgrdeIPPermissions :: ![IPPermission]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateSecurityGroupRuleDescriptionsEgress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usgrdeGroupId' - 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.+--+-- * 'usgrdeGroupName' - [Default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.+--+-- * 'usgrdeDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'usgrdeIPPermissions' - The IP permissions for the security group rule.+updateSecurityGroupRuleDescriptionsEgress+    :: UpdateSecurityGroupRuleDescriptionsEgress+updateSecurityGroupRuleDescriptionsEgress =+  UpdateSecurityGroupRuleDescriptionsEgress'+  { _usgrdeGroupId = Nothing+  , _usgrdeGroupName = Nothing+  , _usgrdeDryRun = Nothing+  , _usgrdeIPPermissions = mempty+  }+++-- | 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)+usgrdeGroupId = lens _usgrdeGroupId (\ s a -> s{_usgrdeGroupId = 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.+usgrdeGroupName :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Text)+usgrdeGroupName = lens _usgrdeGroupName (\ s a -> s{_usgrdeGroupName = a});++-- | Checks whether you have the required permissions for the action, 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@ .+usgrdeDryRun :: Lens' UpdateSecurityGroupRuleDescriptionsEgress (Maybe Bool)+usgrdeDryRun = lens _usgrdeDryRun (\ s a -> s{_usgrdeDryRun = a});++-- | The IP permissions for the security group rule.+usgrdeIPPermissions :: Lens' UpdateSecurityGroupRuleDescriptionsEgress [IPPermission]+usgrdeIPPermissions = lens _usgrdeIPPermissions (\ s a -> s{_usgrdeIPPermissions = a}) . _Coerce;++instance AWSRequest+           UpdateSecurityGroupRuleDescriptionsEgress+         where+        type Rs UpdateSecurityGroupRuleDescriptionsEgress =+             UpdateSecurityGroupRuleDescriptionsEgressResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 UpdateSecurityGroupRuleDescriptionsEgressResponse'+                   <$> (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable+           UpdateSecurityGroupRuleDescriptionsEgress+         where++instance NFData+           UpdateSecurityGroupRuleDescriptionsEgress+         where++instance ToHeaders+           UpdateSecurityGroupRuleDescriptionsEgress+         where+        toHeaders = const mempty++instance ToPath+           UpdateSecurityGroupRuleDescriptionsEgress+         where+        toPath = const "/"++instance ToQuery+           UpdateSecurityGroupRuleDescriptionsEgress+         where+        toQuery+          UpdateSecurityGroupRuleDescriptionsEgress'{..}+          = mconcat+              ["Action" =:+                 ("UpdateSecurityGroupRuleDescriptionsEgress" ::+                    ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "GroupId" =: _usgrdeGroupId,+               "GroupName" =: _usgrdeGroupName,+               "DryRun" =: _usgrdeDryRun,+               toQueryList "IpPermissions" _usgrdeIPPermissions]++-- | Contains the output of UpdateSecurityGroupRuleDescriptionsEgress.+--+--+--+-- /See:/ 'updateSecurityGroupRuleDescriptionsEgressResponse' smart constructor.+data UpdateSecurityGroupRuleDescriptionsEgressResponse = UpdateSecurityGroupRuleDescriptionsEgressResponse'+  { _usgrdersReturn         :: !(Maybe Bool)+  , _usgrdersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateSecurityGroupRuleDescriptionsEgressResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usgrdersReturn' - Returns @true@ if the request succeeds; otherwise, returns an error.+--+-- * 'usgrdersResponseStatus' - -- | The response status code.+updateSecurityGroupRuleDescriptionsEgressResponse+    :: Int -- ^ 'usgrdersResponseStatus'+    -> UpdateSecurityGroupRuleDescriptionsEgressResponse+updateSecurityGroupRuleDescriptionsEgressResponse pResponseStatus_ =+  UpdateSecurityGroupRuleDescriptionsEgressResponse'+  {_usgrdersReturn = Nothing, _usgrdersResponseStatus = pResponseStatus_}+++-- | Returns @true@ if the request succeeds; otherwise, returns an error.+usgrdersReturn :: Lens' UpdateSecurityGroupRuleDescriptionsEgressResponse (Maybe Bool)+usgrdersReturn = lens _usgrdersReturn (\ s a -> s{_usgrdersReturn = a});++-- | -- | The response status code.+usgrdersResponseStatus :: Lens' UpdateSecurityGroupRuleDescriptionsEgressResponse Int+usgrdersResponseStatus = lens _usgrdersResponseStatus (\ s a -> s{_usgrdersResponseStatus = a});++instance NFData+           UpdateSecurityGroupRuleDescriptionsEgressResponse+         where
+ gen/Network/AWS/EC2/UpdateSecurityGroupRuleDescriptionsIngress.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.EC2.UpdateSecurityGroupRuleDescriptionsIngress+-- Copyright   : (c) 2013-2017 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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+    (+    -- * Creating a Request+      updateSecurityGroupRuleDescriptionsIngress+    , UpdateSecurityGroupRuleDescriptionsIngress+    -- * Request Lenses+    , usgrdiGroupId+    , usgrdiGroupName+    , usgrdiDryRun+    , usgrdiIPPermissions++    -- * Destructuring the Response+    , updateSecurityGroupRuleDescriptionsIngressResponse+    , UpdateSecurityGroupRuleDescriptionsIngressResponse+    -- * Response Lenses+    , usgrdirsReturn+    , usgrdirsResponseStatus+    ) where++import Network.AWS.EC2.Types+import Network.AWS.EC2.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | Contains the parameters for UpdateSecurityGroupRuleDescriptionsIngress.+--+--+--+-- /See:/ 'updateSecurityGroupRuleDescriptionsIngress' smart constructor.+data UpdateSecurityGroupRuleDescriptionsIngress = UpdateSecurityGroupRuleDescriptionsIngress'+  { _usgrdiGroupId       :: !(Maybe Text)+  , _usgrdiGroupName     :: !(Maybe Text)+  , _usgrdiDryRun        :: !(Maybe Bool)+  , _usgrdiIPPermissions :: ![IPPermission]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateSecurityGroupRuleDescriptionsIngress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usgrdiGroupId' - 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.+--+-- * 'usgrdiGroupName' - [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.+--+-- * 'usgrdiDryRun' - Checks whether you have the required permissions for the action, 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@ .+--+-- * 'usgrdiIPPermissions' - The IP permissions for the security group rule.+updateSecurityGroupRuleDescriptionsIngress+    :: UpdateSecurityGroupRuleDescriptionsIngress+updateSecurityGroupRuleDescriptionsIngress =+  UpdateSecurityGroupRuleDescriptionsIngress'+  { _usgrdiGroupId = Nothing+  , _usgrdiGroupName = Nothing+  , _usgrdiDryRun = Nothing+  , _usgrdiIPPermissions = mempty+  }+++-- | 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)+usgrdiGroupId = lens _usgrdiGroupId (\ s a -> s{_usgrdiGroupId = 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.+usgrdiGroupName :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Text)+usgrdiGroupName = lens _usgrdiGroupName (\ s a -> s{_usgrdiGroupName = a});++-- | Checks whether you have the required permissions for the action, 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@ .+usgrdiDryRun :: Lens' UpdateSecurityGroupRuleDescriptionsIngress (Maybe Bool)+usgrdiDryRun = lens _usgrdiDryRun (\ s a -> s{_usgrdiDryRun = a});++-- | The IP permissions for the security group rule.+usgrdiIPPermissions :: Lens' UpdateSecurityGroupRuleDescriptionsIngress [IPPermission]+usgrdiIPPermissions = lens _usgrdiIPPermissions (\ s a -> s{_usgrdiIPPermissions = a}) . _Coerce;++instance AWSRequest+           UpdateSecurityGroupRuleDescriptionsIngress+         where+        type Rs UpdateSecurityGroupRuleDescriptionsIngress =+             UpdateSecurityGroupRuleDescriptionsIngressResponse+        request = postQuery ec2+        response+          = receiveXML+              (\ s h x ->+                 UpdateSecurityGroupRuleDescriptionsIngressResponse'+                   <$> (x .@? "return") <*> (pure (fromEnum s)))++instance Hashable+           UpdateSecurityGroupRuleDescriptionsIngress+         where++instance NFData+           UpdateSecurityGroupRuleDescriptionsIngress+         where++instance ToHeaders+           UpdateSecurityGroupRuleDescriptionsIngress+         where+        toHeaders = const mempty++instance ToPath+           UpdateSecurityGroupRuleDescriptionsIngress+         where+        toPath = const "/"++instance ToQuery+           UpdateSecurityGroupRuleDescriptionsIngress+         where+        toQuery+          UpdateSecurityGroupRuleDescriptionsIngress'{..}+          = mconcat+              ["Action" =:+                 ("UpdateSecurityGroupRuleDescriptionsIngress" ::+                    ByteString),+               "Version" =: ("2016-11-15" :: ByteString),+               "GroupId" =: _usgrdiGroupId,+               "GroupName" =: _usgrdiGroupName,+               "DryRun" =: _usgrdiDryRun,+               toQueryList "IpPermissions" _usgrdiIPPermissions]++-- | Contains the output of UpdateSecurityGroupRuleDescriptionsIngress.+--+--+--+-- /See:/ 'updateSecurityGroupRuleDescriptionsIngressResponse' smart constructor.+data UpdateSecurityGroupRuleDescriptionsIngressResponse = UpdateSecurityGroupRuleDescriptionsIngressResponse'+  { _usgrdirsReturn         :: !(Maybe Bool)+  , _usgrdirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateSecurityGroupRuleDescriptionsIngressResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usgrdirsReturn' - Returns @true@ if the request succeeds; otherwise, returns an error.+--+-- * 'usgrdirsResponseStatus' - -- | The response status code.+updateSecurityGroupRuleDescriptionsIngressResponse+    :: Int -- ^ 'usgrdirsResponseStatus'+    -> UpdateSecurityGroupRuleDescriptionsIngressResponse+updateSecurityGroupRuleDescriptionsIngressResponse pResponseStatus_ =+  UpdateSecurityGroupRuleDescriptionsIngressResponse'+  {_usgrdirsReturn = Nothing, _usgrdirsResponseStatus = pResponseStatus_}+++-- | Returns @true@ if the request succeeds; otherwise, returns an error.+usgrdirsReturn :: Lens' UpdateSecurityGroupRuleDescriptionsIngressResponse (Maybe Bool)+usgrdirsReturn = lens _usgrdirsReturn (\ s a -> s{_usgrdirsReturn = a});++-- | -- | The response status code.+usgrdirsResponseStatus :: Lens' UpdateSecurityGroupRuleDescriptionsIngressResponse Int+usgrdirsResponseStatus = lens _usgrdirsResponseStatus (\ s a -> s{_usgrdirsResponseStatus = a});++instance NFData+           UpdateSecurityGroupRuleDescriptionsIngressResponse+         where
gen/Network/AWS/EC2/Waiters.hs view
@@ -7,570 +7,604 @@  -- | -- Module      : Network.AWS.EC2.Waiters--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.EC2.Waiters where -import           Network.AWS.EC2.DescribeBundleTasks-import           Network.AWS.EC2.DescribeConversionTasks-import           Network.AWS.EC2.DescribeConversionTasks-import           Network.AWS.EC2.DescribeConversionTasks-import           Network.AWS.EC2.DescribeCustomerGateways-import           Network.AWS.EC2.DescribeExportTasks-import           Network.AWS.EC2.DescribeExportTasks-import           Network.AWS.EC2.DescribeImages-import           Network.AWS.EC2.DescribeInstances-import           Network.AWS.EC2.DescribeInstances-import           Network.AWS.EC2.DescribeInstances-import           Network.AWS.EC2.DescribeInstances-import           Network.AWS.EC2.DescribeInstanceStatus-import           Network.AWS.EC2.DescribeInstanceStatus-import           Network.AWS.EC2.DescribeNatGateways-import           Network.AWS.EC2.DescribeNetworkInterfaces-import           Network.AWS.EC2.DescribeSnapshots-import           Network.AWS.EC2.DescribeSpotInstanceRequests-import           Network.AWS.EC2.DescribeSubnets-import           Network.AWS.EC2.DescribeVolumes-import           Network.AWS.EC2.DescribeVolumes-import           Network.AWS.EC2.DescribeVolumes-import           Network.AWS.EC2.DescribeVPCPeeringConnections-import           Network.AWS.EC2.DescribeVPCs-import           Network.AWS.EC2.DescribeVPCs-import           Network.AWS.EC2.DescribeVPNConnections-import           Network.AWS.EC2.DescribeVPNConnections-import           Network.AWS.EC2.GetPasswordData-import           Network.AWS.EC2.Types-import           Network.AWS.Lens-import           Network.AWS.Prelude-import           Network.AWS.Waiter+import Network.AWS.EC2.DescribeBundleTasks+import Network.AWS.EC2.DescribeConversionTasks+import Network.AWS.EC2.DescribeConversionTasks+import Network.AWS.EC2.DescribeConversionTasks+import Network.AWS.EC2.DescribeCustomerGateways+import Network.AWS.EC2.DescribeExportTasks+import Network.AWS.EC2.DescribeExportTasks+import Network.AWS.EC2.DescribeImages+import Network.AWS.EC2.DescribeInstances+import Network.AWS.EC2.DescribeInstances+import Network.AWS.EC2.DescribeInstances+import Network.AWS.EC2.DescribeInstances+import Network.AWS.EC2.DescribeInstanceStatus+import Network.AWS.EC2.DescribeInstanceStatus+import Network.AWS.EC2.DescribeNatGateways+import Network.AWS.EC2.DescribeNetworkInterfaces+import Network.AWS.EC2.DescribeSnapshots+import Network.AWS.EC2.DescribeSpotInstanceRequests+import Network.AWS.EC2.DescribeSubnets+import Network.AWS.EC2.DescribeVolumes+import Network.AWS.EC2.DescribeVolumes+import Network.AWS.EC2.DescribeVolumes+import Network.AWS.EC2.DescribeVPCPeeringConnections+import Network.AWS.EC2.DescribeVPCs+import Network.AWS.EC2.DescribeVPCs+import Network.AWS.EC2.DescribeVPNConnections+import Network.AWS.EC2.DescribeVPNConnections+import Network.AWS.EC2.GetPasswordData+import Network.AWS.EC2.Types+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Waiter  -- | Polls 'Network.AWS.EC2.DescribeInstances' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. instanceTerminated :: Wait DescribeInstances instanceTerminated =-    Wait-    { _waitName = "InstanceTerminated"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "terminated"-                             AcceptSuccess-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "pending"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "stopping"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)]-    }+  Wait+  { _waitName = "InstanceTerminated"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "terminated"+          AcceptSuccess+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "pending"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "stopping"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVolumes' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. volumeInUse :: Wait DescribeVolumes volumeInUse =-    Wait-    { _waitName = "VolumeInUse"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "in-use"-                             AcceptSuccess-                             (folding (concatOf dvvrsVolumes) .-                              vState . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf dvvrsVolumes) .-                              vState . to toTextCI)]-    }+  Wait+  { _waitName = "VolumeInUse"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "in-use"+          AcceptSuccess+          (folding (concatOf dvvrsVolumes) . vState . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf dvvrsVolumes) . vState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeNatGateways' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. natGatewayAvailable :: Wait DescribeNatGateways natGatewayAvailable =-    Wait-    { _waitName = "NatGatewayAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dngrsNatGateways) .-                              ngState . _Just . to toTextCI)-                       , matchAny-                             "failed"-                             AcceptFailure-                             (folding (concatOf dngrsNatGateways) .-                              ngState . _Just . to toTextCI)-                       , matchAny-                             "deleting"-                             AcceptFailure-                             (folding (concatOf dngrsNatGateways) .-                              ngState . _Just . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf dngrsNatGateways) .-                              ngState . _Just . to toTextCI)-                       , matchError "NatGatewayNotFound" AcceptRetry]-    }+  Wait+  { _waitName = "NatGatewayAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)+      , matchAny+          "failed"+          AcceptFailure+          (folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)+      , matchAny+          "deleting"+          AcceptFailure+          (folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)+      , matchError "NatGatewayNotFound" AcceptRetry+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeSubnets' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. subnetAvailable :: Wait DescribeSubnets subnetAvailable =-    Wait-    { _waitName = "SubnetAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dsrsSubnets) .-                              subState . to toTextCI)]-    }+  Wait+  { _waitName = "SubnetAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dsrsSubnets) . subState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeNetworkInterfaces' every 20 seconds until a successful state is reached. An error is returned after 10 failed checks. networkInterfaceAvailable :: Wait DescribeNetworkInterfaces networkInterfaceAvailable =-    Wait-    { _waitName = "NetworkInterfaceAvailable"-    , _waitAttempts = 10-    , _waitDelay = 20-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dnirsNetworkInterfaces) .-                              niStatus . _Just . to toTextCI)-                       , matchError-                             "InvalidNetworkInterfaceID.NotFound"-                             AcceptFailure]-    }+  Wait+  { _waitName = "NetworkInterfaceAvailable"+  , _waitAttempts = 10+  , _waitDelay = 20+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dnirsNetworkInterfaces) .+           niStatus . _Just . to toTextCI)+      , matchError "InvalidNetworkInterfaceID.NotFound" AcceptFailure+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeInstanceStatus' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. systemStatusOK :: Wait DescribeInstanceStatus systemStatusOK =-    Wait-    { _waitName = "SystemStatusOk"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "ok"-                             AcceptSuccess-                             (folding (concatOf disrsInstanceStatuses) .-                              isSystemStatus . _Just . issStatus . to toTextCI)]-    }+  Wait+  { _waitName = "SystemStatusOk"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "ok"+          AcceptSuccess+          (folding (concatOf disrsInstanceStatuses) .+           isSystemStatus . _Just . issStatus . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeCustomerGateways' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. customerGatewayAvailable :: Wait DescribeCustomerGateways customerGatewayAvailable =-    Wait-    { _waitName = "CustomerGatewayAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dcgrsCustomerGateways) .-                              cgState . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf dcgrsCustomerGateways) .-                              cgState . to toTextCI)-                       , matchAny-                             "deleting"-                             AcceptFailure-                             (folding (concatOf dcgrsCustomerGateways) .-                              cgState . to toTextCI)]-    }+  Wait+  { _waitName = "CustomerGatewayAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dcgrsCustomerGateways) . cgState . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf dcgrsCustomerGateways) . cgState . to toTextCI)+      , matchAny+          "deleting"+          AcceptFailure+          (folding (concatOf dcgrsCustomerGateways) . cgState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeConversionTasks' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. conversionTaskCompleted :: Wait DescribeConversionTasks conversionTaskCompleted =-    Wait-    { _waitName = "ConversionTaskCompleted"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "completed"-                             AcceptSuccess-                             (folding (concatOf dctrsConversionTasks) .-                              ctState . to toTextCI)-                       , matchAny-                             "cancelled"-                             AcceptFailure-                             (folding (concatOf dctrsConversionTasks) .-                              ctState . to toTextCI)-                       , matchAny-                             "cancelling"-                             AcceptFailure-                             (folding (concatOf dctrsConversionTasks) .-                              ctState . to toTextCI)]-    }+  Wait+  { _waitName = "ConversionTaskCompleted"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "completed"+          AcceptSuccess+          (folding (concatOf dctrsConversionTasks) . ctState . to toTextCI)+      , matchAny+          "cancelled"+          AcceptFailure+          (folding (concatOf dctrsConversionTasks) . ctState . to toTextCI)+      , matchAny+          "cancelling"+          AcceptFailure+          (folding (concatOf dctrsConversionTasks) . ctState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeInstances' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. instanceStopped :: Wait DescribeInstances instanceStopped =-    Wait-    { _waitName = "InstanceStopped"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "stopped"-                             AcceptSuccess-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "pending"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "terminated"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)]-    }+  Wait+  { _waitName = "InstanceStopped"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "stopped"+          AcceptSuccess+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "pending"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "terminated"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeConversionTasks' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. conversionTaskDeleted :: Wait DescribeConversionTasks conversionTaskDeleted =-    Wait-    { _waitName = "ConversionTaskDeleted"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "deleted"-                             AcceptSuccess-                             (folding (concatOf dctrsConversionTasks) .-                              ctState . to toTextCI)]-    }+  Wait+  { _waitName = "ConversionTaskDeleted"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "deleted"+          AcceptSuccess+          (folding (concatOf dctrsConversionTasks) . ctState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.GetPasswordData' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. passwordDataAvailable :: Wait GetPasswordData passwordDataAvailable =-    Wait-    { _waitName = "PasswordDataAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             True-                             AcceptSuccess-                             (nonEmpty gpdrsPasswordData)]-    }+  Wait+  { _waitName = "PasswordDataAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [matchAll True AcceptSuccess (nonEmptyText gpdrsPasswordData)]+  } + -- | Polls 'Network.AWS.EC2.DescribeInstances' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. instanceRunning :: Wait DescribeInstances instanceRunning =-    Wait-    { _waitName = "InstanceRunning"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "running"-                             AcceptSuccess-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "shutting-down"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "terminated"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchAny-                             "stopping"-                             AcceptFailure-                             (folding (concatOf dirsReservations) .-                              folding (concatOf rInstances) .-                              insState . isName . to toTextCI)-                       , matchError "InvalidInstanceID.NotFound" AcceptRetry]-    }+  Wait+  { _waitName = "InstanceRunning"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "running"+          AcceptSuccess+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "shutting-down"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "terminated"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchAny+          "stopping"+          AcceptFailure+          (folding (concatOf dirsReservations) .+           folding (concatOf rInstances) . insState . isName . to toTextCI)+      , matchError "InvalidInstanceID.NotFound" AcceptRetry+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeSpotInstanceRequests' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. spotInstanceRequestFulfilled :: Wait DescribeSpotInstanceRequests spotInstanceRequestFulfilled =-    Wait-    { _waitName = "SpotInstanceRequestFulfilled"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "fulfilled"-                             AcceptSuccess-                             (folding (concatOf dsirrsSpotInstanceRequests) .-                              sirStatus . _Just . sisCode . _Just . to toTextCI)-                       , matchAny-                             "schedule-expired"-                             AcceptFailure-                             (folding (concatOf dsirrsSpotInstanceRequests) .-                              sirStatus . _Just . sisCode . _Just . to toTextCI)-                       , matchAny-                             "canceled-before-fulfillment"-                             AcceptFailure-                             (folding (concatOf dsirrsSpotInstanceRequests) .-                              sirStatus . _Just . sisCode . _Just . to toTextCI)-                       , matchAny-                             "bad-parameters"-                             AcceptFailure-                             (folding (concatOf dsirrsSpotInstanceRequests) .-                              sirStatus . _Just . sisCode . _Just . to toTextCI)-                       , matchAny-                             "system-error"-                             AcceptFailure-                             (folding (concatOf dsirrsSpotInstanceRequests) .-                              sirStatus . _Just . sisCode . _Just . to toTextCI)]-    }+  Wait+  { _waitName = "SpotInstanceRequestFulfilled"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "fulfilled"+          AcceptSuccess+          (folding (concatOf dsirrsSpotInstanceRequests) .+           sirStatus . _Just . sisCode . _Just . to toTextCI)+      , matchAny+          "schedule-expired"+          AcceptFailure+          (folding (concatOf dsirrsSpotInstanceRequests) .+           sirStatus . _Just . sisCode . _Just . to toTextCI)+      , matchAny+          "canceled-before-fulfillment"+          AcceptFailure+          (folding (concatOf dsirrsSpotInstanceRequests) .+           sirStatus . _Just . sisCode . _Just . to toTextCI)+      , matchAny+          "bad-parameters"+          AcceptFailure+          (folding (concatOf dsirrsSpotInstanceRequests) .+           sirStatus . _Just . sisCode . _Just . to toTextCI)+      , matchAny+          "system-error"+          AcceptFailure+          (folding (concatOf dsirrsSpotInstanceRequests) .+           sirStatus . _Just . sisCode . _Just . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVPCs' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. vpcAvailable :: Wait DescribeVPCs vpcAvailable =-    Wait-    { _waitName = "VpcAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dvrsVPCs) .-                              vpcState . to toTextCI)]-    }+  Wait+  { _waitName = "VpcAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dvrsVPCs) . vpcState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeExportTasks' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. exportTaskCompleted :: Wait DescribeExportTasks exportTaskCompleted =-    Wait-    { _waitName = "ExportTaskCompleted"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "completed"-                             AcceptSuccess-                             (folding (concatOf detrsExportTasks) .-                              etState . to toTextCI)]-    }+  Wait+  { _waitName = "ExportTaskCompleted"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "completed"+          AcceptSuccess+          (folding (concatOf detrsExportTasks) . etState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVPNConnections' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. vpnConnectionAvailable :: Wait DescribeVPNConnections vpnConnectionAvailable =-    Wait-    { _waitName = "VpnConnectionAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dvcrsVPNConnections) .-                              vcState . to toTextCI)-                       , matchAny-                             "deleting"-                             AcceptFailure-                             (folding (concatOf dvcrsVPNConnections) .-                              vcState . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf dvcrsVPNConnections) .-                              vcState . to toTextCI)]-    }+  Wait+  { _waitName = "VpnConnectionAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)+      , matchAny+          "deleting"+          AcceptFailure+          (folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeExportTasks' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. exportTaskCancelled :: Wait DescribeExportTasks exportTaskCancelled =-    Wait-    { _waitName = "ExportTaskCancelled"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "cancelled"-                             AcceptSuccess-                             (folding (concatOf detrsExportTasks) .-                              etState . to toTextCI)]-    }+  Wait+  { _waitName = "ExportTaskCancelled"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "cancelled"+          AcceptSuccess+          (folding (concatOf detrsExportTasks) . etState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVolumes' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. volumeDeleted :: Wait DescribeVolumes volumeDeleted =-    Wait-    { _waitName = "VolumeDeleted"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "deleted"-                             AcceptSuccess-                             (folding (concatOf dvvrsVolumes) .-                              vState . to toTextCI)-                       , matchError "InvalidVolume.NotFound" AcceptSuccess]-    }+  Wait+  { _waitName = "VolumeDeleted"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "deleted"+          AcceptSuccess+          (folding (concatOf dvvrsVolumes) . vState . to toTextCI)+      , matchError "InvalidVolume.NotFound" AcceptSuccess+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVPCs' every 1 seconds until a successful state is reached. An error is returned after 5 failed checks. vpcExists :: Wait DescribeVPCs vpcExists =-    Wait-    { _waitName = "VpcExists"-    , _waitAttempts = 5-    , _waitDelay = 1-    , _waitAcceptors = [ matchStatus 200 AcceptSuccess-                       , matchError "InvalidVpcID.NotFound" AcceptRetry]-    }+  Wait+  { _waitName = "VpcExists"+  , _waitAttempts = 5+  , _waitDelay = 1+  , _waitAcceptors =+      [ matchStatus 200 AcceptSuccess+      , matchError "InvalidVpcID.NotFound" AcceptRetry+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeBundleTasks' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. bundleTaskComplete :: Wait DescribeBundleTasks bundleTaskComplete =-    Wait-    { _waitName = "BundleTaskComplete"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "complete"-                             AcceptSuccess-                             (folding (concatOf dbtrsBundleTasks) .-                              btState . to toTextCI)-                       , matchAny-                             "failed"-                             AcceptFailure-                             (folding (concatOf dbtrsBundleTasks) .-                              btState . to toTextCI)]-    }+  Wait+  { _waitName = "BundleTaskComplete"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "complete"+          AcceptSuccess+          (folding (concatOf dbtrsBundleTasks) . btState . to toTextCI)+      , matchAny+          "failed"+          AcceptFailure+          (folding (concatOf dbtrsBundleTasks) . btState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVPNConnections' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. vpnConnectionDeleted :: Wait DescribeVPNConnections vpnConnectionDeleted =-    Wait-    { _waitName = "VpnConnectionDeleted"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "deleted"-                             AcceptSuccess-                             (folding (concatOf dvcrsVPNConnections) .-                              vcState . to toTextCI)-                       , matchAny-                             "pending"-                             AcceptFailure-                             (folding (concatOf dvcrsVPNConnections) .-                              vcState . to toTextCI)]-    }+  Wait+  { _waitName = "VpnConnectionDeleted"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "deleted"+          AcceptSuccess+          (folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)+      , matchAny+          "pending"+          AcceptFailure+          (folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeConversionTasks' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. conversionTaskCancelled :: Wait DescribeConversionTasks conversionTaskCancelled =-    Wait-    { _waitName = "ConversionTaskCancelled"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "cancelled"-                             AcceptSuccess-                             (folding (concatOf dctrsConversionTasks) .-                              ctState . to toTextCI)]-    }+  Wait+  { _waitName = "ConversionTaskCancelled"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "cancelled"+          AcceptSuccess+          (folding (concatOf dctrsConversionTasks) . ctState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeImages' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. imageAvailable :: Wait DescribeImages imageAvailable =-    Wait-    { _waitName = "ImageAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf desrsImages) .-                              iState . to toTextCI)-                       , matchAny-                             "deregistered"-                             AcceptFailure-                             (folding (concatOf desrsImages) .-                              iState . to toTextCI)]-    }+  Wait+  { _waitName = "ImageAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf diirsImages) . iState . to toTextCI)+      , matchAny+          "deregistered"+          AcceptFailure+          (folding (concatOf diirsImages) . iState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVPCPeeringConnections' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections vpcPeeringConnectionExists =-    Wait-    { _waitName = "VpcPeeringConnectionExists"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchStatus 200 AcceptSuccess-                       , matchError-                             "InvalidVpcPeeringConnectionID.NotFound"-                             AcceptRetry]-    }+  Wait+  { _waitName = "VpcPeeringConnectionExists"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchStatus 200 AcceptSuccess+      , matchError "InvalidVpcPeeringConnectionID.NotFound" AcceptRetry+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeSnapshots' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. snapshotCompleted :: Wait DescribeSnapshots snapshotCompleted =-    Wait-    { _waitName = "SnapshotCompleted"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "completed"-                             AcceptSuccess-                             (folding (concatOf dssrsSnapshots) .-                              sState . to toTextCI)]-    }+  Wait+  { _waitName = "SnapshotCompleted"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "completed"+          AcceptSuccess+          (folding (concatOf dssrsSnapshots) . sState . to toTextCI)+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeInstances' every 5 seconds until a successful state is reached. An error is returned after 40 failed checks. instanceExists :: Wait DescribeInstances instanceExists =-    Wait-    { _waitName = "InstanceExists"-    , _waitAttempts = 40-    , _waitDelay = 5-    , _waitAcceptors = [ matchStatus 200 AcceptSuccess-                       , matchError "InvalidInstanceIDNotFound" AcceptRetry]-    }+  Wait+  { _waitName = "InstanceExists"+  , _waitAttempts = 40+  , _waitDelay = 5+  , _waitAcceptors =+      [ matchStatus 200 AcceptSuccess+      , matchError "InvalidInstanceIDNotFound" AcceptRetry+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeInstanceStatus' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. instanceStatusOK :: Wait DescribeInstanceStatus instanceStatusOK =-    Wait-    { _waitName = "InstanceStatusOk"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "ok"-                             AcceptSuccess-                             (folding (concatOf disrsInstanceStatuses) .-                              isInstanceStatus .-                              _Just . issStatus . to toTextCI)-                       , matchError "InvalidInstanceID.NotFound" AcceptRetry]-    }+  Wait+  { _waitName = "InstanceStatusOk"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "ok"+          AcceptSuccess+          (folding (concatOf disrsInstanceStatuses) .+           isInstanceStatus . _Just . issStatus . to toTextCI)+      , matchError "InvalidInstanceID.NotFound" AcceptRetry+      ]+  } + -- | Polls 'Network.AWS.EC2.DescribeVolumes' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. volumeAvailable :: Wait DescribeVolumes volumeAvailable =-    Wait-    { _waitName = "VolumeAvailable"-    , _waitAttempts = 40-    , _waitDelay = 15-    , _waitAcceptors = [ matchAll-                             "available"-                             AcceptSuccess-                             (folding (concatOf dvvrsVolumes) .-                              vState . to toTextCI)-                       , matchAny-                             "deleted"-                             AcceptFailure-                             (folding (concatOf dvvrsVolumes) .-                              vState . to toTextCI)]-    }+  Wait+  { _waitName = "VolumeAvailable"+  , _waitAttempts = 40+  , _waitDelay = 15+  , _waitAcceptors =+      [ matchAll+          "available"+          AcceptSuccess+          (folding (concatOf dvvrsVolumes) . vState . to toTextCI)+      , matchAny+          "deleted"+          AcceptFailure+          (folding (concatOf dvvrsVolumes) . vState . to toTextCI)+      ]+  }+
test/Main.hs view
@@ -2,9 +2,9 @@  -- | -- Module      : Main--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) --
test/Test/AWS/Gen/EC2.hs view
@@ -5,20 +5,20 @@  -- | -- Module      : Test.AWS.Gen.EC2--- Copyright   : (c) 2013-2016 Brendan Hay+-- Copyright   : (c) 2013-2017 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- module Test.AWS.Gen.EC2 where  import Data.Proxy+import Network.AWS.EC2+import Test.AWS.EC2.Internal import Test.AWS.Fixture import Test.AWS.Prelude import Test.Tasty-import Network.AWS.EC2-import Test.AWS.EC2.Internal  -- Auto-generated: the actual test selection needs to be manually placed into -- the top-level so that real test data can be incrementally added.@@ -34,6 +34,9 @@ --         , requestRevokeSecurityGroupEgress $ --             revokeSecurityGroupEgress --+--         , requestCreateNetworkInterfacePermission $+--             createNetworkInterfacePermission+-- --         , requestCreateVPNGateway $ --             createVPNGateway --@@ -49,6 +52,9 @@ --         , requestDescribeTags $ --             describeTags --+--         , requestUpdateSecurityGroupRuleDescriptionsIngress $+--             updateSecurityGroupRuleDescriptionsIngress+-- --         , requestDisassociateSubnetCidrBlock $ --             disassociateSubnetCidrBlock --@@ -100,6 +106,9 @@ --         , requestModifyNetworkInterfaceAttribute $ --             modifyNetworkInterfaceAttribute --+--         , requestModifyVPCTenancy $+--             modifyVPCTenancy+-- --         , requestCancelReservedInstancesListing $ --             cancelReservedInstancesListing --@@ -127,6 +136,9 @@ --         , requestImportImage $ --             importImage --+--         , requestCopyFpgaImage $+--             copyFpgaImage+-- --         , requestStopInstances $ --             stopInstances --@@ -262,6 +274,12 @@ --         , requestDisableVPCClassicLinkDNSSupport $ --             disableVPCClassicLinkDNSSupport --+--         , requestDescribeVolumesModifications $+--             describeVolumesModifications+--+--         , requestCreateFpgaImage $+--             createFpgaImage+-- --         , requestAllocateAddress $ --             allocateAddress --@@ -286,6 +304,9 @@ --         , requestDescribeHostReservationOfferings $ --             describeHostReservationOfferings --+--         , requestResetFpgaImageAttribute $+--             resetFpgaImageAttribute+-- --         , requestDescribeVolumes $ --             describeVolumes --@@ -298,6 +319,9 @@ --         , requestModifyVPCEndpoint $ --             modifyVPCEndpoint --+--         , requestDescribeFpgaImageAttribute $+--             describeFpgaImageAttribute+-- --         , requestAllocateHosts $ --             allocateHosts --@@ -310,12 +334,18 @@ --         , requestDescribeHostReservations $ --             describeHostReservations --+--         , requestUpdateSecurityGroupRuleDescriptionsEgress $+--             updateSecurityGroupRuleDescriptionsEgress+-- --         , requestEnableVPCClassicLinkDNSSupport $ --             enableVPCClassicLinkDNSSupport -- --         , requestModifyReservedInstances $ --             modifyReservedInstances --+--         , requestDeleteFpgaImage $+--             deleteFpgaImage+-- --         , requestDescribeScheduledInstances $ --             describeScheduledInstances --@@ -331,6 +361,9 @@ --         , requestDeleteNetworkACL $ --             deleteNetworkACL --+--         , requestDeleteNetworkInterfacePermission $+--             deleteNetworkInterfacePermission+-- --         , requestDeleteVPNGateway $ --             deleteVPNGateway --@@ -352,6 +385,9 @@ --         , requestModifyVPCPeeringConnectionOptions $ --             modifyVPCPeeringConnectionOptions --+--         , requestDescribeFpgaImages $+--             describeFpgaImages+-- --         , requestCopySnapshot $ --             copySnapshot --@@ -376,6 +412,9 @@ --         , requestCreateVolume $ --             createVolume --+--         , requestCreateDefaultSubnet $+--             createDefaultSubnet+-- --         , requestDescribeScheduledInstanceAvailability $ --             describeScheduledInstanceAvailability --@@ -430,6 +469,9 @@ --         , requestCancelExportTask $ --             cancelExportTask --+--         , requestCreateDefaultVPC $+--             createDefaultVPC+-- --         , requestDisassociateVPCCidrBlock $ --             disassociateVPCCidrBlock --@@ -454,6 +496,9 @@ --         , requestDescribeNetworkInterfaceAttribute $ --             describeNetworkInterfaceAttribute --+--         , requestReplaceIAMInstanceProfileAssociation $+--             replaceIAMInstanceProfileAssociation+-- --         , requestReleaseHosts $ --             releaseHosts --@@ -520,6 +565,9 @@ --         , requestDeleteCustomerGateway $ --             deleteCustomerGateway --+--         , requestDisassociateIAMInstanceProfile $+--             disassociateIAMInstanceProfile+-- --         , requestDisassociateRouteTable $ --             disassociateRouteTable --@@ -532,6 +580,9 @@ --         , requestDeleteSpotDatafeedSubscription $ --             deleteSpotDatafeedSubscription --+--         , requestModifyVolume $+--             modifyVolume+-- --         , requestEnableVPCClassicLink $ --             enableVPCClassicLink --@@ -553,6 +604,9 @@ --         , requestModifySnapshotAttribute $ --             modifySnapshotAttribute --+--         , requestDescribeIAMInstanceProfileAssociations $+--             describeIAMInstanceProfileAssociations+-- --         , requestCreateSnapshot $ --             createSnapshot --@@ -571,6 +625,9 @@ --         , requestDescribeAccountAttributes $ --             describeAccountAttributes --+--         , requestModifyFpgaImageAttribute $+--             modifyFpgaImageAttribute+-- --         , requestModifyHosts $ --             modifyHosts --@@ -580,6 +637,9 @@ --         , requestUnassignIPv6Addresses $ --             unassignIPv6Addresses --+--         , requestAssociateIAMInstanceProfile $+--             associateIAMInstanceProfile+-- --         , requestDeleteEgressOnlyInternetGateway $ --             deleteEgressOnlyInternetGateway --@@ -637,6 +697,9 @@ --         , requestUnassignPrivateIPAddresses $ --             unassignPrivateIPAddresses --+--         , requestDescribeNetworkInterfacePermissions $+--             describeNetworkInterfacePermissions+-- --         , requestDeleteDHCPOptions $ --             deleteDHCPOptions --@@ -676,6 +739,9 @@ --         , requestDescribeImages $ --             describeImages --+--         , requestDescribeElasticGpus $+--             describeElasticGpus+-- --         , requestRestoreAddressToClassic $ --             restoreAddressToClassic --@@ -700,6 +766,9 @@ --         , responseRevokeSecurityGroupEgress $ --             revokeSecurityGroupEgressResponse --+--         , responseCreateNetworkInterfacePermission $+--             createNetworkInterfacePermissionResponse+-- --         , responseCreateVPNGateway $ --             createVPNGatewayResponse --@@ -715,6 +784,9 @@ --         , responseDescribeTags $ --             describeTagsResponse --+--         , responseUpdateSecurityGroupRuleDescriptionsIngress $+--             updateSecurityGroupRuleDescriptionsIngressResponse+-- --         , responseDisassociateSubnetCidrBlock $ --             disassociateSubnetCidrBlockResponse --@@ -766,6 +838,9 @@ --         , responseModifyNetworkInterfaceAttribute $ --             modifyNetworkInterfaceAttributeResponse --+--         , responseModifyVPCTenancy $+--             modifyVPCTenancyResponse+-- --         , responseCancelReservedInstancesListing $ --             cancelReservedInstancesListingResponse --@@ -793,6 +868,9 @@ --         , responseImportImage $ --             importImageResponse --+--         , responseCopyFpgaImage $+--             copyFpgaImageResponse+-- --         , responseStopInstances $ --             stopInstancesResponse --@@ -928,6 +1006,12 @@ --         , responseDisableVPCClassicLinkDNSSupport $ --             disableVPCClassicLinkDNSSupportResponse --+--         , responseDescribeVolumesModifications $+--             describeVolumesModificationsResponse+--+--         , responseCreateFpgaImage $+--             createFpgaImageResponse+-- --         , responseAllocateAddress $ --             allocateAddressResponse --@@ -952,6 +1036,9 @@ --         , responseDescribeHostReservationOfferings $ --             describeHostReservationOfferingsResponse --+--         , responseResetFpgaImageAttribute $+--             resetFpgaImageAttributeResponse+-- --         , responseDescribeVolumes $ --             describeVolumesResponse --@@ -964,6 +1051,9 @@ --         , responseModifyVPCEndpoint $ --             modifyVPCEndpointResponse --+--         , responseDescribeFpgaImageAttribute $+--             describeFpgaImageAttributeResponse+-- --         , responseAllocateHosts $ --             allocateHostsResponse --@@ -976,12 +1066,18 @@ --         , responseDescribeHostReservations $ --             describeHostReservationsResponse --+--         , responseUpdateSecurityGroupRuleDescriptionsEgress $+--             updateSecurityGroupRuleDescriptionsEgressResponse+-- --         , responseEnableVPCClassicLinkDNSSupport $ --             enableVPCClassicLinkDNSSupportResponse -- --         , responseModifyReservedInstances $ --             modifyReservedInstancesResponse --+--         , responseDeleteFpgaImage $+--             deleteFpgaImageResponse+-- --         , responseDescribeScheduledInstances $ --             describeScheduledInstancesResponse --@@ -997,6 +1093,9 @@ --         , responseDeleteNetworkACL $ --             deleteNetworkACLResponse --+--         , responseDeleteNetworkInterfacePermission $+--             deleteNetworkInterfacePermissionResponse+-- --         , responseDeleteVPNGateway $ --             deleteVPNGatewayResponse --@@ -1018,6 +1117,9 @@ --         , responseModifyVPCPeeringConnectionOptions $ --             modifyVPCPeeringConnectionOptionsResponse --+--         , responseDescribeFpgaImages $+--             describeFpgaImagesResponse+-- --         , responseCopySnapshot $ --             copySnapshotResponse --@@ -1042,6 +1144,9 @@ --         , responseCreateVolume $ --             volume --+--         , responseCreateDefaultSubnet $+--             createDefaultSubnetResponse+-- --         , responseDescribeScheduledInstanceAvailability $ --             describeScheduledInstanceAvailabilityResponse --@@ -1096,6 +1201,9 @@ --         , responseCancelExportTask $ --             cancelExportTaskResponse --+--         , responseCreateDefaultVPC $+--             createDefaultVPCResponse+-- --         , responseDisassociateVPCCidrBlock $ --             disassociateVPCCidrBlockResponse --@@ -1120,6 +1228,9 @@ --         , responseDescribeNetworkInterfaceAttribute $ --             describeNetworkInterfaceAttributeResponse --+--         , responseReplaceIAMInstanceProfileAssociation $+--             replaceIAMInstanceProfileAssociationResponse+-- --         , responseReleaseHosts $ --             releaseHostsResponse --@@ -1186,6 +1297,9 @@ --         , responseDeleteCustomerGateway $ --             deleteCustomerGatewayResponse --+--         , responseDisassociateIAMInstanceProfile $+--             disassociateIAMInstanceProfileResponse+-- --         , responseDisassociateRouteTable $ --             disassociateRouteTableResponse --@@ -1198,6 +1312,9 @@ --         , responseDeleteSpotDatafeedSubscription $ --             deleteSpotDatafeedSubscriptionResponse --+--         , responseModifyVolume $+--             modifyVolumeResponse+-- --         , responseEnableVPCClassicLink $ --             enableVPCClassicLinkResponse --@@ -1219,6 +1336,9 @@ --         , responseModifySnapshotAttribute $ --             modifySnapshotAttributeResponse --+--         , responseDescribeIAMInstanceProfileAssociations $+--             describeIAMInstanceProfileAssociationsResponse+-- --         , responseCreateSnapshot $ --             snapshot --@@ -1237,6 +1357,9 @@ --         , responseDescribeAccountAttributes $ --             describeAccountAttributesResponse --+--         , responseModifyFpgaImageAttribute $+--             modifyFpgaImageAttributeResponse+-- --         , responseModifyHosts $ --             modifyHostsResponse --@@ -1246,6 +1369,9 @@ --         , responseUnassignIPv6Addresses $ --             unassignIPv6AddressesResponse --+--         , responseAssociateIAMInstanceProfile $+--             associateIAMInstanceProfileResponse+-- --         , responseDeleteEgressOnlyInternetGateway $ --             deleteEgressOnlyInternetGatewayResponse --@@ -1303,6 +1429,9 @@ --         , responseUnassignPrivateIPAddresses $ --             unassignPrivateIPAddressesResponse --+--         , responseDescribeNetworkInterfacePermissions $+--             describeNetworkInterfacePermissionsResponse+-- --         , responseDeleteDHCPOptions $ --             deleteDHCPOptionsResponse --@@ -1342,6 +1471,9 @@ --         , responseDescribeImages $ --             describeImagesResponse --+--         , responseDescribeElasticGpus $+--             describeElasticGpusResponse+-- --         , responseRestoreAddressToClassic $ --             restoreAddressToClassicResponse --@@ -1372,6 +1504,11 @@     "RevokeSecurityGroupEgress"     "fixture/RevokeSecurityGroupEgress.yaml" +requestCreateNetworkInterfacePermission :: CreateNetworkInterfacePermission -> TestTree+requestCreateNetworkInterfacePermission = req+    "CreateNetworkInterfacePermission"+    "fixture/CreateNetworkInterfacePermission.yaml"+ requestCreateVPNGateway :: CreateVPNGateway -> TestTree requestCreateVPNGateway = req     "CreateVPNGateway"@@ -1397,6 +1534,11 @@     "DescribeTags"     "fixture/DescribeTags.yaml" +requestUpdateSecurityGroupRuleDescriptionsIngress :: UpdateSecurityGroupRuleDescriptionsIngress -> TestTree+requestUpdateSecurityGroupRuleDescriptionsIngress = req+    "UpdateSecurityGroupRuleDescriptionsIngress"+    "fixture/UpdateSecurityGroupRuleDescriptionsIngress.yaml"+ requestDisassociateSubnetCidrBlock :: DisassociateSubnetCidrBlock -> TestTree requestDisassociateSubnetCidrBlock = req     "DisassociateSubnetCidrBlock"@@ -1482,6 +1624,11 @@     "ModifyNetworkInterfaceAttribute"     "fixture/ModifyNetworkInterfaceAttribute.yaml" +requestModifyVPCTenancy :: ModifyVPCTenancy -> TestTree+requestModifyVPCTenancy = req+    "ModifyVPCTenancy"+    "fixture/ModifyVPCTenancy.yaml"+ requestCancelReservedInstancesListing :: CancelReservedInstancesListing -> TestTree requestCancelReservedInstancesListing = req     "CancelReservedInstancesListing"@@ -1527,6 +1674,11 @@     "ImportImage"     "fixture/ImportImage.yaml" +requestCopyFpgaImage :: CopyFpgaImage -> TestTree+requestCopyFpgaImage = req+    "CopyFpgaImage"+    "fixture/CopyFpgaImage.yaml"+ requestStopInstances :: StopInstances -> TestTree requestStopInstances = req     "StopInstances"@@ -1752,6 +1904,16 @@     "DisableVPCClassicLinkDNSSupport"     "fixture/DisableVPCClassicLinkDNSSupport.yaml" +requestDescribeVolumesModifications :: DescribeVolumesModifications -> TestTree+requestDescribeVolumesModifications = req+    "DescribeVolumesModifications"+    "fixture/DescribeVolumesModifications.yaml"++requestCreateFpgaImage :: CreateFpgaImage -> TestTree+requestCreateFpgaImage = req+    "CreateFpgaImage"+    "fixture/CreateFpgaImage.yaml"+ requestAllocateAddress :: AllocateAddress -> TestTree requestAllocateAddress = req     "AllocateAddress"@@ -1792,6 +1954,11 @@     "DescribeHostReservationOfferings"     "fixture/DescribeHostReservationOfferings.yaml" +requestResetFpgaImageAttribute :: ResetFpgaImageAttribute -> TestTree+requestResetFpgaImageAttribute = req+    "ResetFpgaImageAttribute"+    "fixture/ResetFpgaImageAttribute.yaml"+ requestDescribeVolumes :: DescribeVolumes -> TestTree requestDescribeVolumes = req     "DescribeVolumes"@@ -1812,6 +1979,11 @@     "ModifyVPCEndpoint"     "fixture/ModifyVPCEndpoint.yaml" +requestDescribeFpgaImageAttribute :: DescribeFpgaImageAttribute -> TestTree+requestDescribeFpgaImageAttribute = req+    "DescribeFpgaImageAttribute"+    "fixture/DescribeFpgaImageAttribute.yaml"+ requestAllocateHosts :: AllocateHosts -> TestTree requestAllocateHosts = req     "AllocateHosts"@@ -1832,6 +2004,11 @@     "DescribeHostReservations"     "fixture/DescribeHostReservations.yaml" +requestUpdateSecurityGroupRuleDescriptionsEgress :: UpdateSecurityGroupRuleDescriptionsEgress -> TestTree+requestUpdateSecurityGroupRuleDescriptionsEgress = req+    "UpdateSecurityGroupRuleDescriptionsEgress"+    "fixture/UpdateSecurityGroupRuleDescriptionsEgress.yaml"+ requestEnableVPCClassicLinkDNSSupport :: EnableVPCClassicLinkDNSSupport -> TestTree requestEnableVPCClassicLinkDNSSupport = req     "EnableVPCClassicLinkDNSSupport"@@ -1842,6 +2019,11 @@     "ModifyReservedInstances"     "fixture/ModifyReservedInstances.yaml" +requestDeleteFpgaImage :: DeleteFpgaImage -> TestTree+requestDeleteFpgaImage = req+    "DeleteFpgaImage"+    "fixture/DeleteFpgaImage.yaml"+ requestDescribeScheduledInstances :: DescribeScheduledInstances -> TestTree requestDescribeScheduledInstances = req     "DescribeScheduledInstances"@@ -1867,6 +2049,11 @@     "DeleteNetworkACL"     "fixture/DeleteNetworkACL.yaml" +requestDeleteNetworkInterfacePermission :: DeleteNetworkInterfacePermission -> TestTree+requestDeleteNetworkInterfacePermission = req+    "DeleteNetworkInterfacePermission"+    "fixture/DeleteNetworkInterfacePermission.yaml"+ requestDeleteVPNGateway :: DeleteVPNGateway -> TestTree requestDeleteVPNGateway = req     "DeleteVPNGateway"@@ -1902,6 +2089,11 @@     "ModifyVPCPeeringConnectionOptions"     "fixture/ModifyVPCPeeringConnectionOptions.yaml" +requestDescribeFpgaImages :: DescribeFpgaImages -> TestTree+requestDescribeFpgaImages = req+    "DescribeFpgaImages"+    "fixture/DescribeFpgaImages.yaml"+ requestCopySnapshot :: CopySnapshot -> TestTree requestCopySnapshot = req     "CopySnapshot"@@ -1942,6 +2134,11 @@     "CreateVolume"     "fixture/CreateVolume.yaml" +requestCreateDefaultSubnet :: CreateDefaultSubnet -> TestTree+requestCreateDefaultSubnet = req+    "CreateDefaultSubnet"+    "fixture/CreateDefaultSubnet.yaml"+ requestDescribeScheduledInstanceAvailability :: DescribeScheduledInstanceAvailability -> TestTree requestDescribeScheduledInstanceAvailability = req     "DescribeScheduledInstanceAvailability"@@ -2032,6 +2229,11 @@     "CancelExportTask"     "fixture/CancelExportTask.yaml" +requestCreateDefaultVPC :: CreateDefaultVPC -> TestTree+requestCreateDefaultVPC = req+    "CreateDefaultVPC"+    "fixture/CreateDefaultVPC.yaml"+ requestDisassociateVPCCidrBlock :: DisassociateVPCCidrBlock -> TestTree requestDisassociateVPCCidrBlock = req     "DisassociateVPCCidrBlock"@@ -2072,6 +2274,11 @@     "DescribeNetworkInterfaceAttribute"     "fixture/DescribeNetworkInterfaceAttribute.yaml" +requestReplaceIAMInstanceProfileAssociation :: ReplaceIAMInstanceProfileAssociation -> TestTree+requestReplaceIAMInstanceProfileAssociation = req+    "ReplaceIAMInstanceProfileAssociation"+    "fixture/ReplaceIAMInstanceProfileAssociation.yaml"+ requestReleaseHosts :: ReleaseHosts -> TestTree requestReleaseHosts = req     "ReleaseHosts"@@ -2182,6 +2389,11 @@     "DeleteCustomerGateway"     "fixture/DeleteCustomerGateway.yaml" +requestDisassociateIAMInstanceProfile :: DisassociateIAMInstanceProfile -> TestTree+requestDisassociateIAMInstanceProfile = req+    "DisassociateIAMInstanceProfile"+    "fixture/DisassociateIAMInstanceProfile.yaml"+ requestDisassociateRouteTable :: DisassociateRouteTable -> TestTree requestDisassociateRouteTable = req     "DisassociateRouteTable"@@ -2202,6 +2414,11 @@     "DeleteSpotDatafeedSubscription"     "fixture/DeleteSpotDatafeedSubscription.yaml" +requestModifyVolume :: ModifyVolume -> TestTree+requestModifyVolume = req+    "ModifyVolume"+    "fixture/ModifyVolume.yaml"+ requestEnableVPCClassicLink :: EnableVPCClassicLink -> TestTree requestEnableVPCClassicLink = req     "EnableVPCClassicLink"@@ -2237,6 +2454,11 @@     "ModifySnapshotAttribute"     "fixture/ModifySnapshotAttribute.yaml" +requestDescribeIAMInstanceProfileAssociations :: DescribeIAMInstanceProfileAssociations -> TestTree+requestDescribeIAMInstanceProfileAssociations = req+    "DescribeIAMInstanceProfileAssociations"+    "fixture/DescribeIAMInstanceProfileAssociations.yaml"+ requestCreateSnapshot :: CreateSnapshot -> TestTree requestCreateSnapshot = req     "CreateSnapshot"@@ -2267,6 +2489,11 @@     "DescribeAccountAttributes"     "fixture/DescribeAccountAttributes.yaml" +requestModifyFpgaImageAttribute :: ModifyFpgaImageAttribute -> TestTree+requestModifyFpgaImageAttribute = req+    "ModifyFpgaImageAttribute"+    "fixture/ModifyFpgaImageAttribute.yaml"+ requestModifyHosts :: ModifyHosts -> TestTree requestModifyHosts = req     "ModifyHosts"@@ -2282,6 +2509,11 @@     "UnassignIPv6Addresses"     "fixture/UnassignIPv6Addresses.yaml" +requestAssociateIAMInstanceProfile :: AssociateIAMInstanceProfile -> TestTree+requestAssociateIAMInstanceProfile = req+    "AssociateIAMInstanceProfile"+    "fixture/AssociateIAMInstanceProfile.yaml"+ requestDeleteEgressOnlyInternetGateway :: DeleteEgressOnlyInternetGateway -> TestTree requestDeleteEgressOnlyInternetGateway = req     "DeleteEgressOnlyInternetGateway"@@ -2377,6 +2609,11 @@     "UnassignPrivateIPAddresses"     "fixture/UnassignPrivateIPAddresses.yaml" +requestDescribeNetworkInterfacePermissions :: DescribeNetworkInterfacePermissions -> TestTree+requestDescribeNetworkInterfacePermissions = req+    "DescribeNetworkInterfacePermissions"+    "fixture/DescribeNetworkInterfacePermissions.yaml"+ requestDeleteDHCPOptions :: DeleteDHCPOptions -> TestTree requestDeleteDHCPOptions = req     "DeleteDHCPOptions"@@ -2442,6 +2679,11 @@     "DescribeImages"     "fixture/DescribeImages.yaml" +requestDescribeElasticGpus :: DescribeElasticGpus -> TestTree+requestDescribeElasticGpus = req+    "DescribeElasticGpus"+    "fixture/DescribeElasticGpus.yaml"+ requestRestoreAddressToClassic :: RestoreAddressToClassic -> TestTree requestRestoreAddressToClassic = req     "RestoreAddressToClassic"@@ -2483,6 +2725,13 @@     ec2     (Proxy :: Proxy RevokeSecurityGroupEgress) +responseCreateNetworkInterfacePermission :: CreateNetworkInterfacePermissionResponse -> TestTree+responseCreateNetworkInterfacePermission = res+    "CreateNetworkInterfacePermissionResponse"+    "fixture/CreateNetworkInterfacePermissionResponse.proto"+    ec2+    (Proxy :: Proxy CreateNetworkInterfacePermission)+ responseCreateVPNGateway :: CreateVPNGatewayResponse -> TestTree responseCreateVPNGateway = res     "CreateVPNGatewayResponse"@@ -2518,6 +2767,13 @@     ec2     (Proxy :: Proxy DescribeTags) +responseUpdateSecurityGroupRuleDescriptionsIngress :: UpdateSecurityGroupRuleDescriptionsIngressResponse -> TestTree+responseUpdateSecurityGroupRuleDescriptionsIngress = res+    "UpdateSecurityGroupRuleDescriptionsIngressResponse"+    "fixture/UpdateSecurityGroupRuleDescriptionsIngressResponse.proto"+    ec2+    (Proxy :: Proxy UpdateSecurityGroupRuleDescriptionsIngress)+ responseDisassociateSubnetCidrBlock :: DisassociateSubnetCidrBlockResponse -> TestTree responseDisassociateSubnetCidrBlock = res     "DisassociateSubnetCidrBlockResponse"@@ -2637,6 +2893,13 @@     ec2     (Proxy :: Proxy ModifyNetworkInterfaceAttribute) +responseModifyVPCTenancy :: ModifyVPCTenancyResponse -> TestTree+responseModifyVPCTenancy = res+    "ModifyVPCTenancyResponse"+    "fixture/ModifyVPCTenancyResponse.proto"+    ec2+    (Proxy :: Proxy ModifyVPCTenancy)+ responseCancelReservedInstancesListing :: CancelReservedInstancesListingResponse -> TestTree responseCancelReservedInstancesListing = res     "CancelReservedInstancesListingResponse"@@ -2700,6 +2963,13 @@     ec2     (Proxy :: Proxy ImportImage) +responseCopyFpgaImage :: CopyFpgaImageResponse -> TestTree+responseCopyFpgaImage = res+    "CopyFpgaImageResponse"+    "fixture/CopyFpgaImageResponse.proto"+    ec2+    (Proxy :: Proxy CopyFpgaImage)+ responseStopInstances :: StopInstancesResponse -> TestTree responseStopInstances = res     "StopInstancesResponse"@@ -3015,6 +3285,20 @@     ec2     (Proxy :: Proxy DisableVPCClassicLinkDNSSupport) +responseDescribeVolumesModifications :: DescribeVolumesModificationsResponse -> TestTree+responseDescribeVolumesModifications = res+    "DescribeVolumesModificationsResponse"+    "fixture/DescribeVolumesModificationsResponse.proto"+    ec2+    (Proxy :: Proxy DescribeVolumesModifications)++responseCreateFpgaImage :: CreateFpgaImageResponse -> TestTree+responseCreateFpgaImage = res+    "CreateFpgaImageResponse"+    "fixture/CreateFpgaImageResponse.proto"+    ec2+    (Proxy :: Proxy CreateFpgaImage)+ responseAllocateAddress :: AllocateAddressResponse -> TestTree responseAllocateAddress = res     "AllocateAddressResponse"@@ -3071,6 +3355,13 @@     ec2     (Proxy :: Proxy DescribeHostReservationOfferings) +responseResetFpgaImageAttribute :: ResetFpgaImageAttributeResponse -> TestTree+responseResetFpgaImageAttribute = res+    "ResetFpgaImageAttributeResponse"+    "fixture/ResetFpgaImageAttributeResponse.proto"+    ec2+    (Proxy :: Proxy ResetFpgaImageAttribute)+ responseDescribeVolumes :: DescribeVolumesResponse -> TestTree responseDescribeVolumes = res     "DescribeVolumesResponse"@@ -3099,6 +3390,13 @@     ec2     (Proxy :: Proxy ModifyVPCEndpoint) +responseDescribeFpgaImageAttribute :: DescribeFpgaImageAttributeResponse -> TestTree+responseDescribeFpgaImageAttribute = res+    "DescribeFpgaImageAttributeResponse"+    "fixture/DescribeFpgaImageAttributeResponse.proto"+    ec2+    (Proxy :: Proxy DescribeFpgaImageAttribute)+ responseAllocateHosts :: AllocateHostsResponse -> TestTree responseAllocateHosts = res     "AllocateHostsResponse"@@ -3127,6 +3425,13 @@     ec2     (Proxy :: Proxy DescribeHostReservations) +responseUpdateSecurityGroupRuleDescriptionsEgress :: UpdateSecurityGroupRuleDescriptionsEgressResponse -> TestTree+responseUpdateSecurityGroupRuleDescriptionsEgress = res+    "UpdateSecurityGroupRuleDescriptionsEgressResponse"+    "fixture/UpdateSecurityGroupRuleDescriptionsEgressResponse.proto"+    ec2+    (Proxy :: Proxy UpdateSecurityGroupRuleDescriptionsEgress)+ responseEnableVPCClassicLinkDNSSupport :: EnableVPCClassicLinkDNSSupportResponse -> TestTree responseEnableVPCClassicLinkDNSSupport = res     "EnableVPCClassicLinkDNSSupportResponse"@@ -3141,6 +3446,13 @@     ec2     (Proxy :: Proxy ModifyReservedInstances) +responseDeleteFpgaImage :: DeleteFpgaImageResponse -> TestTree+responseDeleteFpgaImage = res+    "DeleteFpgaImageResponse"+    "fixture/DeleteFpgaImageResponse.proto"+    ec2+    (Proxy :: Proxy DeleteFpgaImage)+ responseDescribeScheduledInstances :: DescribeScheduledInstancesResponse -> TestTree responseDescribeScheduledInstances = res     "DescribeScheduledInstancesResponse"@@ -3176,6 +3488,13 @@     ec2     (Proxy :: Proxy DeleteNetworkACL) +responseDeleteNetworkInterfacePermission :: DeleteNetworkInterfacePermissionResponse -> TestTree+responseDeleteNetworkInterfacePermission = res+    "DeleteNetworkInterfacePermissionResponse"+    "fixture/DeleteNetworkInterfacePermissionResponse.proto"+    ec2+    (Proxy :: Proxy DeleteNetworkInterfacePermission)+ responseDeleteVPNGateway :: DeleteVPNGatewayResponse -> TestTree responseDeleteVPNGateway = res     "DeleteVPNGatewayResponse"@@ -3225,6 +3544,13 @@     ec2     (Proxy :: Proxy ModifyVPCPeeringConnectionOptions) +responseDescribeFpgaImages :: DescribeFpgaImagesResponse -> TestTree+responseDescribeFpgaImages = res+    "DescribeFpgaImagesResponse"+    "fixture/DescribeFpgaImagesResponse.proto"+    ec2+    (Proxy :: Proxy DescribeFpgaImages)+ responseCopySnapshot :: CopySnapshotResponse -> TestTree responseCopySnapshot = res     "CopySnapshotResponse"@@ -3281,6 +3607,13 @@     ec2     (Proxy :: Proxy CreateVolume) +responseCreateDefaultSubnet :: CreateDefaultSubnetResponse -> TestTree+responseCreateDefaultSubnet = res+    "CreateDefaultSubnetResponse"+    "fixture/CreateDefaultSubnetResponse.proto"+    ec2+    (Proxy :: Proxy CreateDefaultSubnet)+ responseDescribeScheduledInstanceAvailability :: DescribeScheduledInstanceAvailabilityResponse -> TestTree responseDescribeScheduledInstanceAvailability = res     "DescribeScheduledInstanceAvailabilityResponse"@@ -3407,6 +3740,13 @@     ec2     (Proxy :: Proxy CancelExportTask) +responseCreateDefaultVPC :: CreateDefaultVPCResponse -> TestTree+responseCreateDefaultVPC = res+    "CreateDefaultVPCResponse"+    "fixture/CreateDefaultVPCResponse.proto"+    ec2+    (Proxy :: Proxy CreateDefaultVPC)+ responseDisassociateVPCCidrBlock :: DisassociateVPCCidrBlockResponse -> TestTree responseDisassociateVPCCidrBlock = res     "DisassociateVPCCidrBlockResponse"@@ -3463,6 +3803,13 @@     ec2     (Proxy :: Proxy DescribeNetworkInterfaceAttribute) +responseReplaceIAMInstanceProfileAssociation :: ReplaceIAMInstanceProfileAssociationResponse -> TestTree+responseReplaceIAMInstanceProfileAssociation = res+    "ReplaceIAMInstanceProfileAssociationResponse"+    "fixture/ReplaceIAMInstanceProfileAssociationResponse.proto"+    ec2+    (Proxy :: Proxy ReplaceIAMInstanceProfileAssociation)+ responseReleaseHosts :: ReleaseHostsResponse -> TestTree responseReleaseHosts = res     "ReleaseHostsResponse"@@ -3617,6 +3964,13 @@     ec2     (Proxy :: Proxy DeleteCustomerGateway) +responseDisassociateIAMInstanceProfile :: DisassociateIAMInstanceProfileResponse -> TestTree+responseDisassociateIAMInstanceProfile = res+    "DisassociateIAMInstanceProfileResponse"+    "fixture/DisassociateIAMInstanceProfileResponse.proto"+    ec2+    (Proxy :: Proxy DisassociateIAMInstanceProfile)+ responseDisassociateRouteTable :: DisassociateRouteTableResponse -> TestTree responseDisassociateRouteTable = res     "DisassociateRouteTableResponse"@@ -3645,6 +3999,13 @@     ec2     (Proxy :: Proxy DeleteSpotDatafeedSubscription) +responseModifyVolume :: ModifyVolumeResponse -> TestTree+responseModifyVolume = res+    "ModifyVolumeResponse"+    "fixture/ModifyVolumeResponse.proto"+    ec2+    (Proxy :: Proxy ModifyVolume)+ responseEnableVPCClassicLink :: EnableVPCClassicLinkResponse -> TestTree responseEnableVPCClassicLink = res     "EnableVPCClassicLinkResponse"@@ -3694,6 +4055,13 @@     ec2     (Proxy :: Proxy ModifySnapshotAttribute) +responseDescribeIAMInstanceProfileAssociations :: DescribeIAMInstanceProfileAssociationsResponse -> TestTree+responseDescribeIAMInstanceProfileAssociations = res+    "DescribeIAMInstanceProfileAssociationsResponse"+    "fixture/DescribeIAMInstanceProfileAssociationsResponse.proto"+    ec2+    (Proxy :: Proxy DescribeIAMInstanceProfileAssociations)+ responseCreateSnapshot :: Snapshot -> TestTree responseCreateSnapshot = res     "CreateSnapshotResponse"@@ -3736,6 +4104,13 @@     ec2     (Proxy :: Proxy DescribeAccountAttributes) +responseModifyFpgaImageAttribute :: ModifyFpgaImageAttributeResponse -> TestTree+responseModifyFpgaImageAttribute = res+    "ModifyFpgaImageAttributeResponse"+    "fixture/ModifyFpgaImageAttributeResponse.proto"+    ec2+    (Proxy :: Proxy ModifyFpgaImageAttribute)+ responseModifyHosts :: ModifyHostsResponse -> TestTree responseModifyHosts = res     "ModifyHostsResponse"@@ -3757,6 +4132,13 @@     ec2     (Proxy :: Proxy UnassignIPv6Addresses) +responseAssociateIAMInstanceProfile :: AssociateIAMInstanceProfileResponse -> TestTree+responseAssociateIAMInstanceProfile = res+    "AssociateIAMInstanceProfileResponse"+    "fixture/AssociateIAMInstanceProfileResponse.proto"+    ec2+    (Proxy :: Proxy AssociateIAMInstanceProfile)+ responseDeleteEgressOnlyInternetGateway :: DeleteEgressOnlyInternetGatewayResponse -> TestTree responseDeleteEgressOnlyInternetGateway = res     "DeleteEgressOnlyInternetGatewayResponse"@@ -3890,6 +4272,13 @@     ec2     (Proxy :: Proxy UnassignPrivateIPAddresses) +responseDescribeNetworkInterfacePermissions :: DescribeNetworkInterfacePermissionsResponse -> TestTree+responseDescribeNetworkInterfacePermissions = res+    "DescribeNetworkInterfacePermissionsResponse"+    "fixture/DescribeNetworkInterfacePermissionsResponse.proto"+    ec2+    (Proxy :: Proxy DescribeNetworkInterfacePermissions)+ responseDeleteDHCPOptions :: DeleteDHCPOptionsResponse -> TestTree responseDeleteDHCPOptions = res     "DeleteDHCPOptionsResponse"@@ -3980,6 +4369,13 @@     "fixture/DescribeImagesResponse.proto"     ec2     (Proxy :: Proxy DescribeImages)++responseDescribeElasticGpus :: DescribeElasticGpusResponse -> TestTree+responseDescribeElasticGpus = res+    "DescribeElasticGpusResponse"+    "fixture/DescribeElasticGpusResponse.proto"+    ec2+    (Proxy :: Proxy DescribeElasticGpus)  responseRestoreAddressToClassic :: RestoreAddressToClassicResponse -> TestTree responseRestoreAddressToClassic = res