amazonka-ec2 0.2.2 → 0.2.3
raw patch · 159 files changed
+11750/−11750 lines, 159 filesdep ~amazonka-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: amazonka-core
API changes (from Hackage documentation)
Files
- amazonka-ec2.cabal +2/−2
- gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs +2/−2
- gen/Network/AWS/EC2/AllocateAddress.hs +1/−1
- gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs +4/−4
- gen/Network/AWS/EC2/AssociateAddress.hs +4/−4
- gen/Network/AWS/EC2/AssociateDhcpOptions.hs +1/−1
- gen/Network/AWS/EC2/AssociateRouteTable.hs +3/−3
- gen/Network/AWS/EC2/AttachClassicLinkVpc.hs +3/−3
- gen/Network/AWS/EC2/AttachInternetGateway.hs +3/−3
- gen/Network/AWS/EC2/AttachNetworkInterface.hs +4/−4
- gen/Network/AWS/EC2/AttachVolume.hs +1/−1
- gen/Network/AWS/EC2/AttachVpnGateway.hs +1/−1
- gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs +9/−9
- gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs +1/−1
- gen/Network/AWS/EC2/BundleInstance.hs +1/−1
- gen/Network/AWS/EC2/CancelBundleTask.hs +1/−1
- gen/Network/AWS/EC2/CancelConversionTask.hs +3/−3
- gen/Network/AWS/EC2/CancelExportTask.hs +1/−1
- gen/Network/AWS/EC2/CancelReservedInstancesListing.hs +1/−1
- gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs +1/−1
- gen/Network/AWS/EC2/ConfirmProductInstance.hs +1/−1
- gen/Network/AWS/EC2/CopyImage.hs +1/−1
- gen/Network/AWS/EC2/CopySnapshot.hs +3/−3
- gen/Network/AWS/EC2/CreateCustomerGateway.hs +1/−1
- gen/Network/AWS/EC2/CreateDhcpOptions.hs +2/−2
- gen/Network/AWS/EC2/CreateImage.hs +6/−6
- gen/Network/AWS/EC2/CreateInstanceExportTask.hs +4/−4
- gen/Network/AWS/EC2/CreateInternetGateway.hs +1/−1
- gen/Network/AWS/EC2/CreateKeyPair.hs +1/−1
- gen/Network/AWS/EC2/CreateNetworkAcl.hs +2/−2
- gen/Network/AWS/EC2/CreateNetworkAclEntry.hs +8/−8
- gen/Network/AWS/EC2/CreateNetworkInterface.hs +6/−6
- gen/Network/AWS/EC2/CreatePlacementGroup.hs +3/−3
- gen/Network/AWS/EC2/CreateReservedInstancesListing.hs +4/−4
- gen/Network/AWS/EC2/CreateRoute.hs +7/−7
- gen/Network/AWS/EC2/CreateRouteTable.hs +2/−2
- gen/Network/AWS/EC2/CreateSecurityGroup.hs +1/−1
- gen/Network/AWS/EC2/CreateSnapshot.hs +1/−1
- gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs +3/−3
- gen/Network/AWS/EC2/CreateSubnet.hs +1/−1
- gen/Network/AWS/EC2/CreateTags.hs +1/−1
- gen/Network/AWS/EC2/CreateVolume.hs +2/−2
- gen/Network/AWS/EC2/CreateVpc.hs +2/−2
- gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs +4/−4
- gen/Network/AWS/EC2/CreateVpnConnection.hs +2/−2
- gen/Network/AWS/EC2/CreateVpnGateway.hs +1/−1
- gen/Network/AWS/EC2/DeleteCustomerGateway.hs +1/−1
- gen/Network/AWS/EC2/DeleteDhcpOptions.hs +1/−1
- gen/Network/AWS/EC2/DeleteInternetGateway.hs +2/−2
- gen/Network/AWS/EC2/DeleteKeyPair.hs +1/−1
- gen/Network/AWS/EC2/DeleteNetworkAcl.hs +2/−2
- gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs +4/−4
- gen/Network/AWS/EC2/DeleteNetworkInterface.hs +2/−2
- gen/Network/AWS/EC2/DeletePlacementGroup.hs +2/−2
- gen/Network/AWS/EC2/DeleteRoute.hs +3/−3
- gen/Network/AWS/EC2/DeleteRouteTable.hs +2/−2
- gen/Network/AWS/EC2/DeleteSecurityGroup.hs +1/−1
- gen/Network/AWS/EC2/DeleteSnapshot.hs +1/−1
- gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs +1/−1
- gen/Network/AWS/EC2/DeleteSubnet.hs +1/−1
- gen/Network/AWS/EC2/DeleteTags.hs +3/−3
- gen/Network/AWS/EC2/DeleteVolume.hs +1/−1
- gen/Network/AWS/EC2/DeleteVpc.hs +1/−1
- gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs +2/−2
- gen/Network/AWS/EC2/DeleteVpnConnection.hs +1/−1
- gen/Network/AWS/EC2/DeleteVpnGateway.hs +1/−1
- gen/Network/AWS/EC2/DeregisterImage.hs +1/−1
- gen/Network/AWS/EC2/DescribeAccountAttributes.hs +2/−2
- gen/Network/AWS/EC2/DescribeAddresses.hs +1/−1
- gen/Network/AWS/EC2/DescribeAvailabilityZones.hs +1/−1
- gen/Network/AWS/EC2/DescribeBundleTasks.hs +1/−1
- gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs +3/−3
- gen/Network/AWS/EC2/DescribeConversionTasks.hs +3/−3
- gen/Network/AWS/EC2/DescribeCustomerGateways.hs +1/−1
- gen/Network/AWS/EC2/DescribeDhcpOptions.hs +1/−1
- gen/Network/AWS/EC2/DescribeExportTasks.hs +1/−1
- gen/Network/AWS/EC2/DescribeImageAttribute.hs +1/−1
- gen/Network/AWS/EC2/DescribeImages.hs +1/−1
- gen/Network/AWS/EC2/DescribeInstanceAttribute.hs +3/−3
- gen/Network/AWS/EC2/DescribeInstanceStatus.hs +3/−3
- gen/Network/AWS/EC2/DescribeInstances.hs +4/−4
- gen/Network/AWS/EC2/DescribeInternetGateways.hs +2/−2
- gen/Network/AWS/EC2/DescribeKeyPairs.hs +1/−1
- gen/Network/AWS/EC2/DescribeNetworkAcls.hs +1/−1
- gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs +3/−3
- gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs +2/−2
- gen/Network/AWS/EC2/DescribePlacementGroups.hs +2/−2
- gen/Network/AWS/EC2/DescribeRegions.hs +1/−1
- gen/Network/AWS/EC2/DescribeReservedInstances.hs +2/−2
- gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs +3/−3
- gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs +2/−2
- gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs +6/−6
- gen/Network/AWS/EC2/DescribeRouteTables.hs +1/−1
- gen/Network/AWS/EC2/DescribeSecurityGroups.hs +1/−1
- gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs +1/−1
- gen/Network/AWS/EC2/DescribeSnapshots.hs +1/−1
- gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs +1/−1
- gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs +1/−1
- gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs +7/−7
- gen/Network/AWS/EC2/DescribeSubnets.hs +1/−1
- gen/Network/AWS/EC2/DescribeTags.hs +4/−4
- gen/Network/AWS/EC2/DescribeVolumeAttribute.hs +1/−1
- gen/Network/AWS/EC2/DescribeVolumeStatus.hs +2/−2
- gen/Network/AWS/EC2/DescribeVolumes.hs +3/−3
- gen/Network/AWS/EC2/DescribeVpcAttribute.hs +1/−1
- gen/Network/AWS/EC2/DescribeVpcClassicLink.hs +1/−1
- gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs +1/−1
- gen/Network/AWS/EC2/DescribeVpcs.hs +1/−1
- gen/Network/AWS/EC2/DescribeVpnConnections.hs +1/−1
- gen/Network/AWS/EC2/DescribeVpnGateways.hs +1/−1
- gen/Network/AWS/EC2/DetachClassicLinkVpc.hs +3/−3
- gen/Network/AWS/EC2/DetachInternetGateway.hs +3/−3
- gen/Network/AWS/EC2/DetachNetworkInterface.hs +3/−3
- gen/Network/AWS/EC2/DetachVolume.hs +1/−1
- gen/Network/AWS/EC2/DetachVpnGateway.hs +1/−1
- gen/Network/AWS/EC2/DisableVpcClassicLink.hs +2/−2
- gen/Network/AWS/EC2/DisassociateAddress.hs +1/−1
- gen/Network/AWS/EC2/DisassociateRouteTable.hs +2/−2
- gen/Network/AWS/EC2/EnableVolumeIO.hs +2/−2
- gen/Network/AWS/EC2/EnableVpcClassicLink.hs +2/−2
- gen/Network/AWS/EC2/GetConsoleOutput.hs +1/−1
- gen/Network/AWS/EC2/GetPasswordData.hs +1/−1
- gen/Network/AWS/EC2/ImportInstance.hs +5/−5
- gen/Network/AWS/EC2/ImportKeyPair.hs +3/−3
- gen/Network/AWS/EC2/ImportVolume.hs +5/−5
- gen/Network/AWS/EC2/ModifyImageAttribute.hs +1/−1
- gen/Network/AWS/EC2/ModifyInstanceAttribute.hs +13/−13
- gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs +5/−5
- gen/Network/AWS/EC2/ModifyReservedInstances.hs +1/−1
- gen/Network/AWS/EC2/ModifySnapshotAttribute.hs +1/−1
- gen/Network/AWS/EC2/ModifySubnetAttribute.hs +1/−1
- gen/Network/AWS/EC2/ModifyVolumeAttribute.hs +1/−1
- gen/Network/AWS/EC2/ModifyVpcAttribute.hs +1/−1
- gen/Network/AWS/EC2/MonitorInstances.hs +1/−1
- gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs +2/−2
- gen/Network/AWS/EC2/RebootInstances.hs +1/−1
- gen/Network/AWS/EC2/RegisterImage.hs +9/−9
- gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs +2/−2
- gen/Network/AWS/EC2/ReleaseAddress.hs +1/−1
- gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs +3/−3
- gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs +8/−8
- gen/Network/AWS/EC2/ReplaceRoute.hs +7/−7
- gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs +3/−3
- gen/Network/AWS/EC2/ReportInstanceStatus.hs +7/−7
- gen/Network/AWS/EC2/RequestSpotInstances.hs +8/−8
- gen/Network/AWS/EC2/ResetImageAttribute.hs +1/−1
- gen/Network/AWS/EC2/ResetInstanceAttribute.hs +3/−3
- gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs +3/−3
- gen/Network/AWS/EC2/ResetSnapshotAttribute.hs +1/−1
- gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs +9/−9
- gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs +1/−1
- gen/Network/AWS/EC2/RunInstances.hs +9/−9
- gen/Network/AWS/EC2/StartInstances.hs +2/−2
- gen/Network/AWS/EC2/StopInstances.hs +2/−2
- gen/Network/AWS/EC2/TerminateInstances.hs +1/−1
- gen/Network/AWS/EC2/Types.hs +11371/−11371
- gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs +2/−2
- gen/Network/AWS/EC2/UnmonitorInstances.hs +1/−1
- src/Network/AWS/EC2/Internal.hs +1/−1
amazonka-ec2.cabal view
@@ -1,5 +1,5 @@ name: amazonka-ec2-version: 0.2.2+version: 0.2.3 synopsis: Amazon Elastic Compute Cloud SDK. homepage: https://github.com/brendanhay/amazonka license: OtherLicense@@ -211,5 +211,5 @@ Network.AWS.EC2.Internal build-depends:- amazonka-core == 0.2.2.*+ amazonka-core == 0.2.3.* , base >= 4.7 && < 5
gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs view
@@ -105,8 +105,8 @@ instance ToQuery AcceptVpcPeeringConnection where toQuery AcceptVpcPeeringConnection{..} = mconcat- [ "dryRun" =? _avpcDryRun- , "vpcPeeringConnectionId" =? _avpcVpcPeeringConnectionId+ [ "DryRun" =? _avpcDryRun+ , "VpcPeeringConnectionId" =? _avpcVpcPeeringConnectionId ] instance ToHeaders AcceptVpcPeeringConnection
gen/Network/AWS/EC2/AllocateAddress.hs view
@@ -124,7 +124,7 @@ instance ToQuery AllocateAddress where toQuery AllocateAddress{..} = mconcat [ "Domain" =? _aaDomain- , "dryRun" =? _aaDryRun+ , "DryRun" =? _aaDryRun ] instance ToHeaders AllocateAddress
gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs view
@@ -126,10 +126,10 @@ instance ToQuery AssignPrivateIpAddresses where toQuery AssignPrivateIpAddresses{..} = mconcat- [ "allowReassignment" =? _apiaAllowReassignment- , "networkInterfaceId" =? _apiaNetworkInterfaceId- , "privateIpAddress" `toQueryList` _apiaPrivateIpAddresses- , "secondaryPrivateIpAddressCount" =? _apiaSecondaryPrivateIpAddressCount+ [ "AllowReassignment" =? _apiaAllowReassignment+ , "NetworkInterfaceId" =? _apiaNetworkInterfaceId+ , "PrivateIpAddress" `toQueryList` _apiaPrivateIpAddresses+ , "SecondaryPrivateIpAddressCount" =? _apiaSecondaryPrivateIpAddressCount ] instance ToHeaders AssignPrivateIpAddresses
gen/Network/AWS/EC2/AssociateAddress.hs view
@@ -173,11 +173,11 @@ instance ToQuery AssociateAddress where toQuery AssociateAddress{..} = mconcat [ "AllocationId" =? _aa1AllocationId- , "allowReassociation" =? _aa1AllowReassociation- , "dryRun" =? _aa1DryRun+ , "AllowReassociation" =? _aa1AllowReassociation+ , "DryRun" =? _aa1DryRun , "InstanceId" =? _aa1InstanceId- , "networkInterfaceId" =? _aa1NetworkInterfaceId- , "privateIpAddress" =? _aa1PrivateIpAddress+ , "NetworkInterfaceId" =? _aa1NetworkInterfaceId+ , "PrivateIpAddress" =? _aa1PrivateIpAddress , "PublicIp" =? _aa1PublicIp ]
gen/Network/AWS/EC2/AssociateDhcpOptions.hs view
@@ -107,7 +107,7 @@ instance ToQuery AssociateDhcpOptions where toQuery AssociateDhcpOptions{..} = mconcat [ "DhcpOptionsId" =? _adoDhcpOptionsId- , "dryRun" =? _adoDryRun+ , "DryRun" =? _adoDryRun , "VpcId" =? _adoVpcId ]
gen/Network/AWS/EC2/AssociateRouteTable.hs view
@@ -116,9 +116,9 @@ instance ToQuery AssociateRouteTable where toQuery AssociateRouteTable{..} = mconcat- [ "dryRun" =? _artDryRun- , "routeTableId" =? _artRouteTableId- , "subnetId" =? _artSubnetId+ [ "DryRun" =? _artDryRun+ , "RouteTableId" =? _artRouteTableId+ , "SubnetId" =? _artSubnetId ] instance ToHeaders AssociateRouteTable
gen/Network/AWS/EC2/AttachClassicLinkVpc.hs view
@@ -129,10 +129,10 @@ instance ToQuery AttachClassicLinkVpc where toQuery AttachClassicLinkVpc{..} = mconcat- [ "dryRun" =? _aclvDryRun+ [ "DryRun" =? _aclvDryRun , "SecurityGroupId" `toQueryList` _aclvGroups- , "instanceId" =? _aclvInstanceId- , "vpcId" =? _aclvVpcId+ , "InstanceId" =? _aclvInstanceId+ , "VpcId" =? _aclvVpcId ] instance ToHeaders AttachClassicLinkVpc
gen/Network/AWS/EC2/AttachInternetGateway.hs view
@@ -98,9 +98,9 @@ instance ToQuery AttachInternetGateway where toQuery AttachInternetGateway{..} = mconcat- [ "dryRun" =? _aigDryRun- , "internetGatewayId" =? _aigInternetGatewayId- , "vpcId" =? _aigVpcId+ [ "DryRun" =? _aigDryRun+ , "InternetGatewayId" =? _aigInternetGatewayId+ , "VpcId" =? _aigVpcId ] instance ToHeaders AttachInternetGateway
gen/Network/AWS/EC2/AttachNetworkInterface.hs view
@@ -120,10 +120,10 @@ instance ToQuery AttachNetworkInterface where toQuery AttachNetworkInterface{..} = mconcat- [ "deviceIndex" =? _aniDeviceIndex- , "dryRun" =? _aniDryRun- , "instanceId" =? _aniInstanceId- , "networkInterfaceId" =? _aniNetworkInterfaceId+ [ "DeviceIndex" =? _aniDeviceIndex+ , "DryRun" =? _aniDryRun+ , "InstanceId" =? _aniInstanceId+ , "NetworkInterfaceId" =? _aniNetworkInterfaceId ] instance ToHeaders AttachNetworkInterface
gen/Network/AWS/EC2/AttachVolume.hs view
@@ -185,7 +185,7 @@ instance ToQuery AttachVolume where toQuery AttachVolume{..} = mconcat [ "Device" =? _avDevice- , "dryRun" =? _avDryRun+ , "DryRun" =? _avDryRun , "InstanceId" =? _avInstanceId , "VolumeId" =? _avVolumeId ]
gen/Network/AWS/EC2/AttachVpnGateway.hs view
@@ -110,7 +110,7 @@ instance ToQuery AttachVpnGateway where toQuery AttachVpnGateway{..} = mconcat- [ "dryRun" =? _avgDryRun+ [ "DryRun" =? _avgDryRun , "VpcId" =? _avgVpcId , "VpnGatewayId" =? _avgVpnGatewayId ]
gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs view
@@ -181,15 +181,15 @@ instance ToQuery AuthorizeSecurityGroupEgress where toQuery AuthorizeSecurityGroupEgress{..} = mconcat- [ "cidrIp" =? _asgeCidrIp- , "dryRun" =? _asgeDryRun- , "fromPort" =? _asgeFromPort- , "groupId" =? _asgeGroupId- , "ipPermissions" `toQueryList` _asgeIpPermissions- , "ipProtocol" =? _asgeIpProtocol- , "sourceSecurityGroupName" =? _asgeSourceSecurityGroupName- , "sourceSecurityGroupOwnerId" =? _asgeSourceSecurityGroupOwnerId- , "toPort" =? _asgeToPort+ [ "CidrIp" =? _asgeCidrIp+ , "DryRun" =? _asgeDryRun+ , "FromPort" =? _asgeFromPort+ , "GroupId" =? _asgeGroupId+ , "IpPermissions" `toQueryList` _asgeIpPermissions+ , "IpProtocol" =? _asgeIpProtocol+ , "SourceSecurityGroupName" =? _asgeSourceSecurityGroupName+ , "SourceSecurityGroupOwnerId" =? _asgeSourceSecurityGroupOwnerId+ , "ToPort" =? _asgeToPort ] instance ToHeaders AuthorizeSecurityGroupEgress
gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs view
@@ -189,7 +189,7 @@ instance ToQuery AuthorizeSecurityGroupIngress where toQuery AuthorizeSecurityGroupIngress{..} = mconcat [ "CidrIp" =? _asgiCidrIp- , "dryRun" =? _asgiDryRun+ , "DryRun" =? _asgiDryRun , "FromPort" =? _asgiFromPort , "GroupId" =? _asgiGroupId , "GroupName" =? _asgiGroupName
gen/Network/AWS/EC2/BundleInstance.hs view
@@ -125,7 +125,7 @@ instance ToQuery BundleInstance where toQuery BundleInstance{..} = mconcat- [ "dryRun" =? _biDryRun+ [ "DryRun" =? _biDryRun , "InstanceId" =? _biInstanceId , "Storage" =? _biStorage ]
gen/Network/AWS/EC2/CancelBundleTask.hs view
@@ -100,7 +100,7 @@ instance ToQuery CancelBundleTask where toQuery CancelBundleTask{..} = mconcat [ "BundleId" =? _cbtBundleId- , "dryRun" =? _cbtDryRun+ , "DryRun" =? _cbtDryRun ] instance ToHeaders CancelBundleTask
gen/Network/AWS/EC2/CancelConversionTask.hs view
@@ -100,9 +100,9 @@ instance ToQuery CancelConversionTask where toQuery CancelConversionTask{..} = mconcat- [ "conversionTaskId" =? _cctConversionTaskId- , "dryRun" =? _cctDryRun- , "reasonMessage" =? _cctReasonMessage+ [ "ConversionTaskId" =? _cctConversionTaskId+ , "DryRun" =? _cctDryRun+ , "ReasonMessage" =? _cctReasonMessage ] instance ToHeaders CancelConversionTask
gen/Network/AWS/EC2/CancelExportTask.hs view
@@ -81,7 +81,7 @@ instance ToQuery CancelExportTask where toQuery CancelExportTask{..} = mconcat- [ "exportTaskId" =? _cetExportTaskId+ [ "ExportTaskId" =? _cetExportTaskId ] instance ToHeaders CancelExportTask
gen/Network/AWS/EC2/CancelReservedInstancesListing.hs view
@@ -99,7 +99,7 @@ instance ToQuery CancelReservedInstancesListing where toQuery CancelReservedInstancesListing{..} = mconcat- [ "reservedInstancesListingId" =? _crilReservedInstancesListingId+ [ "ReservedInstancesListingId" =? _crilReservedInstancesListingId ] instance ToHeaders CancelReservedInstancesListing
gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs view
@@ -113,7 +113,7 @@ instance ToQuery CancelSpotInstanceRequests where toQuery CancelSpotInstanceRequests{..} = mconcat- [ "dryRun" =? _csirDryRun+ [ "DryRun" =? _csirDryRun , "SpotInstanceRequestId" `toQueryList` _csirSpotInstanceRequestIds ]
gen/Network/AWS/EC2/ConfirmProductInstance.hs view
@@ -113,7 +113,7 @@ instance ToQuery ConfirmProductInstance where toQuery ConfirmProductInstance{..} = mconcat- [ "dryRun" =? _cpiDryRun+ [ "DryRun" =? _cpiDryRun , "InstanceId" =? _cpiInstanceId , "ProductCode" =? _cpiProductCode ]
gen/Network/AWS/EC2/CopyImage.hs view
@@ -145,7 +145,7 @@ toQuery CopyImage{..} = mconcat [ "ClientToken" =? _ciClientToken , "Description" =? _ciDescription- , "dryRun" =? _ciDryRun+ , "DryRun" =? _ciDryRun , "Name" =? _ciName , "SourceImageId" =? _ciSourceImageId , "SourceRegion" =? _ciSourceRegion
gen/Network/AWS/EC2/CopySnapshot.hs view
@@ -160,9 +160,9 @@ instance ToQuery CopySnapshot where toQuery CopySnapshot{..} = mconcat [ "Description" =? _csDescription- , "destinationRegion" =? _csDestinationRegion- , "dryRun" =? _csDryRun- , "presignedUrl" =? _csPresignedUrl+ , "DestinationRegion" =? _csDestinationRegion+ , "DryRun" =? _csDryRun+ , "PresignedUrl" =? _csPresignedUrl , "SourceRegion" =? _csSourceRegion , "SourceSnapshotId" =? _csSourceSnapshotId ]
gen/Network/AWS/EC2/CreateCustomerGateway.hs view
@@ -140,7 +140,7 @@ instance ToQuery CreateCustomerGateway where toQuery CreateCustomerGateway{..} = mconcat [ "BgpAsn" =? _ccgBgpAsn- , "dryRun" =? _ccgDryRun+ , "DryRun" =? _ccgDryRun , "IpAddress" =? _ccgPublicIp , "Type" =? _ccgType ]
gen/Network/AWS/EC2/CreateDhcpOptions.hs view
@@ -121,8 +121,8 @@ instance ToQuery CreateDhcpOptions where toQuery CreateDhcpOptions{..} = mconcat- [ "dhcpConfiguration" `toQueryList` _cdoDhcpConfigurations- , "dryRun" =? _cdoDryRun+ [ "DhcpConfiguration" `toQueryList` _cdoDhcpConfigurations+ , "DryRun" =? _cdoDryRun ] instance ToHeaders CreateDhcpOptions
gen/Network/AWS/EC2/CreateImage.hs view
@@ -154,12 +154,12 @@ instance ToQuery CreateImage where toQuery CreateImage{..} = mconcat- [ "blockDeviceMapping" `toQueryList` _ci1BlockDeviceMappings- , "description" =? _ci1Description- , "dryRun" =? _ci1DryRun- , "instanceId" =? _ci1InstanceId- , "name" =? _ci1Name- , "noReboot" =? _ci1NoReboot+ [ "BlockDeviceMapping" `toQueryList` _ci1BlockDeviceMappings+ , "Description" =? _ci1Description+ , "DryRun" =? _ci1DryRun+ , "InstanceId" =? _ci1InstanceId+ , "Name" =? _ci1Name+ , "NoReboot" =? _ci1NoReboot ] instance ToHeaders CreateImage
gen/Network/AWS/EC2/CreateInstanceExportTask.hs view
@@ -122,10 +122,10 @@ instance ToQuery CreateInstanceExportTask where toQuery CreateInstanceExportTask{..} = mconcat- [ "description" =? _cietDescription- , "exportToS3" =? _cietExportToS3Task- , "instanceId" =? _cietInstanceId- , "targetEnvironment" =? _cietTargetEnvironment+ [ "Description" =? _cietDescription+ , "ExportToS3" =? _cietExportToS3Task+ , "InstanceId" =? _cietInstanceId+ , "TargetEnvironment" =? _cietTargetEnvironment ] instance ToHeaders CreateInstanceExportTask
gen/Network/AWS/EC2/CreateInternetGateway.hs view
@@ -93,7 +93,7 @@ instance ToQuery CreateInternetGateway where toQuery CreateInternetGateway{..} = mconcat- [ "dryRun" =? _cigDryRun+ [ "DryRun" =? _cigDryRun ] instance ToHeaders CreateInternetGateway
gen/Network/AWS/EC2/CreateKeyPair.hs view
@@ -133,7 +133,7 @@ instance ToQuery CreateKeyPair where toQuery CreateKeyPair{..} = mconcat- [ "dryRun" =? _ckpDryRun+ [ "DryRun" =? _ckpDryRun , "KeyName" =? _ckpKeyName ]
gen/Network/AWS/EC2/CreateNetworkAcl.hs view
@@ -102,8 +102,8 @@ instance ToQuery CreateNetworkAcl where toQuery CreateNetworkAcl{..} = mconcat- [ "dryRun" =? _cnaDryRun- , "vpcId" =? _cnaVpcId+ [ "DryRun" =? _cnaDryRun+ , "VpcId" =? _cnaVpcId ] instance ToHeaders CreateNetworkAcl
gen/Network/AWS/EC2/CreateNetworkAclEntry.hs view
@@ -173,15 +173,15 @@ instance ToQuery CreateNetworkAclEntry where toQuery CreateNetworkAclEntry{..} = mconcat- [ "cidrBlock" =? _cnaeCidrBlock- , "dryRun" =? _cnaeDryRun- , "egress" =? _cnaeEgress+ [ "CidrBlock" =? _cnaeCidrBlock+ , "DryRun" =? _cnaeDryRun+ , "Egress" =? _cnaeEgress , "Icmp" =? _cnaeIcmpTypeCode- , "networkAclId" =? _cnaeNetworkAclId- , "portRange" =? _cnaePortRange- , "protocol" =? _cnaeProtocol- , "ruleAction" =? _cnaeRuleAction- , "ruleNumber" =? _cnaeRuleNumber+ , "NetworkAclId" =? _cnaeNetworkAclId+ , "PortRange" =? _cnaePortRange+ , "Protocol" =? _cnaeProtocol+ , "RuleAction" =? _cnaeRuleAction+ , "RuleNumber" =? _cnaeRuleNumber ] instance ToHeaders CreateNetworkAclEntry
gen/Network/AWS/EC2/CreateNetworkInterface.hs view
@@ -161,13 +161,13 @@ instance ToQuery CreateNetworkInterface where toQuery CreateNetworkInterface{..} = mconcat- [ "description" =? _cniDescription- , "dryRun" =? _cniDryRun+ [ "Description" =? _cniDescription+ , "DryRun" =? _cniDryRun , "SecurityGroupId" `toQueryList` _cniGroups- , "privateIpAddress" =? _cniPrivateIpAddress- , "privateIpAddresses" `toQueryList` _cniPrivateIpAddresses- , "secondaryPrivateIpAddressCount" =? _cniSecondaryPrivateIpAddressCount- , "subnetId" =? _cniSubnetId+ , "PrivateIpAddress" =? _cniPrivateIpAddress+ , "PrivateIpAddresses" `toQueryList` _cniPrivateIpAddresses+ , "SecondaryPrivateIpAddressCount" =? _cniSecondaryPrivateIpAddressCount+ , "SubnetId" =? _cniSubnetId ] instance ToHeaders CreateNetworkInterface
gen/Network/AWS/EC2/CreatePlacementGroup.hs view
@@ -100,9 +100,9 @@ instance ToQuery CreatePlacementGroup where toQuery CreatePlacementGroup{..} = mconcat- [ "dryRun" =? _cpgDryRun- , "groupName" =? _cpgGroupName- , "strategy" =? _cpgStrategy+ [ "DryRun" =? _cpgDryRun+ , "GroupName" =? _cpgGroupName+ , "Strategy" =? _cpgStrategy ] instance ToHeaders CreatePlacementGroup
gen/Network/AWS/EC2/CreateReservedInstancesListing.hs view
@@ -148,10 +148,10 @@ instance ToQuery CreateReservedInstancesListing where toQuery CreateReservedInstancesListing{..} = mconcat- [ "clientToken" =? _crilClientToken- , "instanceCount" =? _crilInstanceCount- , "priceSchedules" `toQueryList` _crilPriceSchedules- , "reservedInstancesId" =? _crilReservedInstancesId+ [ "ClientToken" =? _crilClientToken+ , "InstanceCount" =? _crilInstanceCount+ , "PriceSchedules" `toQueryList` _crilPriceSchedules+ , "ReservedInstancesId" =? _crilReservedInstancesId ] instance ToHeaders CreateReservedInstancesListing
gen/Network/AWS/EC2/CreateRoute.hs view
@@ -155,13 +155,13 @@ instance ToQuery CreateRoute where toQuery CreateRoute{..} = mconcat- [ "destinationCidrBlock" =? _crDestinationCidrBlock- , "dryRun" =? _crDryRun- , "gatewayId" =? _crGatewayId- , "instanceId" =? _crInstanceId- , "networkInterfaceId" =? _crNetworkInterfaceId- , "routeTableId" =? _crRouteTableId- , "vpcPeeringConnectionId" =? _crVpcPeeringConnectionId+ [ "DestinationCidrBlock" =? _crDestinationCidrBlock+ , "DryRun" =? _crDryRun+ , "GatewayId" =? _crGatewayId+ , "InstanceId" =? _crInstanceId+ , "NetworkInterfaceId" =? _crNetworkInterfaceId+ , "RouteTableId" =? _crRouteTableId+ , "VpcPeeringConnectionId" =? _crVpcPeeringConnectionId ] instance ToHeaders CreateRoute
gen/Network/AWS/EC2/CreateRouteTable.hs view
@@ -102,8 +102,8 @@ instance ToQuery CreateRouteTable where toQuery CreateRouteTable{..} = mconcat- [ "dryRun" =? _crtDryRun- , "vpcId" =? _crtVpcId+ [ "DryRun" =? _crtDryRun+ , "VpcId" =? _crtVpcId ] instance ToHeaders CreateRouteTable
gen/Network/AWS/EC2/CreateSecurityGroup.hs view
@@ -153,7 +153,7 @@ instance ToQuery CreateSecurityGroup where toQuery CreateSecurityGroup{..} = mconcat [ "GroupDescription" =? _csgDescription- , "dryRun" =? _csgDryRun+ , "DryRun" =? _csgDryRun , "GroupName" =? _csgGroupName , "VpcId" =? _csgVpcId ]
gen/Network/AWS/EC2/CreateSnapshot.hs view
@@ -245,7 +245,7 @@ instance ToQuery CreateSnapshot where toQuery CreateSnapshot{..} = mconcat [ "Description" =? _cs2Description- , "dryRun" =? _cs2DryRun+ , "DryRun" =? _cs2DryRun , "VolumeId" =? _cs2VolumeId ]
gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs view
@@ -112,9 +112,9 @@ instance ToQuery CreateSpotDatafeedSubscription where toQuery CreateSpotDatafeedSubscription{..} = mconcat- [ "bucket" =? _csdsBucket- , "dryRun" =? _csdsDryRun- , "prefix" =? _csdsPrefix+ [ "Bucket" =? _csdsBucket+ , "DryRun" =? _csdsDryRun+ , "Prefix" =? _csdsPrefix ] instance ToHeaders CreateSpotDatafeedSubscription
gen/Network/AWS/EC2/CreateSubnet.hs view
@@ -146,7 +146,7 @@ toQuery CreateSubnet{..} = mconcat [ "AvailabilityZone" =? _cs1AvailabilityZone , "CidrBlock" =? _cs1CidrBlock- , "dryRun" =? _cs1DryRun+ , "DryRun" =? _cs1DryRun , "VpcId" =? _cs1VpcId ]
gen/Network/AWS/EC2/CreateTags.hs view
@@ -99,7 +99,7 @@ instance ToQuery CreateTags where toQuery CreateTags{..} = mconcat- [ "dryRun" =? _ct1DryRun+ [ "DryRun" =? _ct1DryRun , "ResourceId" `toQueryList` _ct1Resources , "Tag" `toQueryList` _ct1Tags ]
gen/Network/AWS/EC2/CreateVolume.hs view
@@ -307,8 +307,8 @@ instance ToQuery CreateVolume where toQuery CreateVolume{..} = mconcat [ "AvailabilityZone" =? _cv1AvailabilityZone- , "dryRun" =? _cv1DryRun- , "encrypted" =? _cv1Encrypted+ , "DryRun" =? _cv1DryRun+ , "Encrypted" =? _cv1Encrypted , "Iops" =? _cv1Iops , "KmsKeyId" =? _cv1KmsKeyId , "Size" =? _cv1Size
gen/Network/AWS/EC2/CreateVpc.hs view
@@ -122,8 +122,8 @@ instance ToQuery CreateVpc where toQuery CreateVpc{..} = mconcat [ "CidrBlock" =? _cvCidrBlock- , "dryRun" =? _cvDryRun- , "instanceTenancy" =? _cvInstanceTenancy+ , "DryRun" =? _cvDryRun+ , "InstanceTenancy" =? _cvInstanceTenancy ] instance ToHeaders CreateVpc
gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs view
@@ -130,10 +130,10 @@ instance ToQuery CreateVpcPeeringConnection where toQuery CreateVpcPeeringConnection{..} = mconcat- [ "dryRun" =? _cvpcDryRun- , "peerOwnerId" =? _cvpcPeerOwnerId- , "peerVpcId" =? _cvpcPeerVpcId- , "vpcId" =? _cvpcVpcId+ [ "DryRun" =? _cvpcDryRun+ , "PeerOwnerId" =? _cvpcPeerOwnerId+ , "PeerVpcId" =? _cvpcPeerVpcId+ , "VpcId" =? _cvpcVpcId ] instance ToHeaders CreateVpcPeeringConnection
gen/Network/AWS/EC2/CreateVpnConnection.hs view
@@ -149,8 +149,8 @@ instance ToQuery CreateVpnConnection where toQuery CreateVpnConnection{..} = mconcat [ "CustomerGatewayId" =? _cvcCustomerGatewayId- , "dryRun" =? _cvcDryRun- , "options" =? _cvcOptions+ , "DryRun" =? _cvcDryRun+ , "Options" =? _cvcOptions , "Type" =? _cvcType , "VpnGatewayId" =? _cvcVpnGatewayId ]
gen/Network/AWS/EC2/CreateVpnGateway.hs view
@@ -114,7 +114,7 @@ instance ToQuery CreateVpnGateway where toQuery CreateVpnGateway{..} = mconcat [ "AvailabilityZone" =? _cvgAvailabilityZone- , "dryRun" =? _cvgDryRun+ , "DryRun" =? _cvgDryRun , "Type" =? _cvgType ]
gen/Network/AWS/EC2/DeleteCustomerGateway.hs view
@@ -88,7 +88,7 @@ instance ToQuery DeleteCustomerGateway where toQuery DeleteCustomerGateway{..} = mconcat [ "CustomerGatewayId" =? _dcg1CustomerGatewayId- , "dryRun" =? _dcg1DryRun+ , "DryRun" =? _dcg1DryRun ] instance ToHeaders DeleteCustomerGateway
gen/Network/AWS/EC2/DeleteDhcpOptions.hs view
@@ -90,7 +90,7 @@ instance ToQuery DeleteDhcpOptions where toQuery DeleteDhcpOptions{..} = mconcat [ "DhcpOptionsId" =? _ddo1DhcpOptionsId- , "dryRun" =? _ddo1DryRun+ , "DryRun" =? _ddo1DryRun ] instance ToHeaders DeleteDhcpOptions
gen/Network/AWS/EC2/DeleteInternetGateway.hs view
@@ -87,8 +87,8 @@ instance ToQuery DeleteInternetGateway where toQuery DeleteInternetGateway{..} = mconcat- [ "dryRun" =? _dig2DryRun- , "internetGatewayId" =? _dig2InternetGatewayId+ [ "DryRun" =? _dig2DryRun+ , "InternetGatewayId" =? _dig2InternetGatewayId ] instance ToHeaders DeleteInternetGateway
gen/Network/AWS/EC2/DeleteKeyPair.hs view
@@ -85,7 +85,7 @@ instance ToQuery DeleteKeyPair where toQuery DeleteKeyPair{..} = mconcat- [ "dryRun" =? _dkpDryRun+ [ "DryRun" =? _dkpDryRun , "KeyName" =? _dkpKeyName ]
gen/Network/AWS/EC2/DeleteNetworkAcl.hs view
@@ -86,8 +86,8 @@ instance ToQuery DeleteNetworkAcl where toQuery DeleteNetworkAcl{..} = mconcat- [ "dryRun" =? _dnaDryRun- , "networkAclId" =? _dnaNetworkAclId+ [ "DryRun" =? _dnaDryRun+ , "NetworkAclId" =? _dnaNetworkAclId ] instance ToHeaders DeleteNetworkAcl
gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs view
@@ -106,10 +106,10 @@ instance ToQuery DeleteNetworkAclEntry where toQuery DeleteNetworkAclEntry{..} = mconcat- [ "dryRun" =? _dnaeDryRun- , "egress" =? _dnaeEgress- , "networkAclId" =? _dnaeNetworkAclId- , "ruleNumber" =? _dnaeRuleNumber+ [ "DryRun" =? _dnaeDryRun+ , "Egress" =? _dnaeEgress+ , "NetworkAclId" =? _dnaeNetworkAclId+ , "RuleNumber" =? _dnaeRuleNumber ] instance ToHeaders DeleteNetworkAclEntry
gen/Network/AWS/EC2/DeleteNetworkInterface.hs view
@@ -87,8 +87,8 @@ instance ToQuery DeleteNetworkInterface where toQuery DeleteNetworkInterface{..} = mconcat- [ "dryRun" =? _dni2DryRun- , "networkInterfaceId" =? _dni2NetworkInterfaceId+ [ "DryRun" =? _dni2DryRun+ , "NetworkInterfaceId" =? _dni2NetworkInterfaceId ] instance ToHeaders DeleteNetworkInterface
gen/Network/AWS/EC2/DeletePlacementGroup.hs view
@@ -87,8 +87,8 @@ instance ToQuery DeletePlacementGroup where toQuery DeletePlacementGroup{..} = mconcat- [ "dryRun" =? _dpgDryRun- , "groupName" =? _dpgGroupName+ [ "DryRun" =? _dpgDryRun+ , "GroupName" =? _dpgGroupName ] instance ToHeaders DeletePlacementGroup
gen/Network/AWS/EC2/DeleteRoute.hs view
@@ -97,9 +97,9 @@ instance ToQuery DeleteRoute where toQuery DeleteRoute{..} = mconcat- [ "destinationCidrBlock" =? _drDestinationCidrBlock- , "dryRun" =? _drDryRun- , "routeTableId" =? _drRouteTableId+ [ "DestinationCidrBlock" =? _drDestinationCidrBlock+ , "DryRun" =? _drDryRun+ , "RouteTableId" =? _drRouteTableId ] instance ToHeaders DeleteRoute
gen/Network/AWS/EC2/DeleteRouteTable.hs view
@@ -86,8 +86,8 @@ instance ToQuery DeleteRouteTable where toQuery DeleteRouteTable{..} = mconcat- [ "dryRun" =? _drt1DryRun- , "routeTableId" =? _drt1RouteTableId+ [ "DryRun" =? _drt1DryRun+ , "RouteTableId" =? _drt1RouteTableId ] instance ToHeaders DeleteRouteTable
gen/Network/AWS/EC2/DeleteSecurityGroup.hs view
@@ -98,7 +98,7 @@ instance ToQuery DeleteSecurityGroup where toQuery DeleteSecurityGroup{..} = mconcat- [ "dryRun" =? _dsgDryRun+ [ "DryRun" =? _dsgDryRun , "GroupId" =? _dsgGroupId , "GroupName" =? _dsgGroupName ]
gen/Network/AWS/EC2/DeleteSnapshot.hs view
@@ -98,7 +98,7 @@ instance ToQuery DeleteSnapshot where toQuery DeleteSnapshot{..} = mconcat- [ "dryRun" =? _ds3DryRun+ [ "DryRun" =? _ds3DryRun , "SnapshotId" =? _ds3SnapshotId ]
gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs view
@@ -75,7 +75,7 @@ instance ToQuery DeleteSpotDatafeedSubscription where toQuery DeleteSpotDatafeedSubscription{..} = mconcat- [ "dryRun" =? _dsds1DryRun+ [ "DryRun" =? _dsds1DryRun ] instance ToHeaders DeleteSpotDatafeedSubscription
gen/Network/AWS/EC2/DeleteSubnet.hs view
@@ -86,7 +86,7 @@ instance ToQuery DeleteSubnet where toQuery DeleteSubnet{..} = mconcat- [ "dryRun" =? _ds2DryRun+ [ "DryRun" =? _ds2DryRun , "SubnetId" =? _ds2SubnetId ]
gen/Network/AWS/EC2/DeleteTags.hs view
@@ -99,9 +99,9 @@ instance ToQuery DeleteTags where toQuery DeleteTags{..} = mconcat- [ "dryRun" =? _dt1DryRun- , "resourceId" `toQueryList` _dt1Resources- , "tag" `toQueryList` _dt1Tags+ [ "DryRun" =? _dt1DryRun+ , "ResourceId" `toQueryList` _dt1Resources+ , "Tag" `toQueryList` _dt1Tags ] instance ToHeaders DeleteTags
gen/Network/AWS/EC2/DeleteVolume.hs view
@@ -90,7 +90,7 @@ instance ToQuery DeleteVolume where toQuery DeleteVolume{..} = mconcat- [ "dryRun" =? _dv4DryRun+ [ "DryRun" =? _dv4DryRun , "VolumeId" =? _dv4VolumeId ]
gen/Network/AWS/EC2/DeleteVpc.hs view
@@ -89,7 +89,7 @@ instance ToQuery DeleteVpc where toQuery DeleteVpc{..} = mconcat- [ "dryRun" =? _dv3DryRun+ [ "DryRun" =? _dv3DryRun , "VpcId" =? _dv3VpcId ]
gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs view
@@ -104,8 +104,8 @@ instance ToQuery DeleteVpcPeeringConnection where toQuery DeleteVpcPeeringConnection{..} = mconcat- [ "dryRun" =? _dvpcDryRun- , "vpcPeeringConnectionId" =? _dvpcVpcPeeringConnectionId+ [ "DryRun" =? _dvpcDryRun+ , "VpcPeeringConnectionId" =? _dvpcVpcPeeringConnectionId ] instance ToHeaders DeleteVpcPeeringConnection
gen/Network/AWS/EC2/DeleteVpnConnection.hs view
@@ -95,7 +95,7 @@ instance ToQuery DeleteVpnConnection where toQuery DeleteVpnConnection{..} = mconcat- [ "dryRun" =? _dvcDryRun+ [ "DryRun" =? _dvcDryRun , "VpnConnectionId" =? _dvcVpnConnectionId ]
gen/Network/AWS/EC2/DeleteVpnGateway.hs view
@@ -89,7 +89,7 @@ instance ToQuery DeleteVpnGateway where toQuery DeleteVpnGateway{..} = mconcat- [ "dryRun" =? _dvgDryRun+ [ "DryRun" =? _dvgDryRun , "VpnGatewayId" =? _dvgVpnGatewayId ]
gen/Network/AWS/EC2/DeregisterImage.hs view
@@ -88,7 +88,7 @@ instance ToQuery DeregisterImage where toQuery DeregisterImage{..} = mconcat- [ "dryRun" =? _diDryRun+ [ "DryRun" =? _diDryRun , "ImageId" =? _diImageId ]
gen/Network/AWS/EC2/DescribeAccountAttributes.hs view
@@ -121,8 +121,8 @@ instance ToQuery DescribeAccountAttributes where toQuery DescribeAccountAttributes{..} = mconcat- [ "attributeName" `toQueryList` _daaAttributeNames- , "dryRun" =? _daaDryRun+ [ "AttributeName" `toQueryList` _daaAttributeNames+ , "DryRun" =? _daaDryRun ] instance ToHeaders DescribeAccountAttributes
gen/Network/AWS/EC2/DescribeAddresses.hs view
@@ -146,7 +146,7 @@ instance ToQuery DescribeAddresses where toQuery DescribeAddresses{..} = mconcat [ "AllocationId" `toQueryList` _daAllocationIds- , "dryRun" =? _daDryRun+ , "DryRun" =? _daDryRun , "Filter" `toQueryList` _daFilters , "PublicIp" `toQueryList` _daPublicIps ]
gen/Network/AWS/EC2/DescribeAvailabilityZones.hs view
@@ -125,7 +125,7 @@ instance ToQuery DescribeAvailabilityZones where toQuery DescribeAvailabilityZones{..} = mconcat- [ "dryRun" =? _dazDryRun+ [ "DryRun" =? _dazDryRun , "Filter" `toQueryList` _dazFilters , "ZoneName" `toQueryList` _dazZoneNames ]
gen/Network/AWS/EC2/DescribeBundleTasks.hs view
@@ -140,7 +140,7 @@ instance ToQuery DescribeBundleTasks where toQuery DescribeBundleTasks{..} = mconcat [ "BundleId" `toQueryList` _dbtBundleIds- , "dryRun" =? _dbtDryRun+ , "DryRun" =? _dbtDryRun , "Filter" `toQueryList` _dbtFilters ]
gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs view
@@ -166,11 +166,11 @@ instance ToQuery DescribeClassicLinkInstances where toQuery DescribeClassicLinkInstances{..} = mconcat- [ "dryRun" =? _dcliDryRun+ [ "DryRun" =? _dcliDryRun , "Filter" `toQueryList` _dcliFilters , "InstanceId" `toQueryList` _dcliInstanceIds- , "maxResults" =? _dcliMaxResults- , "nextToken" =? _dcliNextToken+ , "MaxResults" =? _dcliMaxResults+ , "NextToken" =? _dcliNextToken ] instance ToHeaders DescribeClassicLinkInstances
gen/Network/AWS/EC2/DescribeConversionTasks.hs view
@@ -109,9 +109,9 @@ instance ToQuery DescribeConversionTasks where toQuery DescribeConversionTasks{..} = mconcat- [ "conversionTaskId" `toQueryList` _dctConversionTaskIds- , "dryRun" =? _dctDryRun- , "filter" `toQueryList` _dctFilters+ [ "ConversionTaskId" `toQueryList` _dctConversionTaskIds+ , "DryRun" =? _dctDryRun+ , "Filter" `toQueryList` _dctFilters ] instance ToHeaders DescribeConversionTasks
gen/Network/AWS/EC2/DescribeCustomerGateways.hs view
@@ -144,7 +144,7 @@ instance ToQuery DescribeCustomerGateways where toQuery DescribeCustomerGateways{..} = mconcat [ "CustomerGatewayId" `toQueryList` _dcgCustomerGatewayIds- , "dryRun" =? _dcgDryRun+ , "DryRun" =? _dcgDryRun , "Filter" `toQueryList` _dcgFilters ]
gen/Network/AWS/EC2/DescribeDhcpOptions.hs view
@@ -135,7 +135,7 @@ instance ToQuery DescribeDhcpOptions where toQuery DescribeDhcpOptions{..} = mconcat [ "DhcpOptionsId" `toQueryList` _ddoDhcpOptionsIds- , "dryRun" =? _ddoDryRun+ , "DryRun" =? _ddoDryRun , "Filter" `toQueryList` _ddoFilters ]
gen/Network/AWS/EC2/DescribeExportTasks.hs view
@@ -89,7 +89,7 @@ instance ToQuery DescribeExportTasks where toQuery DescribeExportTasks{..} = mconcat- [ "exportTaskId" `toQueryList` _detExportTaskIds+ [ "ExportTaskId" `toQueryList` _detExportTaskIds ] instance ToHeaders DescribeExportTasks
gen/Network/AWS/EC2/DescribeImageAttribute.hs view
@@ -178,7 +178,7 @@ instance ToQuery DescribeImageAttribute where toQuery DescribeImageAttribute{..} = mconcat [ "Attribute" =? _dia1Attribute- , "dryRun" =? _dia1DryRun+ , "DryRun" =? _dia1DryRun , "ImageId" =? _dia1ImageId ]
gen/Network/AWS/EC2/DescribeImages.hs view
@@ -214,7 +214,7 @@ instance ToQuery DescribeImages where toQuery DescribeImages{..} = mconcat- [ "dryRun" =? _di2DryRun+ [ "DryRun" =? _di2DryRun , "ExecutableBy" `toQueryList` _di2ExecutableUsers , "Filter" `toQueryList` _di2Filters , "ImageId" `toQueryList` _di2ImageIds
gen/Network/AWS/EC2/DescribeInstanceAttribute.hs view
@@ -244,9 +244,9 @@ instance ToQuery DescribeInstanceAttribute where toQuery DescribeInstanceAttribute{..} = mconcat- [ "attribute" =? _diaAttribute- , "dryRun" =? _diaDryRun- , "instanceId" =? _diaInstanceId+ [ "Attribute" =? _diaAttribute+ , "DryRun" =? _diaDryRun+ , "InstanceId" =? _diaInstanceId ] instance ToHeaders DescribeInstanceAttribute
gen/Network/AWS/EC2/DescribeInstanceStatus.hs view
@@ -244,9 +244,9 @@ instance ToQuery DescribeInstanceStatus where toQuery DescribeInstanceStatus{..} = mconcat- [ "dryRun" =? _disDryRun+ [ "DryRun" =? _disDryRun , "Filter" `toQueryList` _disFilters- , "includeAllInstances" =? _disIncludeAllInstances+ , "IncludeAllInstances" =? _disIncludeAllInstances , "InstanceId" `toQueryList` _disInstanceIds , "MaxResults" =? _disMaxResults , "NextToken" =? _disNextToken@@ -268,6 +268,6 @@ instance AWSPager DescribeInstanceStatus where page rq rs- | stop (rq ^. disNextToken) = Nothing+ | stop (rs ^. disrNextToken) = Nothing | otherwise = (\x -> rq & disNextToken ?~ x) <$> (rs ^. disrNextToken)
gen/Network/AWS/EC2/DescribeInstances.hs view
@@ -372,11 +372,11 @@ instance ToQuery DescribeInstances where toQuery DescribeInstances{..} = mconcat- [ "dryRun" =? _di1DryRun+ [ "DryRun" =? _di1DryRun , "Filter" `toQueryList` _di1Filters , "InstanceId" `toQueryList` _di1InstanceIds- , "maxResults" =? _di1MaxResults- , "nextToken" =? _di1NextToken+ , "MaxResults" =? _di1MaxResults+ , "NextToken" =? _di1NextToken ] instance ToHeaders DescribeInstances@@ -395,6 +395,6 @@ instance AWSPager DescribeInstances where page rq rs- | stop (rq ^. di1NextToken) = Nothing+ | stop (rs ^. dirNextToken) = Nothing | otherwise = (\x -> rq & di1NextToken ?~ x) <$> (rs ^. dirNextToken)
gen/Network/AWS/EC2/DescribeInternetGateways.hs view
@@ -135,9 +135,9 @@ instance ToQuery DescribeInternetGateways where toQuery DescribeInternetGateways{..} = mconcat- [ "dryRun" =? _dig1DryRun+ [ "DryRun" =? _dig1DryRun , "Filter" `toQueryList` _dig1Filters- , "internetGatewayId" `toQueryList` _dig1InternetGatewayIds+ , "InternetGatewayId" `toQueryList` _dig1InternetGatewayIds ] instance ToHeaders DescribeInternetGateways
gen/Network/AWS/EC2/DescribeKeyPairs.hs view
@@ -117,7 +117,7 @@ instance ToQuery DescribeKeyPairs where toQuery DescribeKeyPairs{..} = mconcat- [ "dryRun" =? _dkp1DryRun+ [ "DryRun" =? _dkp1DryRun , "Filter" `toQueryList` _dkp1Filters , "KeyName" `toQueryList` _dkp1KeyNames ]
gen/Network/AWS/EC2/DescribeNetworkAcls.hs view
@@ -162,7 +162,7 @@ instance ToQuery DescribeNetworkAcls where toQuery DescribeNetworkAcls{..} = mconcat- [ "dryRun" =? _dna1DryRun+ [ "DryRun" =? _dna1DryRun , "Filter" `toQueryList` _dna1Filters , "NetworkAclId" `toQueryList` _dna1NetworkAclIds ]
gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs view
@@ -148,9 +148,9 @@ instance ToQuery DescribeNetworkInterfaceAttribute where toQuery DescribeNetworkInterfaceAttribute{..} = mconcat- [ "attribute" =? _dniaAttribute- , "dryRun" =? _dniaDryRun- , "networkInterfaceId" =? _dniaNetworkInterfaceId+ [ "Attribute" =? _dniaAttribute+ , "DryRun" =? _dniaDryRun+ , "NetworkInterfaceId" =? _dniaNetworkInterfaceId ] instance ToHeaders DescribeNetworkInterfaceAttribute
gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs view
@@ -214,8 +214,8 @@ instance ToQuery DescribeNetworkInterfaces where toQuery DescribeNetworkInterfaces{..} = mconcat- [ "dryRun" =? _dni1DryRun- , "filter" `toQueryList` _dni1Filters+ [ "DryRun" =? _dni1DryRun+ , "Filter" `toQueryList` _dni1Filters , "NetworkInterfaceId" `toQueryList` _dni1NetworkInterfaceIds ]
gen/Network/AWS/EC2/DescribePlacementGroups.hs view
@@ -121,9 +121,9 @@ instance ToQuery DescribePlacementGroups where toQuery DescribePlacementGroups{..} = mconcat- [ "dryRun" =? _dpg1DryRun+ [ "DryRun" =? _dpg1DryRun , "Filter" `toQueryList` _dpg1Filters- , "groupName" `toQueryList` _dpg1GroupNames+ , "GroupName" `toQueryList` _dpg1GroupNames ] instance ToHeaders DescribePlacementGroups
gen/Network/AWS/EC2/DescribeRegions.hs view
@@ -115,7 +115,7 @@ instance ToQuery DescribeRegions where toQuery DescribeRegions{..} = mconcat- [ "dryRun" =? _dr1DryRun+ [ "DryRun" =? _dr1DryRun , "Filter" `toQueryList` _dr1Filters , "RegionName" `toQueryList` _dr1RegionNames ]
gen/Network/AWS/EC2/DescribeReservedInstances.hs view
@@ -169,9 +169,9 @@ instance ToQuery DescribeReservedInstances where toQuery DescribeReservedInstances{..} = mconcat- [ "dryRun" =? _driDryRun+ [ "DryRun" =? _driDryRun , "Filter" `toQueryList` _driFilters- , "offeringType" =? _driOfferingType+ , "OfferingType" =? _driOfferingType , "ReservedInstancesId" `toQueryList` _driReservedInstancesIds ]
gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs view
@@ -144,9 +144,9 @@ instance ToQuery DescribeReservedInstancesListings where toQuery DescribeReservedInstancesListings{..} = mconcat- [ "filters" `toQueryList` _drilFilters- , "reservedInstancesId" =? _drilReservedInstancesId- , "reservedInstancesListingId" =? _drilReservedInstancesListingId+ [ "Filters" `toQueryList` _drilFilters+ , "ReservedInstancesId" =? _drilReservedInstancesId+ , "ReservedInstancesListingId" =? _drilReservedInstancesListingId ] instance ToHeaders DescribeReservedInstancesListings
gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs view
@@ -164,7 +164,7 @@ instance ToQuery DescribeReservedInstancesModifications where toQuery DescribeReservedInstancesModifications{..} = mconcat [ "Filter" `toQueryList` _drimFilters- , "nextToken" =? _drimNextToken+ , "NextToken" =? _drimNextToken , "ReservedInstancesModificationId" `toQueryList` _drimReservedInstancesModificationIds ] @@ -184,6 +184,6 @@ instance AWSPager DescribeReservedInstancesModifications where page rq rs- | stop (rq ^. drimNextToken) = Nothing+ | stop (rs ^. drimrNextToken) = Nothing | otherwise = (\x -> rq & drimNextToken ?~ x) <$> (rs ^. drimrNextToken)
gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs view
@@ -273,17 +273,17 @@ instance ToQuery DescribeReservedInstancesOfferings where toQuery DescribeReservedInstancesOfferings{..} = mconcat [ "AvailabilityZone" =? _drioAvailabilityZone- , "dryRun" =? _drioDryRun+ , "DryRun" =? _drioDryRun , "Filter" `toQueryList` _drioFilters , "IncludeMarketplace" =? _drioIncludeMarketplace- , "instanceTenancy" =? _drioInstanceTenancy+ , "InstanceTenancy" =? _drioInstanceTenancy , "InstanceType" =? _drioInstanceType , "MaxDuration" =? _drioMaxDuration , "MaxInstanceCount" =? _drioMaxInstanceCount- , "maxResults" =? _drioMaxResults+ , "MaxResults" =? _drioMaxResults , "MinDuration" =? _drioMinDuration- , "nextToken" =? _drioNextToken- , "offeringType" =? _drioOfferingType+ , "NextToken" =? _drioNextToken+ , "OfferingType" =? _drioOfferingType , "ProductDescription" =? _drioProductDescription , "ReservedInstancesOfferingId" `toQueryList` _drioReservedInstancesOfferingIds ]@@ -304,6 +304,6 @@ instance AWSPager DescribeReservedInstancesOfferings where page rq rs- | stop (rq ^. drioNextToken) = Nothing+ | stop (rs ^. driorNextToken) = Nothing | otherwise = (\x -> rq & drioNextToken ?~ x) <$> (rs ^. driorNextToken)
gen/Network/AWS/EC2/DescribeRouteTables.hs view
@@ -163,7 +163,7 @@ instance ToQuery DescribeRouteTables where toQuery DescribeRouteTables{..} = mconcat- [ "dryRun" =? _drt2DryRun+ [ "DryRun" =? _drt2DryRun , "Filter" `toQueryList` _drt2Filters , "RouteTableId" `toQueryList` _drt2RouteTableIds ]
gen/Network/AWS/EC2/DescribeSecurityGroups.hs view
@@ -161,7 +161,7 @@ instance ToQuery DescribeSecurityGroups where toQuery DescribeSecurityGroups{..} = mconcat- [ "dryRun" =? _dsg1DryRun+ [ "DryRun" =? _dsg1DryRun , "Filter" `toQueryList` _dsg1Filters , "GroupId" `toQueryList` _dsg1GroupIds , "GroupName" `toQueryList` _dsg1GroupNames
gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs view
@@ -135,7 +135,7 @@ instance ToQuery DescribeSnapshotAttribute where toQuery DescribeSnapshotAttribute{..} = mconcat [ "Attribute" =? _dsaAttribute- , "dryRun" =? _dsaDryRun+ , "DryRun" =? _dsaDryRun , "SnapshotId" =? _dsaSnapshotId ]
gen/Network/AWS/EC2/DescribeSnapshots.hs view
@@ -194,7 +194,7 @@ instance ToQuery DescribeSnapshots where toQuery DescribeSnapshots{..} = mconcat- [ "dryRun" =? _ds1DryRun+ [ "DryRun" =? _ds1DryRun , "Filter" `toQueryList` _ds1Filters , "Owner" `toQueryList` _ds1OwnerIds , "RestorableBy" `toQueryList` _ds1RestorableByUserIds
gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs view
@@ -91,7 +91,7 @@ instance ToQuery DescribeSpotDatafeedSubscription where toQuery DescribeSpotDatafeedSubscription{..} = mconcat- [ "dryRun" =? _dsdsDryRun+ [ "DryRun" =? _dsdsDryRun ] instance ToHeaders DescribeSpotDatafeedSubscription
gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs view
@@ -231,7 +231,7 @@ instance ToQuery DescribeSpotInstanceRequests where toQuery DescribeSpotInstanceRequests{..} = mconcat- [ "dryRun" =? _dsirDryRun+ [ "DryRun" =? _dsirDryRun , "Filter" `toQueryList` _dsirFilters , "SpotInstanceRequestId" `toQueryList` _dsirSpotInstanceRequestIds ]
gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs view
@@ -213,15 +213,15 @@ instance ToQuery DescribeSpotPriceHistory where toQuery DescribeSpotPriceHistory{..} = mconcat- [ "availabilityZone" =? _dsphAvailabilityZone- , "dryRun" =? _dsphDryRun- , "endTime" =? _dsphEndTime+ [ "AvailabilityZone" =? _dsphAvailabilityZone+ , "DryRun" =? _dsphDryRun+ , "EndTime" =? _dsphEndTime , "Filter" `toQueryList` _dsphFilters , "InstanceType" `toQueryList` _dsphInstanceTypes- , "maxResults" =? _dsphMaxResults- , "nextToken" =? _dsphNextToken+ , "MaxResults" =? _dsphMaxResults+ , "NextToken" =? _dsphNextToken , "ProductDescription" `toQueryList` _dsphProductDescriptions- , "startTime" =? _dsphStartTime+ , "StartTime" =? _dsphStartTime ] instance ToHeaders DescribeSpotPriceHistory@@ -240,6 +240,6 @@ instance AWSPager DescribeSpotPriceHistory where page rq rs- | stop (rq ^. dsphNextToken) = Nothing+ | stop (rs ^. dsphrNextToken) = Nothing | otherwise = (\x -> rq & dsphNextToken ?~ x) <$> (rs ^. dsphrNextToken)
gen/Network/AWS/EC2/DescribeSubnets.hs view
@@ -144,7 +144,7 @@ instance ToQuery DescribeSubnets where toQuery DescribeSubnets{..} = mconcat- [ "dryRun" =? _dsDryRun+ [ "DryRun" =? _dsDryRun , "Filter" `toQueryList` _dsFilters , "SubnetId" `toQueryList` _dsSubnetIds ]
gen/Network/AWS/EC2/DescribeTags.hs view
@@ -143,10 +143,10 @@ instance ToQuery DescribeTags where toQuery DescribeTags{..} = mconcat- [ "dryRun" =? _dtDryRun+ [ "DryRun" =? _dtDryRun , "Filter" `toQueryList` _dtFilters- , "maxResults" =? _dtMaxResults- , "nextToken" =? _dtNextToken+ , "MaxResults" =? _dtMaxResults+ , "NextToken" =? _dtNextToken ] instance ToHeaders DescribeTags@@ -165,6 +165,6 @@ instance AWSPager DescribeTags where page rq rs- | stop (rq ^. dtNextToken) = Nothing+ | stop (rs ^. dtrNextToken) = Nothing | otherwise = (\x -> rq & dtNextToken ?~ x) <$> (rs ^. dtrNextToken)
gen/Network/AWS/EC2/DescribeVolumeAttribute.hs view
@@ -130,7 +130,7 @@ instance ToQuery DescribeVolumeAttribute where toQuery DescribeVolumeAttribute{..} = mconcat [ "Attribute" =? _dvaAttribute- , "dryRun" =? _dvaDryRun+ , "DryRun" =? _dvaDryRun , "VolumeId" =? _dvaVolumeId ]
gen/Network/AWS/EC2/DescribeVolumeStatus.hs view
@@ -203,7 +203,7 @@ instance ToQuery DescribeVolumeStatus where toQuery DescribeVolumeStatus{..} = mconcat- [ "dryRun" =? _dvsDryRun+ [ "DryRun" =? _dvsDryRun , "Filter" `toQueryList` _dvsFilters , "MaxResults" =? _dvsMaxResults , "NextToken" =? _dvsNextToken@@ -226,6 +226,6 @@ instance AWSPager DescribeVolumeStatus where page rq rs- | stop (rq ^. dvsNextToken) = Nothing+ | stop (rs ^. dvsrNextToken) = Nothing | otherwise = (\x -> rq & dvsNextToken ?~ x) <$> (rs ^. dvsrNextToken)
gen/Network/AWS/EC2/DescribeVolumes.hs view
@@ -201,10 +201,10 @@ instance ToQuery DescribeVolumes where toQuery DescribeVolumes{..} = mconcat- [ "dryRun" =? _dv2DryRun+ [ "DryRun" =? _dv2DryRun , "Filter" `toQueryList` _dv2Filters- , "maxResults" =? _dv2MaxResults- , "nextToken" =? _dv2NextToken+ , "MaxResults" =? _dv2MaxResults+ , "NextToken" =? _dv2NextToken , "VolumeId" `toQueryList` _dv2VolumeIds ]
gen/Network/AWS/EC2/DescribeVpcAttribute.hs view
@@ -133,7 +133,7 @@ instance ToQuery DescribeVpcAttribute where toQuery DescribeVpcAttribute{..} = mconcat [ "Attribute" =? _dva1Attribute- , "dryRun" =? _dva1DryRun+ , "DryRun" =? _dva1DryRun , "VpcId" =? _dva1VpcId ]
gen/Network/AWS/EC2/DescribeVpcClassicLink.hs view
@@ -125,7 +125,7 @@ instance ToQuery DescribeVpcClassicLink where toQuery DescribeVpcClassicLink{..} = mconcat- [ "dryRun" =? _dvclDryRun+ [ "DryRun" =? _dvclDryRun , "Filter" `toQueryList` _dvclFilters , "VpcId" `toQueryList` _dvclVpcIds ]
gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs view
@@ -155,7 +155,7 @@ instance ToQuery DescribeVpcPeeringConnections where toQuery DescribeVpcPeeringConnections{..} = mconcat- [ "dryRun" =? _dvpc1DryRun+ [ "DryRun" =? _dvpc1DryRun , "Filter" `toQueryList` _dvpc1Filters , "VpcPeeringConnectionId" `toQueryList` _dvpc1VpcPeeringConnectionIds ]
gen/Network/AWS/EC2/DescribeVpcs.hs view
@@ -136,7 +136,7 @@ instance ToQuery DescribeVpcs where toQuery DescribeVpcs{..} = mconcat- [ "dryRun" =? _dv1DryRun+ [ "DryRun" =? _dv1DryRun , "Filter" `toQueryList` _dv1Filters , "VpcId" `toQueryList` _dv1VpcIds ]
gen/Network/AWS/EC2/DescribeVpnConnections.hs view
@@ -155,7 +155,7 @@ instance ToQuery DescribeVpnConnections where toQuery DescribeVpnConnections{..} = mconcat- [ "dryRun" =? _dvc1DryRun+ [ "DryRun" =? _dvc1DryRun , "Filter" `toQueryList` _dvc1Filters , "VpnConnectionId" `toQueryList` _dvc1VpnConnectionIds ]
gen/Network/AWS/EC2/DescribeVpnGateways.hs view
@@ -142,7 +142,7 @@ instance ToQuery DescribeVpnGateways where toQuery DescribeVpnGateways{..} = mconcat- [ "dryRun" =? _dvg2DryRun+ [ "DryRun" =? _dvg2DryRun , "Filter" `toQueryList` _dvg2Filters , "VpnGatewayId" `toQueryList` _dvg2VpnGatewayIds ]
gen/Network/AWS/EC2/DetachClassicLinkVpc.hs view
@@ -111,9 +111,9 @@ instance ToQuery DetachClassicLinkVpc where toQuery DetachClassicLinkVpc{..} = mconcat- [ "dryRun" =? _dclvDryRun- , "instanceId" =? _dclvInstanceId- , "vpcId" =? _dclvVpcId+ [ "DryRun" =? _dclvDryRun+ , "InstanceId" =? _dclvInstanceId+ , "VpcId" =? _dclvVpcId ] instance ToHeaders DetachClassicLinkVpc
gen/Network/AWS/EC2/DetachInternetGateway.hs view
@@ -98,9 +98,9 @@ instance ToQuery DetachInternetGateway where toQuery DetachInternetGateway{..} = mconcat- [ "dryRun" =? _digDryRun- , "internetGatewayId" =? _digInternetGatewayId- , "vpcId" =? _digVpcId+ [ "DryRun" =? _digDryRun+ , "InternetGatewayId" =? _digInternetGatewayId+ , "VpcId" =? _digVpcId ] instance ToHeaders DetachInternetGateway
gen/Network/AWS/EC2/DetachNetworkInterface.hs view
@@ -94,9 +94,9 @@ instance ToQuery DetachNetworkInterface where toQuery DetachNetworkInterface{..} = mconcat- [ "attachmentId" =? _dniAttachmentId- , "dryRun" =? _dniDryRun- , "force" =? _dniForce+ [ "AttachmentId" =? _dniAttachmentId+ , "DryRun" =? _dniDryRun+ , "Force" =? _dniForce ] instance ToHeaders DetachNetworkInterface
gen/Network/AWS/EC2/DetachVolume.hs view
@@ -191,7 +191,7 @@ instance ToQuery DetachVolume where toQuery DetachVolume{..} = mconcat [ "Device" =? _dvDevice- , "dryRun" =? _dvDryRun+ , "DryRun" =? _dvDryRun , "Force" =? _dvForce , "InstanceId" =? _dvInstanceId , "VolumeId" =? _dvVolumeId
gen/Network/AWS/EC2/DetachVpnGateway.hs view
@@ -102,7 +102,7 @@ instance ToQuery DetachVpnGateway where toQuery DetachVpnGateway{..} = mconcat- [ "dryRun" =? _dvg1DryRun+ [ "DryRun" =? _dvg1DryRun , "VpcId" =? _dvg1VpcId , "VpnGatewayId" =? _dvg1VpnGatewayId ]
gen/Network/AWS/EC2/DisableVpcClassicLink.hs view
@@ -100,8 +100,8 @@ instance ToQuery DisableVpcClassicLink where toQuery DisableVpcClassicLink{..} = mconcat- [ "dryRun" =? _dvcl1DryRun- , "vpcId" =? _dvcl1VpcId+ [ "DryRun" =? _dvcl1DryRun+ , "VpcId" =? _dvcl1VpcId ] instance ToHeaders DisableVpcClassicLink
gen/Network/AWS/EC2/DisassociateAddress.hs view
@@ -101,7 +101,7 @@ instance ToQuery DisassociateAddress where toQuery DisassociateAddress{..} = mconcat [ "AssociationId" =? _da1AssociationId- , "dryRun" =? _da1DryRun+ , "DryRun" =? _da1DryRun , "PublicIp" =? _da1PublicIp ]
gen/Network/AWS/EC2/DisassociateRouteTable.hs view
@@ -90,8 +90,8 @@ instance ToQuery DisassociateRouteTable where toQuery DisassociateRouteTable{..} = mconcat- [ "associationId" =? _drtAssociationId- , "dryRun" =? _drtDryRun+ [ "AssociationId" =? _drtAssociationId+ , "DryRun" =? _drtDryRun ] instance ToHeaders DisassociateRouteTable
gen/Network/AWS/EC2/EnableVolumeIO.hs view
@@ -86,8 +86,8 @@ instance ToQuery EnableVolumeIO where toQuery EnableVolumeIO{..} = mconcat- [ "dryRun" =? _evioDryRun- , "volumeId" =? _evioVolumeId+ [ "DryRun" =? _evioDryRun+ , "VolumeId" =? _evioVolumeId ] instance ToHeaders EnableVolumeIO
gen/Network/AWS/EC2/EnableVpcClassicLink.hs view
@@ -104,8 +104,8 @@ instance ToQuery EnableVpcClassicLink where toQuery EnableVpcClassicLink{..} = mconcat- [ "dryRun" =? _evclDryRun- , "vpcId" =? _evclVpcId+ [ "DryRun" =? _evclDryRun+ , "VpcId" =? _evclVpcId ] instance ToHeaders EnableVpcClassicLink
gen/Network/AWS/EC2/GetConsoleOutput.hs view
@@ -134,7 +134,7 @@ instance ToQuery GetConsoleOutput where toQuery GetConsoleOutput{..} = mconcat- [ "dryRun" =? _gcoDryRun+ [ "DryRun" =? _gcoDryRun , "InstanceId" =? _gcoInstanceId ]
gen/Network/AWS/EC2/GetPasswordData.hs view
@@ -129,7 +129,7 @@ instance ToQuery GetPasswordData where toQuery GetPasswordData{..} = mconcat- [ "dryRun" =? _gpdDryRun+ [ "DryRun" =? _gpdDryRun , "InstanceId" =? _gpdInstanceId ]
gen/Network/AWS/EC2/ImportInstance.hs view
@@ -130,11 +130,11 @@ instance ToQuery ImportInstance where toQuery ImportInstance{..} = mconcat- [ "description" =? _iiDescription- , "diskImage" `toQueryList` _iiDiskImages- , "dryRun" =? _iiDryRun- , "launchSpecification" =? _iiLaunchSpecification- , "platform" =? _iiPlatform+ [ "Description" =? _iiDescription+ , "DiskImage" `toQueryList` _iiDiskImages+ , "DryRun" =? _iiDryRun+ , "LaunchSpecification" =? _iiLaunchSpecification+ , "Platform" =? _iiPlatform ] instance ToHeaders ImportInstance
gen/Network/AWS/EC2/ImportKeyPair.hs view
@@ -127,9 +127,9 @@ instance ToQuery ImportKeyPair where toQuery ImportKeyPair{..} = mconcat- [ "dryRun" =? _ikpDryRun- , "keyName" =? _ikpKeyName- , "publicKeyMaterial" =? _ikpPublicKeyMaterial+ [ "DryRun" =? _ikpDryRun+ , "KeyName" =? _ikpKeyName+ , "PublicKeyMaterial" =? _ikpPublicKeyMaterial ] instance ToHeaders ImportKeyPair
gen/Network/AWS/EC2/ImportVolume.hs view
@@ -130,11 +130,11 @@ instance ToQuery ImportVolume where toQuery ImportVolume{..} = mconcat- [ "availabilityZone" =? _ivAvailabilityZone- , "description" =? _ivDescription- , "dryRun" =? _ivDryRun- , "image" =? _ivImage- , "volume" =? _ivVolume+ [ "AvailabilityZone" =? _ivAvailabilityZone+ , "Description" =? _ivDescription+ , "DryRun" =? _ivDryRun+ , "Image" =? _ivImage+ , "Volume" =? _ivVolume ] instance ToHeaders ImportVolume
gen/Network/AWS/EC2/ModifyImageAttribute.hs view
@@ -167,7 +167,7 @@ toQuery ModifyImageAttribute{..} = mconcat [ "Attribute" =? _miaAttribute , "Description" =? _miaDescription- , "dryRun" =? _miaDryRun+ , "DryRun" =? _miaDryRun , "ImageId" =? _miaImageId , "LaunchPermission" =? _miaLaunchPermission , "OperationType" =? _miaOperationType
gen/Network/AWS/EC2/ModifyInstanceAttribute.hs view
@@ -240,21 +240,21 @@ instance ToQuery ModifyInstanceAttribute where toQuery ModifyInstanceAttribute{..} = mconcat- [ "attribute" =? _mia1Attribute- , "blockDeviceMapping" `toQueryList` _mia1BlockDeviceMappings- , "disableApiTermination" =? _mia1DisableApiTermination- , "dryRun" =? _mia1DryRun- , "ebsOptimized" =? _mia1EbsOptimized+ [ "Attribute" =? _mia1Attribute+ , "BlockDeviceMapping" `toQueryList` _mia1BlockDeviceMappings+ , "DisableApiTermination" =? _mia1DisableApiTermination+ , "DryRun" =? _mia1DryRun+ , "EbsOptimized" =? _mia1EbsOptimized , "GroupId" `toQueryList` _mia1Groups- , "instanceId" =? _mia1InstanceId- , "instanceInitiatedShutdownBehavior" =? _mia1InstanceInitiatedShutdownBehavior- , "instanceType" =? _mia1InstanceType- , "kernel" =? _mia1Kernel- , "ramdisk" =? _mia1Ramdisk+ , "InstanceId" =? _mia1InstanceId+ , "InstanceInitiatedShutdownBehavior" =? _mia1InstanceInitiatedShutdownBehavior+ , "InstanceType" =? _mia1InstanceType+ , "Kernel" =? _mia1Kernel+ , "Ramdisk" =? _mia1Ramdisk , "SourceDestCheck" =? _mia1SourceDestCheck- , "sriovNetSupport" =? _mia1SriovNetSupport- , "userData" =? _mia1UserData- , "value" =? _mia1Value+ , "SriovNetSupport" =? _mia1SriovNetSupport+ , "UserData" =? _mia1UserData+ , "Value" =? _mia1Value ] instance ToHeaders ModifyInstanceAttribute
gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs view
@@ -130,12 +130,12 @@ instance ToQuery ModifyNetworkInterfaceAttribute where toQuery ModifyNetworkInterfaceAttribute{..} = mconcat- [ "attachment" =? _mniaAttachment- , "description" =? _mniaDescription- , "dryRun" =? _mniaDryRun+ [ "Attachment" =? _mniaAttachment+ , "Description" =? _mniaDescription+ , "DryRun" =? _mniaDryRun , "SecurityGroupId" `toQueryList` _mniaGroups- , "networkInterfaceId" =? _mniaNetworkInterfaceId- , "sourceDestCheck" =? _mniaSourceDestCheck+ , "NetworkInterfaceId" =? _mniaNetworkInterfaceId+ , "SourceDestCheck" =? _mniaSourceDestCheck ] instance ToHeaders ModifyNetworkInterfaceAttribute
gen/Network/AWS/EC2/ModifyReservedInstances.hs view
@@ -121,7 +121,7 @@ instance ToQuery ModifyReservedInstances where toQuery ModifyReservedInstances{..} = mconcat- [ "clientToken" =? _mriClientToken+ [ "ClientToken" =? _mriClientToken , "ReservedInstancesId" `toQueryList` _mriReservedInstancesIds , "ReservedInstancesConfigurationSetItemType" `toQueryList` _mriTargetConfigurations ]
gen/Network/AWS/EC2/ModifySnapshotAttribute.hs view
@@ -144,7 +144,7 @@ toQuery ModifySnapshotAttribute{..} = mconcat [ "Attribute" =? _msaAttribute , "CreateVolumePermission" =? _msaCreateVolumePermission- , "dryRun" =? _msaDryRun+ , "DryRun" =? _msaDryRun , "UserGroup" `toQueryList` _msaGroupNames , "OperationType" =? _msaOperationType , "SnapshotId" =? _msaSnapshotId
gen/Network/AWS/EC2/ModifySubnetAttribute.hs view
@@ -87,7 +87,7 @@ instance ToQuery ModifySubnetAttribute where toQuery ModifySubnetAttribute{..} = mconcat [ "MapPublicIpOnLaunch" =? _msaMapPublicIpOnLaunch- , "subnetId" =? _msaSubnetId+ , "SubnetId" =? _msaSubnetId ] instance ToHeaders ModifySubnetAttribute
gen/Network/AWS/EC2/ModifyVolumeAttribute.hs view
@@ -105,7 +105,7 @@ instance ToQuery ModifyVolumeAttribute where toQuery ModifyVolumeAttribute{..} = mconcat [ "AutoEnableIO" =? _mvaAutoEnableIO- , "dryRun" =? _mvaDryRun+ , "DryRun" =? _mvaDryRun , "VolumeId" =? _mvaVolumeId ]
gen/Network/AWS/EC2/ModifyVpcAttribute.hs view
@@ -106,7 +106,7 @@ toQuery ModifyVpcAttribute{..} = mconcat [ "EnableDnsHostnames" =? _mvaEnableDnsHostnames , "EnableDnsSupport" =? _mvaEnableDnsSupport- , "vpcId" =? _mvaVpcId+ , "VpcId" =? _mvaVpcId ] instance ToHeaders ModifyVpcAttribute
gen/Network/AWS/EC2/MonitorInstances.hs view
@@ -101,7 +101,7 @@ instance ToQuery MonitorInstances where toQuery MonitorInstances{..} = mconcat- [ "dryRun" =? _miDryRun+ [ "DryRun" =? _miDryRun , "InstanceId" `toQueryList` _miInstanceIds ]
gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs view
@@ -135,9 +135,9 @@ instance ToQuery PurchaseReservedInstancesOffering where toQuery PurchaseReservedInstancesOffering{..} = mconcat- [ "dryRun" =? _prioDryRun+ [ "DryRun" =? _prioDryRun , "InstanceCount" =? _prioInstanceCount- , "limitPrice" =? _prioLimitPrice+ , "LimitPrice" =? _prioLimitPrice , "ReservedInstancesOfferingId" =? _prioReservedInstancesOfferingId ]
gen/Network/AWS/EC2/RebootInstances.hs view
@@ -92,7 +92,7 @@ instance ToQuery RebootInstances where toQuery RebootInstances{..} = mconcat- [ "dryRun" =? _ri2DryRun+ [ "DryRun" =? _ri2DryRun , "InstanceId" `toQueryList` _ri2InstanceIds ]
gen/Network/AWS/EC2/RegisterImage.hs view
@@ -217,17 +217,17 @@ instance ToQuery RegisterImage where toQuery RegisterImage{..} = mconcat- [ "architecture" =? _ri1Architecture+ [ "Architecture" =? _ri1Architecture , "BlockDeviceMapping" `toQueryList` _ri1BlockDeviceMappings- , "description" =? _ri1Description- , "dryRun" =? _ri1DryRun+ , "Description" =? _ri1Description+ , "DryRun" =? _ri1DryRun , "ImageLocation" =? _ri1ImageLocation- , "kernelId" =? _ri1KernelId- , "name" =? _ri1Name- , "ramdiskId" =? _ri1RamdiskId- , "rootDeviceName" =? _ri1RootDeviceName- , "sriovNetSupport" =? _ri1SriovNetSupport- , "virtualizationType" =? _ri1VirtualizationType+ , "KernelId" =? _ri1KernelId+ , "Name" =? _ri1Name+ , "RamdiskId" =? _ri1RamdiskId+ , "RootDeviceName" =? _ri1RootDeviceName+ , "SriovNetSupport" =? _ri1SriovNetSupport+ , "VirtualizationType" =? _ri1VirtualizationType ] instance ToHeaders RegisterImage
gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs view
@@ -105,8 +105,8 @@ instance ToQuery RejectVpcPeeringConnection where toQuery RejectVpcPeeringConnection{..} = mconcat- [ "dryRun" =? _rvpcDryRun- , "vpcPeeringConnectionId" =? _rvpcVpcPeeringConnectionId+ [ "DryRun" =? _rvpcDryRun+ , "VpcPeeringConnectionId" =? _rvpcVpcPeeringConnectionId ] instance ToHeaders RejectVpcPeeringConnection
gen/Network/AWS/EC2/ReleaseAddress.hs view
@@ -107,7 +107,7 @@ instance ToQuery ReleaseAddress where toQuery ReleaseAddress{..} = mconcat [ "AllocationId" =? _raAllocationId- , "dryRun" =? _raDryRun+ , "DryRun" =? _raDryRun , "PublicIp" =? _raPublicIp ]
gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs view
@@ -114,9 +114,9 @@ instance ToQuery ReplaceNetworkAclAssociation where toQuery ReplaceNetworkAclAssociation{..} = mconcat- [ "associationId" =? _rnaaAssociationId- , "dryRun" =? _rnaaDryRun- , "networkAclId" =? _rnaaNetworkAclId+ [ "AssociationId" =? _rnaaAssociationId+ , "DryRun" =? _rnaaDryRun+ , "NetworkAclId" =? _rnaaNetworkAclId ] instance ToHeaders ReplaceNetworkAclAssociation
gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs view
@@ -158,15 +158,15 @@ instance ToQuery ReplaceNetworkAclEntry where toQuery ReplaceNetworkAclEntry{..} = mconcat- [ "cidrBlock" =? _rnaeCidrBlock- , "dryRun" =? _rnaeDryRun- , "egress" =? _rnaeEgress+ [ "CidrBlock" =? _rnaeCidrBlock+ , "DryRun" =? _rnaeDryRun+ , "Egress" =? _rnaeEgress , "Icmp" =? _rnaeIcmpTypeCode- , "networkAclId" =? _rnaeNetworkAclId- , "portRange" =? _rnaePortRange- , "protocol" =? _rnaeProtocol- , "ruleAction" =? _rnaeRuleAction- , "ruleNumber" =? _rnaeRuleNumber+ , "NetworkAclId" =? _rnaeNetworkAclId+ , "PortRange" =? _rnaePortRange+ , "Protocol" =? _rnaeProtocol+ , "RuleAction" =? _rnaeRuleAction+ , "RuleNumber" =? _rnaeRuleNumber ] instance ToHeaders ReplaceNetworkAclEntry
gen/Network/AWS/EC2/ReplaceRoute.hs view
@@ -140,13 +140,13 @@ instance ToQuery ReplaceRoute where toQuery ReplaceRoute{..} = mconcat- [ "destinationCidrBlock" =? _rrDestinationCidrBlock- , "dryRun" =? _rrDryRun- , "gatewayId" =? _rrGatewayId- , "instanceId" =? _rrInstanceId- , "networkInterfaceId" =? _rrNetworkInterfaceId- , "routeTableId" =? _rrRouteTableId- , "vpcPeeringConnectionId" =? _rrVpcPeeringConnectionId+ [ "DestinationCidrBlock" =? _rrDestinationCidrBlock+ , "DryRun" =? _rrDryRun+ , "GatewayId" =? _rrGatewayId+ , "InstanceId" =? _rrInstanceId+ , "NetworkInterfaceId" =? _rrNetworkInterfaceId+ , "RouteTableId" =? _rrRouteTableId+ , "VpcPeeringConnectionId" =? _rrVpcPeeringConnectionId ] instance ToHeaders ReplaceRoute
gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs view
@@ -118,9 +118,9 @@ instance ToQuery ReplaceRouteTableAssociation where toQuery ReplaceRouteTableAssociation{..} = mconcat- [ "associationId" =? _rrtaAssociationId- , "dryRun" =? _rrtaDryRun- , "routeTableId" =? _rrtaRouteTableId+ [ "AssociationId" =? _rrtaAssociationId+ , "DryRun" =? _rrtaDryRun+ , "RouteTableId" =? _rrtaRouteTableId ] instance ToHeaders ReplaceRouteTableAssociation
gen/Network/AWS/EC2/ReportInstanceStatus.hs view
@@ -158,13 +158,13 @@ instance ToQuery ReportInstanceStatus where toQuery ReportInstanceStatus{..} = mconcat- [ "description" =? _risDescription- , "dryRun" =? _risDryRun- , "endTime" =? _risEndTime- , "instanceId" `toQueryList` _risInstances- , "reasonCode" `toQueryList` _risReasonCodes- , "startTime" =? _risStartTime- , "status" =? _risStatus+ [ "Description" =? _risDescription+ , "DryRun" =? _risDryRun+ , "EndTime" =? _risEndTime+ , "InstanceId" `toQueryList` _risInstances+ , "ReasonCode" `toQueryList` _risReasonCodes+ , "StartTime" =? _risStartTime+ , "Status" =? _risStatus ] instance ToHeaders ReportInstanceStatus
gen/Network/AWS/EC2/RequestSpotInstances.hs view
@@ -212,15 +212,15 @@ instance ToQuery RequestSpotInstances where toQuery RequestSpotInstances{..} = mconcat- [ "availabilityZoneGroup" =? _rsiAvailabilityZoneGroup- , "dryRun" =? _rsiDryRun- , "instanceCount" =? _rsiInstanceCount- , "launchGroup" =? _rsiLaunchGroup+ [ "AvailabilityZoneGroup" =? _rsiAvailabilityZoneGroup+ , "DryRun" =? _rsiDryRun+ , "InstanceCount" =? _rsiInstanceCount+ , "LaunchGroup" =? _rsiLaunchGroup , "LaunchSpecification" =? _rsiLaunchSpecification- , "spotPrice" =? _rsiSpotPrice- , "type" =? _rsiType- , "validFrom" =? _rsiValidFrom- , "validUntil" =? _rsiValidUntil+ , "SpotPrice" =? _rsiSpotPrice+ , "Type" =? _rsiType+ , "ValidFrom" =? _rsiValidFrom+ , "ValidUntil" =? _rsiValidUntil ] instance ToHeaders RequestSpotInstances
gen/Network/AWS/EC2/ResetImageAttribute.hs view
@@ -100,7 +100,7 @@ instance ToQuery ResetImageAttribute where toQuery ResetImageAttribute{..} = mconcat [ "Attribute" =? _ria1Attribute- , "dryRun" =? _ria1DryRun+ , "DryRun" =? _ria1DryRun , "ImageId" =? _ria1ImageId ]
gen/Network/AWS/EC2/ResetInstanceAttribute.hs view
@@ -101,9 +101,9 @@ instance ToQuery ResetInstanceAttribute where toQuery ResetInstanceAttribute{..} = mconcat- [ "attribute" =? _riaAttribute- , "dryRun" =? _riaDryRun- , "instanceId" =? _riaInstanceId+ [ "Attribute" =? _riaAttribute+ , "DryRun" =? _riaDryRun+ , "InstanceId" =? _riaInstanceId ] instance ToHeaders ResetInstanceAttribute
gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs view
@@ -97,9 +97,9 @@ instance ToQuery ResetNetworkInterfaceAttribute where toQuery ResetNetworkInterfaceAttribute{..} = mconcat- [ "dryRun" =? _rniaDryRun- , "networkInterfaceId" =? _rniaNetworkInterfaceId- , "sourceDestCheck" =? _rniaSourceDestCheck+ [ "DryRun" =? _rniaDryRun+ , "NetworkInterfaceId" =? _rniaNetworkInterfaceId+ , "SourceDestCheck" =? _rniaSourceDestCheck ] instance ToHeaders ResetNetworkInterfaceAttribute
gen/Network/AWS/EC2/ResetSnapshotAttribute.hs view
@@ -100,7 +100,7 @@ instance ToQuery ResetSnapshotAttribute where toQuery ResetSnapshotAttribute{..} = mconcat [ "Attribute" =? _rsaAttribute- , "dryRun" =? _rsaDryRun+ , "DryRun" =? _rsaDryRun , "SnapshotId" =? _rsaSnapshotId ]
gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs view
@@ -171,15 +171,15 @@ instance ToQuery RevokeSecurityGroupEgress where toQuery RevokeSecurityGroupEgress{..} = mconcat- [ "cidrIp" =? _rsgeCidrIp- , "dryRun" =? _rsgeDryRun- , "fromPort" =? _rsgeFromPort- , "groupId" =? _rsgeGroupId- , "ipPermissions" `toQueryList` _rsgeIpPermissions- , "ipProtocol" =? _rsgeIpProtocol- , "sourceSecurityGroupName" =? _rsgeSourceSecurityGroupName- , "sourceSecurityGroupOwnerId" =? _rsgeSourceSecurityGroupOwnerId- , "toPort" =? _rsgeToPort+ [ "CidrIp" =? _rsgeCidrIp+ , "DryRun" =? _rsgeDryRun+ , "FromPort" =? _rsgeFromPort+ , "GroupId" =? _rsgeGroupId+ , "IpPermissions" `toQueryList` _rsgeIpPermissions+ , "IpProtocol" =? _rsgeIpProtocol+ , "SourceSecurityGroupName" =? _rsgeSourceSecurityGroupName+ , "SourceSecurityGroupOwnerId" =? _rsgeSourceSecurityGroupOwnerId+ , "ToPort" =? _rsgeToPort ] instance ToHeaders RevokeSecurityGroupEgress
gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs view
@@ -180,7 +180,7 @@ instance ToQuery RevokeSecurityGroupIngress where toQuery RevokeSecurityGroupIngress{..} = mconcat [ "CidrIp" =? _rsgiCidrIp- , "dryRun" =? _rsgiDryRun+ , "DryRun" =? _rsgiDryRun , "FromPort" =? _rsgiFromPort , "GroupId" =? _rsgiGroupId , "GroupName" =? _rsgiGroupName
gen/Network/AWS/EC2/RunInstances.hs view
@@ -428,24 +428,24 @@ instance ToQuery RunInstances where toQuery RunInstances{..} = mconcat- [ "additionalInfo" =? _riAdditionalInfo+ [ "AdditionalInfo" =? _riAdditionalInfo , "BlockDeviceMapping" `toQueryList` _riBlockDeviceMappings- , "clientToken" =? _riClientToken- , "disableApiTermination" =? _riDisableApiTermination- , "dryRun" =? _riDryRun- , "ebsOptimized" =? _riEbsOptimized- , "iamInstanceProfile" =? _riIamInstanceProfile+ , "ClientToken" =? _riClientToken+ , "DisableApiTermination" =? _riDisableApiTermination+ , "DryRun" =? _riDryRun+ , "EbsOptimized" =? _riEbsOptimized+ , "IamInstanceProfile" =? _riIamInstanceProfile , "ImageId" =? _riImageId- , "instanceInitiatedShutdownBehavior" =? _riInstanceInitiatedShutdownBehavior+ , "InstanceInitiatedShutdownBehavior" =? _riInstanceInitiatedShutdownBehavior , "InstanceType" =? _riInstanceType , "KernelId" =? _riKernelId , "KeyName" =? _riKeyName , "MaxCount" =? _riMaxCount , "MinCount" =? _riMinCount , "Monitoring" =? _riMonitoring- , "networkInterface" `toQueryList` _riNetworkInterfaces+ , "NetworkInterface" `toQueryList` _riNetworkInterfaces , "Placement" =? _riPlacement- , "privateIpAddress" =? _riPrivateIpAddress+ , "PrivateIpAddress" =? _riPrivateIpAddress , "RamdiskId" =? _riRamdiskId , "SecurityGroupId" `toQueryList` _riSecurityGroupIds , "SecurityGroup" `toQueryList` _riSecurityGroups
gen/Network/AWS/EC2/StartInstances.hs view
@@ -127,8 +127,8 @@ instance ToQuery StartInstances where toQuery StartInstances{..} = mconcat- [ "additionalInfo" =? _si1AdditionalInfo- , "dryRun" =? _si1DryRun+ [ "AdditionalInfo" =? _si1AdditionalInfo+ , "DryRun" =? _si1DryRun , "InstanceId" `toQueryList` _si1InstanceIds ]
gen/Network/AWS/EC2/StopInstances.hs view
@@ -142,8 +142,8 @@ instance ToQuery StopInstances where toQuery StopInstances{..} = mconcat- [ "dryRun" =? _siDryRun- , "force" =? _siForce+ [ "DryRun" =? _siDryRun+ , "Force" =? _siForce , "InstanceId" `toQueryList` _siInstanceIds ]
gen/Network/AWS/EC2/TerminateInstances.hs view
@@ -119,7 +119,7 @@ instance ToQuery TerminateInstances where toQuery TerminateInstances{..} = mconcat- [ "dryRun" =? _tiDryRun+ [ "DryRun" =? _tiDryRun , "InstanceId" `toQueryList` _tiInstanceIds ]
gen/Network/AWS/EC2/Types.hs view
@@ -1612,11375 +1612,11375 @@ instance ToQuery NetworkAclEntry where toQuery NetworkAclEntry{..} = mconcat- [ "cidrBlock" =? _naeCidrBlock- , "egress" =? _naeEgress- , "icmpTypeCode" =? _naeIcmpTypeCode- , "portRange" =? _naePortRange- , "protocol" =? _naeProtocol- , "ruleAction" =? _naeRuleAction- , "ruleNumber" =? _naeRuleNumber- ]--newtype BlobAttributeValue = BlobAttributeValue- { _bavValue :: Maybe Base64- } deriving (Eq, Read, Show)---- | 'BlobAttributeValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'bavValue' @::@ 'Maybe' 'Base64'----blobAttributeValue :: BlobAttributeValue-blobAttributeValue = BlobAttributeValue- { _bavValue = Nothing- }--bavValue :: Lens' BlobAttributeValue (Maybe Base64)-bavValue = lens _bavValue (\s a -> s { _bavValue = a })--instance FromXML BlobAttributeValue where- parseXML x = BlobAttributeValue- <$> x .@? "value"--instance ToQuery BlobAttributeValue where- toQuery BlobAttributeValue{..} = mconcat- [ "value" =? _bavValue- ]--data ImportInstanceLaunchSpecification = ImportInstanceLaunchSpecification- { _iilsAdditionalInfo :: Maybe Text- , _iilsArchitecture :: Maybe ArchitectureValues- , _iilsGroupIds :: List "SecurityGroupId" Text- , _iilsGroupNames :: List "SecurityGroup" Text- , _iilsInstanceInitiatedShutdownBehavior :: Maybe ShutdownBehavior- , _iilsInstanceType :: Maybe InstanceType- , _iilsMonitoring :: Maybe Bool- , _iilsPlacement :: Maybe Placement- , _iilsPrivateIpAddress :: Maybe Text- , _iilsSubnetId :: Maybe Text- , _iilsUserData :: Maybe UserData- } deriving (Eq, Read, Show)---- | 'ImportInstanceLaunchSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'iilsAdditionalInfo' @::@ 'Maybe' 'Text'------ * 'iilsArchitecture' @::@ 'Maybe' 'ArchitectureValues'------ * 'iilsGroupIds' @::@ ['Text']------ * 'iilsGroupNames' @::@ ['Text']------ * 'iilsInstanceInitiatedShutdownBehavior' @::@ 'Maybe' 'ShutdownBehavior'------ * 'iilsInstanceType' @::@ 'Maybe' 'InstanceType'------ * 'iilsMonitoring' @::@ 'Maybe' 'Bool'------ * 'iilsPlacement' @::@ 'Maybe' 'Placement'------ * 'iilsPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'iilsSubnetId' @::@ 'Maybe' 'Text'------ * 'iilsUserData' @::@ 'Maybe' 'UserData'----importInstanceLaunchSpecification :: ImportInstanceLaunchSpecification-importInstanceLaunchSpecification = ImportInstanceLaunchSpecification- { _iilsArchitecture = Nothing- , _iilsGroupNames = mempty- , _iilsGroupIds = mempty- , _iilsAdditionalInfo = Nothing- , _iilsUserData = Nothing- , _iilsInstanceType = Nothing- , _iilsPlacement = Nothing- , _iilsMonitoring = Nothing- , _iilsSubnetId = Nothing- , _iilsInstanceInitiatedShutdownBehavior = Nothing- , _iilsPrivateIpAddress = Nothing- }--iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsAdditionalInfo =- lens _iilsAdditionalInfo (\s a -> s { _iilsAdditionalInfo = a })---- | The architecture of the instance.-iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)-iilsArchitecture = lens _iilsArchitecture (\s a -> s { _iilsArchitecture = a })---- | One or more security group IDs.-iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]-iilsGroupIds = lens _iilsGroupIds (\s a -> s { _iilsGroupIds = a }) . _List---- | One or more security group names.-iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]-iilsGroupNames = lens _iilsGroupNames (\s a -> s { _iilsGroupNames = a }) . _List---- | 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 instance type. This is not supported for VMs imported into a VPC, which--- are assigned the default security group. After a VM is imported into a VPC,--- you can specify another security group using the AWS Management Console. For--- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon Elastic Compute Cloud UserGuide for Linux/. For more information about the Linux instance types you can--- import, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/VMImportPrerequisites.html Before You Get Started> in the Amazon Elastic Compute Cloud User--- Guide for Linux.-iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)-iilsInstanceType = lens _iilsInstanceType (\s a -> s { _iilsInstanceType = a })--iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)-iilsMonitoring = lens _iilsMonitoring (\s a -> s { _iilsMonitoring = a })--iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)-iilsPlacement = lens _iilsPlacement (\s a -> s { _iilsPlacement = a })---- | [EC2-VPC] Optionally, you can use this parameter to assign the instance a--- specific available IP address from the IP address range of the subnet.-iilsPrivateIpAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsPrivateIpAddress =- lens _iilsPrivateIpAddress (\s a -> s { _iilsPrivateIpAddress = a })---- | [EC2-VPC] The ID of the subnet to launch the instance into.-iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-iilsSubnetId = lens _iilsSubnetId (\s a -> s { _iilsSubnetId = a })---- | User data to be made available to the instance.-iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)-iilsUserData = lens _iilsUserData (\s a -> s { _iilsUserData = a })--instance FromXML ImportInstanceLaunchSpecification where- parseXML x = ImportInstanceLaunchSpecification- <$> x .@? "additionalInfo"- <*> x .@? "architecture"- <*> x .@? "GroupId" .!@ mempty- <*> x .@? "GroupName" .!@ mempty- <*> x .@? "instanceInitiatedShutdownBehavior"- <*> x .@? "instanceType"- <*> x .@? "monitoring"- <*> x .@? "placement"- <*> x .@? "privateIpAddress"- <*> x .@? "subnetId"- <*> x .@? "userData"--instance ToQuery ImportInstanceLaunchSpecification where- toQuery ImportInstanceLaunchSpecification{..} = mconcat- [ "additionalInfo" =? _iilsAdditionalInfo- , "architecture" =? _iilsArchitecture- , "GroupId" `toQueryList` _iilsGroupIds- , "GroupName" `toQueryList` _iilsGroupNames- , "instanceInitiatedShutdownBehavior" =? _iilsInstanceInitiatedShutdownBehavior- , "instanceType" =? _iilsInstanceType- , "monitoring" =? _iilsMonitoring- , "placement" =? _iilsPlacement- , "privateIpAddress" =? _iilsPrivateIpAddress- , "subnetId" =? _iilsSubnetId- , "userData" =? _iilsUserData- ]--data Snapshot = Snapshot- { _sDescription :: Text- , _sEncrypted :: Bool- , _sKmsKeyId :: Maybe Text- , _sOwnerAlias :: Maybe Text- , _sOwnerId :: Text- , _sProgress :: Text- , _sSnapshotId :: Text- , _sStartTime :: ISO8601- , _sState :: SnapshotState- , _sTags :: List "item" Tag- , _sVolumeId :: Text- , _sVolumeSize :: Int- } deriving (Eq, Read, Show)---- | 'Snapshot' constructor.------ The fields accessible through corresponding lenses are:------ * 'sDescription' @::@ 'Text'------ * 'sEncrypted' @::@ 'Bool'------ * 'sKmsKeyId' @::@ 'Maybe' 'Text'------ * 'sOwnerAlias' @::@ 'Maybe' 'Text'------ * 'sOwnerId' @::@ 'Text'------ * 'sProgress' @::@ 'Text'------ * 'sSnapshotId' @::@ 'Text'------ * 'sStartTime' @::@ 'UTCTime'------ * 'sState' @::@ 'SnapshotState'------ * 'sTags' @::@ ['Tag']------ * 'sVolumeId' @::@ 'Text'------ * 'sVolumeSize' @::@ 'Int'----snapshot :: Text -- ^ 'sSnapshotId'- -> Text -- ^ 'sVolumeId'- -> SnapshotState -- ^ 'sState'- -> UTCTime -- ^ 'sStartTime'- -> Text -- ^ 'sProgress'- -> Text -- ^ 'sOwnerId'- -> Text -- ^ 'sDescription'- -> Int -- ^ 'sVolumeSize'- -> Bool -- ^ 'sEncrypted'- -> Snapshot-snapshot p1 p2 p3 p4 p5 p6 p7 p8 p9 = Snapshot- { _sSnapshotId = p1- , _sVolumeId = p2- , _sState = p3- , _sStartTime = withIso _Time (const id) p4- , _sProgress = p5- , _sOwnerId = p6- , _sDescription = p7- , _sVolumeSize = p8- , _sEncrypted = p9- , _sOwnerAlias = Nothing- , _sTags = mempty- , _sKmsKeyId = Nothing- }---- | The description for the snapshot.-sDescription :: Lens' Snapshot Text-sDescription = lens _sDescription (\s a -> s { _sDescription = a })---- | Indicates whether the snapshot is encrypted.-sEncrypted :: Lens' Snapshot Bool-sEncrypted = lens _sEncrypted (\s a -> s { _sEncrypted = a })---- | The full ARN of the AWS Key Management Service (KMS) master key 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 })---- | The AWS account alias (for example, 'amazon', 'self') or AWS account ID that owns--- the snapshot.-sOwnerAlias :: Lens' Snapshot (Maybe Text)-sOwnerAlias = lens _sOwnerAlias (\s a -> s { _sOwnerAlias = a })---- | The AWS account ID of the Amazon EBS snapshot owner.-sOwnerId :: Lens' Snapshot Text-sOwnerId = lens _sOwnerId (\s a -> s { _sOwnerId = a })---- | The progress of the snapshot, as a percentage.-sProgress :: Lens' Snapshot Text-sProgress = lens _sProgress (\s a -> s { _sProgress = a })---- | The ID of the snapshot.-sSnapshotId :: Lens' Snapshot Text-sSnapshotId = lens _sSnapshotId (\s a -> s { _sSnapshotId = a })---- | The time stamp when the snapshot was initiated.-sStartTime :: Lens' Snapshot UTCTime-sStartTime = lens _sStartTime (\s a -> s { _sStartTime = a }) . _Time---- | The snapshot state.-sState :: Lens' Snapshot SnapshotState-sState = lens _sState (\s a -> s { _sState = a })---- | Any tags assigned to the snapshot.-sTags :: Lens' Snapshot [Tag]-sTags = lens _sTags (\s a -> s { _sTags = a }) . _List---- | The ID of the volume.-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 })--instance FromXML Snapshot where- parseXML x = Snapshot- <$> x .@ "description"- <*> x .@ "encrypted"- <*> x .@? "kmsKeyId"- <*> x .@? "ownerAlias"- <*> x .@ "ownerId"- <*> x .@ "progress"- <*> x .@ "snapshotId"- <*> x .@ "startTime"- <*> x .@ "status"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "volumeId"- <*> x .@ "volumeSize"--instance ToQuery Snapshot where- toQuery Snapshot{..} = mconcat- [ "description" =? _sDescription- , "encrypted" =? _sEncrypted- , "kmsKeyId" =? _sKmsKeyId- , "ownerAlias" =? _sOwnerAlias- , "ownerId" =? _sOwnerId- , "progress" =? _sProgress- , "snapshotId" =? _sSnapshotId- , "startTime" =? _sStartTime- , "status" =? _sState- , "tagSet" `toQueryList` _sTags- , "volumeId" =? _sVolumeId- , "volumeSize" =? _sVolumeSize- ]--data SpotInstanceStateFault = SpotInstanceStateFault- { _sisfCode :: Maybe Text- , _sisfMessage :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'SpotInstanceStateFault' constructor.------ The fields accessible through corresponding lenses are:------ * 'sisfCode' @::@ 'Maybe' 'Text'------ * 'sisfMessage' @::@ 'Maybe' 'Text'----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 ToQuery SpotInstanceStateFault where- toQuery SpotInstanceStateFault{..} = mconcat- [ "code" =? _sisfCode- , "message" =? _sisfMessage- ]--data TagDescription = TagDescription- { _tdKey :: Text- , _tdResourceId :: Text- , _tdResourceType :: ResourceType- , _tdValue :: Text- } deriving (Eq, Read, Show)---- | 'TagDescription' constructor.------ The fields accessible through corresponding lenses are:------ * 'tdKey' @::@ 'Text'------ * 'tdResourceId' @::@ 'Text'------ * 'tdResourceType' @::@ 'ResourceType'------ * 'tdValue' @::@ 'Text'----tagDescription :: Text -- ^ 'tdResourceId'- -> ResourceType -- ^ 'tdResourceType'- -> Text -- ^ 'tdKey'- -> Text -- ^ 'tdValue'- -> TagDescription-tagDescription p1 p2 p3 p4 = TagDescription- { _tdResourceId = p1- , _tdResourceType = p2- , _tdKey = p3- , _tdValue = p4- }---- | The tag key.-tdKey :: Lens' TagDescription Text-tdKey = lens _tdKey (\s a -> s { _tdKey = a })---- | 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 value.-tdValue :: Lens' TagDescription Text-tdValue = lens _tdValue (\s a -> s { _tdValue = a })--instance FromXML TagDescription where- parseXML x = TagDescription- <$> x .@ "key"- <*> x .@ "resourceId"- <*> x .@ "resourceType"- <*> x .@ "value"--instance ToQuery TagDescription where- toQuery TagDescription{..} = mconcat- [ "key" =? _tdKey- , "resourceId" =? _tdResourceId- , "resourceType" =? _tdResourceType- , "value" =? _tdValue- ]--data GroupIdentifier = GroupIdentifier- { _giGroupId :: Maybe Text- , _giGroupName :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'GroupIdentifier' constructor.------ The fields accessible through corresponding lenses are:------ * 'giGroupId' @::@ 'Maybe' 'Text'------ * 'giGroupName' @::@ 'Maybe' 'Text'----groupIdentifier :: GroupIdentifier-groupIdentifier = GroupIdentifier- { _giGroupName = Nothing- , _giGroupId = 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 ToQuery GroupIdentifier where- toQuery GroupIdentifier{..} = mconcat- [ "groupId" =? _giGroupId- , "groupName" =? _giGroupName- ]--data VpnStaticRouteSource- = Static -- ^ Static- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VpnStaticRouteSource--instance FromText VpnStaticRouteSource where- parser = takeLowerText >>= \case- "static" -> pure Static- e -> fail $- "Failure parsing VpnStaticRouteSource from " ++ show e--instance ToText VpnStaticRouteSource where- toText Static = "Static"--instance ToByteString VpnStaticRouteSource-instance ToHeader VpnStaticRouteSource-instance ToQuery VpnStaticRouteSource--instance FromXML VpnStaticRouteSource where- parseXML = parseXMLText "VpnStaticRouteSource"--data ReservedInstancesListing = ReservedInstancesListing- { _rilClientToken :: Maybe Text- , _rilCreateDate :: Maybe ISO8601- , _rilInstanceCounts :: List "item" InstanceCount- , _rilPriceSchedules :: List "item" PriceSchedule- , _rilReservedInstancesId :: Maybe Text- , _rilReservedInstancesListingId :: Maybe Text- , _rilStatus :: Maybe ListingStatus- , _rilStatusMessage :: Maybe Text- , _rilTags :: List "item" Tag- , _rilUpdateDate :: Maybe ISO8601- } deriving (Eq, Read, Show)---- | 'ReservedInstancesListing' constructor.------ The fields accessible through corresponding lenses are:------ * 'rilClientToken' @::@ 'Maybe' 'Text'------ * 'rilCreateDate' @::@ 'Maybe' 'UTCTime'------ * 'rilInstanceCounts' @::@ ['InstanceCount']------ * 'rilPriceSchedules' @::@ ['PriceSchedule']------ * 'rilReservedInstancesId' @::@ 'Maybe' 'Text'------ * 'rilReservedInstancesListingId' @::@ 'Maybe' 'Text'------ * 'rilStatus' @::@ 'Maybe' 'ListingStatus'------ * 'rilStatusMessage' @::@ 'Maybe' 'Text'------ * 'rilTags' @::@ ['Tag']------ * 'rilUpdateDate' @::@ 'Maybe' 'UTCTime'----reservedInstancesListing :: ReservedInstancesListing-reservedInstancesListing = ReservedInstancesListing- { _rilReservedInstancesListingId = Nothing- , _rilReservedInstancesId = Nothing- , _rilCreateDate = Nothing- , _rilUpdateDate = Nothing- , _rilStatus = Nothing- , _rilStatusMessage = Nothing- , _rilInstanceCounts = mempty- , _rilPriceSchedules = mempty- , _rilTags = mempty- , _rilClientToken = Nothing- }---- | The idempotency token you provided when you created the listing.-rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)-rilClientToken = lens _rilClientToken (\s a -> s { _rilClientToken = a })---- | The time the listing was created.-rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)-rilCreateDate = lens _rilCreateDate (\s a -> s { _rilCreateDate = a }) . mapping _Time---- | The number of instances in this state.-rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]-rilInstanceCounts =- lens _rilInstanceCounts (\s a -> s { _rilInstanceCounts = a })- . _List---- | The price of the Reserved Instance listing.-rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]-rilPriceSchedules =- lens _rilPriceSchedules (\s a -> s { _rilPriceSchedules = a })- . _List---- | The ID of the Reserved Instance.-rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)-rilReservedInstancesId =- lens _rilReservedInstancesId (\s a -> s { _rilReservedInstancesId = a })---- | The ID of the Reserved Instance listing.-rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)-rilReservedInstancesListingId =- lens _rilReservedInstancesListingId- (\s a -> s { _rilReservedInstancesListingId = a })---- | The status of the Reserved Instance listing.-rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)-rilStatus = lens _rilStatus (\s a -> s { _rilStatus = a })---- | 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 })---- | Any tags assigned to the resource.-rilTags :: Lens' ReservedInstancesListing [Tag]-rilTags = lens _rilTags (\s a -> s { _rilTags = a }) . _List---- | The last modified timestamp of the listing.-rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)-rilUpdateDate = lens _rilUpdateDate (\s a -> s { _rilUpdateDate = a }) . mapping _Time--instance FromXML ReservedInstancesListing where- parseXML x = ReservedInstancesListing- <$> x .@? "clientToken"- <*> x .@? "createDate"- <*> x .@? "instanceCounts" .!@ mempty- <*> x .@? "priceSchedules" .!@ mempty- <*> x .@? "reservedInstancesId"- <*> x .@? "reservedInstancesListingId"- <*> x .@? "status"- <*> x .@? "statusMessage"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "updateDate"--instance ToQuery ReservedInstancesListing where- toQuery ReservedInstancesListing{..} = mconcat- [ "clientToken" =? _rilClientToken- , "createDate" =? _rilCreateDate- , "instanceCounts" `toQueryList` _rilInstanceCounts- , "priceSchedules" `toQueryList` _rilPriceSchedules- , "reservedInstancesId" =? _rilReservedInstancesId- , "reservedInstancesListingId" =? _rilReservedInstancesListingId- , "status" =? _rilStatus- , "statusMessage" =? _rilStatusMessage- , "tagSet" `toQueryList` _rilTags- , "updateDate" =? _rilUpdateDate- ]--data InstanceLifecycleType- = Spot -- ^ spot- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceLifecycleType--instance FromText InstanceLifecycleType where- parser = takeLowerText >>= \case- "spot" -> pure Spot- e -> fail $- "Failure parsing InstanceLifecycleType from " ++ show e--instance ToText InstanceLifecycleType where- toText Spot = "spot"--instance ToByteString InstanceLifecycleType-instance ToHeader InstanceLifecycleType-instance ToQuery InstanceLifecycleType--instance FromXML InstanceLifecycleType where- parseXML = parseXMLText "InstanceLifecycleType"--data VirtualizationType- = Hvm -- ^ hvm- | Paravirtual -- ^ paravirtual- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VirtualizationType--instance FromText VirtualizationType where- parser = takeLowerText >>= \case- "hvm" -> pure Hvm- "paravirtual" -> pure Paravirtual- e -> fail $- "Failure parsing VirtualizationType from " ++ show e--instance ToText VirtualizationType where- toText = \case- Hvm -> "hvm"- Paravirtual -> "paravirtual"--instance ToByteString VirtualizationType-instance ToHeader VirtualizationType-instance ToQuery VirtualizationType--instance FromXML VirtualizationType where- parseXML = parseXMLText "VirtualizationType"--data NetworkInterfaceStatus- = Attaching -- ^ attaching- | Available -- ^ available- | Detaching -- ^ detaching- | InUse -- ^ in-use- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable NetworkInterfaceStatus--instance FromText NetworkInterfaceStatus where- parser = takeLowerText >>= \case- "attaching" -> pure Attaching- "available" -> pure Available- "detaching" -> pure Detaching- "in-use" -> pure InUse- e -> fail $- "Failure parsing NetworkInterfaceStatus from " ++ show e--instance ToText NetworkInterfaceStatus where- toText = \case- Attaching -> "attaching"- Available -> "available"- Detaching -> "detaching"- InUse -> "in-use"--instance ToByteString NetworkInterfaceStatus-instance ToHeader NetworkInterfaceStatus-instance ToQuery NetworkInterfaceStatus--instance FromXML NetworkInterfaceStatus where- parseXML = parseXMLText "NetworkInterfaceStatus"--data PlatformValues- = Windows -- ^ Windows- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable PlatformValues--instance FromText PlatformValues where- parser = takeLowerText >>= \case- "windows" -> pure Windows- e -> fail $- "Failure parsing PlatformValues from " ++ show e--instance ToText PlatformValues where- toText Windows = "Windows"--instance ToByteString PlatformValues-instance ToHeader PlatformValues-instance ToQuery PlatformValues--instance FromXML PlatformValues where- parseXML = parseXMLText "PlatformValues"--data CreateVolumePermission = CreateVolumePermission- { _cvpGroup :: Maybe PermissionGroup- , _cvpUserId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'CreateVolumePermission' constructor.------ The fields accessible through corresponding lenses are:------ * 'cvpGroup' @::@ 'Maybe' 'PermissionGroup'------ * 'cvpUserId' @::@ 'Maybe' 'Text'----createVolumePermission :: CreateVolumePermission-createVolumePermission = CreateVolumePermission- { _cvpUserId = Nothing- , _cvpGroup = 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 ToQuery CreateVolumePermission where- toQuery CreateVolumePermission{..} = mconcat- [ "group" =? _cvpGroup- , "userId" =? _cvpUserId- ]--data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges- { _niacAttachmentId :: Maybe Text- , _niacDeleteOnTermination :: Maybe Bool- } deriving (Eq, Ord, Read, Show)---- | 'NetworkInterfaceAttachmentChanges' constructor.------ The fields accessible through corresponding lenses are:------ * 'niacAttachmentId' @::@ 'Maybe' 'Text'------ * 'niacDeleteOnTermination' @::@ 'Maybe' 'Bool'----networkInterfaceAttachmentChanges :: NetworkInterfaceAttachmentChanges-networkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges- { _niacAttachmentId = Nothing- , _niacDeleteOnTermination = Nothing- }---- | The ID of the network interface attachment.-niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)-niacAttachmentId = lens _niacAttachmentId (\s a -> s { _niacAttachmentId = a })---- | 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 })--instance FromXML NetworkInterfaceAttachmentChanges where- parseXML x = NetworkInterfaceAttachmentChanges- <$> x .@? "attachmentId"- <*> x .@? "deleteOnTermination"--instance ToQuery NetworkInterfaceAttachmentChanges where- toQuery NetworkInterfaceAttachmentChanges{..} = mconcat- [ "attachmentId" =? _niacAttachmentId- , "deleteOnTermination" =? _niacDeleteOnTermination- ]--data RecurringChargeFrequency- = Hourly -- ^ Hourly- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable RecurringChargeFrequency--instance FromText RecurringChargeFrequency where- parser = takeLowerText >>= \case- "hourly" -> pure Hourly- e -> fail $- "Failure parsing RecurringChargeFrequency from " ++ show e--instance ToText RecurringChargeFrequency where- toText Hourly = "Hourly"--instance ToByteString RecurringChargeFrequency-instance ToHeader RecurringChargeFrequency-instance ToQuery RecurringChargeFrequency--instance FromXML RecurringChargeFrequency where- parseXML = parseXMLText "RecurringChargeFrequency"--data DhcpOptions = DhcpOptions- { _doDhcpConfigurations :: List "item" DhcpConfiguration- , _doDhcpOptionsId :: Maybe Text- , _doTags :: List "item" Tag- } deriving (Eq, Read, Show)---- | 'DhcpOptions' constructor.------ The fields accessible through corresponding lenses are:------ * 'doDhcpConfigurations' @::@ ['DhcpConfiguration']------ * 'doDhcpOptionsId' @::@ 'Maybe' 'Text'------ * 'doTags' @::@ ['Tag']----dhcpOptions :: DhcpOptions-dhcpOptions = DhcpOptions- { _doDhcpOptionsId = Nothing- , _doDhcpConfigurations = mempty- , _doTags = mempty- }---- | One or more DHCP options in the set.-doDhcpConfigurations :: Lens' DhcpOptions [DhcpConfiguration]-doDhcpConfigurations =- lens _doDhcpConfigurations (\s a -> s { _doDhcpConfigurations = a })- . _List---- | 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 }) . _List--instance FromXML DhcpOptions where- parseXML x = DhcpOptions- <$> x .@? "dhcpConfigurationSet" .!@ mempty- <*> x .@? "dhcpOptionsId"- <*> x .@? "tagSet" .!@ mempty--instance ToQuery DhcpOptions where- toQuery DhcpOptions{..} = mconcat- [ "dhcpConfigurationSet" `toQueryList` _doDhcpConfigurations- , "dhcpOptionsId" =? _doDhcpOptionsId- , "tagSet" `toQueryList` _doTags- ]--data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification- { _inisAssociatePublicIpAddress :: Maybe Bool- , _inisDeleteOnTermination :: Maybe Bool- , _inisDescription :: Maybe Text- , _inisDeviceIndex :: Maybe Int- , _inisGroups :: List "SecurityGroupId" Text- , _inisNetworkInterfaceId :: Maybe Text- , _inisPrivateIpAddress :: Maybe Text- , _inisPrivateIpAddresses :: List "item" PrivateIpAddressSpecification- , _inisSecondaryPrivateIpAddressCount :: Maybe Int- , _inisSubnetId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstanceNetworkInterfaceSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'inisAssociatePublicIpAddress' @::@ 'Maybe' 'Bool'------ * 'inisDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'inisDescription' @::@ 'Maybe' 'Text'------ * 'inisDeviceIndex' @::@ 'Maybe' 'Int'------ * 'inisGroups' @::@ ['Text']------ * 'inisNetworkInterfaceId' @::@ 'Maybe' 'Text'------ * 'inisPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'inisPrivateIpAddresses' @::@ ['PrivateIpAddressSpecification']------ * 'inisSecondaryPrivateIpAddressCount' @::@ 'Maybe' 'Int'------ * 'inisSubnetId' @::@ 'Maybe' 'Text'----instanceNetworkInterfaceSpecification :: InstanceNetworkInterfaceSpecification-instanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification- { _inisNetworkInterfaceId = Nothing- , _inisDeviceIndex = Nothing- , _inisSubnetId = Nothing- , _inisDescription = Nothing- , _inisPrivateIpAddress = Nothing- , _inisGroups = mempty- , _inisDeleteOnTermination = Nothing- , _inisPrivateIpAddresses = mempty- , _inisSecondaryPrivateIpAddressCount = Nothing- , _inisAssociatePublicIpAddress = Nothing- }---- | Indicates whether to assign a public IP 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--- luanching into a default subnet, the default value is 'true'.-inisAssociatePublicIpAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)-inisAssociatePublicIpAddress =- lens _inisAssociatePublicIpAddress- (\s a -> s { _inisAssociatePublicIpAddress = a })---- | 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 })---- | 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 })---- | 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 }) . _List---- | The ID of the network interface.-inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisNetworkInterfaceId =- lens _inisNetworkInterfaceId (\s a -> s { _inisNetworkInterfaceId = a })---- | The private IP address of the network interface. Applies only if creating a--- network interface when launching an instance.-inisPrivateIpAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)-inisPrivateIpAddress =- lens _inisPrivateIpAddress (\s a -> s { _inisPrivateIpAddress = a })---- | One or more private IP addresses to assign to the network interface. Only one--- private IP address can be designated as primary.-inisPrivateIpAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIpAddressSpecification]-inisPrivateIpAddresses =- lens _inisPrivateIpAddresses (\s a -> s { _inisPrivateIpAddresses = a })- . _List---- | The number of secondary private IP addresses. You can't specify this option--- and specify more than one private IP address using the private IP addresses--- option.-inisSecondaryPrivateIpAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)-inisSecondaryPrivateIpAddressCount =- lens _inisSecondaryPrivateIpAddressCount- (\s a -> s { _inisSecondaryPrivateIpAddressCount = 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 })--instance FromXML InstanceNetworkInterfaceSpecification where- parseXML x = InstanceNetworkInterfaceSpecification- <$> x .@? "associatePublicIpAddress"- <*> x .@? "deleteOnTermination"- <*> x .@? "description"- <*> x .@? "deviceIndex"- <*> x .@? "SecurityGroupId" .!@ mempty- <*> x .@? "networkInterfaceId"- <*> x .@? "privateIpAddress"- <*> x .@? "privateIpAddressesSet" .!@ mempty- <*> x .@? "secondaryPrivateIpAddressCount"- <*> x .@? "subnetId"--instance ToQuery InstanceNetworkInterfaceSpecification where- toQuery InstanceNetworkInterfaceSpecification{..} = mconcat- [ "associatePublicIpAddress" =? _inisAssociatePublicIpAddress- , "deleteOnTermination" =? _inisDeleteOnTermination- , "description" =? _inisDescription- , "deviceIndex" =? _inisDeviceIndex- , "SecurityGroupId" `toQueryList` _inisGroups- , "networkInterfaceId" =? _inisNetworkInterfaceId- , "privateIpAddress" =? _inisPrivateIpAddress- , "privateIpAddressesSet" `toQueryList` _inisPrivateIpAddresses- , "secondaryPrivateIpAddressCount" =? _inisSecondaryPrivateIpAddressCount- , "subnetId" =? _inisSubnetId- ]--data VolumeState- = VSAvailable -- ^ available- | VSCreating -- ^ creating- | VSDeleted -- ^ deleted- | VSDeleting -- ^ deleting- | VSError -- ^ error- | VSInUse -- ^ in-use- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VolumeState--instance FromText VolumeState where- parser = takeLowerText >>= \case- "available" -> pure VSAvailable- "creating" -> pure VSCreating- "deleted" -> pure VSDeleted- "deleting" -> pure VSDeleting- "error" -> pure VSError- "in-use" -> pure VSInUse- e -> fail $- "Failure parsing VolumeState from " ++ show e--instance ToText VolumeState where- toText = \case- VSAvailable -> "available"- VSCreating -> "creating"- VSDeleted -> "deleted"- VSDeleting -> "deleting"- VSError -> "error"- VSInUse -> "in-use"--instance ToByteString VolumeState-instance ToHeader VolumeState-instance ToQuery VolumeState--instance FromXML VolumeState where- parseXML = parseXMLText "VolumeState"--newtype AttributeValue = AttributeValue- { _avValue :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)---- | 'AttributeValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'avValue' @::@ 'Maybe' 'Text'----attributeValue :: AttributeValue-attributeValue = AttributeValue- { _avValue = Nothing- }---- | Valid values are case-sensitive and vary by action.-avValue :: Lens' AttributeValue (Maybe Text)-avValue = lens _avValue (\s a -> s { _avValue = a })--instance FromXML AttributeValue where- parseXML x = AttributeValue- <$> x .@? "value"--instance ToQuery AttributeValue where- toQuery AttributeValue{..} = mconcat- [ "value" =? _avValue- ]--data PrivateIpAddressSpecification = PrivateIpAddressSpecification- { _piasPrimary :: Maybe Bool- , _piasPrivateIpAddress :: Text- } deriving (Eq, Ord, Read, Show)---- | 'PrivateIpAddressSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'piasPrimary' @::@ 'Maybe' 'Bool'------ * 'piasPrivateIpAddress' @::@ 'Text'----privateIpAddressSpecification :: Text -- ^ 'piasPrivateIpAddress'- -> PrivateIpAddressSpecification-privateIpAddressSpecification p1 = PrivateIpAddressSpecification- { _piasPrivateIpAddress = p1- , _piasPrimary = Nothing- }---- | Indicates whether the private IP address is the primary private IP address.--- Only one IP address can be designated as primary.-piasPrimary :: Lens' PrivateIpAddressSpecification (Maybe Bool)-piasPrimary = lens _piasPrimary (\s a -> s { _piasPrimary = a })---- | The private IP 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 ToQuery PrivateIpAddressSpecification where- toQuery PrivateIpAddressSpecification{..} = mconcat- [ "primary" =? _piasPrimary- , "privateIpAddress" =? _piasPrivateIpAddress- ]--data Image = Image- { _iArchitecture :: ArchitectureValues- , _iBlockDeviceMappings :: List "item" BlockDeviceMapping- , _iCreationDate :: Maybe Text- , _iDescription :: Maybe Text- , _iHypervisor :: HypervisorType- , _iImageId :: Text- , _iImageLocation :: Text- , _iImageOwnerAlias :: Maybe Text- , _iImageType :: ImageTypeValues- , _iKernelId :: Maybe Text- , _iName :: Maybe Text- , _iOwnerId :: Text- , _iPlatform :: Maybe PlatformValues- , _iProductCodes :: List "item" ProductCode- , _iPublic :: Bool- , _iRamdiskId :: Maybe Text- , _iRootDeviceName :: Maybe Text- , _iRootDeviceType :: DeviceType- , _iSriovNetSupport :: Maybe Text- , _iState :: ImageState- , _iStateReason :: Maybe StateReason- , _iTags :: List "item" Tag- , _iVirtualizationType :: VirtualizationType- } deriving (Eq, Read, Show)---- | 'Image' constructor.------ The fields accessible through corresponding lenses are:------ * 'iArchitecture' @::@ 'ArchitectureValues'------ * 'iBlockDeviceMappings' @::@ ['BlockDeviceMapping']------ * 'iCreationDate' @::@ 'Maybe' 'Text'------ * 'iDescription' @::@ 'Maybe' 'Text'------ * 'iHypervisor' @::@ 'HypervisorType'------ * 'iImageId' @::@ 'Text'------ * 'iImageLocation' @::@ 'Text'------ * 'iImageOwnerAlias' @::@ 'Maybe' 'Text'------ * 'iImageType' @::@ 'ImageTypeValues'------ * 'iKernelId' @::@ 'Maybe' 'Text'------ * 'iName' @::@ 'Maybe' 'Text'------ * 'iOwnerId' @::@ 'Text'------ * 'iPlatform' @::@ 'Maybe' 'PlatformValues'------ * 'iProductCodes' @::@ ['ProductCode']------ * 'iPublic' @::@ 'Bool'------ * 'iRamdiskId' @::@ 'Maybe' 'Text'------ * 'iRootDeviceName' @::@ 'Maybe' 'Text'------ * 'iRootDeviceType' @::@ 'DeviceType'------ * 'iSriovNetSupport' @::@ 'Maybe' 'Text'------ * 'iState' @::@ 'ImageState'------ * 'iStateReason' @::@ 'Maybe' 'StateReason'------ * 'iTags' @::@ ['Tag']------ * 'iVirtualizationType' @::@ 'VirtualizationType'----image :: Text -- ^ 'iImageId'- -> Text -- ^ 'iImageLocation'- -> ImageState -- ^ 'iState'- -> Text -- ^ 'iOwnerId'- -> Bool -- ^ 'iPublic'- -> ArchitectureValues -- ^ 'iArchitecture'- -> ImageTypeValues -- ^ 'iImageType'- -> DeviceType -- ^ 'iRootDeviceType'- -> VirtualizationType -- ^ 'iVirtualizationType'- -> HypervisorType -- ^ 'iHypervisor'- -> Image-image p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 = Image- { _iImageId = p1- , _iImageLocation = p2- , _iState = p3- , _iOwnerId = p4- , _iPublic = p5- , _iArchitecture = p6- , _iImageType = p7- , _iRootDeviceType = p8- , _iVirtualizationType = p9- , _iHypervisor = p10- , _iCreationDate = Nothing- , _iProductCodes = mempty- , _iKernelId = Nothing- , _iRamdiskId = Nothing- , _iPlatform = Nothing- , _iSriovNetSupport = Nothing- , _iStateReason = Nothing- , _iImageOwnerAlias = Nothing- , _iName = Nothing- , _iDescription = Nothing- , _iRootDeviceName = Nothing- , _iBlockDeviceMappings = mempty- , _iTags = mempty- }---- | The architecture of the image.-iArchitecture :: Lens' Image ArchitectureValues-iArchitecture = lens _iArchitecture (\s a -> s { _iArchitecture = a })---- | Any block device mapping entries.-iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]-iBlockDeviceMappings =- lens _iBlockDeviceMappings (\s a -> s { _iBlockDeviceMappings = a })- . _List---- | The date and time the image was created.-iCreationDate :: Lens' Image (Maybe Text)-iCreationDate = lens _iCreationDate (\s a -> s { _iCreationDate = 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 })---- | The hypervisor type of the image.-iHypervisor :: Lens' Image HypervisorType-iHypervisor = lens _iHypervisor (\s a -> s { _iHypervisor = a })---- | 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 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 type of image.-iImageType :: Lens' Image ImageTypeValues-iImageType = lens _iImageType (\s a -> s { _iImageType = 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 name of the AMI that was provided during image creation.-iName :: Lens' Image (Maybe Text)-iName = lens _iName (\s a -> s { _iName = a })---- | The AWS account ID of the image owner.-iOwnerId :: Lens' Image Text-iOwnerId = lens _iOwnerId (\s a -> s { _iOwnerId = a })---- | The value is 'Windows' for Windows AMIs; otherwise blank.-iPlatform :: Lens' Image (Maybe PlatformValues)-iPlatform = lens _iPlatform (\s a -> s { _iPlatform = a })---- | Any product codes associated with the AMI.-iProductCodes :: Lens' Image [ProductCode]-iProductCodes = lens _iProductCodes (\s a -> s { _iProductCodes = a }) . _List---- | 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 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 device name of the root device (for example, /dev/sda1 or xvda).-iRootDeviceName :: Lens' Image (Maybe Text)-iRootDeviceName = lens _iRootDeviceName (\s a -> s { _iRootDeviceName = a })---- | The type of root device used by the AMI. The AMI can use an Amazon EBS volume--- or an instance store volume.-iRootDeviceType :: Lens' Image DeviceType-iRootDeviceType = lens _iRootDeviceType (\s a -> s { _iRootDeviceType = a })---- | Specifies whether enhanced networking is enabled.-iSriovNetSupport :: Lens' Image (Maybe Text)-iSriovNetSupport = lens _iSriovNetSupport (\s a -> s { _iSriovNetSupport = 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 reason for the state change.-iStateReason :: Lens' Image (Maybe StateReason)-iStateReason = lens _iStateReason (\s a -> s { _iStateReason = a })---- | Any tags assigned to the image.-iTags :: Lens' Image [Tag]-iTags = lens _iTags (\s a -> s { _iTags = a }) . _List---- | The type of virtualization of the AMI.-iVirtualizationType :: Lens' Image VirtualizationType-iVirtualizationType =- lens _iVirtualizationType (\s a -> s { _iVirtualizationType = a })--instance FromXML Image where- parseXML x = Image- <$> x .@ "architecture"- <*> x .@? "blockDeviceMapping" .!@ mempty- <*> x .@? "creationDate"- <*> x .@? "description"- <*> x .@ "hypervisor"- <*> x .@ "imageId"- <*> x .@ "imageLocation"- <*> x .@? "imageOwnerAlias"- <*> x .@ "imageType"- <*> x .@? "kernelId"- <*> x .@? "name"- <*> x .@ "imageOwnerId"- <*> x .@? "platform"- <*> x .@? "productCodes" .!@ mempty- <*> x .@ "isPublic"- <*> x .@? "ramdiskId"- <*> x .@? "rootDeviceName"- <*> x .@ "rootDeviceType"- <*> x .@? "sriovNetSupport"- <*> x .@ "imageState"- <*> x .@? "stateReason"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "virtualizationType"--instance ToQuery Image where- toQuery Image{..} = mconcat- [ "architecture" =? _iArchitecture- , "blockDeviceMapping" `toQueryList` _iBlockDeviceMappings- , "creationDate" =? _iCreationDate- , "description" =? _iDescription- , "hypervisor" =? _iHypervisor- , "imageId" =? _iImageId- , "imageLocation" =? _iImageLocation- , "imageOwnerAlias" =? _iImageOwnerAlias- , "imageType" =? _iImageType- , "kernelId" =? _iKernelId- , "name" =? _iName- , "imageOwnerId" =? _iOwnerId- , "platform" =? _iPlatform- , "productCodes" `toQueryList` _iProductCodes- , "isPublic" =? _iPublic- , "ramdiskId" =? _iRamdiskId- , "rootDeviceName" =? _iRootDeviceName- , "rootDeviceType" =? _iRootDeviceType- , "sriovNetSupport" =? _iSriovNetSupport- , "imageState" =? _iState- , "stateReason" =? _iStateReason- , "tagSet" `toQueryList` _iTags- , "virtualizationType" =? _iVirtualizationType- ]--data DhcpConfiguration = DhcpConfiguration- { _dcKey :: Maybe Text- , _dcValues :: List "item" AttributeValue- } deriving (Eq, Read, Show)---- | 'DhcpConfiguration' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcKey' @::@ 'Maybe' 'Text'------ * 'dcValues' @::@ ['AttributeValue']----dhcpConfiguration :: DhcpConfiguration-dhcpConfiguration = DhcpConfiguration- { _dcKey = Nothing- , _dcValues = mempty- }---- | The name of a DHCP option.-dcKey :: Lens' DhcpConfiguration (Maybe Text)-dcKey = lens _dcKey (\s a -> s { _dcKey = a })---- | One or more values for the DHCP option.-dcValues :: Lens' DhcpConfiguration [AttributeValue]-dcValues = lens _dcValues (\s a -> s { _dcValues = a }) . _List--instance FromXML DhcpConfiguration where- parseXML x = DhcpConfiguration- <$> x .@? "key"- <*> x .@? "valueSet" .!@ mempty--instance ToQuery DhcpConfiguration where- toQuery DhcpConfiguration{..} = mconcat- [ "key" =? _dcKey- , "valueSet" `toQueryList` _dcValues- ]--data Tag = Tag- { _tagKey :: Text- , _tagValue :: Text- } deriving (Eq, Ord, Read, Show)---- | 'Tag' constructor.------ The fields accessible through corresponding lenses are:------ * 'tagKey' @::@ 'Text'------ * 'tagValue' @::@ 'Text'----tag :: Text -- ^ 'tagKey'- -> Text -- ^ 'tagValue'- -> Tag-tag p1 p2 = Tag- { _tagKey = p1- , _tagValue = p2- }---- | 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 ToQuery Tag where- toQuery Tag{..} = mconcat- [ "key" =? _tagKey- , "value" =? _tagValue- ]--data AccountAttributeName- = DefaultVpc -- ^ default-vpc- | SupportedPlatforms -- ^ supported-platforms- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable AccountAttributeName--instance FromText AccountAttributeName where- parser = takeLowerText >>= \case- "default-vpc" -> pure DefaultVpc- "supported-platforms" -> pure SupportedPlatforms- e -> fail $- "Failure parsing AccountAttributeName from " ++ show e--instance ToText AccountAttributeName where- toText = \case- DefaultVpc -> "default-vpc"- SupportedPlatforms -> "supported-platforms"--instance ToByteString AccountAttributeName-instance ToHeader AccountAttributeName-instance ToQuery AccountAttributeName--instance FromXML AccountAttributeName where- parseXML = parseXMLText "AccountAttributeName"--data NetworkInterfaceAttachment = NetworkInterfaceAttachment- { _niaAttachTime :: Maybe ISO8601- , _niaAttachmentId :: Maybe Text- , _niaDeleteOnTermination :: Maybe Bool- , _niaDeviceIndex :: Maybe Int- , _niaInstanceId :: Maybe Text- , _niaInstanceOwnerId :: Maybe Text- , _niaStatus :: Maybe AttachmentStatus- } deriving (Eq, Read, Show)---- | 'NetworkInterfaceAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'niaAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'niaAttachmentId' @::@ 'Maybe' 'Text'------ * 'niaDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'niaDeviceIndex' @::@ 'Maybe' 'Int'------ * 'niaInstanceId' @::@ 'Maybe' 'Text'------ * 'niaInstanceOwnerId' @::@ 'Maybe' 'Text'------ * 'niaStatus' @::@ 'Maybe' 'AttachmentStatus'----networkInterfaceAttachment :: NetworkInterfaceAttachment-networkInterfaceAttachment = NetworkInterfaceAttachment- { _niaAttachmentId = Nothing- , _niaInstanceId = Nothing- , _niaInstanceOwnerId = Nothing- , _niaDeviceIndex = Nothing- , _niaStatus = Nothing- , _niaAttachTime = Nothing- , _niaDeleteOnTermination = Nothing- }---- | The timestamp indicating when the attachment initiated.-niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)-niaAttachTime = lens _niaAttachTime (\s a -> s { _niaAttachTime = a }) . mapping _Time---- | The ID of the network interface attachment.-niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaAttachmentId = lens _niaAttachmentId (\s a -> s { _niaAttachmentId = 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 device index of the network interface attachment on the instance.-niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)-niaDeviceIndex = lens _niaDeviceIndex (\s a -> s { _niaDeviceIndex = a })---- | The ID of the instance.-niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)-niaInstanceId = lens _niaInstanceId (\s a -> s { _niaInstanceId = 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 attachment state.-niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)-niaStatus = lens _niaStatus (\s a -> s { _niaStatus = a })--instance FromXML NetworkInterfaceAttachment where- parseXML x = NetworkInterfaceAttachment- <$> x .@? "attachTime"- <*> x .@? "attachmentId"- <*> x .@? "deleteOnTermination"- <*> x .@? "deviceIndex"- <*> x .@? "instanceId"- <*> x .@? "instanceOwnerId"- <*> x .@? "status"--instance ToQuery NetworkInterfaceAttachment where- toQuery NetworkInterfaceAttachment{..} = mconcat- [ "attachTime" =? _niaAttachTime- , "attachmentId" =? _niaAttachmentId- , "deleteOnTermination" =? _niaDeleteOnTermination- , "deviceIndex" =? _niaDeviceIndex- , "instanceId" =? _niaInstanceId- , "instanceOwnerId" =? _niaInstanceOwnerId- , "status" =? _niaStatus- ]--newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled- { _rimeEnabled :: Bool- } deriving (Eq, Ord, Read, Show, Enum)---- | 'RunInstancesMonitoringEnabled' constructor.------ The fields accessible through corresponding lenses are:------ * 'rimeEnabled' @::@ 'Bool'----runInstancesMonitoringEnabled :: Bool -- ^ 'rimeEnabled'- -> RunInstancesMonitoringEnabled-runInstancesMonitoringEnabled p1 = RunInstancesMonitoringEnabled- { _rimeEnabled = p1- }---- | Indicates whether monitoring is enabled for the instance.-rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool-rimeEnabled = lens _rimeEnabled (\s a -> s { _rimeEnabled = a })--instance FromXML RunInstancesMonitoringEnabled where- parseXML x = RunInstancesMonitoringEnabled- <$> x .@ "enabled"--instance ToQuery RunInstancesMonitoringEnabled where- toQuery RunInstancesMonitoringEnabled{..} = mconcat- [ "enabled" =? _rimeEnabled- ]--data VolumeStatusInfo = VolumeStatusInfo- { _vsiDetails :: List "item" VolumeStatusDetails- , _vsiStatus :: Maybe VolumeStatusInfoStatus- } deriving (Eq, Read, Show)---- | 'VolumeStatusInfo' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsiDetails' @::@ ['VolumeStatusDetails']------ * 'vsiStatus' @::@ 'Maybe' 'VolumeStatusInfoStatus'----volumeStatusInfo :: VolumeStatusInfo-volumeStatusInfo = VolumeStatusInfo- { _vsiStatus = Nothing- , _vsiDetails = mempty- }---- | The details of the volume status.-vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]-vsiDetails = lens _vsiDetails (\s a -> s { _vsiDetails = a }) . _List---- | The status of the volume.-vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)-vsiStatus = lens _vsiStatus (\s a -> s { _vsiStatus = a })--instance FromXML VolumeStatusInfo where- parseXML x = VolumeStatusInfo- <$> x .@? "details" .!@ mempty- <*> x .@? "status"--instance ToQuery VolumeStatusInfo where- toQuery VolumeStatusInfo{..} = mconcat- [ "details" `toQueryList` _vsiDetails- , "status" =? _vsiStatus- ]--data NetworkInterfaceAssociation = NetworkInterfaceAssociation- { _niaAllocationId :: Maybe Text- , _niaAssociationId :: Maybe Text- , _niaIpOwnerId :: Maybe Text- , _niaPublicDnsName :: Maybe Text- , _niaPublicIp :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'NetworkInterfaceAssociation' constructor.------ The fields accessible through corresponding lenses are:------ * 'niaAllocationId' @::@ 'Maybe' 'Text'------ * 'niaAssociationId' @::@ 'Maybe' 'Text'------ * 'niaIpOwnerId' @::@ 'Maybe' 'Text'------ * 'niaPublicDnsName' @::@ 'Maybe' 'Text'------ * 'niaPublicIp' @::@ 'Maybe' 'Text'----networkInterfaceAssociation :: NetworkInterfaceAssociation-networkInterfaceAssociation = NetworkInterfaceAssociation- { _niaPublicIp = Nothing- , _niaPublicDnsName = Nothing- , _niaIpOwnerId = Nothing- , _niaAllocationId = Nothing- , _niaAssociationId = Nothing- }---- | The allocation ID.-niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaAllocationId = lens _niaAllocationId (\s a -> s { _niaAllocationId = a })---- | The association ID.-niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaAssociationId = lens _niaAssociationId (\s a -> s { _niaAssociationId = a })---- | The ID of the Elastic IP address owner.-niaIpOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaIpOwnerId = lens _niaIpOwnerId (\s a -> s { _niaIpOwnerId = a })---- | The public DNS name.-niaPublicDnsName :: Lens' NetworkInterfaceAssociation (Maybe Text)-niaPublicDnsName = lens _niaPublicDnsName (\s a -> s { _niaPublicDnsName = 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 .@? "allocationId"- <*> x .@? "associationId"- <*> x .@? "ipOwnerId"- <*> x .@? "publicDnsName"- <*> x .@? "publicIp"--instance ToQuery NetworkInterfaceAssociation where- toQuery NetworkInterfaceAssociation{..} = mconcat- [ "allocationId" =? _niaAllocationId- , "associationId" =? _niaAssociationId- , "ipOwnerId" =? _niaIpOwnerId- , "publicDnsName" =? _niaPublicDnsName- , "publicIp" =? _niaPublicIp- ]--data CreateVolumePermissionModifications = CreateVolumePermissionModifications- { _cvpmAdd :: List "item" CreateVolumePermission- , _cvpmRemove :: List "item" CreateVolumePermission- } deriving (Eq, Read, Show)---- | 'CreateVolumePermissionModifications' constructor.------ The fields accessible through corresponding lenses are:------ * 'cvpmAdd' @::@ ['CreateVolumePermission']------ * 'cvpmRemove' @::@ ['CreateVolumePermission']----createVolumePermissionModifications :: CreateVolumePermissionModifications-createVolumePermissionModifications = CreateVolumePermissionModifications- { _cvpmAdd = mempty- , _cvpmRemove = mempty- }---- | 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 }) . _List---- | 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 }) . _List--instance FromXML CreateVolumePermissionModifications where- parseXML x = CreateVolumePermissionModifications- <$> x .@? "Add" .!@ mempty- <*> x .@? "Remove" .!@ mempty--instance ToQuery CreateVolumePermissionModifications where- toQuery CreateVolumePermissionModifications{..} = mconcat- [ "Add" `toQueryList` _cvpmAdd- , "Remove" `toQueryList` _cvpmRemove- ]--data VpcState- = VpcStateAvailable -- ^ available- | VpcStatePending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VpcState--instance FromText VpcState where- parser = takeLowerText >>= \case- "available" -> pure VpcStateAvailable- "pending" -> pure VpcStatePending- e -> fail $- "Failure parsing VpcState from " ++ show e--instance ToText VpcState where- toText = \case- VpcStateAvailable -> "available"- VpcStatePending -> "pending"--instance ToByteString VpcState-instance ToHeader VpcState-instance ToQuery VpcState--instance FromXML VpcState where- parseXML = parseXMLText "VpcState"--data ResourceType- = RTCustomerGateway -- ^ customer-gateway- | RTDhcpOptions -- ^ dhcp-options- | RTImage -- ^ image- | RTInstance' -- ^ instance- | RTInternetGateway -- ^ internet-gateway- | RTNetworkAcl -- ^ network-acl- | RTNetworkInterface -- ^ network-interface- | RTReservedInstances -- ^ reserved-instances- | RTRouteTable -- ^ route-table- | RTSecurityGroup -- ^ security-group- | RTSnapshot -- ^ snapshot- | RTSpotInstancesRequest -- ^ spot-instances-request- | RTSubnet -- ^ subnet- | RTVolume -- ^ volume- | RTVpc -- ^ vpc- | RTVpnConnection -- ^ vpn-connection- | RTVpnGateway -- ^ vpn-gateway- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ResourceType--instance FromText ResourceType where- parser = takeLowerText >>= \case- "customer-gateway" -> pure RTCustomerGateway- "dhcp-options" -> pure RTDhcpOptions- "image" -> pure RTImage- "instance" -> pure RTInstance'- "internet-gateway" -> pure RTInternetGateway- "network-acl" -> pure RTNetworkAcl- "network-interface" -> pure RTNetworkInterface- "reserved-instances" -> pure RTReservedInstances- "route-table" -> pure RTRouteTable- "security-group" -> pure RTSecurityGroup- "snapshot" -> pure RTSnapshot- "spot-instances-request" -> pure RTSpotInstancesRequest- "subnet" -> pure RTSubnet- "volume" -> pure RTVolume- "vpc" -> pure RTVpc- "vpn-connection" -> pure RTVpnConnection- "vpn-gateway" -> pure RTVpnGateway- e -> fail $- "Failure parsing ResourceType from " ++ show e--instance ToText ResourceType where- toText = \case- RTCustomerGateway -> "customer-gateway"- RTDhcpOptions -> "dhcp-options"- RTImage -> "image"- RTInstance' -> "instance"- RTInternetGateway -> "internet-gateway"- RTNetworkAcl -> "network-acl"- RTNetworkInterface -> "network-interface"- RTReservedInstances -> "reserved-instances"- RTRouteTable -> "route-table"- RTSecurityGroup -> "security-group"- RTSnapshot -> "snapshot"- RTSpotInstancesRequest -> "spot-instances-request"- RTSubnet -> "subnet"- RTVolume -> "volume"- RTVpc -> "vpc"- RTVpnConnection -> "vpn-connection"- RTVpnGateway -> "vpn-gateway"--instance ToByteString ResourceType-instance ToHeader ResourceType-instance ToQuery ResourceType--instance FromXML ResourceType where- parseXML = parseXMLText "ResourceType"--data ReportStatusType- = Impaired -- ^ impaired- | Ok -- ^ ok- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ReportStatusType--instance FromText ReportStatusType where- parser = takeLowerText >>= \case- "impaired" -> pure Impaired- "ok" -> pure Ok- e -> fail $- "Failure parsing ReportStatusType from " ++ show e--instance ToText ReportStatusType where- toText = \case- Impaired -> "impaired"- Ok -> "ok"--instance ToByteString ReportStatusType-instance ToHeader ReportStatusType-instance ToQuery ReportStatusType--instance FromXML ReportStatusType where- parseXML = parseXMLText "ReportStatusType"--data CurrencyCodeValues- = Usd -- ^ USD- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable CurrencyCodeValues--instance FromText CurrencyCodeValues where- parser = takeLowerText >>= \case- "usd" -> pure Usd- e -> fail $- "Failure parsing CurrencyCodeValues from " ++ show e--instance ToText CurrencyCodeValues where- toText Usd = "USD"--instance ToByteString CurrencyCodeValues-instance ToHeader CurrencyCodeValues-instance ToQuery CurrencyCodeValues--instance FromXML CurrencyCodeValues where- parseXML = parseXMLText "CurrencyCodeValues"--data IcmpTypeCode = IcmpTypeCode- { _itcCode :: Maybe Int- , _itcType :: Maybe Int- } deriving (Eq, Ord, Read, Show)---- | 'IcmpTypeCode' constructor.------ The fields accessible through corresponding lenses are:------ * 'itcCode' @::@ 'Maybe' 'Int'------ * 'itcType' @::@ 'Maybe' 'Int'----icmpTypeCode :: IcmpTypeCode-icmpTypeCode = IcmpTypeCode- { _itcType = Nothing- , _itcCode = Nothing- }---- | The ICMP type. A value of -1 means all types.-itcCode :: Lens' IcmpTypeCode (Maybe Int)-itcCode = lens _itcCode (\s a -> s { _itcCode = a })---- | The ICMP code. A value of -1 means all codes for the specified ICMP type.-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 ToQuery IcmpTypeCode where- toQuery IcmpTypeCode{..} = mconcat- [ "code" =? _itcCode- , "type" =? _itcType- ]--data InstanceCount = InstanceCount- { _icInstanceCount :: Maybe Int- , _icState :: Maybe ListingState- } deriving (Eq, Read, Show)---- | 'InstanceCount' constructor.------ The fields accessible through corresponding lenses are:------ * 'icInstanceCount' @::@ 'Maybe' 'Int'------ * 'icState' @::@ 'Maybe' 'ListingState'----instanceCount :: InstanceCount-instanceCount = InstanceCount- { _icState = Nothing- , _icInstanceCount = Nothing- }---- | he 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 })---- | The states of the listed Reserved Instances.-icState :: Lens' InstanceCount (Maybe ListingState)-icState = lens _icState (\s a -> s { _icState = a })--instance FromXML InstanceCount where- parseXML x = InstanceCount- <$> x .@? "instanceCount"- <*> x .@? "state"--instance ToQuery InstanceCount where- toQuery InstanceCount{..} = mconcat- [ "instanceCount" =? _icInstanceCount- , "state" =? _icState- ]--data ExportToS3Task = ExportToS3Task- { _etstContainerFormat :: Maybe ContainerFormat- , _etstDiskImageFormat :: Maybe DiskImageFormat- , _etstS3Bucket :: Maybe Text- , _etstS3Key :: Maybe Text- } deriving (Eq, Read, Show)---- | 'ExportToS3Task' constructor.------ The fields accessible through corresponding lenses are:------ * 'etstContainerFormat' @::@ 'Maybe' 'ContainerFormat'------ * 'etstDiskImageFormat' @::@ 'Maybe' 'DiskImageFormat'------ * 'etstS3Bucket' @::@ 'Maybe' 'Text'------ * 'etstS3Key' @::@ 'Maybe' 'Text'----exportToS3Task :: ExportToS3Task-exportToS3Task = ExportToS3Task- { _etstDiskImageFormat = Nothing- , _etstContainerFormat = Nothing- , _etstS3Bucket = Nothing- , _etstS3Key = Nothing- }---- | 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 format for the exported image.-etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)-etstDiskImageFormat =- lens _etstDiskImageFormat (\s a -> s { _etstDiskImageFormat = a })---- | The Amazon S3 bucket for the destination image. The destination bucket must--- exist and grant WRITE and READ_ACL permissions to the AWS account 'vm-import-export@amazon.com'.-etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)-etstS3Bucket = lens _etstS3Bucket (\s a -> s { _etstS3Bucket = a })--etstS3Key :: Lens' ExportToS3Task (Maybe Text)-etstS3Key = lens _etstS3Key (\s a -> s { _etstS3Key = a })--instance FromXML ExportToS3Task where- parseXML x = ExportToS3Task- <$> x .@? "containerFormat"- <*> x .@? "diskImageFormat"- <*> x .@? "s3Bucket"- <*> x .@? "s3Key"--instance ToQuery ExportToS3Task where- toQuery ExportToS3Task{..} = mconcat- [ "containerFormat" =? _etstContainerFormat- , "diskImageFormat" =? _etstDiskImageFormat- , "s3Bucket" =? _etstS3Bucket- , "s3Key" =? _etstS3Key- ]--data BlockDeviceMapping = BlockDeviceMapping- { _bdmDeviceName :: Text- , _bdmEbs :: Maybe EbsBlockDevice- , _bdmNoDevice :: Maybe Text- , _bdmVirtualName :: Maybe Text- } deriving (Eq, Read, Show)---- | 'BlockDeviceMapping' constructor.------ The fields accessible through corresponding lenses are:------ * 'bdmDeviceName' @::@ 'Text'------ * 'bdmEbs' @::@ 'Maybe' 'EbsBlockDevice'------ * 'bdmNoDevice' @::@ 'Maybe' 'Text'------ * 'bdmVirtualName' @::@ 'Maybe' 'Text'----blockDeviceMapping :: Text -- ^ 'bdmDeviceName'- -> BlockDeviceMapping-blockDeviceMapping p1 = BlockDeviceMapping- { _bdmDeviceName = p1- , _bdmVirtualName = Nothing- , _bdmEbs = Nothing- , _bdmNoDevice = Nothing- }---- | The device name exposed to the instance (for example, '/dev/sdh').-bdmDeviceName :: Lens' BlockDeviceMapping Text-bdmDeviceName = lens _bdmDeviceName (\s a -> s { _bdmDeviceName = a })---- | Parameters used to automatically set up Amazon EBS volumes when the instance--- is launched.-bdmEbs :: Lens' BlockDeviceMapping (Maybe EbsBlockDevice)-bdmEbs = lens _bdmEbs (\s a -> s { _bdmEbs = 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 })---- | 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 })--instance FromXML BlockDeviceMapping where- parseXML x = BlockDeviceMapping- <$> x .@ "deviceName"- <*> x .@? "ebs"- <*> x .@? "noDevice"- <*> x .@? "virtualName"--instance ToQuery BlockDeviceMapping where- toQuery BlockDeviceMapping{..} = mconcat- [ "deviceName" =? _bdmDeviceName- , "ebs" =? _bdmEbs- , "noDevice" =? _bdmNoDevice- , "virtualName" =? _bdmVirtualName- ]--data ConversionTask = ConversionTask- { _ctConversionTaskId :: Text- , _ctExpirationTime :: Maybe Text- , _ctImportInstance :: Maybe ImportInstanceTaskDetails- , _ctImportVolume :: Maybe ImportVolumeTaskDetails- , _ctState :: ConversionTaskState- , _ctStatusMessage :: Maybe Text- , _ctTags :: List "item" Tag- } deriving (Eq, Read, Show)---- | 'ConversionTask' constructor.------ The fields accessible through corresponding lenses are:------ * 'ctConversionTaskId' @::@ 'Text'------ * 'ctExpirationTime' @::@ 'Maybe' 'Text'------ * 'ctImportInstance' @::@ 'Maybe' 'ImportInstanceTaskDetails'------ * 'ctImportVolume' @::@ 'Maybe' 'ImportVolumeTaskDetails'------ * 'ctState' @::@ 'ConversionTaskState'------ * 'ctStatusMessage' @::@ 'Maybe' 'Text'------ * 'ctTags' @::@ ['Tag']----conversionTask :: Text -- ^ 'ctConversionTaskId'- -> ConversionTaskState -- ^ 'ctState'- -> ConversionTask-conversionTask p1 p2 = ConversionTask- { _ctConversionTaskId = p1- , _ctState = p2- , _ctExpirationTime = Nothing- , _ctImportInstance = Nothing- , _ctImportVolume = Nothing- , _ctStatusMessage = Nothing- , _ctTags = mempty- }---- | The ID of the conversion task.-ctConversionTaskId :: Lens' ConversionTask Text-ctConversionTaskId =- lens _ctConversionTaskId (\s a -> s { _ctConversionTaskId = 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 })---- | 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 })---- | 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 state of the conversion task.-ctState :: Lens' ConversionTask ConversionTaskState-ctState = lens _ctState (\s a -> s { _ctState = a })---- | The status message related to the conversion task.-ctStatusMessage :: Lens' ConversionTask (Maybe Text)-ctStatusMessage = lens _ctStatusMessage (\s a -> s { _ctStatusMessage = a })--ctTags :: Lens' ConversionTask [Tag]-ctTags = lens _ctTags (\s a -> s { _ctTags = a }) . _List--instance FromXML ConversionTask where- parseXML x = ConversionTask- <$> x .@ "conversionTaskId"- <*> x .@? "expirationTime"- <*> x .@? "importInstance"- <*> x .@? "importVolume"- <*> x .@ "state"- <*> x .@? "statusMessage"- <*> x .@? "tagSet" .!@ mempty--instance ToQuery ConversionTask where- toQuery ConversionTask{..} = mconcat- [ "conversionTaskId" =? _ctConversionTaskId- , "expirationTime" =? _ctExpirationTime- , "importInstance" =? _ctImportInstance- , "importVolume" =? _ctImportVolume- , "state" =? _ctState- , "statusMessage" =? _ctStatusMessage- , "tagSet" `toQueryList` _ctTags- ]--data AttachmentStatus- = ASAttached -- ^ attached- | ASAttaching -- ^ attaching- | ASDetached -- ^ detached- | ASDetaching -- ^ detaching- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable AttachmentStatus--instance FromText AttachmentStatus where- parser = takeLowerText >>= \case- "attached" -> pure ASAttached- "attaching" -> pure ASAttaching- "detached" -> pure ASDetached- "detaching" -> pure ASDetaching- e -> fail $- "Failure parsing AttachmentStatus from " ++ show e--instance ToText AttachmentStatus where- toText = \case- ASAttached -> "attached"- ASAttaching -> "attaching"- ASDetached -> "detached"- ASDetaching -> "detaching"--instance ToByteString AttachmentStatus-instance ToHeader AttachmentStatus-instance ToQuery AttachmentStatus--instance FromXML AttachmentStatus where- parseXML = parseXMLText "AttachmentStatus"--data ClassicLinkInstance = ClassicLinkInstance- { _cliGroups :: List "item" GroupIdentifier- , _cliInstanceId :: Maybe Text- , _cliTags :: List "item" Tag- , _cliVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'ClassicLinkInstance' constructor.------ The fields accessible through corresponding lenses are:------ * 'cliGroups' @::@ ['GroupIdentifier']------ * 'cliInstanceId' @::@ 'Maybe' 'Text'------ * 'cliTags' @::@ ['Tag']------ * 'cliVpcId' @::@ 'Maybe' 'Text'----classicLinkInstance :: ClassicLinkInstance-classicLinkInstance = ClassicLinkInstance- { _cliInstanceId = Nothing- , _cliVpcId = Nothing- , _cliGroups = mempty- , _cliTags = mempty- }---- | A list of security groups.-cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]-cliGroups = lens _cliGroups (\s a -> s { _cliGroups = a }) . _List---- | The ID of the instance.-cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)-cliInstanceId = lens _cliInstanceId (\s a -> s { _cliInstanceId = a })---- | Any tags assigned to the instance.-cliTags :: Lens' ClassicLinkInstance [Tag]-cliTags = lens _cliTags (\s a -> s { _cliTags = a }) . _List---- | The ID of the VPC.-cliVpcId :: Lens' ClassicLinkInstance (Maybe Text)-cliVpcId = lens _cliVpcId (\s a -> s { _cliVpcId = a })--instance FromXML ClassicLinkInstance where- parseXML x = ClassicLinkInstance- <$> x .@? "groupSet" .!@ mempty- <*> x .@? "instanceId"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcId"--instance ToQuery ClassicLinkInstance where- toQuery ClassicLinkInstance{..} = mconcat- [ "groupSet" `toQueryList` _cliGroups- , "instanceId" =? _cliInstanceId- , "tagSet" `toQueryList` _cliTags- , "vpcId" =? _cliVpcId- ]--data RouteOrigin- = OriginCreateRoute -- ^ CreateRoute- | OriginCreateRouteTable -- ^ CreateRouteTable- | OriginEnableVgwRoutePropagation -- ^ EnableVgwRoutePropagation- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable RouteOrigin--instance FromText RouteOrigin where- parser = takeLowerText >>= \case- "createroute" -> pure OriginCreateRoute- "createroutetable" -> pure OriginCreateRouteTable- "enablevgwroutepropagation" -> pure OriginEnableVgwRoutePropagation- e -> fail $- "Failure parsing RouteOrigin from " ++ show e--instance ToText RouteOrigin where- toText = \case- OriginCreateRoute -> "CreateRoute"- OriginCreateRouteTable -> "CreateRouteTable"- OriginEnableVgwRoutePropagation -> "EnableVgwRoutePropagation"--instance ToByteString RouteOrigin-instance ToHeader RouteOrigin-instance ToQuery RouteOrigin--instance FromXML RouteOrigin where- parseXML = parseXMLText "RouteOrigin"--data ListingState- = LSAvailable -- ^ available- | LSCancelled -- ^ cancelled- | LSPending -- ^ pending- | LSSold -- ^ sold- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ListingState--instance FromText ListingState where- parser = takeLowerText >>= \case- "available" -> pure LSAvailable- "cancelled" -> pure LSCancelled- "pending" -> pure LSPending- "sold" -> pure LSSold- e -> fail $- "Failure parsing ListingState from " ++ show e--instance ToText ListingState where- toText = \case- LSAvailable -> "available"- LSCancelled -> "cancelled"- LSPending -> "pending"- LSSold -> "sold"--instance ToByteString ListingState-instance ToHeader ListingState-instance ToQuery ListingState--instance FromXML ListingState where- parseXML = parseXMLText "ListingState"--data SpotPrice = SpotPrice- { _spAvailabilityZone :: Maybe Text- , _spInstanceType :: Maybe InstanceType- , _spProductDescription :: Maybe RIProductDescription- , _spSpotPrice :: Maybe Text- , _spTimestamp :: Maybe ISO8601- } deriving (Eq, Read, Show)---- | 'SpotPrice' constructor.------ The fields accessible through corresponding lenses are:------ * 'spAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'spInstanceType' @::@ 'Maybe' 'InstanceType'------ * 'spProductDescription' @::@ 'Maybe' 'RIProductDescription'------ * 'spSpotPrice' @::@ 'Maybe' 'Text'------ * 'spTimestamp' @::@ 'Maybe' 'UTCTime'----spotPrice :: SpotPrice-spotPrice = SpotPrice- { _spInstanceType = Nothing- , _spProductDescription = Nothing- , _spSpotPrice = Nothing- , _spTimestamp = Nothing- , _spAvailabilityZone = Nothing- }---- | The Availability Zone.-spAvailabilityZone :: Lens' SpotPrice (Maybe Text)-spAvailabilityZone =- lens _spAvailabilityZone (\s a -> s { _spAvailabilityZone = a })---- | The instance type.-spInstanceType :: Lens' SpotPrice (Maybe InstanceType)-spInstanceType = lens _spInstanceType (\s a -> s { _spInstanceType = a })---- | A general description of the AMI.-spProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)-spProductDescription =- lens _spProductDescription (\s a -> s { _spProductDescription = a })---- | The maximum price you will pay to launch one or more Spot Instances.-spSpotPrice :: Lens' SpotPrice (Maybe Text)-spSpotPrice = lens _spSpotPrice (\s a -> s { _spSpotPrice = a })---- | The date and time the request was created.-spTimestamp :: Lens' SpotPrice (Maybe UTCTime)-spTimestamp = lens _spTimestamp (\s a -> s { _spTimestamp = a }) . mapping _Time--instance FromXML SpotPrice where- parseXML x = SpotPrice- <$> x .@? "availabilityZone"- <*> x .@? "instanceType"- <*> x .@? "productDescription"- <*> x .@? "spotPrice"- <*> x .@? "timestamp"--instance ToQuery SpotPrice where- toQuery SpotPrice{..} = mconcat- [ "availabilityZone" =? _spAvailabilityZone- , "instanceType" =? _spInstanceType- , "productDescription" =? _spProductDescription- , "spotPrice" =? _spSpotPrice- , "timestamp" =? _spTimestamp- ]--data InstanceMonitoring = InstanceMonitoring- { _imInstanceId :: Maybe Text- , _imMonitoring :: Maybe Monitoring- } deriving (Eq, Read, Show)---- | 'InstanceMonitoring' constructor.------ The fields accessible through corresponding lenses are:------ * 'imInstanceId' @::@ 'Maybe' 'Text'------ * 'imMonitoring' @::@ 'Maybe' 'Monitoring'----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 information.-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 ToQuery InstanceMonitoring where- toQuery InstanceMonitoring{..} = mconcat- [ "instanceId" =? _imInstanceId- , "monitoring" =? _imMonitoring- ]--data PriceScheduleSpecification = PriceScheduleSpecification- { _pssCurrencyCode :: Maybe CurrencyCodeValues- , _pssPrice :: Maybe Double- , _pssTerm :: Maybe Integer- } deriving (Eq, Read, Show)---- | 'PriceScheduleSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'pssCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'------ * 'pssPrice' @::@ 'Maybe' 'Double'------ * 'pssTerm' @::@ 'Maybe' 'Integer'----priceScheduleSpecification :: PriceScheduleSpecification-priceScheduleSpecification = PriceScheduleSpecification- { _pssTerm = Nothing- , _pssPrice = Nothing- , _pssCurrencyCode = 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 fixed price for the term.-pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)-pssPrice = lens _pssPrice (\s a -> s { _pssPrice = 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 })--instance FromXML PriceScheduleSpecification where- parseXML x = PriceScheduleSpecification- <$> x .@? "currencyCode"- <*> x .@? "price"- <*> x .@? "term"--instance ToQuery PriceScheduleSpecification where- toQuery PriceScheduleSpecification{..} = mconcat- [ "currencyCode" =? _pssCurrencyCode- , "price" =? _pssPrice- , "term" =? _pssTerm- ]--data SpotInstanceStatus = SpotInstanceStatus- { _sisCode :: Maybe Text- , _sisMessage :: Maybe Text- , _sisUpdateTime :: Maybe ISO8601- } deriving (Eq, Ord, Read, Show)---- | 'SpotInstanceStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'sisCode' @::@ 'Maybe' 'Text'------ * 'sisMessage' @::@ 'Maybe' 'Text'------ * 'sisUpdateTime' @::@ 'Maybe' 'UTCTime'----spotInstanceStatus :: SpotInstanceStatus-spotInstanceStatus = SpotInstanceStatus- { _sisCode = Nothing- , _sisUpdateTime = Nothing- , _sisMessage = Nothing- }---- | The status code of the request.-sisCode :: Lens' SpotInstanceStatus (Maybe Text)-sisCode = lens _sisCode (\s a -> s { _sisCode = a })---- | The description for the status code for the Spot request.-sisMessage :: Lens' SpotInstanceStatus (Maybe Text)-sisMessage = lens _sisMessage (\s a -> s { _sisMessage = a })---- | The time of the most recent status update.-sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)-sisUpdateTime = lens _sisUpdateTime (\s a -> s { _sisUpdateTime = a }) . mapping _Time--instance FromXML SpotInstanceStatus where- parseXML x = SpotInstanceStatus- <$> x .@? "code"- <*> x .@? "message"- <*> x .@? "updateTime"--instance ToQuery SpotInstanceStatus where- toQuery SpotInstanceStatus{..} = mconcat- [ "code" =? _sisCode- , "message" =? _sisMessage- , "updateTime" =? _sisUpdateTime- ]--data AvailabilityZoneState- = AZSAvailable -- ^ available- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable AvailabilityZoneState--instance FromText AvailabilityZoneState where- parser = takeLowerText >>= \case- "available" -> pure AZSAvailable- e -> fail $- "Failure parsing AvailabilityZoneState from " ++ show e--instance ToText AvailabilityZoneState where- toText AZSAvailable = "available"--instance ToByteString AvailabilityZoneState-instance ToHeader AvailabilityZoneState-instance ToQuery AvailabilityZoneState--instance FromXML AvailabilityZoneState where- parseXML = parseXMLText "AvailabilityZoneState"--data SpotInstanceRequest = SpotInstanceRequest- { _siAvailabilityZoneGroup :: Maybe Text- , _siCreateTime :: Maybe ISO8601- , _siFault :: Maybe SpotInstanceStateFault- , _siInstanceId :: Maybe Text- , _siLaunchGroup :: Maybe Text- , _siLaunchSpecification :: Maybe LaunchSpecification- , _siLaunchedAvailabilityZone :: Maybe Text- , _siProductDescription :: Maybe RIProductDescription- , _siSpotInstanceRequestId :: Maybe Text- , _siSpotPrice :: Maybe Text- , _siState :: Maybe SpotInstanceState- , _siStatus :: Maybe SpotInstanceStatus- , _siTags :: List "item" Tag- , _siType :: Maybe SpotInstanceType- , _siValidFrom :: Maybe ISO8601- , _siValidUntil :: Maybe ISO8601- } deriving (Eq, Read, Show)---- | 'SpotInstanceRequest' constructor.------ The fields accessible through corresponding lenses are:------ * 'siAvailabilityZoneGroup' @::@ 'Maybe' 'Text'------ * 'siCreateTime' @::@ 'Maybe' 'UTCTime'------ * 'siFault' @::@ 'Maybe' 'SpotInstanceStateFault'------ * 'siInstanceId' @::@ 'Maybe' 'Text'------ * 'siLaunchGroup' @::@ 'Maybe' 'Text'------ * 'siLaunchSpecification' @::@ 'Maybe' 'LaunchSpecification'------ * 'siLaunchedAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'siProductDescription' @::@ 'Maybe' 'RIProductDescription'------ * 'siSpotInstanceRequestId' @::@ 'Maybe' 'Text'------ * 'siSpotPrice' @::@ 'Maybe' 'Text'------ * 'siState' @::@ 'Maybe' 'SpotInstanceState'------ * 'siStatus' @::@ 'Maybe' 'SpotInstanceStatus'------ * 'siTags' @::@ ['Tag']------ * 'siType' @::@ 'Maybe' 'SpotInstanceType'------ * 'siValidFrom' @::@ 'Maybe' 'UTCTime'------ * 'siValidUntil' @::@ 'Maybe' 'UTCTime'----spotInstanceRequest :: SpotInstanceRequest-spotInstanceRequest = SpotInstanceRequest- { _siSpotInstanceRequestId = Nothing- , _siSpotPrice = Nothing- , _siType = Nothing- , _siState = Nothing- , _siFault = Nothing- , _siStatus = Nothing- , _siValidFrom = Nothing- , _siValidUntil = Nothing- , _siLaunchGroup = Nothing- , _siAvailabilityZoneGroup = Nothing- , _siLaunchSpecification = Nothing- , _siInstanceId = Nothing- , _siCreateTime = Nothing- , _siProductDescription = Nothing- , _siTags = mempty- , _siLaunchedAvailabilityZone = Nothing- }---- | 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.-siAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)-siAvailabilityZoneGroup =- lens _siAvailabilityZoneGroup (\s a -> s { _siAvailabilityZoneGroup = a })---- | The time stamp when the Spot Instance request was created.-siCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)-siCreateTime = lens _siCreateTime (\s a -> s { _siCreateTime = a }) . mapping _Time---- | The fault codes for the Spot Instance request, if any.-siFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)-siFault = lens _siFault (\s a -> s { _siFault = a })---- | The instance ID, if an instance has been launched to fulfill the Spot--- Instance request.-siInstanceId :: Lens' SpotInstanceRequest (Maybe Text)-siInstanceId = lens _siInstanceId (\s a -> s { _siInstanceId = a })---- | The instance launch group. Launch groups are Spot Instances that launch--- together and terminate together.-siLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)-siLaunchGroup = lens _siLaunchGroup (\s a -> s { _siLaunchGroup = a })---- | Additional information for launching instances.-siLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)-siLaunchSpecification =- lens _siLaunchSpecification (\s a -> s { _siLaunchSpecification = a })---- | The Availability Zone in which the bid is launched.-siLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)-siLaunchedAvailabilityZone =- lens _siLaunchedAvailabilityZone- (\s a -> s { _siLaunchedAvailabilityZone = a })---- | The product description associated with the Spot Instance.-siProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)-siProductDescription =- lens _siProductDescription (\s a -> s { _siProductDescription = a })---- | The ID of the Spot Instance request.-siSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)-siSpotInstanceRequestId =- lens _siSpotInstanceRequestId (\s a -> s { _siSpotInstanceRequestId = a })---- | The maximum hourly price for any Spot Instance launched to fulfill the--- request.-siSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)-siSpotPrice = lens _siSpotPrice (\s a -> s { _siSpotPrice = 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 BidStatus> in the /Amazon Elastic Compute Cloud User Guide for Linux/.-siState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)-siState = lens _siState (\s a -> s { _siState = a })---- | The status code and status message describing the Spot Instance request.-siStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)-siStatus = lens _siStatus (\s a -> s { _siStatus = a })---- | Any tags assigned to the resource.-siTags :: Lens' SpotInstanceRequest [Tag]-siTags = lens _siTags (\s a -> s { _siTags = a }) . _List---- | The Spot Instance request type.-siType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)-siType = lens _siType (\s a -> s { _siType = a })---- | The start date of the request. If this is a one-time request, the request--- becomes active at this date and time and remains active until all instances--- launch, the request expires, or the request is canceled. If the request is--- persistent, the request becomes active at this date and time and remains--- active until it expires or is canceled.-siValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)-siValidFrom = lens _siValidFrom (\s a -> s { _siValidFrom = a }) . mapping _Time---- | The end date of the request. If this is a one-time request, the request--- remains active until all instances launch, the request is canceled, or this--- date is reached. If the request is persistent, it remains active until it is--- canceled or this date is reached.-siValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)-siValidUntil = lens _siValidUntil (\s a -> s { _siValidUntil = a }) . mapping _Time--instance FromXML SpotInstanceRequest where- parseXML x = SpotInstanceRequest- <$> x .@? "availabilityZoneGroup"- <*> x .@? "createTime"- <*> x .@? "fault"- <*> x .@? "instanceId"- <*> x .@? "launchGroup"- <*> x .@? "launchSpecification"- <*> x .@? "launchedAvailabilityZone"- <*> x .@? "productDescription"- <*> x .@? "spotInstanceRequestId"- <*> x .@? "spotPrice"- <*> x .@? "state"- <*> x .@? "status"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "type"- <*> x .@? "validFrom"- <*> x .@? "validUntil"--instance ToQuery SpotInstanceRequest where- toQuery SpotInstanceRequest{..} = mconcat- [ "availabilityZoneGroup" =? _siAvailabilityZoneGroup- , "createTime" =? _siCreateTime- , "fault" =? _siFault- , "instanceId" =? _siInstanceId- , "launchGroup" =? _siLaunchGroup- , "launchSpecification" =? _siLaunchSpecification- , "launchedAvailabilityZone" =? _siLaunchedAvailabilityZone- , "productDescription" =? _siProductDescription- , "spotInstanceRequestId" =? _siSpotInstanceRequestId- , "spotPrice" =? _siSpotPrice- , "state" =? _siState- , "status" =? _siStatus- , "tagSet" `toQueryList` _siTags- , "type" =? _siType- , "validFrom" =? _siValidFrom- , "validUntil" =? _siValidUntil- ]--data LaunchSpecification = LaunchSpecification- { _lsAddressingType :: Maybe Text- , _lsBlockDeviceMappings :: List "item" BlockDeviceMapping- , _lsEbsOptimized :: Maybe Bool- , _lsIamInstanceProfile :: Maybe IamInstanceProfileSpecification- , _lsImageId :: Maybe Text- , _lsInstanceType :: Maybe InstanceType- , _lsKernelId :: Maybe Text- , _lsKeyName :: Maybe Text- , _lsMonitoring :: Maybe RunInstancesMonitoringEnabled- , _lsNetworkInterfaces :: List "item" InstanceNetworkInterfaceSpecification- , _lsPlacement :: Maybe SpotPlacement- , _lsRamdiskId :: Maybe Text- , _lsSecurityGroups :: List "item" GroupIdentifier- , _lsSubnetId :: Maybe Text- , _lsUserData :: Maybe Text- } deriving (Eq, Read, Show)---- | 'LaunchSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'lsAddressingType' @::@ 'Maybe' 'Text'------ * 'lsBlockDeviceMappings' @::@ ['BlockDeviceMapping']------ * 'lsEbsOptimized' @::@ 'Maybe' 'Bool'------ * 'lsIamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfileSpecification'------ * 'lsImageId' @::@ 'Maybe' 'Text'------ * 'lsInstanceType' @::@ 'Maybe' 'InstanceType'------ * 'lsKernelId' @::@ 'Maybe' 'Text'------ * 'lsKeyName' @::@ 'Maybe' 'Text'------ * 'lsMonitoring' @::@ 'Maybe' 'RunInstancesMonitoringEnabled'------ * 'lsNetworkInterfaces' @::@ ['InstanceNetworkInterfaceSpecification']------ * 'lsPlacement' @::@ 'Maybe' 'SpotPlacement'------ * 'lsRamdiskId' @::@ 'Maybe' 'Text'------ * 'lsSecurityGroups' @::@ ['GroupIdentifier']------ * 'lsSubnetId' @::@ 'Maybe' 'Text'------ * 'lsUserData' @::@ 'Maybe' 'Text'----launchSpecification :: LaunchSpecification-launchSpecification = LaunchSpecification- { _lsImageId = Nothing- , _lsKeyName = Nothing- , _lsSecurityGroups = mempty- , _lsUserData = Nothing- , _lsAddressingType = Nothing- , _lsInstanceType = Nothing- , _lsPlacement = Nothing- , _lsKernelId = Nothing- , _lsRamdiskId = Nothing- , _lsBlockDeviceMappings = mempty- , _lsSubnetId = Nothing- , _lsNetworkInterfaces = mempty- , _lsIamInstanceProfile = Nothing- , _lsEbsOptimized = Nothing- , _lsMonitoring = Nothing- }---- | 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 })- . _List---- | 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 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 })---- | The instance type.------ Default: 'm1.small'-lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)-lsInstanceType = lens _lsInstanceType (\s a -> s { _lsInstanceType = a })---- | The ID of the kernel.-lsKernelId :: Lens' LaunchSpecification (Maybe Text)-lsKernelId = lens _lsKernelId (\s a -> s { _lsKernelId = a })---- | The name of the key pair.-lsKeyName :: Lens' LaunchSpecification (Maybe Text)-lsKeyName = lens _lsKeyName (\s a -> s { _lsKeyName = a })--lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)-lsMonitoring = lens _lsMonitoring (\s a -> s { _lsMonitoring = a })---- | One or more network interfaces.-lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]-lsNetworkInterfaces =- lens _lsNetworkInterfaces (\s a -> s { _lsNetworkInterfaces = a })- . _List---- | The placement information for the instance.-lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)-lsPlacement = lens _lsPlacement (\s a -> s { _lsPlacement = a })---- | The ID of the RAM disk.-lsRamdiskId :: Lens' LaunchSpecification (Maybe Text)-lsRamdiskId = lens _lsRamdiskId (\s a -> s { _lsRamdiskId = a })---- | One or more security groups. To request an instance in a nondefault VPC, you--- must specify the ID of the security group. To request an instance in--- EC2-Classic or a default VPC, you can specify the name or the ID of the--- security group.-lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]-lsSecurityGroups = lens _lsSecurityGroups (\s a -> s { _lsSecurityGroups = a }) . _List---- | 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 Base64-encoded MIME user data to make available to the instances.-lsUserData :: Lens' LaunchSpecification (Maybe Text)-lsUserData = lens _lsUserData (\s a -> s { _lsUserData = a })--instance FromXML LaunchSpecification where- parseXML x = LaunchSpecification- <$> x .@? "addressingType"- <*> x .@? "blockDeviceMapping" .!@ mempty- <*> x .@? "ebsOptimized"- <*> x .@? "iamInstanceProfile"- <*> x .@? "imageId"- <*> x .@? "instanceType"- <*> x .@? "kernelId"- <*> x .@? "keyName"- <*> x .@? "monitoring"- <*> x .@? "networkInterfaceSet" .!@ mempty- <*> x .@? "placement"- <*> x .@? "ramdiskId"- <*> x .@? "groupSet" .!@ mempty- <*> x .@? "subnetId"- <*> x .@? "userData"--instance ToQuery LaunchSpecification where- toQuery LaunchSpecification{..} = mconcat- [ "addressingType" =? _lsAddressingType- , "blockDeviceMapping" `toQueryList` _lsBlockDeviceMappings- , "ebsOptimized" =? _lsEbsOptimized- , "iamInstanceProfile" =? _lsIamInstanceProfile- , "imageId" =? _lsImageId- , "instanceType" =? _lsInstanceType- , "kernelId" =? _lsKernelId- , "keyName" =? _lsKeyName- , "monitoring" =? _lsMonitoring- , "networkInterfaceSet" `toQueryList` _lsNetworkInterfaces- , "placement" =? _lsPlacement- , "ramdiskId" =? _lsRamdiskId- , "groupSet" `toQueryList` _lsSecurityGroups- , "subnetId" =? _lsSubnetId- , "userData" =? _lsUserData- ]--data VolumeStatusEvent = VolumeStatusEvent- { _vseDescription :: Maybe Text- , _vseEventId :: Maybe Text- , _vseEventType :: Maybe Text- , _vseNotAfter :: Maybe ISO8601- , _vseNotBefore :: Maybe ISO8601- } deriving (Eq, Ord, Read, Show)---- | 'VolumeStatusEvent' constructor.------ The fields accessible through corresponding lenses are:------ * 'vseDescription' @::@ 'Maybe' 'Text'------ * 'vseEventId' @::@ 'Maybe' 'Text'------ * 'vseEventType' @::@ 'Maybe' 'Text'------ * 'vseNotAfter' @::@ 'Maybe' 'UTCTime'------ * 'vseNotBefore' @::@ 'Maybe' 'UTCTime'----volumeStatusEvent :: VolumeStatusEvent-volumeStatusEvent = VolumeStatusEvent- { _vseEventType = Nothing- , _vseDescription = Nothing- , _vseNotBefore = Nothing- , _vseNotAfter = Nothing- , _vseEventId = Nothing- }---- | A description of the event.-vseDescription :: Lens' VolumeStatusEvent (Maybe Text)-vseDescription = lens _vseDescription (\s a -> s { _vseDescription = a })---- | The ID of this event.-vseEventId :: Lens' VolumeStatusEvent (Maybe Text)-vseEventId = lens _vseEventId (\s a -> s { _vseEventId = a })---- | The type of this event.-vseEventType :: Lens' VolumeStatusEvent (Maybe Text)-vseEventType = lens _vseEventType (\s a -> s { _vseEventType = a })---- | The latest end time of the event.-vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)-vseNotAfter = lens _vseNotAfter (\s a -> s { _vseNotAfter = a }) . mapping _Time---- | The earliest start time of the event.-vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)-vseNotBefore = lens _vseNotBefore (\s a -> s { _vseNotBefore = a }) . mapping _Time--instance FromXML VolumeStatusEvent where- parseXML x = VolumeStatusEvent- <$> x .@? "description"- <*> x .@? "eventId"- <*> x .@? "eventType"- <*> x .@? "notAfter"- <*> x .@? "notBefore"--instance ToQuery VolumeStatusEvent where- toQuery VolumeStatusEvent{..} = mconcat- [ "description" =? _vseDescription- , "eventId" =? _vseEventId- , "eventType" =? _vseEventType- , "notAfter" =? _vseNotAfter- , "notBefore" =? _vseNotBefore- ]--data Volume = Volume- { _vAttachments :: List "item" VolumeAttachment- , _vAvailabilityZone :: Text- , _vCreateTime :: ISO8601- , _vEncrypted :: Bool- , _vIops :: Maybe Int- , _vKmsKeyId :: Maybe Text- , _vSize :: Int- , _vSnapshotId :: Text- , _vState :: VolumeState- , _vTags :: List "item" Tag- , _vVolumeId :: Text- , _vVolumeType :: VolumeType- } deriving (Eq, Read, Show)---- | 'Volume' constructor.------ The fields accessible through corresponding lenses are:------ * 'vAttachments' @::@ ['VolumeAttachment']------ * 'vAvailabilityZone' @::@ 'Text'------ * 'vCreateTime' @::@ 'UTCTime'------ * 'vEncrypted' @::@ 'Bool'------ * 'vIops' @::@ 'Maybe' 'Int'------ * 'vKmsKeyId' @::@ 'Maybe' 'Text'------ * 'vSize' @::@ 'Int'------ * 'vSnapshotId' @::@ 'Text'------ * 'vState' @::@ 'VolumeState'------ * 'vTags' @::@ ['Tag']------ * 'vVolumeId' @::@ 'Text'------ * 'vVolumeType' @::@ 'VolumeType'----volume :: Text -- ^ 'vVolumeId'- -> Int -- ^ 'vSize'- -> Text -- ^ 'vSnapshotId'- -> Text -- ^ 'vAvailabilityZone'- -> VolumeState -- ^ 'vState'- -> UTCTime -- ^ 'vCreateTime'- -> VolumeType -- ^ 'vVolumeType'- -> Bool -- ^ 'vEncrypted'- -> Volume-volume p1 p2 p3 p4 p5 p6 p7 p8 = Volume- { _vVolumeId = p1- , _vSize = p2- , _vSnapshotId = p3- , _vAvailabilityZone = p4- , _vState = p5- , _vCreateTime = withIso _Time (const id) p6- , _vVolumeType = p7- , _vEncrypted = p8- , _vAttachments = mempty- , _vTags = mempty- , _vIops = Nothing- , _vKmsKeyId = Nothing- }--vAttachments :: Lens' Volume [VolumeAttachment]-vAttachments = lens _vAttachments (\s a -> s { _vAttachments = a }) . _List---- | 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 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 EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.------ Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to--- 3072 for General Purpose (SSD) volumes.------ Condition: This parameter is required for requests to create 'io1' volumes; it--- is not used in requests to create 'standard' or 'gp2' volumes.-vIops :: Lens' Volume (Maybe Int)-vIops = lens _vIops (\s a -> s { _vIops = a })---- | The full ARN of the AWS Key Management Service (KMS) master key 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 })---- | 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 })---- | Any tags assigned to the volume.-vTags :: Lens' Volume [Tag]-vTags = lens _vTags (\s a -> s { _vTags = a }) . _List---- | 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) volumes, 'io1' for--- Provisioned IOPS (SSD) volumes, 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- <*> x .@ "availabilityZone"- <*> x .@ "createTime"- <*> x .@ "encrypted"- <*> x .@? "iops"- <*> x .@? "kmsKeyId"- <*> x .@ "size"- <*> x .@ "snapshotId"- <*> x .@ "status"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "volumeId"- <*> x .@ "volumeType"--instance ToQuery Volume where- toQuery Volume{..} = mconcat- [ "attachmentSet" `toQueryList` _vAttachments- , "availabilityZone" =? _vAvailabilityZone- , "createTime" =? _vCreateTime- , "encrypted" =? _vEncrypted- , "iops" =? _vIops- , "kmsKeyId" =? _vKmsKeyId- , "size" =? _vSize- , "snapshotId" =? _vSnapshotId- , "status" =? _vState- , "tagSet" `toQueryList` _vTags- , "volumeId" =? _vVolumeId- , "volumeType" =? _vVolumeType- ]--data Reservation = Reservation- { _rGroups :: List "item" GroupIdentifier- , _rInstances :: List "item" Instance- , _rOwnerId :: Text- , _rRequesterId :: Maybe Text- , _rReservationId :: Text- } deriving (Eq, Read, Show)---- | 'Reservation' constructor.------ The fields accessible through corresponding lenses are:------ * 'rGroups' @::@ ['GroupIdentifier']------ * 'rInstances' @::@ ['Instance']------ * 'rOwnerId' @::@ 'Text'------ * 'rRequesterId' @::@ 'Maybe' 'Text'------ * 'rReservationId' @::@ 'Text'----reservation :: Text -- ^ 'rReservationId'- -> Text -- ^ 'rOwnerId'- -> Reservation-reservation p1 p2 = Reservation- { _rReservationId = p1- , _rOwnerId = p2- , _rRequesterId = Nothing- , _rGroups = mempty- , _rInstances = mempty- }---- | One or more security groups.-rGroups :: Lens' Reservation [GroupIdentifier]-rGroups = lens _rGroups (\s a -> s { _rGroups = a }) . _List---- | One or more instances.-rInstances :: Lens' Reservation [Instance]-rInstances = lens _rInstances (\s a -> s { _rInstances = a }) . _List---- | The ID of the AWS account that owns the reservation.-rOwnerId :: Lens' Reservation Text-rOwnerId = lens _rOwnerId (\s a -> s { _rOwnerId = a })---- | 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 })--instance FromXML Reservation where- parseXML x = Reservation- <$> x .@? "groupSet" .!@ mempty- <*> x .@? "instancesSet" .!@ mempty- <*> x .@ "ownerId"- <*> x .@? "requesterId"- <*> x .@ "reservationId"--instance ToQuery Reservation where- toQuery Reservation{..} = mconcat- [ "groupSet" `toQueryList` _rGroups- , "instancesSet" `toQueryList` _rInstances- , "ownerId" =? _rOwnerId- , "requesterId" =? _rRequesterId- , "reservationId" =? _rReservationId- ]--data ImportInstanceVolumeDetailItem = ImportInstanceVolumeDetailItem- { _iivdiAvailabilityZone :: Text- , _iivdiBytesConverted :: Integer- , _iivdiDescription :: Maybe Text- , _iivdiImage :: DiskImageDescription- , _iivdiStatus :: Text- , _iivdiStatusMessage :: Maybe Text- , _iivdiVolume :: DiskImageVolumeDescription- } deriving (Eq, Read, Show)---- | 'ImportInstanceVolumeDetailItem' constructor.------ The fields accessible through corresponding lenses are:------ * 'iivdiAvailabilityZone' @::@ 'Text'------ * 'iivdiBytesConverted' @::@ 'Integer'------ * 'iivdiDescription' @::@ 'Maybe' 'Text'------ * 'iivdiImage' @::@ 'DiskImageDescription'------ * 'iivdiStatus' @::@ 'Text'------ * 'iivdiStatusMessage' @::@ 'Maybe' 'Text'------ * 'iivdiVolume' @::@ 'DiskImageVolumeDescription'----importInstanceVolumeDetailItem :: Integer -- ^ 'iivdiBytesConverted'- -> Text -- ^ 'iivdiAvailabilityZone'- -> DiskImageDescription -- ^ 'iivdiImage'- -> DiskImageVolumeDescription -- ^ 'iivdiVolume'- -> Text -- ^ 'iivdiStatus'- -> ImportInstanceVolumeDetailItem-importInstanceVolumeDetailItem p1 p2 p3 p4 p5 = ImportInstanceVolumeDetailItem- { _iivdiBytesConverted = p1- , _iivdiAvailabilityZone = p2- , _iivdiImage = p3- , _iivdiVolume = p4- , _iivdiStatus = p5- , _iivdiStatusMessage = Nothing- , _iivdiDescription = Nothing- }---- | 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 })--iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)-iivdiDescription = lens _iivdiDescription (\s a -> s { _iivdiDescription = 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 status information or errors related to the disk image.-iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)-iivdiStatusMessage =- lens _iivdiStatusMessage (\s a -> s { _iivdiStatusMessage = a })---- | The volume.-iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription-iivdiVolume = lens _iivdiVolume (\s a -> s { _iivdiVolume = a })--instance FromXML ImportInstanceVolumeDetailItem where- parseXML x = ImportInstanceVolumeDetailItem- <$> x .@ "availabilityZone"- <*> x .@ "bytesConverted"- <*> x .@? "description"- <*> x .@ "image"- <*> x .@ "status"- <*> x .@? "statusMessage"- <*> x .@ "volume"--instance ToQuery ImportInstanceVolumeDetailItem where- toQuery ImportInstanceVolumeDetailItem{..} = mconcat- [ "availabilityZone" =? _iivdiAvailabilityZone- , "bytesConverted" =? _iivdiBytesConverted- , "description" =? _iivdiDescription- , "image" =? _iivdiImage- , "status" =? _iivdiStatus- , "statusMessage" =? _iivdiStatusMessage- , "volume" =? _iivdiVolume- ]--data SummaryStatus- = SSImpaired -- ^ impaired- | SSInsufficientData -- ^ insufficient-data- | SSNotApplicable -- ^ not-applicable- | SSOk -- ^ ok- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SummaryStatus--instance FromText SummaryStatus where- parser = takeLowerText >>= \case- "impaired" -> pure SSImpaired- "insufficient-data" -> pure SSInsufficientData- "not-applicable" -> pure SSNotApplicable- "ok" -> pure SSOk- e -> fail $- "Failure parsing SummaryStatus from " ++ show e--instance ToText SummaryStatus where- toText = \case- SSImpaired -> "impaired"- SSInsufficientData -> "insufficient-data"- SSNotApplicable -> "not-applicable"- SSOk -> "ok"--instance ToByteString SummaryStatus-instance ToHeader SummaryStatus-instance ToQuery SummaryStatus--instance FromXML SummaryStatus where- parseXML = parseXMLText "SummaryStatus"--data ReservedInstancesModification = ReservedInstancesModification- { _rimClientToken :: Maybe Text- , _rimCreateDate :: Maybe ISO8601- , _rimEffectiveDate :: Maybe ISO8601- , _rimModificationResults :: List "item" ReservedInstancesModificationResult- , _rimReservedInstancesIds :: List "item" ReservedInstancesId- , _rimReservedInstancesModificationId :: Maybe Text- , _rimStatus :: Maybe Text- , _rimStatusMessage :: Maybe Text- , _rimUpdateDate :: Maybe ISO8601- } deriving (Eq, Read, Show)---- | 'ReservedInstancesModification' constructor.------ The fields accessible through corresponding lenses are:------ * 'rimClientToken' @::@ 'Maybe' 'Text'------ * 'rimCreateDate' @::@ 'Maybe' 'UTCTime'------ * 'rimEffectiveDate' @::@ 'Maybe' 'UTCTime'------ * 'rimModificationResults' @::@ ['ReservedInstancesModificationResult']------ * 'rimReservedInstancesIds' @::@ ['ReservedInstancesId']------ * 'rimReservedInstancesModificationId' @::@ 'Maybe' 'Text'------ * 'rimStatus' @::@ 'Maybe' 'Text'------ * 'rimStatusMessage' @::@ 'Maybe' 'Text'------ * 'rimUpdateDate' @::@ 'Maybe' 'UTCTime'----reservedInstancesModification :: ReservedInstancesModification-reservedInstancesModification = ReservedInstancesModification- { _rimReservedInstancesModificationId = Nothing- , _rimReservedInstancesIds = mempty- , _rimModificationResults = mempty- , _rimCreateDate = Nothing- , _rimUpdateDate = Nothing- , _rimEffectiveDate = Nothing- , _rimStatus = Nothing- , _rimStatusMessage = Nothing- , _rimClientToken = Nothing- }---- | A unique, case-sensitive key supplied by the client to ensure that the--- modification request is idempotent.-rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)-rimClientToken = lens _rimClientToken (\s a -> s { _rimClientToken = a })---- | 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---- | Contains target configurations along with their corresponding new Reserved--- Instance IDs.-rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]-rimModificationResults =- lens _rimModificationResults (\s a -> s { _rimModificationResults = a })- . _List---- | The IDs of one or more Reserved Instances.-rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]-rimReservedInstancesIds =- lens _rimReservedInstancesIds (\s a -> s { _rimReservedInstancesIds = a })- . _List---- | A unique ID for the Reserved Instance modification.-rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)-rimReservedInstancesModificationId =- lens _rimReservedInstancesModificationId- (\s a -> s { _rimReservedInstancesModificationId = a })---- | The status of the Reserved Instances modification request.-rimStatus :: Lens' ReservedInstancesModification (Maybe Text)-rimStatus = lens _rimStatus (\s a -> s { _rimStatus = a })---- | The reason for the status.-rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)-rimStatusMessage = lens _rimStatusMessage (\s a -> s { _rimStatusMessage = 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--instance FromXML ReservedInstancesModification where- parseXML x = ReservedInstancesModification- <$> x .@? "clientToken"- <*> x .@? "createDate"- <*> x .@? "effectiveDate"- <*> x .@? "modificationResultSet" .!@ mempty- <*> x .@? "reservedInstancesSet" .!@ mempty- <*> x .@? "reservedInstancesModificationId"- <*> x .@? "status"- <*> x .@? "statusMessage"- <*> x .@? "updateDate"--instance ToQuery ReservedInstancesModification where- toQuery ReservedInstancesModification{..} = mconcat- [ "clientToken" =? _rimClientToken- , "createDate" =? _rimCreateDate- , "effectiveDate" =? _rimEffectiveDate- , "modificationResultSet" `toQueryList` _rimModificationResults- , "reservedInstancesSet" `toQueryList` _rimReservedInstancesIds- , "reservedInstancesModificationId" =? _rimReservedInstancesModificationId- , "status" =? _rimStatus- , "statusMessage" =? _rimStatusMessage- , "updateDate" =? _rimUpdateDate- ]--data RuleAction- = Allow -- ^ allow- | Deny -- ^ deny- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable RuleAction--instance FromText RuleAction where- parser = takeLowerText >>= \case- "allow" -> pure Allow- "deny" -> pure Deny- e -> fail $- "Failure parsing RuleAction from " ++ show e--instance ToText RuleAction where- toText = \case- Allow -> "allow"- Deny -> "deny"--instance ToByteString RuleAction-instance ToHeader RuleAction-instance ToQuery RuleAction--instance FromXML RuleAction where- parseXML = parseXMLText "RuleAction"--data NetworkInterface = NetworkInterface- { _niAssociation :: Maybe NetworkInterfaceAssociation- , _niAttachment :: Maybe NetworkInterfaceAttachment- , _niAvailabilityZone :: Maybe Text- , _niDescription :: Maybe Text- , _niGroups :: List "item" GroupIdentifier- , _niMacAddress :: Maybe Text- , _niNetworkInterfaceId :: Maybe Text- , _niOwnerId :: Maybe Text- , _niPrivateDnsName :: Maybe Text- , _niPrivateIpAddress :: Maybe Text- , _niPrivateIpAddresses :: List "item" NetworkInterfacePrivateIpAddress- , _niRequesterId :: Maybe Text- , _niRequesterManaged :: Maybe Bool- , _niSourceDestCheck :: Maybe Bool- , _niStatus :: Maybe NetworkInterfaceStatus- , _niSubnetId :: Maybe Text- , _niTagSet :: List "item" Tag- , _niVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'NetworkInterface' constructor.------ The fields accessible through corresponding lenses are:------ * 'niAssociation' @::@ 'Maybe' 'NetworkInterfaceAssociation'------ * 'niAttachment' @::@ 'Maybe' 'NetworkInterfaceAttachment'------ * 'niAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'niDescription' @::@ 'Maybe' 'Text'------ * 'niGroups' @::@ ['GroupIdentifier']------ * 'niMacAddress' @::@ 'Maybe' 'Text'------ * 'niNetworkInterfaceId' @::@ 'Maybe' 'Text'------ * 'niOwnerId' @::@ 'Maybe' 'Text'------ * 'niPrivateDnsName' @::@ 'Maybe' 'Text'------ * 'niPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'niPrivateIpAddresses' @::@ ['NetworkInterfacePrivateIpAddress']------ * 'niRequesterId' @::@ 'Maybe' 'Text'------ * 'niRequesterManaged' @::@ 'Maybe' 'Bool'------ * 'niSourceDestCheck' @::@ 'Maybe' 'Bool'------ * 'niStatus' @::@ 'Maybe' 'NetworkInterfaceStatus'------ * 'niSubnetId' @::@ 'Maybe' 'Text'------ * 'niTagSet' @::@ ['Tag']------ * 'niVpcId' @::@ 'Maybe' 'Text'----networkInterface :: NetworkInterface-networkInterface = NetworkInterface- { _niNetworkInterfaceId = Nothing- , _niSubnetId = Nothing- , _niVpcId = Nothing- , _niAvailabilityZone = Nothing- , _niDescription = Nothing- , _niOwnerId = Nothing- , _niRequesterId = Nothing- , _niRequesterManaged = Nothing- , _niStatus = Nothing- , _niMacAddress = Nothing- , _niPrivateIpAddress = Nothing- , _niPrivateDnsName = Nothing- , _niSourceDestCheck = Nothing- , _niGroups = mempty- , _niAttachment = Nothing- , _niAssociation = Nothing- , _niTagSet = mempty- , _niPrivateIpAddresses = mempty- }---- | The association information for an Elastic IP associated with the network--- interface.-niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)-niAssociation = lens _niAssociation (\s a -> s { _niAssociation = a })---- | The network interface attachment.-niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)-niAttachment = lens _niAttachment (\s a -> s { _niAttachment = a })---- | The Availability Zone.-niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)-niAvailabilityZone =- lens _niAvailabilityZone (\s a -> s { _niAvailabilityZone = a })---- | A description.-niDescription :: Lens' NetworkInterface (Maybe Text)-niDescription = lens _niDescription (\s a -> s { _niDescription = a })---- | Any security groups for the network interface.-niGroups :: Lens' NetworkInterface [GroupIdentifier]-niGroups = lens _niGroups (\s a -> s { _niGroups = a }) . _List---- | The MAC address.-niMacAddress :: Lens' NetworkInterface (Maybe Text)-niMacAddress = lens _niMacAddress (\s a -> s { _niMacAddress = a })---- | The ID of the network interface.-niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)-niNetworkInterfaceId =- lens _niNetworkInterfaceId (\s a -> s { _niNetworkInterfaceId = 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 private DNS name.-niPrivateDnsName :: Lens' NetworkInterface (Maybe Text)-niPrivateDnsName = lens _niPrivateDnsName (\s a -> s { _niPrivateDnsName = a })---- | The IP address of the network interface within the subnet.-niPrivateIpAddress :: Lens' NetworkInterface (Maybe Text)-niPrivateIpAddress =- lens _niPrivateIpAddress (\s a -> s { _niPrivateIpAddress = a })---- | The private IP addresses associated with the network interface.-niPrivateIpAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIpAddress]-niPrivateIpAddresses =- lens _niPrivateIpAddresses (\s a -> s { _niPrivateIpAddresses = a })- . _List---- | 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 })---- | Indicates whether the network interface is being managed by AWS.-niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)-niRequesterManaged =- lens _niRequesterManaged (\s a -> s { _niRequesterManaged = a })---- | Indicates whether traffic to or from the instance is validated.-niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)-niSourceDestCheck =- lens _niSourceDestCheck (\s a -> s { _niSourceDestCheck = a })---- | The status of the network interface.-niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)-niStatus = lens _niStatus (\s a -> s { _niStatus = a })---- | The ID of the subnet.-niSubnetId :: Lens' NetworkInterface (Maybe Text)-niSubnetId = lens _niSubnetId (\s a -> s { _niSubnetId = a })---- | Any tags assigned to the network interface.-niTagSet :: Lens' NetworkInterface [Tag]-niTagSet = lens _niTagSet (\s a -> s { _niTagSet = a }) . _List---- | The ID of the VPC.-niVpcId :: Lens' NetworkInterface (Maybe Text)-niVpcId = lens _niVpcId (\s a -> s { _niVpcId = a })--instance FromXML NetworkInterface where- parseXML x = NetworkInterface- <$> x .@? "association"- <*> x .@? "attachment"- <*> x .@? "availabilityZone"- <*> x .@? "description"- <*> x .@? "groupSet" .!@ mempty- <*> x .@? "macAddress"- <*> x .@? "networkInterfaceId"- <*> x .@? "ownerId"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"- <*> x .@? "privateIpAddressesSet" .!@ mempty- <*> x .@? "requesterId"- <*> x .@? "requesterManaged"- <*> x .@? "sourceDestCheck"- <*> x .@? "status"- <*> x .@? "subnetId"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcId"--instance ToQuery NetworkInterface where- toQuery NetworkInterface{..} = mconcat- [ "association" =? _niAssociation- , "attachment" =? _niAttachment- , "availabilityZone" =? _niAvailabilityZone- , "description" =? _niDescription- , "groupSet" `toQueryList` _niGroups- , "macAddress" =? _niMacAddress- , "networkInterfaceId" =? _niNetworkInterfaceId- , "ownerId" =? _niOwnerId- , "privateDnsName" =? _niPrivateDnsName- , "privateIpAddress" =? _niPrivateIpAddress- , "privateIpAddressesSet" `toQueryList` _niPrivateIpAddresses- , "requesterId" =? _niRequesterId- , "requesterManaged" =? _niRequesterManaged- , "sourceDestCheck" =? _niSourceDestCheck- , "status" =? _niStatus- , "subnetId" =? _niSubnetId- , "tagSet" `toQueryList` _niTagSet- , "vpcId" =? _niVpcId- ]--data TelemetryStatus- = Down -- ^ DOWN- | Up -- ^ UP- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable TelemetryStatus--instance FromText TelemetryStatus where- parser = takeLowerText >>= \case- "down" -> pure Down- "up" -> pure Up- e -> fail $- "Failure parsing TelemetryStatus from " ++ show e--instance ToText TelemetryStatus where- toText = \case- Down -> "DOWN"- Up -> "UP"--instance ToByteString TelemetryStatus-instance ToHeader TelemetryStatus-instance ToQuery TelemetryStatus--instance FromXML TelemetryStatus where- parseXML = parseXMLText "TelemetryStatus"--data Subnet = Subnet- { _s1AvailabilityZone :: Text- , _s1AvailableIpAddressCount :: Int- , _s1CidrBlock :: Text- , _s1DefaultForAz :: Bool- , _s1MapPublicIpOnLaunch :: Bool- , _s1State :: SubnetState- , _s1SubnetId :: Text- , _s1Tags :: List "item" Tag- , _s1VpcId :: Text- } deriving (Eq, Read, Show)---- | 'Subnet' constructor.------ The fields accessible through corresponding lenses are:------ * 's1AvailabilityZone' @::@ 'Text'------ * 's1AvailableIpAddressCount' @::@ 'Int'------ * 's1CidrBlock' @::@ 'Text'------ * 's1DefaultForAz' @::@ 'Bool'------ * 's1MapPublicIpOnLaunch' @::@ 'Bool'------ * 's1State' @::@ 'SubnetState'------ * 's1SubnetId' @::@ 'Text'------ * 's1Tags' @::@ ['Tag']------ * 's1VpcId' @::@ 'Text'----subnet :: Text -- ^ 's1SubnetId'- -> SubnetState -- ^ 's1State'- -> Text -- ^ 's1VpcId'- -> Text -- ^ 's1CidrBlock'- -> Int -- ^ 's1AvailableIpAddressCount'- -> Text -- ^ 's1AvailabilityZone'- -> Bool -- ^ 's1DefaultForAz'- -> Bool -- ^ 's1MapPublicIpOnLaunch'- -> Subnet-subnet p1 p2 p3 p4 p5 p6 p7 p8 = Subnet- { _s1SubnetId = p1- , _s1State = p2- , _s1VpcId = p3- , _s1CidrBlock = p4- , _s1AvailableIpAddressCount = p5- , _s1AvailabilityZone = p6- , _s1DefaultForAz = p7- , _s1MapPublicIpOnLaunch = p8- , _s1Tags = mempty- }---- | The Availability Zone of the subnet.-s1AvailabilityZone :: Lens' Subnet Text-s1AvailabilityZone =- lens _s1AvailabilityZone (\s a -> s { _s1AvailabilityZone = a })---- | The number of unused IP addresses in the subnet. Note that the IP addresses--- for any stopped instances are considered unavailable.-s1AvailableIpAddressCount :: Lens' Subnet Int-s1AvailableIpAddressCount =- lens _s1AvailableIpAddressCount- (\s a -> s { _s1AvailableIpAddressCount = a })---- | The CIDR block assigned to the subnet.-s1CidrBlock :: Lens' Subnet Text-s1CidrBlock = lens _s1CidrBlock (\s a -> s { _s1CidrBlock = a })---- | Indicates whether this is the default subnet for the Availability Zone.-s1DefaultForAz :: Lens' Subnet Bool-s1DefaultForAz = lens _s1DefaultForAz (\s a -> s { _s1DefaultForAz = a })---- | Indicates whether instances launched in this subnet receive a public IP--- address.-s1MapPublicIpOnLaunch :: Lens' Subnet Bool-s1MapPublicIpOnLaunch =- lens _s1MapPublicIpOnLaunch (\s a -> s { _s1MapPublicIpOnLaunch = a })---- | The current state of the subnet.-s1State :: Lens' Subnet SubnetState-s1State = lens _s1State (\s a -> s { _s1State = a })---- | The ID of the subnet.-s1SubnetId :: Lens' Subnet Text-s1SubnetId = lens _s1SubnetId (\s a -> s { _s1SubnetId = a })---- | Any tags assigned to the subnet.-s1Tags :: Lens' Subnet [Tag]-s1Tags = lens _s1Tags (\s a -> s { _s1Tags = a }) . _List---- | The ID of the VPC the subnet is in.-s1VpcId :: Lens' Subnet Text-s1VpcId = lens _s1VpcId (\s a -> s { _s1VpcId = a })--instance FromXML Subnet where- parseXML x = Subnet- <$> x .@ "availabilityZone"- <*> x .@ "availableIpAddressCount"- <*> x .@ "cidrBlock"- <*> x .@ "defaultForAz"- <*> x .@ "mapPublicIpOnLaunch"- <*> x .@ "state"- <*> x .@ "subnetId"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "vpcId"--instance ToQuery Subnet where- toQuery Subnet{..} = mconcat- [ "availabilityZone" =? _s1AvailabilityZone- , "availableIpAddressCount" =? _s1AvailableIpAddressCount- , "cidrBlock" =? _s1CidrBlock- , "defaultForAz" =? _s1DefaultForAz- , "mapPublicIpOnLaunch" =? _s1MapPublicIpOnLaunch- , "state" =? _s1State- , "subnetId" =? _s1SubnetId- , "tagSet" `toQueryList` _s1Tags- , "vpcId" =? _s1VpcId- ]--data KeyPairInfo = KeyPairInfo- { _kpiKeyFingerprint :: Maybe Text- , _kpiKeyName :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'KeyPairInfo' constructor.------ The fields accessible through corresponding lenses are:------ * 'kpiKeyFingerprint' @::@ 'Maybe' 'Text'------ * 'kpiKeyName' @::@ 'Maybe' 'Text'----keyPairInfo :: KeyPairInfo-keyPairInfo = KeyPairInfo- { _kpiKeyName = Nothing- , _kpiKeyFingerprint = 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 ToQuery KeyPairInfo where- toQuery KeyPairInfo{..} = mconcat- [ "keyFingerprint" =? _kpiKeyFingerprint- , "keyName" =? _kpiKeyName- ]--data LaunchPermissionModifications = LaunchPermissionModifications- { _lpmAdd :: List "item" LaunchPermission- , _lpmRemove :: List "item" LaunchPermission- } deriving (Eq, Read, Show)---- | 'LaunchPermissionModifications' constructor.------ The fields accessible through corresponding lenses are:------ * 'lpmAdd' @::@ ['LaunchPermission']------ * 'lpmRemove' @::@ ['LaunchPermission']----launchPermissionModifications :: LaunchPermissionModifications-launchPermissionModifications = LaunchPermissionModifications- { _lpmAdd = mempty- , _lpmRemove = mempty- }---- | 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 }) . _List---- | 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 }) . _List--instance FromXML LaunchPermissionModifications where- parseXML x = LaunchPermissionModifications- <$> x .@? "Add" .!@ mempty- <*> x .@? "Remove" .!@ mempty--instance ToQuery LaunchPermissionModifications where- toQuery LaunchPermissionModifications{..} = mconcat- [ "Add" `toQueryList` _lpmAdd- , "Remove" `toQueryList` _lpmRemove- ]--data SnapshotState- = Completed -- ^ completed- | Error -- ^ error- | Pending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SnapshotState--instance FromText SnapshotState where- parser = takeLowerText >>= \case- "completed" -> pure Completed- "error" -> pure Error- "pending" -> pure Pending- e -> fail $- "Failure parsing SnapshotState from " ++ show e--instance ToText SnapshotState where- toText = \case- Completed -> "completed"- Error -> "error"- Pending -> "pending"--instance ToByteString SnapshotState-instance ToHeader SnapshotState-instance ToQuery SnapshotState--instance FromXML SnapshotState where- parseXML = parseXMLText "SnapshotState"--data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation- { _iniaIpOwnerId :: Maybe Text- , _iniaPublicDnsName :: Maybe Text- , _iniaPublicIp :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'InstanceNetworkInterfaceAssociation' constructor.------ The fields accessible through corresponding lenses are:------ * 'iniaIpOwnerId' @::@ 'Maybe' 'Text'------ * 'iniaPublicDnsName' @::@ 'Maybe' 'Text'------ * 'iniaPublicIp' @::@ 'Maybe' 'Text'----instanceNetworkInterfaceAssociation :: InstanceNetworkInterfaceAssociation-instanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation- { _iniaPublicIp = Nothing- , _iniaPublicDnsName = Nothing- , _iniaIpOwnerId = Nothing- }---- | 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 DNS name.-iniaPublicDnsName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)-iniaPublicDnsName =- lens _iniaPublicDnsName (\s a -> s { _iniaPublicDnsName = 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 .@? "ipOwnerId"- <*> x .@? "publicDnsName"- <*> x .@? "publicIp"--instance ToQuery InstanceNetworkInterfaceAssociation where- toQuery InstanceNetworkInterfaceAssociation{..} = mconcat- [ "ipOwnerId" =? _iniaIpOwnerId- , "publicDnsName" =? _iniaPublicDnsName- , "publicIp" =? _iniaPublicIp- ]--data DiskImageDetail = DiskImageDetail- { _didBytes :: Integer- , _didFormat :: DiskImageFormat- , _didImportManifestUrl :: Text- } deriving (Eq, Read, Show)---- | 'DiskImageDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'didBytes' @::@ 'Integer'------ * 'didFormat' @::@ 'DiskImageFormat'------ * 'didImportManifestUrl' @::@ 'Text'----diskImageDetail :: DiskImageFormat -- ^ 'didFormat'- -> Integer -- ^ 'didBytes'- -> Text -- ^ 'didImportManifestUrl'- -> DiskImageDetail-diskImageDetail p1 p2 p3 = DiskImageDetail- { _didFormat = p1- , _didBytes = p2- , _didImportManifestUrl = p3- }--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/.-didImportManifestUrl :: Lens' DiskImageDetail Text-didImportManifestUrl =- lens _didImportManifestUrl (\s a -> s { _didImportManifestUrl = a })--instance FromXML DiskImageDetail where- parseXML x = DiskImageDetail- <$> x .@ "bytes"- <*> x .@ "format"- <*> x .@ "importManifestUrl"--instance ToQuery DiskImageDetail where- toQuery DiskImageDetail{..} = mconcat- [ "bytes" =? _didBytes- , "format" =? _didFormat- , "importManifestUrl" =? _didImportManifestUrl- ]--data InstancePrivateIpAddress = InstancePrivateIpAddress- { _ipiaAssociation :: Maybe InstanceNetworkInterfaceAssociation- , _ipiaPrimary :: Maybe Bool- , _ipiaPrivateDnsName :: Maybe Text- , _ipiaPrivateIpAddress :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstancePrivateIpAddress' constructor.------ The fields accessible through corresponding lenses are:------ * 'ipiaAssociation' @::@ 'Maybe' 'InstanceNetworkInterfaceAssociation'------ * 'ipiaPrimary' @::@ 'Maybe' 'Bool'------ * 'ipiaPrivateDnsName' @::@ 'Maybe' 'Text'------ * 'ipiaPrivateIpAddress' @::@ 'Maybe' 'Text'----instancePrivateIpAddress :: InstancePrivateIpAddress-instancePrivateIpAddress = InstancePrivateIpAddress- { _ipiaPrivateIpAddress = Nothing- , _ipiaPrivateDnsName = Nothing- , _ipiaPrimary = Nothing- , _ipiaAssociation = Nothing- }---- | 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 })---- | Indicates whether this IP 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 DNS name.-ipiaPrivateDnsName :: Lens' InstancePrivateIpAddress (Maybe Text)-ipiaPrivateDnsName =- lens _ipiaPrivateDnsName (\s a -> s { _ipiaPrivateDnsName = a })---- | The private IP address of the network interface.-ipiaPrivateIpAddress :: Lens' InstancePrivateIpAddress (Maybe Text)-ipiaPrivateIpAddress =- lens _ipiaPrivateIpAddress (\s a -> s { _ipiaPrivateIpAddress = a })--instance FromXML InstancePrivateIpAddress where- parseXML x = InstancePrivateIpAddress- <$> x .@? "association"- <*> x .@? "primary"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"--instance ToQuery InstancePrivateIpAddress where- toQuery InstancePrivateIpAddress{..} = mconcat- [ "association" =? _ipiaAssociation- , "primary" =? _ipiaPrimary- , "privateDnsName" =? _ipiaPrivateDnsName- , "privateIpAddress" =? _ipiaPrivateIpAddress- ]--data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest- { _csiSpotInstanceRequestId :: Maybe Text- , _csiState :: Maybe CancelSpotInstanceRequestState- } deriving (Eq, Read, Show)---- | 'CancelledSpotInstanceRequest' constructor.------ The fields accessible through corresponding lenses are:------ * 'csiSpotInstanceRequestId' @::@ 'Maybe' 'Text'------ * 'csiState' @::@ 'Maybe' 'CancelSpotInstanceRequestState'----cancelledSpotInstanceRequest :: CancelledSpotInstanceRequest-cancelledSpotInstanceRequest = CancelledSpotInstanceRequest- { _csiSpotInstanceRequestId = Nothing- , _csiState = Nothing- }---- | The ID of the Spot Instance request.-csiSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)-csiSpotInstanceRequestId =- lens _csiSpotInstanceRequestId- (\s a -> s { _csiSpotInstanceRequestId = a })---- | The state of the Spot Instance request.-csiState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)-csiState = lens _csiState (\s a -> s { _csiState = a })--instance FromXML CancelledSpotInstanceRequest where- parseXML x = CancelledSpotInstanceRequest- <$> x .@? "spotInstanceRequestId"- <*> x .@? "state"--instance ToQuery CancelledSpotInstanceRequest where- toQuery CancelledSpotInstanceRequest{..} = mconcat- [ "spotInstanceRequestId" =? _csiSpotInstanceRequestId- , "state" =? _csiState- ]--newtype VpnConnectionOptionsSpecification = VpnConnectionOptionsSpecification- { _vcosStaticRoutesOnly :: Maybe Bool- } deriving (Eq, Ord, Read, Show)---- | 'VpnConnectionOptionsSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'vcosStaticRoutesOnly' @::@ 'Maybe' 'Bool'----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 FromXML VpnConnectionOptionsSpecification where- parseXML x = VpnConnectionOptionsSpecification- <$> x .@? "staticRoutesOnly"--instance ToQuery VpnConnectionOptionsSpecification where- toQuery VpnConnectionOptionsSpecification{..} = mconcat- [ "staticRoutesOnly" =? _vcosStaticRoutesOnly- ]--data Address = Address- { _aAllocationId :: Maybe Text- , _aAssociationId :: Maybe Text- , _aDomain :: Maybe DomainType- , _aInstanceId :: Maybe Text- , _aNetworkInterfaceId :: Maybe Text- , _aNetworkInterfaceOwnerId :: Maybe Text- , _aPrivateIpAddress :: Maybe Text- , _aPublicIp :: Maybe Text- } deriving (Eq, Read, Show)---- | 'Address' constructor.------ The fields accessible through corresponding lenses are:------ * 'aAllocationId' @::@ 'Maybe' 'Text'------ * 'aAssociationId' @::@ 'Maybe' 'Text'------ * 'aDomain' @::@ 'Maybe' 'DomainType'------ * 'aInstanceId' @::@ 'Maybe' 'Text'------ * 'aNetworkInterfaceId' @::@ 'Maybe' 'Text'------ * 'aNetworkInterfaceOwnerId' @::@ 'Maybe' 'Text'------ * 'aPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'aPublicIp' @::@ 'Maybe' 'Text'----address :: Address-address = Address- { _aInstanceId = Nothing- , _aPublicIp = Nothing- , _aAllocationId = Nothing- , _aAssociationId = Nothing- , _aDomain = Nothing- , _aNetworkInterfaceId = Nothing- , _aNetworkInterfaceOwnerId = Nothing- , _aPrivateIpAddress = Nothing- }---- | 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 })---- | 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 })---- | 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 instance the address is associated with (if any).-aInstanceId :: Lens' Address (Maybe Text)-aInstanceId = lens _aInstanceId (\s a -> s { _aInstanceId = a })---- | The ID of the network interface.-aNetworkInterfaceId :: Lens' Address (Maybe Text)-aNetworkInterfaceId =- lens _aNetworkInterfaceId (\s a -> s { _aNetworkInterfaceId = 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 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 .@? "allocationId"- <*> x .@? "associationId"- <*> x .@? "domain"- <*> x .@? "instanceId"- <*> x .@? "networkInterfaceId"- <*> x .@? "networkInterfaceOwnerId"- <*> x .@? "privateIpAddress"- <*> x .@? "publicIp"--instance ToQuery Address where- toQuery Address{..} = mconcat- [ "allocationId" =? _aAllocationId- , "associationId" =? _aAssociationId- , "domain" =? _aDomain- , "instanceId" =? _aInstanceId- , "networkInterfaceId" =? _aNetworkInterfaceId- , "networkInterfaceOwnerId" =? _aNetworkInterfaceOwnerId- , "privateIpAddress" =? _aPrivateIpAddress- , "publicIp" =? _aPublicIp- ]--data VolumeAttachmentState- = VASAttached -- ^ attached- | VASAttaching -- ^ attaching- | VASDetached -- ^ detached- | VASDetaching -- ^ detaching- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VolumeAttachmentState--instance FromText VolumeAttachmentState where- parser = takeLowerText >>= \case- "attached" -> pure VASAttached- "attaching" -> pure VASAttaching- "detached" -> pure VASDetached- "detaching" -> pure VASDetaching- e -> fail $- "Failure parsing VolumeAttachmentState from " ++ show e--instance ToText VolumeAttachmentState where- toText = \case- VASAttached -> "attached"- VASAttaching -> "attaching"- VASDetached -> "detached"- VASDetaching -> "detaching"--instance ToByteString VolumeAttachmentState-instance ToHeader VolumeAttachmentState-instance ToQuery VolumeAttachmentState--instance FromXML VolumeAttachmentState where- parseXML = parseXMLText "VolumeAttachmentState"--data LaunchPermission = LaunchPermission- { _lpGroup :: Maybe PermissionGroup- , _lpUserId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'LaunchPermission' constructor.------ The fields accessible through corresponding lenses are:------ * 'lpGroup' @::@ 'Maybe' 'PermissionGroup'------ * 'lpUserId' @::@ 'Maybe' 'Text'----launchPermission :: LaunchPermission-launchPermission = LaunchPermission- { _lpUserId = Nothing- , _lpGroup = 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 ToQuery LaunchPermission where- toQuery LaunchPermission{..} = mconcat- [ "group" =? _lpGroup- , "userId" =? _lpUserId- ]--data RouteState- = Active -- ^ active- | Blackhole -- ^ blackhole- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable RouteState--instance FromText RouteState where- parser = takeLowerText >>= \case- "active" -> pure Active- "blackhole" -> pure Blackhole- e -> fail $- "Failure parsing RouteState from " ++ show e--instance ToText RouteState where- toText = \case- Active -> "active"- Blackhole -> "blackhole"--instance ToByteString RouteState-instance ToHeader RouteState-instance ToQuery RouteState--instance FromXML RouteState where- parseXML = parseXMLText "RouteState"--data RouteTableAssociation = RouteTableAssociation- { _rtaMain :: Maybe Bool- , _rtaRouteTableAssociationId :: Maybe Text- , _rtaRouteTableId :: Maybe Text- , _rtaSubnetId :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'RouteTableAssociation' constructor.------ The fields accessible through corresponding lenses are:------ * 'rtaMain' @::@ 'Maybe' 'Bool'------ * 'rtaRouteTableAssociationId' @::@ 'Maybe' 'Text'------ * 'rtaRouteTableId' @::@ 'Maybe' 'Text'------ * 'rtaSubnetId' @::@ 'Maybe' 'Text'----routeTableAssociation :: RouteTableAssociation-routeTableAssociation = RouteTableAssociation- { _rtaRouteTableAssociationId = Nothing- , _rtaRouteTableId = Nothing- , _rtaSubnetId = Nothing- , _rtaMain = Nothing- }---- | 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 association between a route table and a subnet.-rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)-rtaRouteTableAssociationId =- lens _rtaRouteTableAssociationId- (\s a -> s { _rtaRouteTableAssociationId = a })---- | The ID of the route table.-rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)-rtaRouteTableId = lens _rtaRouteTableId (\s a -> s { _rtaRouteTableId = a })---- | The ID of the subnet.-rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)-rtaSubnetId = lens _rtaSubnetId (\s a -> s { _rtaSubnetId = a })--instance FromXML RouteTableAssociation where- parseXML x = RouteTableAssociation- <$> x .@? "main"- <*> x .@? "routeTableAssociationId"- <*> x .@? "routeTableId"- <*> x .@? "subnetId"--instance ToQuery RouteTableAssociation where- toQuery RouteTableAssociation{..} = mconcat- [ "main" =? _rtaMain- , "routeTableAssociationId" =? _rtaRouteTableAssociationId- , "routeTableId" =? _rtaRouteTableId- , "subnetId" =? _rtaSubnetId- ]--data BundleTaskState- = BTSBundling -- ^ bundling- | BTSCancelling -- ^ cancelling- | BTSComplete -- ^ complete- | BTSFailed -- ^ failed- | BTSPending -- ^ pending- | BTSStoring -- ^ storing- | BTSWaitingForShutdown -- ^ waiting-for-shutdown- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable BundleTaskState--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 -> fail $- "Failure parsing BundleTaskState from " ++ show e--instance ToText BundleTaskState where- toText = \case- BTSBundling -> "bundling"- BTSCancelling -> "cancelling"- BTSComplete -> "complete"- BTSFailed -> "failed"- BTSPending -> "pending"- BTSStoring -> "storing"- BTSWaitingForShutdown -> "waiting-for-shutdown"--instance ToByteString BundleTaskState-instance ToHeader BundleTaskState-instance ToQuery BundleTaskState--instance FromXML BundleTaskState where- parseXML = parseXMLText "BundleTaskState"--data PortRange = PortRange- { _prFrom :: Maybe Int- , _prTo :: Maybe Int- } deriving (Eq, Ord, Read, Show)---- | 'PortRange' constructor.------ The fields accessible through corresponding lenses are:------ * 'prFrom' @::@ 'Maybe' 'Int'------ * 'prTo' @::@ 'Maybe' 'Int'----portRange :: PortRange-portRange = PortRange- { _prFrom = Nothing- , _prTo = Nothing- }---- | The first port in the range.-prFrom :: Lens' PortRange (Maybe Int)-prFrom = lens _prFrom (\s a -> s { _prFrom = a })---- | The last port in the range.-prTo :: Lens' PortRange (Maybe Int)-prTo = lens _prTo (\s a -> s { _prTo = a })--instance FromXML PortRange where- parseXML x = PortRange- <$> x .@? "from"- <*> x .@? "to"--instance ToQuery PortRange where- toQuery PortRange{..} = mconcat- [ "from" =? _prFrom- , "to" =? _prTo- ]--data VpcAttributeName- = EnableDnsHostnames -- ^ enableDnsHostnames- | EnableDnsSupport -- ^ enableDnsSupport- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VpcAttributeName--instance FromText VpcAttributeName where- parser = takeLowerText >>= \case- "enablednshostnames" -> pure EnableDnsHostnames- "enablednssupport" -> pure EnableDnsSupport- e -> fail $- "Failure parsing VpcAttributeName from " ++ show e--instance ToText VpcAttributeName where- toText = \case- EnableDnsHostnames -> "enableDnsHostnames"- EnableDnsSupport -> "enableDnsSupport"--instance ToByteString VpcAttributeName-instance ToHeader VpcAttributeName-instance ToQuery VpcAttributeName--instance FromXML VpcAttributeName where- parseXML = parseXMLText "VpcAttributeName"--data ReservedInstancesConfiguration = ReservedInstancesConfiguration- { _ricAvailabilityZone :: Maybe Text- , _ricInstanceCount :: Maybe Int- , _ricInstanceType :: Maybe InstanceType- , _ricPlatform :: Maybe Text- } deriving (Eq, Read, Show)---- | 'ReservedInstancesConfiguration' constructor.------ The fields accessible through corresponding lenses are:------ * 'ricAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'ricInstanceCount' @::@ 'Maybe' 'Int'------ * 'ricInstanceType' @::@ 'Maybe' 'InstanceType'------ * 'ricPlatform' @::@ 'Maybe' 'Text'----reservedInstancesConfiguration :: ReservedInstancesConfiguration-reservedInstancesConfiguration = ReservedInstancesConfiguration- { _ricAvailabilityZone = Nothing- , _ricPlatform = Nothing- , _ricInstanceCount = Nothing- , _ricInstanceType = Nothing- }---- | The Availability Zone for the modified Reserved Instances.-ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)-ricAvailabilityZone =- lens _ricAvailabilityZone (\s a -> s { _ricAvailabilityZone = 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 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 })--instance FromXML ReservedInstancesConfiguration where- parseXML x = ReservedInstancesConfiguration- <$> x .@? "availabilityZone"- <*> x .@? "instanceCount"- <*> x .@? "instanceType"- <*> x .@? "platform"--instance ToQuery ReservedInstancesConfiguration where- toQuery ReservedInstancesConfiguration{..} = mconcat- [ "availabilityZone" =? _ricAvailabilityZone- , "instanceCount" =? _ricInstanceCount- , "instanceType" =? _ricInstanceType- , "platform" =? _ricPlatform- ]--data VolumeStatusDetails = VolumeStatusDetails- { _vsdName :: Maybe VolumeStatusName- , _vsdStatus :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VolumeStatusDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsdName' @::@ 'Maybe' 'VolumeStatusName'------ * 'vsdStatus' @::@ 'Maybe' 'Text'----volumeStatusDetails :: VolumeStatusDetails-volumeStatusDetails = VolumeStatusDetails- { _vsdName = Nothing- , _vsdStatus = Nothing- }---- | The name of the volume status.-vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)-vsdName = lens _vsdName (\s a -> s { _vsdName = a })---- | The intended status of the volume status.-vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)-vsdStatus = lens _vsdStatus (\s a -> s { _vsdStatus = a })--instance FromXML VolumeStatusDetails where- parseXML x = VolumeStatusDetails- <$> x .@? "name"- <*> x .@? "status"--instance ToQuery VolumeStatusDetails where- toQuery VolumeStatusDetails{..} = mconcat- [ "name" =? _vsdName- , "status" =? _vsdStatus- ]--data SpotInstanceState- = SISActive -- ^ active- | SISCancelled -- ^ cancelled- | SISClosed -- ^ closed- | SISFailed -- ^ failed- | SISOpen -- ^ open- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SpotInstanceState--instance FromText SpotInstanceState where- parser = takeLowerText >>= \case- "active" -> pure SISActive- "cancelled" -> pure SISCancelled- "closed" -> pure SISClosed- "failed" -> pure SISFailed- "open" -> pure SISOpen- e -> fail $- "Failure parsing SpotInstanceState from " ++ show e--instance ToText SpotInstanceState where- toText = \case- SISActive -> "active"- SISCancelled -> "cancelled"- SISClosed -> "closed"- SISFailed -> "failed"- SISOpen -> "open"--instance ToByteString SpotInstanceState-instance ToHeader SpotInstanceState-instance ToQuery SpotInstanceState--instance FromXML SpotInstanceState where- parseXML = parseXMLText "SpotInstanceState"--newtype VpnConnectionOptions = VpnConnectionOptions- { _vcoStaticRoutesOnly :: Maybe Bool- } deriving (Eq, Ord, Read, Show)---- | 'VpnConnectionOptions' constructor.------ The fields accessible through corresponding lenses are:------ * 'vcoStaticRoutesOnly' @::@ 'Maybe' 'Bool'----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 ToQuery VpnConnectionOptions where- toQuery VpnConnectionOptions{..} = mconcat- [ "staticRoutesOnly" =? _vcoStaticRoutesOnly- ]--data UserIdGroupPair = UserIdGroupPair- { _uigpGroupId :: Maybe Text- , _uigpGroupName :: Maybe Text- , _uigpUserId :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'UserIdGroupPair' constructor.------ The fields accessible through corresponding lenses are:------ * 'uigpGroupId' @::@ 'Maybe' 'Text'------ * 'uigpGroupName' @::@ 'Maybe' 'Text'------ * 'uigpUserId' @::@ 'Maybe' 'Text'----userIdGroupPair :: UserIdGroupPair-userIdGroupPair = UserIdGroupPair- { _uigpUserId = Nothing- , _uigpGroupName = Nothing- , _uigpGroupId = Nothing- }---- | The name of the security group in the specified AWS account.-uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)-uigpGroupId = lens _uigpGroupId (\s a -> s { _uigpGroupId = a })---- | The ID of the security group owned by the specified AWS account.-uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)-uigpGroupName = lens _uigpGroupName (\s a -> s { _uigpGroupName = a })---- | The ID of an AWS account.-uigpUserId :: Lens' UserIdGroupPair (Maybe Text)-uigpUserId = lens _uigpUserId (\s a -> s { _uigpUserId = a })--instance FromXML UserIdGroupPair where- parseXML x = UserIdGroupPair- <$> x .@? "groupId"- <*> x .@? "groupName"- <*> x .@? "userId"--instance ToQuery UserIdGroupPair where- toQuery UserIdGroupPair{..} = mconcat- [ "groupId" =? _uigpGroupId- , "groupName" =? _uigpGroupName- , "userId" =? _uigpUserId- ]--data InstanceStatusSummary = InstanceStatusSummary- { _issDetails :: List "item" InstanceStatusDetails- , _issStatus :: Maybe SummaryStatus- } deriving (Eq, Read, Show)---- | 'InstanceStatusSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'issDetails' @::@ ['InstanceStatusDetails']------ * 'issStatus' @::@ 'Maybe' 'SummaryStatus'----instanceStatusSummary :: InstanceStatusSummary-instanceStatusSummary = InstanceStatusSummary- { _issStatus = Nothing- , _issDetails = mempty- }---- | The system instance health or application instance health.-issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]-issDetails = lens _issDetails (\s a -> s { _issDetails = a }) . _List---- | The status.-issStatus :: Lens' InstanceStatusSummary (Maybe SummaryStatus)-issStatus = lens _issStatus (\s a -> s { _issStatus = a })--instance FromXML InstanceStatusSummary where- parseXML x = InstanceStatusSummary- <$> x .@? "details" .!@ mempty- <*> x .@? "status"--instance ToQuery InstanceStatusSummary where- toQuery InstanceStatusSummary{..} = mconcat- [ "details" `toQueryList` _issDetails- , "status" =? _issStatus- ]--data SpotPlacement = SpotPlacement- { _sp1AvailabilityZone :: Maybe Text- , _sp1GroupName :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'SpotPlacement' constructor.------ The fields accessible through corresponding lenses are:------ * 'sp1AvailabilityZone' @::@ 'Maybe' 'Text'------ * 'sp1GroupName' @::@ 'Maybe' 'Text'----spotPlacement :: SpotPlacement-spotPlacement = SpotPlacement- { _sp1AvailabilityZone = Nothing- , _sp1GroupName = Nothing- }---- | The Availability Zone.-sp1AvailabilityZone :: Lens' SpotPlacement (Maybe Text)-sp1AvailabilityZone =- lens _sp1AvailabilityZone (\s a -> s { _sp1AvailabilityZone = a })---- | The name of the placement group (for cluster instances).-sp1GroupName :: Lens' SpotPlacement (Maybe Text)-sp1GroupName = lens _sp1GroupName (\s a -> s { _sp1GroupName = a })--instance FromXML SpotPlacement where- parseXML x = SpotPlacement- <$> x .@? "availabilityZone"- <*> x .@? "groupName"--instance ToQuery SpotPlacement where- toQuery SpotPlacement{..} = mconcat- [ "availabilityZone" =? _sp1AvailabilityZone- , "groupName" =? _sp1GroupName- ]--data EbsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification- { _eibdsDeleteOnTermination :: Maybe Bool- , _eibdsVolumeId :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'EbsInstanceBlockDeviceSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'eibdsDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'eibdsVolumeId' @::@ 'Maybe' 'Text'----ebsInstanceBlockDeviceSpecification :: EbsInstanceBlockDeviceSpecification-ebsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification- { _eibdsVolumeId = Nothing- , _eibdsDeleteOnTermination = 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 Amazon EBS volume.-eibdsVolumeId :: Lens' EbsInstanceBlockDeviceSpecification (Maybe Text)-eibdsVolumeId = lens _eibdsVolumeId (\s a -> s { _eibdsVolumeId = a })--instance FromXML EbsInstanceBlockDeviceSpecification where- parseXML x = EbsInstanceBlockDeviceSpecification- <$> x .@? "deleteOnTermination"- <*> x .@? "volumeId"--instance ToQuery EbsInstanceBlockDeviceSpecification where- toQuery EbsInstanceBlockDeviceSpecification{..} = mconcat- [ "deleteOnTermination" =? _eibdsDeleteOnTermination- , "volumeId" =? _eibdsVolumeId- ]--data NetworkAclAssociation = NetworkAclAssociation- { _naaNetworkAclAssociationId :: Maybe Text- , _naaNetworkAclId :: Maybe Text- , _naaSubnetId :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'NetworkAclAssociation' constructor.------ The fields accessible through corresponding lenses are:------ * 'naaNetworkAclAssociationId' @::@ 'Maybe' 'Text'------ * 'naaNetworkAclId' @::@ 'Maybe' 'Text'------ * 'naaSubnetId' @::@ 'Maybe' 'Text'----networkAclAssociation :: NetworkAclAssociation-networkAclAssociation = NetworkAclAssociation- { _naaNetworkAclAssociationId = Nothing- , _naaNetworkAclId = Nothing- , _naaSubnetId = Nothing- }---- | 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 })---- | 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 })--instance FromXML NetworkAclAssociation where- parseXML x = NetworkAclAssociation- <$> x .@? "networkAclAssociationId"- <*> x .@? "networkAclId"- <*> x .@? "subnetId"--instance ToQuery NetworkAclAssociation where- toQuery NetworkAclAssociation{..} = mconcat- [ "networkAclAssociationId" =? _naaNetworkAclAssociationId- , "networkAclId" =? _naaNetworkAclId- , "subnetId" =? _naaSubnetId- ]--data BundleTask = BundleTask- { _btBundleId :: Text- , _btBundleTaskError :: Maybe BundleTaskError- , _btInstanceId :: Text- , _btProgress :: Text- , _btStartTime :: ISO8601- , _btState :: BundleTaskState- , _btStorage :: Storage- , _btUpdateTime :: ISO8601- } deriving (Eq, Read, Show)---- | 'BundleTask' constructor.------ The fields accessible through corresponding lenses are:------ * 'btBundleId' @::@ 'Text'------ * 'btBundleTaskError' @::@ 'Maybe' 'BundleTaskError'------ * 'btInstanceId' @::@ 'Text'------ * 'btProgress' @::@ 'Text'------ * 'btStartTime' @::@ 'UTCTime'------ * 'btState' @::@ 'BundleTaskState'------ * 'btStorage' @::@ 'Storage'------ * 'btUpdateTime' @::@ 'UTCTime'----bundleTask :: Text -- ^ 'btInstanceId'- -> Text -- ^ 'btBundleId'- -> BundleTaskState -- ^ 'btState'- -> UTCTime -- ^ 'btStartTime'- -> UTCTime -- ^ 'btUpdateTime'- -> Storage -- ^ 'btStorage'- -> Text -- ^ 'btProgress'- -> BundleTask-bundleTask p1 p2 p3 p4 p5 p6 p7 = BundleTask- { _btInstanceId = p1- , _btBundleId = p2- , _btState = p3- , _btStartTime = withIso _Time (const id) p4- , _btUpdateTime = withIso _Time (const id) p5- , _btStorage = p6- , _btProgress = p7- , _btBundleTaskError = Nothing- }---- | The ID of the bundle task.-btBundleId :: Lens' BundleTask Text-btBundleId = lens _btBundleId (\s a -> s { _btBundleId = a })---- | 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 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 .@ "bundleId"- <*> x .@? "error"- <*> x .@ "instanceId"- <*> x .@ "progress"- <*> x .@ "startTime"- <*> x .@ "state"- <*> x .@ "storage"- <*> x .@ "updateTime"--instance ToQuery BundleTask where- toQuery BundleTask{..} = mconcat- [ "bundleId" =? _btBundleId- , "error" =? _btBundleTaskError- , "instanceId" =? _btInstanceId- , "progress" =? _btProgress- , "startTime" =? _btStartTime- , "state" =? _btState- , "storage" =? _btStorage- , "updateTime" =? _btUpdateTime- ]--data InstanceStatusEvent = InstanceStatusEvent- { _iseCode :: Maybe EventCode- , _iseDescription :: Maybe Text- , _iseNotAfter :: Maybe ISO8601- , _iseNotBefore :: Maybe ISO8601- } deriving (Eq, Read, Show)---- | 'InstanceStatusEvent' constructor.------ The fields accessible through corresponding lenses are:------ * 'iseCode' @::@ 'Maybe' 'EventCode'------ * 'iseDescription' @::@ 'Maybe' 'Text'------ * 'iseNotAfter' @::@ 'Maybe' 'UTCTime'------ * 'iseNotBefore' @::@ 'Maybe' 'UTCTime'----instanceStatusEvent :: InstanceStatusEvent-instanceStatusEvent = InstanceStatusEvent- { _iseCode = Nothing- , _iseDescription = Nothing- , _iseNotBefore = Nothing- , _iseNotAfter = Nothing- }---- | The associated code of the event.-iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)-iseCode = lens _iseCode (\s a -> s { _iseCode = a })---- | A description of the event.-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---- | The earliest scheduled start time for the event.-iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)-iseNotBefore = lens _iseNotBefore (\s a -> s { _iseNotBefore = a }) . mapping _Time--instance FromXML InstanceStatusEvent where- parseXML x = InstanceStatusEvent- <$> x .@? "code"- <*> x .@? "description"- <*> x .@? "notAfter"- <*> x .@? "notBefore"--instance ToQuery InstanceStatusEvent where- toQuery InstanceStatusEvent{..} = mconcat- [ "code" =? _iseCode- , "description" =? _iseDescription- , "notAfter" =? _iseNotAfter- , "notBefore" =? _iseNotBefore- ]--data InstanceType- = 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- | G2_2XLarge -- ^ g2.2xlarge- | 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- | 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_Medium -- ^ t2.medium- | T2_Micro -- ^ t2.micro- | T2_Small -- ^ t2.small- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceType--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- "g2.2xlarge" -> pure G2_2XLarge- "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- "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.medium" -> pure T2_Medium- "t2.micro" -> pure T2_Micro- "t2.small" -> pure T2_Small- e -> fail $- "Failure parsing InstanceType from " ++ show e--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"- G2_2XLarge -> "g2.2xlarge"- 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"- 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_Medium -> "t2.medium"- T2_Micro -> "t2.micro"- T2_Small -> "t2.small"--instance ToByteString InstanceType-instance ToHeader InstanceType-instance ToQuery InstanceType--instance FromXML InstanceType where- parseXML = parseXMLText "InstanceType"--data Route = Route- { _rDestinationCidrBlock :: Maybe Text- , _rGatewayId :: Maybe Text- , _rInstanceId :: Maybe Text- , _rInstanceOwnerId :: Maybe Text- , _rNetworkInterfaceId :: Maybe Text- , _rOrigin :: Maybe RouteOrigin- , _rState :: Maybe RouteState- , _rVpcPeeringConnectionId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'Route' constructor.------ The fields accessible through corresponding lenses are:------ * 'rDestinationCidrBlock' @::@ 'Maybe' 'Text'------ * 'rGatewayId' @::@ 'Maybe' 'Text'------ * 'rInstanceId' @::@ 'Maybe' 'Text'------ * 'rInstanceOwnerId' @::@ 'Maybe' 'Text'------ * 'rNetworkInterfaceId' @::@ 'Maybe' 'Text'------ * 'rOrigin' @::@ 'Maybe' 'RouteOrigin'------ * 'rState' @::@ 'Maybe' 'RouteState'------ * 'rVpcPeeringConnectionId' @::@ 'Maybe' 'Text'----route :: Route-route = Route- { _rDestinationCidrBlock = Nothing- , _rGatewayId = Nothing- , _rInstanceId = Nothing- , _rInstanceOwnerId = Nothing- , _rNetworkInterfaceId = Nothing- , _rVpcPeeringConnectionId = Nothing- , _rState = Nothing- , _rOrigin = Nothing- }---- | The CIDR block used for the destination match.-rDestinationCidrBlock :: Lens' Route (Maybe Text)-rDestinationCidrBlock =- lens _rDestinationCidrBlock (\s a -> s { _rDestinationCidrBlock = a })---- | The ID of a gateway attached to your VPC.-rGatewayId :: Lens' Route (Maybe Text)-rGatewayId = lens _rGatewayId (\s a -> s { _rGatewayId = a })---- | The ID of a NAT instance in your VPC.-rInstanceId :: Lens' Route (Maybe Text)-rInstanceId = lens _rInstanceId (\s a -> s { _rInstanceId = 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 ID of the network interface.-rNetworkInterfaceId :: Lens' Route (Maybe Text)-rNetworkInterfaceId =- lens _rNetworkInterfaceId (\s a -> s { _rNetworkInterfaceId = a })---- | Describes how the route was created.------ 'CreateRouteTable' indicates that 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.-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 VPC peering connection.-rVpcPeeringConnectionId :: Lens' Route (Maybe Text)-rVpcPeeringConnectionId =- lens _rVpcPeeringConnectionId (\s a -> s { _rVpcPeeringConnectionId = a })--instance FromXML Route where- parseXML x = Route- <$> x .@? "destinationCidrBlock"- <*> x .@? "gatewayId"- <*> x .@? "instanceId"- <*> x .@? "instanceOwnerId"- <*> x .@? "networkInterfaceId"- <*> x .@? "origin"- <*> x .@? "state"- <*> x .@? "vpcPeeringConnectionId"--instance ToQuery Route where- toQuery Route{..} = mconcat- [ "destinationCidrBlock" =? _rDestinationCidrBlock- , "gatewayId" =? _rGatewayId- , "instanceId" =? _rInstanceId- , "instanceOwnerId" =? _rInstanceOwnerId- , "networkInterfaceId" =? _rNetworkInterfaceId- , "origin" =? _rOrigin- , "state" =? _rState- , "vpcPeeringConnectionId" =? _rVpcPeeringConnectionId- ]--data SpotDatafeedSubscription = SpotDatafeedSubscription- { _sdsBucket :: Maybe Text- , _sdsFault :: Maybe SpotInstanceStateFault- , _sdsOwnerId :: Maybe Text- , _sdsPrefix :: Maybe Text- , _sdsState :: Maybe DatafeedSubscriptionState- } deriving (Eq, Read, Show)---- | 'SpotDatafeedSubscription' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdsBucket' @::@ 'Maybe' 'Text'------ * 'sdsFault' @::@ 'Maybe' 'SpotInstanceStateFault'------ * 'sdsOwnerId' @::@ 'Maybe' 'Text'------ * 'sdsPrefix' @::@ 'Maybe' 'Text'------ * 'sdsState' @::@ 'Maybe' 'DatafeedSubscriptionState'----spotDatafeedSubscription :: SpotDatafeedSubscription-spotDatafeedSubscription = SpotDatafeedSubscription- { _sdsOwnerId = Nothing- , _sdsBucket = Nothing- , _sdsPrefix = Nothing- , _sdsState = Nothing- , _sdsFault = Nothing- }---- | 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 fault codes for the Spot Instance request, if any.-sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)-sdsFault = lens _sdsFault (\s a -> s { _sdsFault = a })---- | The AWS account ID of the account.-sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsOwnerId = lens _sdsOwnerId (\s a -> s { _sdsOwnerId = a })---- | The prefix that is prepended to data feed files.-sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsPrefix = lens _sdsPrefix (\s a -> s { _sdsPrefix = a })---- | The state of the Spot Instance data feed subscription.-sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)-sdsState = lens _sdsState (\s a -> s { _sdsState = a })--instance FromXML SpotDatafeedSubscription where- parseXML x = SpotDatafeedSubscription- <$> x .@? "bucket"- <*> x .@? "fault"- <*> x .@? "ownerId"- <*> x .@? "prefix"- <*> x .@? "state"--instance ToQuery SpotDatafeedSubscription where- toQuery SpotDatafeedSubscription{..} = mconcat- [ "bucket" =? _sdsBucket- , "fault" =? _sdsFault- , "ownerId" =? _sdsOwnerId- , "prefix" =? _sdsPrefix- , "state" =? _sdsState- ]--newtype Storage = Storage- { _sS3 :: Maybe S3Storage- } deriving (Eq, Read, Show)---- | 'Storage' constructor.------ The fields accessible through corresponding lenses are:------ * 'sS3' @::@ 'Maybe' 'S3Storage'----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 ToQuery Storage where- toQuery Storage{..} = mconcat- [ "S3" =? _sS3- ]--data SecurityGroup = SecurityGroup- { _sgDescription :: Text- , _sgGroupId :: Text- , _sgGroupName :: Text- , _sgIpPermissions :: List "item" IpPermission- , _sgIpPermissionsEgress :: List "item" IpPermission- , _sgOwnerId :: Text- , _sgTags :: List "item" Tag- , _sgVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'SecurityGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'sgDescription' @::@ 'Text'------ * 'sgGroupId' @::@ 'Text'------ * 'sgGroupName' @::@ 'Text'------ * 'sgIpPermissions' @::@ ['IpPermission']------ * 'sgIpPermissionsEgress' @::@ ['IpPermission']------ * 'sgOwnerId' @::@ 'Text'------ * 'sgTags' @::@ ['Tag']------ * 'sgVpcId' @::@ 'Maybe' 'Text'----securityGroup :: Text -- ^ 'sgOwnerId'- -> Text -- ^ 'sgGroupName'- -> Text -- ^ 'sgGroupId'- -> Text -- ^ 'sgDescription'- -> SecurityGroup-securityGroup p1 p2 p3 p4 = SecurityGroup- { _sgOwnerId = p1- , _sgGroupName = p2- , _sgGroupId = p3- , _sgDescription = p4- , _sgIpPermissions = mempty- , _sgIpPermissionsEgress = mempty- , _sgVpcId = Nothing- , _sgTags = mempty- }---- | A description of the security group.-sgDescription :: Lens' SecurityGroup Text-sgDescription = lens _sgDescription (\s a -> s { _sgDescription = 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 })---- | One or more inbound rules associated with the security group.-sgIpPermissions :: Lens' SecurityGroup [IpPermission]-sgIpPermissions = lens _sgIpPermissions (\s a -> s { _sgIpPermissions = a }) . _List---- | [EC2-VPC] One or more outbound rules associated with the security group.-sgIpPermissionsEgress :: Lens' SecurityGroup [IpPermission]-sgIpPermissionsEgress =- lens _sgIpPermissionsEgress (\s a -> s { _sgIpPermissionsEgress = a })- . _List---- | The AWS account ID of the owner of the security group.-sgOwnerId :: Lens' SecurityGroup Text-sgOwnerId = lens _sgOwnerId (\s a -> s { _sgOwnerId = a })---- | Any tags assigned to the security group.-sgTags :: Lens' SecurityGroup [Tag]-sgTags = lens _sgTags (\s a -> s { _sgTags = a }) . _List---- | [EC2-VPC] The ID of the VPC for the security group.-sgVpcId :: Lens' SecurityGroup (Maybe Text)-sgVpcId = lens _sgVpcId (\s a -> s { _sgVpcId = a })--instance FromXML SecurityGroup where- parseXML x = SecurityGroup- <$> x .@ "groupDescription"- <*> x .@ "groupId"- <*> x .@ "groupName"- <*> x .@? "ipPermissions" .!@ mempty- <*> x .@? "ipPermissionsEgress" .!@ mempty- <*> x .@ "ownerId"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcId"--instance ToQuery SecurityGroup where- toQuery SecurityGroup{..} = mconcat- [ "groupDescription" =? _sgDescription- , "groupId" =? _sgGroupId- , "groupName" =? _sgGroupName- , "ipPermissions" `toQueryList` _sgIpPermissions- , "ipPermissionsEgress" `toQueryList` _sgIpPermissionsEgress- , "ownerId" =? _sgOwnerId- , "tagSet" `toQueryList` _sgTags- , "vpcId" =? _sgVpcId- ]--data CancelSpotInstanceRequestState- = CSIRSActive -- ^ active- | CSIRSCancelled -- ^ cancelled- | CSIRSClosed -- ^ closed- | CSIRSCompleted -- ^ completed- | CSIRSOpen -- ^ open- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable CancelSpotInstanceRequestState--instance FromText CancelSpotInstanceRequestState where- parser = takeLowerText >>= \case- "active" -> pure CSIRSActive- "cancelled" -> pure CSIRSCancelled- "closed" -> pure CSIRSClosed- "completed" -> pure CSIRSCompleted- "open" -> pure CSIRSOpen- e -> fail $- "Failure parsing CancelSpotInstanceRequestState from " ++ show e--instance ToText CancelSpotInstanceRequestState where- toText = \case- CSIRSActive -> "active"- CSIRSCancelled -> "cancelled"- CSIRSClosed -> "closed"- CSIRSCompleted -> "completed"- CSIRSOpen -> "open"--instance ToByteString CancelSpotInstanceRequestState-instance ToHeader CancelSpotInstanceRequestState-instance ToQuery CancelSpotInstanceRequestState--instance FromXML CancelSpotInstanceRequestState where- parseXML = parseXMLText "CancelSpotInstanceRequestState"--data PlacementGroupState- = PGSAvailable -- ^ available- | PGSDeleted -- ^ deleted- | PGSDeleting -- ^ deleting- | PGSPending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable PlacementGroupState--instance FromText PlacementGroupState where- parser = takeLowerText >>= \case- "available" -> pure PGSAvailable- "deleted" -> pure PGSDeleted- "deleting" -> pure PGSDeleting- "pending" -> pure PGSPending- e -> fail $- "Failure parsing PlacementGroupState from " ++ show e--instance ToText PlacementGroupState where- toText = \case- PGSAvailable -> "available"- PGSDeleted -> "deleted"- PGSDeleting -> "deleting"- PGSPending -> "pending"--instance ToByteString PlacementGroupState-instance ToHeader PlacementGroupState-instance ToQuery PlacementGroupState--instance FromXML PlacementGroupState where- parseXML = parseXMLText "PlacementGroupState"--data ReservedInstancesModificationResult = ReservedInstancesModificationResult- { _rimrReservedInstancesId :: Maybe Text- , _rimrTargetConfiguration :: Maybe ReservedInstancesConfiguration- } deriving (Eq, Read, Show)---- | 'ReservedInstancesModificationResult' constructor.------ The fields accessible through corresponding lenses are:------ * 'rimrReservedInstancesId' @::@ 'Maybe' 'Text'------ * 'rimrTargetConfiguration' @::@ 'Maybe' 'ReservedInstancesConfiguration'----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 ToQuery ReservedInstancesModificationResult where- toQuery ReservedInstancesModificationResult{..} = mconcat- [ "reservedInstancesId" =? _rimrReservedInstancesId- , "targetConfiguration" =? _rimrTargetConfiguration- ]--data InstanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification- { _ibdmsDeviceName :: Maybe Text- , _ibdmsEbs :: Maybe EbsInstanceBlockDeviceSpecification- , _ibdmsNoDevice :: Maybe Text- , _ibdmsVirtualName :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstanceBlockDeviceMappingSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'ibdmsDeviceName' @::@ 'Maybe' 'Text'------ * 'ibdmsEbs' @::@ 'Maybe' 'EbsInstanceBlockDeviceSpecification'------ * 'ibdmsNoDevice' @::@ 'Maybe' 'Text'------ * 'ibdmsVirtualName' @::@ 'Maybe' 'Text'----instanceBlockDeviceMappingSpecification :: InstanceBlockDeviceMappingSpecification-instanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification- { _ibdmsDeviceName = Nothing- , _ibdmsEbs = Nothing- , _ibdmsVirtualName = Nothing- , _ibdmsNoDevice = Nothing- }---- | The device name exposed to the instance (for example, /dev/sdh).-ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsDeviceName = lens _ibdmsDeviceName (\s a -> s { _ibdmsDeviceName = a })---- | Parameters used to automatically set up Amazon EBS volumes when the instance--- is launched.-ibdmsEbs :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EbsInstanceBlockDeviceSpecification)-ibdmsEbs = lens _ibdmsEbs (\s a -> s { _ibdmsEbs = a })---- | suppress the specified device included in the block device mapping.-ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsNoDevice = lens _ibdmsNoDevice (\s a -> s { _ibdmsNoDevice = a })---- | The virtual device name.-ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)-ibdmsVirtualName = lens _ibdmsVirtualName (\s a -> s { _ibdmsVirtualName = a })--instance FromXML InstanceBlockDeviceMappingSpecification where- parseXML x = InstanceBlockDeviceMappingSpecification- <$> x .@? "deviceName"- <*> x .@? "ebs"- <*> x .@? "noDevice"- <*> x .@? "virtualName"--instance ToQuery InstanceBlockDeviceMappingSpecification where- toQuery InstanceBlockDeviceMappingSpecification{..} = mconcat- [ "deviceName" =? _ibdmsDeviceName- , "ebs" =? _ibdmsEbs- , "noDevice" =? _ibdmsNoDevice- , "virtualName" =? _ibdmsVirtualName- ]--data ExportEnvironment- = Citrix -- ^ citrix- | Microsoft -- ^ microsoft- | Vmware -- ^ vmware- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ExportEnvironment--instance FromText ExportEnvironment where- parser = takeLowerText >>= \case- "citrix" -> pure Citrix- "microsoft" -> pure Microsoft- "vmware" -> pure Vmware- e -> fail $- "Failure parsing ExportEnvironment from " ++ show e--instance ToText ExportEnvironment where- toText = \case- Citrix -> "citrix"- Microsoft -> "microsoft"- Vmware -> "vmware"--instance ToByteString ExportEnvironment-instance ToHeader ExportEnvironment-instance ToQuery ExportEnvironment--instance FromXML ExportEnvironment where- parseXML = parseXMLText "ExportEnvironment"--newtype UserData = UserData- { _udData :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)---- | 'UserData' constructor.------ The fields accessible through corresponding lenses are:------ * 'udData' @::@ 'Maybe' 'Text'----userData :: UserData-userData = UserData- { _udData = Nothing- }--udData :: Lens' UserData (Maybe Text)-udData = lens _udData (\s a -> s { _udData = a })--instance FromXML UserData where- parseXML x = UserData- <$> x .@? "data"--instance ToQuery UserData where- toQuery UserData{..} = mconcat- [ "data" =? _udData- ]--data VolumeAttachment = VolumeAttachment- { _vaAttachTime :: Maybe ISO8601- , _vaDeleteOnTermination :: Maybe Bool- , _vaDevice :: Maybe Text- , _vaInstanceId :: Maybe Text- , _vaState :: Maybe VolumeAttachmentState- , _vaVolumeId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VolumeAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'vaAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'vaDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'vaDevice' @::@ 'Maybe' 'Text'------ * 'vaInstanceId' @::@ 'Maybe' 'Text'------ * 'vaState' @::@ 'Maybe' 'VolumeAttachmentState'------ * 'vaVolumeId' @::@ 'Maybe' 'Text'----volumeAttachment :: VolumeAttachment-volumeAttachment = VolumeAttachment- { _vaVolumeId = Nothing- , _vaInstanceId = Nothing- , _vaDevice = Nothing- , _vaState = Nothing- , _vaAttachTime = Nothing- , _vaDeleteOnTermination = Nothing- }---- | The time stamp when the attachment initiated.-vaAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)-vaAttachTime = lens _vaAttachTime (\s a -> s { _vaAttachTime = a }) . mapping _Time---- | Indicates whether the Amazon EBS volume is deleted on instance termination.-vaDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)-vaDeleteOnTermination =- lens _vaDeleteOnTermination (\s a -> s { _vaDeleteOnTermination = a })---- | The device name.-vaDevice :: Lens' VolumeAttachment (Maybe Text)-vaDevice = lens _vaDevice (\s a -> s { _vaDevice = a })---- | The ID of the instance.-vaInstanceId :: Lens' VolumeAttachment (Maybe Text)-vaInstanceId = lens _vaInstanceId (\s a -> s { _vaInstanceId = a })---- | The attachment state of the volume.-vaState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)-vaState = lens _vaState (\s a -> s { _vaState = a })---- | The ID of the volume.-vaVolumeId :: Lens' VolumeAttachment (Maybe Text)-vaVolumeId = lens _vaVolumeId (\s a -> s { _vaVolumeId = a })--instance FromXML VolumeAttachment where- parseXML x = VolumeAttachment- <$> x .@? "attachTime"- <*> x .@? "deleteOnTermination"- <*> x .@? "device"- <*> x .@? "instanceId"- <*> x .@? "status"- <*> x .@? "volumeId"--instance ToQuery VolumeAttachment where- toQuery VolumeAttachment{..} = mconcat- [ "attachTime" =? _vaAttachTime- , "deleteOnTermination" =? _vaDeleteOnTermination- , "device" =? _vaDevice- , "instanceId" =? _vaInstanceId- , "status" =? _vaState- , "volumeId" =? _vaVolumeId- ]--data CustomerGateway = CustomerGateway- { _cgBgpAsn :: Text- , _cgCustomerGatewayId :: Text- , _cgIpAddress :: Text- , _cgState :: Text- , _cgTags :: List "item" Tag- , _cgType :: Text- } deriving (Eq, Read, Show)---- | 'CustomerGateway' constructor.------ The fields accessible through corresponding lenses are:------ * 'cgBgpAsn' @::@ 'Text'------ * 'cgCustomerGatewayId' @::@ 'Text'------ * 'cgIpAddress' @::@ 'Text'------ * 'cgState' @::@ 'Text'------ * 'cgTags' @::@ ['Tag']------ * 'cgType' @::@ 'Text'----customerGateway :: Text -- ^ 'cgCustomerGatewayId'- -> Text -- ^ 'cgState'- -> Text -- ^ 'cgType'- -> Text -- ^ 'cgIpAddress'- -> Text -- ^ 'cgBgpAsn'- -> CustomerGateway-customerGateway p1 p2 p3 p4 p5 = CustomerGateway- { _cgCustomerGatewayId = p1- , _cgState = p2- , _cgType = p3- , _cgIpAddress = p4- , _cgBgpAsn = p5- , _cgTags = mempty- }---- | 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 })---- | Any tags assigned to the customer gateway.-cgTags :: Lens' CustomerGateway [Tag]-cgTags = lens _cgTags (\s a -> s { _cgTags = a }) . _List---- | 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 .@ "bgpAsn"- <*> x .@ "customerGatewayId"- <*> x .@ "ipAddress"- <*> x .@ "state"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "type"--instance ToQuery CustomerGateway where- toQuery CustomerGateway{..} = mconcat- [ "bgpAsn" =? _cgBgpAsn- , "customerGatewayId" =? _cgCustomerGatewayId- , "ipAddress" =? _cgIpAddress- , "state" =? _cgState- , "tagSet" `toQueryList` _cgTags- , "type" =? _cgType- ]--data EbsInstanceBlockDevice = EbsInstanceBlockDevice- { _eibdAttachTime :: Maybe ISO8601- , _eibdDeleteOnTermination :: Maybe Bool- , _eibdStatus :: Maybe AttachmentStatus- , _eibdVolumeId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'EbsInstanceBlockDevice' constructor.------ The fields accessible through corresponding lenses are:------ * 'eibdAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'eibdDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'eibdStatus' @::@ 'Maybe' 'AttachmentStatus'------ * 'eibdVolumeId' @::@ 'Maybe' 'Text'----ebsInstanceBlockDevice :: EbsInstanceBlockDevice-ebsInstanceBlockDevice = EbsInstanceBlockDevice- { _eibdVolumeId = Nothing- , _eibdStatus = Nothing- , _eibdAttachTime = Nothing- , _eibdDeleteOnTermination = Nothing- }---- | The time stamp when the attachment initiated.-eibdAttachTime :: Lens' EbsInstanceBlockDevice (Maybe UTCTime)-eibdAttachTime = lens _eibdAttachTime (\s a -> s { _eibdAttachTime = a }) . mapping _Time---- | Indicates whether the volume is deleted on instance termination.-eibdDeleteOnTermination :: Lens' EbsInstanceBlockDevice (Maybe Bool)-eibdDeleteOnTermination =- lens _eibdDeleteOnTermination (\s a -> s { _eibdDeleteOnTermination = a })---- | The attachment state.-eibdStatus :: Lens' EbsInstanceBlockDevice (Maybe AttachmentStatus)-eibdStatus = lens _eibdStatus (\s a -> s { _eibdStatus = a })---- | The ID of the Amazon EBS volume.-eibdVolumeId :: Lens' EbsInstanceBlockDevice (Maybe Text)-eibdVolumeId = lens _eibdVolumeId (\s a -> s { _eibdVolumeId = a })--instance FromXML EbsInstanceBlockDevice where- parseXML x = EbsInstanceBlockDevice- <$> x .@? "attachTime"- <*> x .@? "deleteOnTermination"- <*> x .@? "status"- <*> x .@? "volumeId"--instance ToQuery EbsInstanceBlockDevice where- toQuery EbsInstanceBlockDevice{..} = mconcat- [ "attachTime" =? _eibdAttachTime- , "deleteOnTermination" =? _eibdDeleteOnTermination- , "status" =? _eibdStatus- , "volumeId" =? _eibdVolumeId- ]--data ShutdownBehavior- = Stop -- ^ stop- | Terminate -- ^ terminate- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ShutdownBehavior--instance FromText ShutdownBehavior where- parser = takeLowerText >>= \case- "stop" -> pure Stop- "terminate" -> pure Terminate- e -> fail $- "Failure parsing ShutdownBehavior from " ++ show e--instance ToText ShutdownBehavior where- toText = \case- Stop -> "stop"- Terminate -> "terminate"--instance ToByteString ShutdownBehavior-instance ToHeader ShutdownBehavior-instance ToQuery ShutdownBehavior--instance FromXML ShutdownBehavior where- parseXML = parseXMLText "ShutdownBehavior"--data DiskImageDescription = DiskImageDescription- { _did1Checksum :: Maybe Text- , _did1Format :: DiskImageFormat- , _did1ImportManifestUrl :: Text- , _did1Size :: Integer- } deriving (Eq, Read, Show)---- | 'DiskImageDescription' constructor.------ The fields accessible through corresponding lenses are:------ * 'did1Checksum' @::@ 'Maybe' 'Text'------ * 'did1Format' @::@ 'DiskImageFormat'------ * 'did1ImportManifestUrl' @::@ 'Text'------ * 'did1Size' @::@ 'Integer'----diskImageDescription :: DiskImageFormat -- ^ 'did1Format'- -> Integer -- ^ 'did1Size'- -> Text -- ^ 'did1ImportManifestUrl'- -> DiskImageDescription-diskImageDescription p1 p2 p3 = DiskImageDescription- { _did1Format = p1- , _did1Size = p2- , _did1ImportManifestUrl = p3- , _did1Checksum = Nothing- }---- | The checksum computed for the disk image.-did1Checksum :: Lens' DiskImageDescription (Maybe Text)-did1Checksum = lens _did1Checksum (\s a -> s { _did1Checksum = a })---- | The disk image format.-did1Format :: Lens' DiskImageDescription DiskImageFormat-did1Format = lens _did1Format (\s a -> s { _did1Format = 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 RESTRequests> topic in the /Amazon Simple Storage Service Developer Guide/.-did1ImportManifestUrl :: Lens' DiskImageDescription Text-did1ImportManifestUrl =- lens _did1ImportManifestUrl (\s a -> s { _did1ImportManifestUrl = a })---- | The size of the disk image.-did1Size :: Lens' DiskImageDescription Integer-did1Size = lens _did1Size (\s a -> s { _did1Size = a })--instance FromXML DiskImageDescription where- parseXML x = DiskImageDescription- <$> x .@? "checksum"- <*> x .@ "format"- <*> x .@ "importManifestUrl"- <*> x .@ "size"--instance ToQuery DiskImageDescription where- toQuery DiskImageDescription{..} = mconcat- [ "checksum" =? _did1Checksum- , "format" =? _did1Format- , "importManifestUrl" =? _did1ImportManifestUrl- , "size" =? _did1Size- ]--data DiskImageVolumeDescription = DiskImageVolumeDescription- { _divdId :: Text- , _divdSize :: Maybe Integer- } deriving (Eq, Ord, Read, Show)---- | 'DiskImageVolumeDescription' constructor.------ The fields accessible through corresponding lenses are:------ * 'divdId' @::@ 'Text'------ * 'divdSize' @::@ 'Maybe' 'Integer'----diskImageVolumeDescription :: Text -- ^ 'divdId'- -> DiskImageVolumeDescription-diskImageVolumeDescription p1 = DiskImageVolumeDescription- { _divdId = p1- , _divdSize = Nothing- }---- | The volume identifier.-divdId :: Lens' DiskImageVolumeDescription Text-divdId = lens _divdId (\s a -> s { _divdId = a })---- | The size of the volume.-divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)-divdSize = lens _divdSize (\s a -> s { _divdSize = a })--instance FromXML DiskImageVolumeDescription where- parseXML x = DiskImageVolumeDescription- <$> x .@ "id"- <*> x .@? "size"--instance ToQuery DiskImageVolumeDescription where- toQuery DiskImageVolumeDescription{..} = mconcat- [ "id" =? _divdId- , "size" =? _divdSize- ]--newtype Monitoring = Monitoring- { _mState :: Maybe MonitoringState- } deriving (Eq, Read, Show)---- | 'Monitoring' constructor.------ The fields accessible through corresponding lenses are:------ * 'mState' @::@ 'Maybe' 'MonitoringState'----monitoring :: Monitoring-monitoring = Monitoring- { _mState = Nothing- }---- | Indicates whether monitoring is enabled for the instance.-mState :: Lens' Monitoring (Maybe MonitoringState)-mState = lens _mState (\s a -> s { _mState = a })--instance FromXML Monitoring where- parseXML x = Monitoring- <$> x .@? "state"--instance ToQuery Monitoring where- toQuery Monitoring{..} = mconcat- [ "state" =? _mState- ]--data SubnetState- = SSAvailable -- ^ available- | SSPending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SubnetState--instance FromText SubnetState where- parser = takeLowerText >>= \case- "available" -> pure SSAvailable- "pending" -> pure SSPending- e -> fail $- "Failure parsing SubnetState from " ++ show e--instance ToText SubnetState where- toText = \case- SSAvailable -> "available"- SSPending -> "pending"--instance ToByteString SubnetState-instance ToHeader SubnetState-instance ToQuery SubnetState--instance FromXML SubnetState where- parseXML = parseXMLText "SubnetState"--data ContainerFormat- = Ova -- ^ ova- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ContainerFormat--instance FromText ContainerFormat where- parser = takeLowerText >>= \case- "ova" -> pure Ova- e -> fail $- "Failure parsing ContainerFormat from " ++ show e--instance ToText ContainerFormat where- toText Ova = "ova"--instance ToByteString ContainerFormat-instance ToHeader ContainerFormat-instance ToQuery ContainerFormat--instance FromXML ContainerFormat where- parseXML = parseXMLText "ContainerFormat"--newtype AvailabilityZoneMessage = AvailabilityZoneMessage- { _azmMessage :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)---- | 'AvailabilityZoneMessage' constructor.------ The fields accessible through corresponding lenses are:------ * 'azmMessage' @::@ 'Maybe' 'Text'----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 ToQuery AvailabilityZoneMessage where- toQuery AvailabilityZoneMessage{..} = mconcat- [ "message" =? _azmMessage- ]--data VpcAttachment = VpcAttachment- { _va1State :: Maybe AttachmentStatus- , _va1VpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VpcAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'va1State' @::@ 'Maybe' 'AttachmentStatus'------ * 'va1VpcId' @::@ 'Maybe' 'Text'----vpcAttachment :: VpcAttachment-vpcAttachment = VpcAttachment- { _va1VpcId = Nothing- , _va1State = Nothing- }---- | The current state of the attachment.-va1State :: Lens' VpcAttachment (Maybe AttachmentStatus)-va1State = lens _va1State (\s a -> s { _va1State = a })---- | The ID of the VPC.-va1VpcId :: Lens' VpcAttachment (Maybe Text)-va1VpcId = lens _va1VpcId (\s a -> s { _va1VpcId = a })--instance FromXML VpcAttachment where- parseXML x = VpcAttachment- <$> x .@? "state"- <*> x .@? "vpcId"--instance ToQuery VpcAttachment where- toQuery VpcAttachment{..} = mconcat- [ "state" =? _va1State- , "vpcId" =? _va1VpcId- ]--data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping- { _ibdmDeviceName :: Maybe Text- , _ibdmEbs :: Maybe EbsInstanceBlockDevice- } deriving (Eq, Read, Show)---- | 'InstanceBlockDeviceMapping' constructor.------ The fields accessible through corresponding lenses are:------ * 'ibdmDeviceName' @::@ 'Maybe' 'Text'------ * 'ibdmEbs' @::@ 'Maybe' 'EbsInstanceBlockDevice'----instanceBlockDeviceMapping :: InstanceBlockDeviceMapping-instanceBlockDeviceMapping = InstanceBlockDeviceMapping- { _ibdmDeviceName = Nothing- , _ibdmEbs = Nothing- }---- | The device name exposed to the instance (for example, /dev/sdh).-ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)-ibdmDeviceName = lens _ibdmDeviceName (\s a -> s { _ibdmDeviceName = a })---- | Parameters used to automatically set up Amazon EBS volumes when the instance--- is launched.-ibdmEbs :: Lens' InstanceBlockDeviceMapping (Maybe EbsInstanceBlockDevice)-ibdmEbs = lens _ibdmEbs (\s a -> s { _ibdmEbs = a })--instance FromXML InstanceBlockDeviceMapping where- parseXML x = InstanceBlockDeviceMapping- <$> x .@? "deviceName"- <*> x .@? "ebs"--instance ToQuery InstanceBlockDeviceMapping where- toQuery InstanceBlockDeviceMapping{..} = mconcat- [ "deviceName" =? _ibdmDeviceName- , "ebs" =? _ibdmEbs- ]--data StatusType- = Failed -- ^ failed- | InsufficientData -- ^ insufficient-data- | Passed -- ^ passed- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable StatusType--instance FromText StatusType where- parser = takeLowerText >>= \case- "failed" -> pure Failed- "insufficient-data" -> pure InsufficientData- "passed" -> pure Passed- e -> fail $- "Failure parsing StatusType from " ++ show e--instance ToText StatusType where- toText = \case- Failed -> "failed"- InsufficientData -> "insufficient-data"- Passed -> "passed"--instance ToByteString StatusType-instance ToHeader StatusType-instance ToQuery StatusType--instance FromXML StatusType where- parseXML = parseXMLText "StatusType"--data ExportToS3TaskSpecification = ExportToS3TaskSpecification- { _etstsContainerFormat :: Maybe ContainerFormat- , _etstsDiskImageFormat :: Maybe DiskImageFormat- , _etstsS3Bucket :: Maybe Text- , _etstsS3Prefix :: Maybe Text- } deriving (Eq, Read, Show)---- | 'ExportToS3TaskSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'etstsContainerFormat' @::@ 'Maybe' 'ContainerFormat'------ * 'etstsDiskImageFormat' @::@ 'Maybe' 'DiskImageFormat'------ * 'etstsS3Bucket' @::@ 'Maybe' 'Text'------ * 'etstsS3Prefix' @::@ 'Maybe' 'Text'----exportToS3TaskSpecification :: ExportToS3TaskSpecification-exportToS3TaskSpecification = ExportToS3TaskSpecification- { _etstsDiskImageFormat = Nothing- , _etstsContainerFormat = Nothing- , _etstsS3Bucket = Nothing- , _etstsS3Prefix = Nothing- }--etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)-etstsContainerFormat =- lens _etstsContainerFormat (\s a -> s { _etstsContainerFormat = a })--etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)-etstsDiskImageFormat =- lens _etstsDiskImageFormat (\s a -> s { _etstsDiskImageFormat = a })--etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsS3Bucket = lens _etstsS3Bucket (\s a -> s { _etstsS3Bucket = a })---- | The image is written to a single object in the Amazon S3 bucket at the S3 key--- s3prefix + exportTaskId + '.' + diskImageFormat.-etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsS3Prefix = lens _etstsS3Prefix (\s a -> s { _etstsS3Prefix = a })--instance FromXML ExportToS3TaskSpecification where- parseXML x = ExportToS3TaskSpecification- <$> x .@? "containerFormat"- <*> x .@? "diskImageFormat"- <*> x .@? "s3Bucket"- <*> x .@? "s3Prefix"--instance ToQuery ExportToS3TaskSpecification where- toQuery ExportToS3TaskSpecification{..} = mconcat- [ "containerFormat" =? _etstsContainerFormat- , "diskImageFormat" =? _etstsDiskImageFormat- , "s3Bucket" =? _etstsS3Bucket- , "s3Prefix" =? _etstsS3Prefix- ]--data NetworkInterfaceAttribute- = Attachment -- ^ attachment- | Description -- ^ description- | GroupSet -- ^ groupSet- | SourceDestCheck -- ^ sourceDestCheck- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable NetworkInterfaceAttribute--instance FromText NetworkInterfaceAttribute where- parser = takeLowerText >>= \case- "attachment" -> pure Attachment- "description" -> pure Description- "groupset" -> pure GroupSet- "sourcedestcheck" -> pure SourceDestCheck- e -> fail $- "Failure parsing NetworkInterfaceAttribute from " ++ show e--instance ToText NetworkInterfaceAttribute where- toText = \case- Attachment -> "attachment"- Description -> "description"- GroupSet -> "groupSet"- SourceDestCheck -> "sourceDestCheck"--instance ToByteString NetworkInterfaceAttribute-instance ToHeader NetworkInterfaceAttribute-instance ToQuery NetworkInterfaceAttribute--instance FromXML NetworkInterfaceAttribute where- parseXML = parseXMLText "NetworkInterfaceAttribute"--data ImageTypeValues- = Kernel -- ^ kernel- | Machine -- ^ machine- | Ramdisk -- ^ ramdisk- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ImageTypeValues--instance FromText ImageTypeValues where- parser = takeLowerText >>= \case- "kernel" -> pure Kernel- "machine" -> pure Machine- "ramdisk" -> pure Ramdisk- e -> fail $- "Failure parsing ImageTypeValues from " ++ show e--instance ToText ImageTypeValues where- toText = \case- Kernel -> "kernel"- Machine -> "machine"- Ramdisk -> "ramdisk"--instance ToByteString ImageTypeValues-instance ToHeader ImageTypeValues-instance ToQuery ImageTypeValues--instance FromXML ImageTypeValues where- parseXML = parseXMLText "ImageTypeValues"--data InstanceExportDetails = InstanceExportDetails- { _iedInstanceId :: Maybe Text- , _iedTargetEnvironment :: Maybe ExportEnvironment- } deriving (Eq, Read, Show)---- | 'InstanceExportDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'iedInstanceId' @::@ 'Maybe' 'Text'------ * 'iedTargetEnvironment' @::@ 'Maybe' 'ExportEnvironment'----instanceExportDetails :: InstanceExportDetails-instanceExportDetails = InstanceExportDetails- { _iedInstanceId = Nothing- , _iedTargetEnvironment = Nothing- }---- | The ID of the resource being exported.-iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)-iedInstanceId = lens _iedInstanceId (\s a -> s { _iedInstanceId = a })---- | The target virtualization environment.-iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)-iedTargetEnvironment =- lens _iedTargetEnvironment (\s a -> s { _iedTargetEnvironment = a })--instance FromXML InstanceExportDetails where- parseXML x = InstanceExportDetails- <$> x .@? "instanceId"- <*> x .@? "targetEnvironment"--instance ToQuery InstanceExportDetails where- toQuery InstanceExportDetails{..} = mconcat- [ "instanceId" =? _iedInstanceId- , "targetEnvironment" =? _iedTargetEnvironment- ]--data SnapshotAttributeName- = SANCreateVolumePermission -- ^ createVolumePermission- | SANProductCodes -- ^ productCodes- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SnapshotAttributeName--instance FromText SnapshotAttributeName where- parser = takeLowerText >>= \case- "createvolumepermission" -> pure SANCreateVolumePermission- "productcodes" -> pure SANProductCodes- e -> fail $- "Failure parsing SnapshotAttributeName from " ++ show e--instance ToText SnapshotAttributeName where- toText = \case- SANCreateVolumePermission -> "createVolumePermission"- SANProductCodes -> "productCodes"--instance ToByteString SnapshotAttributeName-instance ToHeader SnapshotAttributeName-instance ToQuery SnapshotAttributeName--instance FromXML SnapshotAttributeName where- parseXML = parseXMLText "SnapshotAttributeName"--data AvailabilityZone = AvailabilityZone- { _azMessages :: List "item" AvailabilityZoneMessage- , _azRegionName :: Maybe Text- , _azState :: Maybe AvailabilityZoneState- , _azZoneName :: Maybe Text- } deriving (Eq, Read, Show)---- | 'AvailabilityZone' constructor.------ The fields accessible through corresponding lenses are:------ * 'azMessages' @::@ ['AvailabilityZoneMessage']------ * 'azRegionName' @::@ 'Maybe' 'Text'------ * 'azState' @::@ 'Maybe' 'AvailabilityZoneState'------ * 'azZoneName' @::@ 'Maybe' 'Text'----availabilityZone :: AvailabilityZone-availabilityZone = AvailabilityZone- { _azZoneName = Nothing- , _azState = Nothing- , _azRegionName = Nothing- , _azMessages = mempty- }---- | Any messages about the Availability Zone.-azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]-azMessages = lens _azMessages (\s a -> s { _azMessages = a }) . _List---- | The name of the region.-azRegionName :: Lens' AvailabilityZone (Maybe Text)-azRegionName = lens _azRegionName (\s a -> s { _azRegionName = a })---- | The state of the Availability Zone ('available' | 'impaired' | 'unavailable').-azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)-azState = lens _azState (\s a -> s { _azState = a })---- | The name of the Availability Zone.-azZoneName :: Lens' AvailabilityZone (Maybe Text)-azZoneName = lens _azZoneName (\s a -> s { _azZoneName = a })--instance FromXML AvailabilityZone where- parseXML x = AvailabilityZone- <$> x .@? "messageSet" .!@ mempty- <*> x .@? "regionName"- <*> x .@? "zoneState"- <*> x .@? "zoneName"--instance ToQuery AvailabilityZone where- toQuery AvailabilityZone{..} = mconcat- [ "messageSet" `toQueryList` _azMessages- , "regionName" =? _azRegionName- , "zoneState" =? _azState- , "zoneName" =? _azZoneName- ]--data VpnState- = VpnStateAvailable -- ^ available- | VpnStateDeleted -- ^ deleted- | VpnStateDeleting -- ^ deleting- | VpnStatePending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VpnState--instance FromText VpnState where- parser = takeLowerText >>= \case- "available" -> pure VpnStateAvailable- "deleted" -> pure VpnStateDeleted- "deleting" -> pure VpnStateDeleting- "pending" -> pure VpnStatePending- e -> fail $- "Failure parsing VpnState from " ++ show e--instance ToText VpnState where- toText = \case- VpnStateAvailable -> "available"- VpnStateDeleted -> "deleted"- VpnStateDeleting -> "deleting"- VpnStatePending -> "pending"--instance ToByteString VpnState-instance ToHeader VpnState-instance ToQuery VpnState--instance FromXML VpnState where- parseXML = parseXMLText "VpnState"--data RouteTable = RouteTable- { _rtAssociations :: List "item" RouteTableAssociation- , _rtPropagatingVgws :: List "item" PropagatingVgw- , _rtRouteTableId :: Maybe Text- , _rtRoutes :: List "item" Route- , _rtTags :: List "item" Tag- , _rtVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'RouteTable' constructor.------ The fields accessible through corresponding lenses are:------ * 'rtAssociations' @::@ ['RouteTableAssociation']------ * 'rtPropagatingVgws' @::@ ['PropagatingVgw']------ * 'rtRouteTableId' @::@ 'Maybe' 'Text'------ * 'rtRoutes' @::@ ['Route']------ * 'rtTags' @::@ ['Tag']------ * 'rtVpcId' @::@ 'Maybe' 'Text'----routeTable :: RouteTable-routeTable = RouteTable- { _rtRouteTableId = Nothing- , _rtVpcId = Nothing- , _rtRoutes = mempty- , _rtAssociations = mempty- , _rtTags = mempty- , _rtPropagatingVgws = mempty- }---- | The associations between the route table and one or more subnets.-rtAssociations :: Lens' RouteTable [RouteTableAssociation]-rtAssociations = lens _rtAssociations (\s a -> s { _rtAssociations = a }) . _List---- | Any virtual private gateway (VGW) propagating routes.-rtPropagatingVgws :: Lens' RouteTable [PropagatingVgw]-rtPropagatingVgws =- lens _rtPropagatingVgws (\s a -> s { _rtPropagatingVgws = a })- . _List---- | 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 }) . _List---- | Any tags assigned to the route table.-rtTags :: Lens' RouteTable [Tag]-rtTags = lens _rtTags (\s a -> s { _rtTags = a }) . _List---- | The ID of the VPC.-rtVpcId :: Lens' RouteTable (Maybe Text)-rtVpcId = lens _rtVpcId (\s a -> s { _rtVpcId = a })--instance FromXML RouteTable where- parseXML x = RouteTable- <$> x .@? "associationSet" .!@ mempty- <*> x .@? "propagatingVgwSet" .!@ mempty- <*> x .@? "routeTableId"- <*> x .@? "routeSet" .!@ mempty- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcId"--instance ToQuery RouteTable where- toQuery RouteTable{..} = mconcat- [ "associationSet" `toQueryList` _rtAssociations- , "propagatingVgwSet" `toQueryList` _rtPropagatingVgws- , "routeTableId" =? _rtRouteTableId- , "routeSet" `toQueryList` _rtRoutes- , "tagSet" `toQueryList` _rtTags- , "vpcId" =? _rtVpcId- ]--data HypervisorType- = Ovm -- ^ ovm- | Xen -- ^ xen- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable HypervisorType--instance FromText HypervisorType where- parser = takeLowerText >>= \case- "ovm" -> pure Ovm- "xen" -> pure Xen- e -> fail $- "Failure parsing HypervisorType from " ++ show e--instance ToText HypervisorType where- toText = \case- Ovm -> "ovm"- Xen -> "xen"--instance ToByteString HypervisorType-instance ToHeader HypervisorType-instance ToQuery HypervisorType--instance FromXML HypervisorType where- parseXML = parseXMLText "HypervisorType"--data InstanceStatusDetails = InstanceStatusDetails- { _isdImpairedSince :: Maybe ISO8601- , _isdName :: Maybe StatusName- , _isdStatus :: Maybe StatusType- } deriving (Eq, Read, Show)---- | 'InstanceStatusDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'isdImpairedSince' @::@ 'Maybe' 'UTCTime'------ * 'isdName' @::@ 'Maybe' 'StatusName'------ * 'isdStatus' @::@ 'Maybe' 'StatusType'----instanceStatusDetails :: InstanceStatusDetails-instanceStatusDetails = InstanceStatusDetails- { _isdName = Nothing- , _isdStatus = Nothing- , _isdImpairedSince = Nothing- }---- | 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 })---- | The status.-isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)-isdStatus = lens _isdStatus (\s a -> s { _isdStatus = a })--instance FromXML InstanceStatusDetails where- parseXML x = InstanceStatusDetails- <$> x .@? "impairedSince"- <*> x .@? "name"- <*> x .@? "status"--instance ToQuery InstanceStatusDetails where- toQuery InstanceStatusDetails{..} = mconcat- [ "impairedSince" =? _isdImpairedSince- , "name" =? _isdName- , "status" =? _isdStatus- ]--data IamInstanceProfile = IamInstanceProfile- { _iipArn :: Maybe Text- , _iipId :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'IamInstanceProfile' constructor.------ The fields accessible through corresponding lenses are:------ * 'iipArn' @::@ 'Maybe' 'Text'------ * 'iipId' @::@ 'Maybe' 'Text'----iamInstanceProfile :: IamInstanceProfile-iamInstanceProfile = IamInstanceProfile- { _iipArn = Nothing- , _iipId = Nothing- }---- | The Amazon Resource Name (ARN) of the instance profile.-iipArn :: Lens' IamInstanceProfile (Maybe Text)-iipArn = lens _iipArn (\s a -> s { _iipArn = a })---- | The ID of the instance profile.-iipId :: Lens' IamInstanceProfile (Maybe Text)-iipId = lens _iipId (\s a -> s { _iipId = a })--instance FromXML IamInstanceProfile where- parseXML x = IamInstanceProfile- <$> x .@? "arn"- <*> x .@? "id"--instance ToQuery IamInstanceProfile where- toQuery IamInstanceProfile{..} = mconcat- [ "arn" =? _iipArn- , "id" =? _iipId- ]--data InternetGatewayAttachment = InternetGatewayAttachment- { _igaState :: AttachmentStatus- , _igaVpcId :: Text- } deriving (Eq, Read, Show)---- | 'InternetGatewayAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'igaState' @::@ 'AttachmentStatus'------ * 'igaVpcId' @::@ 'Text'----internetGatewayAttachment :: Text -- ^ 'igaVpcId'- -> AttachmentStatus -- ^ 'igaState'- -> InternetGatewayAttachment-internetGatewayAttachment p1 p2 = InternetGatewayAttachment- { _igaVpcId = p1- , _igaState = p2- }---- | 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 ToQuery InternetGatewayAttachment where- toQuery InternetGatewayAttachment{..} = mconcat- [ "state" =? _igaState- , "vpcId" =? _igaVpcId- ]--data ReservedInstanceState- = RISActive -- ^ active- | RISPaymentFailed -- ^ payment-failed- | RISPaymentPending -- ^ payment-pending- | RISRetired -- ^ retired- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ReservedInstanceState--instance FromText ReservedInstanceState where- parser = takeLowerText >>= \case- "active" -> pure RISActive- "payment-failed" -> pure RISPaymentFailed- "payment-pending" -> pure RISPaymentPending- "retired" -> pure RISRetired- e -> fail $- "Failure parsing ReservedInstanceState from " ++ show e--instance ToText ReservedInstanceState where- toText = \case- RISActive -> "active"- RISPaymentFailed -> "payment-failed"- RISPaymentPending -> "payment-pending"- RISRetired -> "retired"--instance ToByteString ReservedInstanceState-instance ToHeader ReservedInstanceState-instance ToQuery ReservedInstanceState--instance FromXML ReservedInstanceState where- parseXML = parseXMLText "ReservedInstanceState"--data InstanceAttributeName- = IANInstanceBlockDeviceMapping -- ^ blockDeviceMapping- | IANInstanceDisableApiTermination -- ^ disableApiTermination- | IANInstanceEbsOptimized -- ^ ebsOptimized- | IANInstanceGroupSet -- ^ groupSet- | IANInstanceInstanceInitiatedShutdownBehavior -- ^ instanceInitiatedShutdownBehavior- | IANInstanceInstanceType -- ^ instanceType- | IANInstanceKernel -- ^ kernel- | IANInstanceProductCodes -- ^ productCodes- | IANInstanceRamdisk -- ^ ramdisk- | IANInstanceRootDeviceName -- ^ rootDeviceName- | IANInstanceSourceDestCheck -- ^ sourceDestCheck- | IANInstanceSriovNetSupport -- ^ sriovNetSupport- | IANInstanceUserData -- ^ userData- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceAttributeName--instance FromText InstanceAttributeName where- parser = takeLowerText >>= \case- "blockdevicemapping" -> pure IANInstanceBlockDeviceMapping- "disableapitermination" -> pure IANInstanceDisableApiTermination- "ebsoptimized" -> pure IANInstanceEbsOptimized- "groupset" -> pure IANInstanceGroupSet- "instanceinitiatedshutdownbehavior" -> pure IANInstanceInstanceInitiatedShutdownBehavior- "instancetype" -> pure IANInstanceInstanceType- "kernel" -> pure IANInstanceKernel- "productcodes" -> pure IANInstanceProductCodes- "ramdisk" -> pure IANInstanceRamdisk- "rootdevicename" -> pure IANInstanceRootDeviceName- "sourcedestcheck" -> pure IANInstanceSourceDestCheck- "sriovnetsupport" -> pure IANInstanceSriovNetSupport- "userdata" -> pure IANInstanceUserData- e -> fail $- "Failure parsing InstanceAttributeName from " ++ show e--instance ToText InstanceAttributeName where- toText = \case- IANInstanceBlockDeviceMapping -> "blockDeviceMapping"- IANInstanceDisableApiTermination -> "disableApiTermination"- IANInstanceEbsOptimized -> "ebsOptimized"- IANInstanceGroupSet -> "groupSet"- IANInstanceInstanceInitiatedShutdownBehavior -> "instanceInitiatedShutdownBehavior"- IANInstanceInstanceType -> "instanceType"- IANInstanceKernel -> "kernel"- IANInstanceProductCodes -> "productCodes"- IANInstanceRamdisk -> "ramdisk"- IANInstanceRootDeviceName -> "rootDeviceName"- IANInstanceSourceDestCheck -> "sourceDestCheck"- IANInstanceSriovNetSupport -> "sriovNetSupport"- IANInstanceUserData -> "userData"--instance ToByteString InstanceAttributeName-instance ToHeader InstanceAttributeName-instance ToQuery InstanceAttributeName--instance FromXML InstanceAttributeName where- parseXML = parseXMLText "InstanceAttributeName"--data IpPermission = IpPermission- { _ipFromPort :: Int- , _ipIpProtocol :: Text- , _ipIpRanges :: List "item" IpRange- , _ipToPort :: Int- , _ipUserIdGroupPairs :: List "item" UserIdGroupPair- } deriving (Eq, Read, Show)---- | 'IpPermission' constructor.------ The fields accessible through corresponding lenses are:------ * 'ipFromPort' @::@ 'Int'------ * 'ipIpProtocol' @::@ 'Text'------ * 'ipIpRanges' @::@ ['IpRange']------ * 'ipToPort' @::@ 'Int'------ * 'ipUserIdGroupPairs' @::@ ['UserIdGroupPair']----ipPermission :: Text -- ^ 'ipIpProtocol'- -> Int -- ^ 'ipFromPort'- -> Int -- ^ 'ipToPort'- -> IpPermission-ipPermission p1 p2 p3 = IpPermission- { _ipIpProtocol = p1- , _ipFromPort = p2- , _ipToPort = p3- , _ipUserIdGroupPairs = mempty- , _ipIpRanges = mempty- }---- | The start of port range for the TCP and UDP protocols, or an ICMP type--- number. A value of '-1' indicates all ICMP types.-ipFromPort :: Lens' IpPermission Int-ipFromPort = lens _ipFromPort (\s a -> s { _ipFromPort = a })---- | The protocol.------ When you call 'DescribeSecurityGroups', the protocol value returned is the--- number. Exception: For TCP, UDP, and ICMP, the value returned is the name--- (for example, 'tcp', 'udp', or 'icmp'). For a list of protocol numbers, see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers>.-ipIpProtocol :: Lens' IpPermission Text-ipIpProtocol = lens _ipIpProtocol (\s a -> s { _ipIpProtocol = a })---- | One or more IP ranges.-ipIpRanges :: Lens' IpPermission [IpRange]-ipIpRanges = lens _ipIpRanges (\s a -> s { _ipIpRanges = a }) . _List---- | The end of port range for the TCP and UDP protocols, or an ICMP code. A value--- of '-1' indicates all ICMP codes for the specified ICMP type.-ipToPort :: Lens' IpPermission Int-ipToPort = lens _ipToPort (\s a -> s { _ipToPort = a })---- | One or more security group and AWS account ID pairs.-ipUserIdGroupPairs :: Lens' IpPermission [UserIdGroupPair]-ipUserIdGroupPairs =- lens _ipUserIdGroupPairs (\s a -> s { _ipUserIdGroupPairs = a })- . _List--instance FromXML IpPermission where- parseXML x = IpPermission- <$> x .@ "fromPort"- <*> x .@ "ipProtocol"- <*> x .@? "ipRanges" .!@ mempty- <*> x .@ "toPort"- <*> x .@? "groups" .!@ mempty--instance ToQuery IpPermission where- toQuery IpPermission{..} = mconcat- [ "fromPort" =? _ipFromPort- , "ipProtocol" =? _ipIpProtocol- , "ipRanges" `toQueryList` _ipIpRanges- , "toPort" =? _ipToPort- , "groups" `toQueryList` _ipUserIdGroupPairs- ]--data ConversionTaskState- = CTSActive -- ^ active- | CTSCancelled -- ^ cancelled- | CTSCancelling -- ^ cancelling- | CTSCompleted -- ^ completed- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ConversionTaskState--instance FromText ConversionTaskState where- parser = takeLowerText >>= \case- "active" -> pure CTSActive- "cancelled" -> pure CTSCancelled- "cancelling" -> pure CTSCancelling- "completed" -> pure CTSCompleted- e -> fail $- "Failure parsing ConversionTaskState from " ++ show e--instance ToText ConversionTaskState where- toText = \case- CTSActive -> "active"- CTSCancelled -> "cancelled"- CTSCancelling -> "cancelling"- CTSCompleted -> "completed"--instance ToByteString ConversionTaskState-instance ToHeader ConversionTaskState-instance ToQuery ConversionTaskState--instance FromXML ConversionTaskState where- parseXML = parseXMLText "ConversionTaskState"--data DiskImage = DiskImage- { _diDescription :: Maybe Text- , _diImage :: Maybe DiskImageDetail- , _diVolume :: Maybe VolumeDetail- } deriving (Eq, Read, Show)---- | 'DiskImage' constructor.------ The fields accessible through corresponding lenses are:------ * 'diDescription' @::@ 'Maybe' 'Text'------ * 'diImage' @::@ 'Maybe' 'DiskImageDetail'------ * 'diVolume' @::@ 'Maybe' 'VolumeDetail'----diskImage :: DiskImage-diskImage = DiskImage- { _diImage = Nothing- , _diDescription = Nothing- , _diVolume = Nothing- }--diDescription :: Lens' DiskImage (Maybe Text)-diDescription = lens _diDescription (\s a -> s { _diDescription = a })--diImage :: Lens' DiskImage (Maybe DiskImageDetail)-diImage = lens _diImage (\s a -> s { _diImage = a })--diVolume :: Lens' DiskImage (Maybe VolumeDetail)-diVolume = lens _diVolume (\s a -> s { _diVolume = a })--instance FromXML DiskImage where- parseXML x = DiskImage- <$> x .@? "Description"- <*> x .@? "Image"- <*> x .@? "Volume"--instance ToQuery DiskImage where- toQuery DiskImage{..} = mconcat- [ "Description" =? _diDescription- , "Image" =? _diImage- , "Volume" =? _diVolume- ]--data Tenancy- = Dedicated -- ^ dedicated- | Default' -- ^ default- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable Tenancy--instance FromText Tenancy where- parser = takeLowerText >>= \case- "dedicated" -> pure Dedicated- "default" -> pure Default'- e -> fail $- "Failure parsing Tenancy from " ++ show e--instance ToText Tenancy where- toText = \case- Dedicated -> "dedicated"- Default' -> "default"--instance ToByteString Tenancy-instance ToHeader Tenancy-instance ToQuery Tenancy--instance FromXML Tenancy where- parseXML = parseXMLText "Tenancy"--data VpcPeeringConnectionStateReason = VpcPeeringConnectionStateReason- { _vpcsrCode :: Maybe Text- , _vpcsrMessage :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'VpcPeeringConnectionStateReason' constructor.------ The fields accessible through corresponding lenses are:------ * 'vpcsrCode' @::@ 'Maybe' 'Text'------ * 'vpcsrMessage' @::@ 'Maybe' 'Text'----vpcPeeringConnectionStateReason :: VpcPeeringConnectionStateReason-vpcPeeringConnectionStateReason = VpcPeeringConnectionStateReason- { _vpcsrCode = Nothing- , _vpcsrMessage = Nothing- }---- | The status of the VPC peering connection.-vpcsrCode :: Lens' VpcPeeringConnectionStateReason (Maybe Text)-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 ToQuery VpcPeeringConnectionStateReason where- toQuery VpcPeeringConnectionStateReason{..} = mconcat- [ "code" =? _vpcsrCode- , "message" =? _vpcsrMessage- ]--data IamInstanceProfileSpecification = IamInstanceProfileSpecification- { _iipsArn :: Maybe Text- , _iipsName :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'IamInstanceProfileSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'iipsArn' @::@ 'Maybe' 'Text'------ * 'iipsName' @::@ 'Maybe' 'Text'----iamInstanceProfileSpecification :: IamInstanceProfileSpecification-iamInstanceProfileSpecification = IamInstanceProfileSpecification- { _iipsArn = Nothing- , _iipsName = Nothing- }---- | The Amazon Resource Name (ARN) of the instance profile.-iipsArn :: Lens' IamInstanceProfileSpecification (Maybe Text)-iipsArn = lens _iipsArn (\s a -> s { _iipsArn = a })---- | The name of the instance profile.-iipsName :: Lens' IamInstanceProfileSpecification (Maybe Text)-iipsName = lens _iipsName (\s a -> s { _iipsName = a })--instance FromXML IamInstanceProfileSpecification where- parseXML x = IamInstanceProfileSpecification- <$> x .@? "arn"- <*> x .@? "name"--instance ToQuery IamInstanceProfileSpecification where- toQuery IamInstanceProfileSpecification{..} = mconcat- [ "arn" =? _iipsArn- , "name" =? _iipsName- ]--data ImportVolumeTaskDetails = ImportVolumeTaskDetails- { _ivtdAvailabilityZone :: Text- , _ivtdBytesConverted :: Integer- , _ivtdDescription :: Maybe Text- , _ivtdImage :: DiskImageDescription- , _ivtdVolume :: DiskImageVolumeDescription- } deriving (Eq, Read, Show)---- | 'ImportVolumeTaskDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'ivtdAvailabilityZone' @::@ 'Text'------ * 'ivtdBytesConverted' @::@ 'Integer'------ * 'ivtdDescription' @::@ 'Maybe' 'Text'------ * 'ivtdImage' @::@ 'DiskImageDescription'------ * 'ivtdVolume' @::@ 'DiskImageVolumeDescription'----importVolumeTaskDetails :: Integer -- ^ 'ivtdBytesConverted'- -> Text -- ^ 'ivtdAvailabilityZone'- -> DiskImageDescription -- ^ 'ivtdImage'- -> DiskImageVolumeDescription -- ^ 'ivtdVolume'- -> ImportVolumeTaskDetails-importVolumeTaskDetails p1 p2 p3 p4 = ImportVolumeTaskDetails- { _ivtdBytesConverted = p1- , _ivtdAvailabilityZone = p2- , _ivtdImage = p3- , _ivtdVolume = p4- , _ivtdDescription = Nothing- }---- | 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 description you provided when starting the import volume task.-ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)-ivtdDescription = lens _ivtdDescription (\s a -> s { _ivtdDescription = 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 .@ "availabilityZone"- <*> x .@ "bytesConverted"- <*> x .@? "description"- <*> x .@ "image"- <*> x .@ "volume"--instance ToQuery ImportVolumeTaskDetails where- toQuery ImportVolumeTaskDetails{..} = mconcat- [ "availabilityZone" =? _ivtdAvailabilityZone- , "bytesConverted" =? _ivtdBytesConverted- , "description" =? _ivtdDescription- , "image" =? _ivtdImage- , "volume" =? _ivtdVolume- ]--data PlacementStrategy- = Cluster -- ^ cluster- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable PlacementStrategy--instance FromText PlacementStrategy where- parser = takeLowerText >>= \case- "cluster" -> pure Cluster- e -> fail $- "Failure parsing PlacementStrategy from " ++ show e--instance ToText PlacementStrategy where- toText Cluster = "cluster"--instance ToByteString PlacementStrategy-instance ToHeader PlacementStrategy-instance ToQuery PlacementStrategy--instance FromXML PlacementStrategy where- parseXML = parseXMLText "PlacementStrategy"--data InstanceNetworkInterface = InstanceNetworkInterface- { _iniAssociation :: Maybe InstanceNetworkInterfaceAssociation- , _iniAttachment :: Maybe InstanceNetworkInterfaceAttachment- , _iniDescription :: Maybe Text- , _iniGroups :: List "item" GroupIdentifier- , _iniMacAddress :: Maybe Text- , _iniNetworkInterfaceId :: Maybe Text- , _iniOwnerId :: Maybe Text- , _iniPrivateDnsName :: Maybe Text- , _iniPrivateIpAddress :: Maybe Text- , _iniPrivateIpAddresses :: List "item" InstancePrivateIpAddress- , _iniSourceDestCheck :: Maybe Bool- , _iniStatus :: Maybe NetworkInterfaceStatus- , _iniSubnetId :: Maybe Text- , _iniVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstanceNetworkInterface' constructor.------ The fields accessible through corresponding lenses are:------ * 'iniAssociation' @::@ 'Maybe' 'InstanceNetworkInterfaceAssociation'------ * 'iniAttachment' @::@ 'Maybe' 'InstanceNetworkInterfaceAttachment'------ * 'iniDescription' @::@ 'Maybe' 'Text'------ * 'iniGroups' @::@ ['GroupIdentifier']------ * 'iniMacAddress' @::@ 'Maybe' 'Text'------ * 'iniNetworkInterfaceId' @::@ 'Maybe' 'Text'------ * 'iniOwnerId' @::@ 'Maybe' 'Text'------ * 'iniPrivateDnsName' @::@ 'Maybe' 'Text'------ * 'iniPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'iniPrivateIpAddresses' @::@ ['InstancePrivateIpAddress']------ * 'iniSourceDestCheck' @::@ 'Maybe' 'Bool'------ * 'iniStatus' @::@ 'Maybe' 'NetworkInterfaceStatus'------ * 'iniSubnetId' @::@ 'Maybe' 'Text'------ * 'iniVpcId' @::@ 'Maybe' 'Text'----instanceNetworkInterface :: InstanceNetworkInterface-instanceNetworkInterface = InstanceNetworkInterface- { _iniNetworkInterfaceId = Nothing- , _iniSubnetId = Nothing- , _iniVpcId = Nothing- , _iniDescription = Nothing- , _iniOwnerId = Nothing- , _iniStatus = Nothing- , _iniMacAddress = Nothing- , _iniPrivateIpAddress = Nothing- , _iniPrivateDnsName = Nothing- , _iniSourceDestCheck = Nothing- , _iniGroups = mempty- , _iniAttachment = Nothing- , _iniAssociation = Nothing- , _iniPrivateIpAddresses = mempty- }---- | The association information for an Elastic IP associated with the network--- interface.-iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)-iniAssociation = lens _iniAssociation (\s a -> s { _iniAssociation = a })---- | The network interface attachment.-iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)-iniAttachment = lens _iniAttachment (\s a -> s { _iniAttachment = a })---- | The description.-iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)-iniDescription = lens _iniDescription (\s a -> s { _iniDescription = a })---- | One or more security groups.-iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]-iniGroups = lens _iniGroups (\s a -> s { _iniGroups = a }) . _List---- | The MAC address.-iniMacAddress :: Lens' InstanceNetworkInterface (Maybe Text)-iniMacAddress = lens _iniMacAddress (\s a -> s { _iniMacAddress = a })---- | The ID of the network interface.-iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)-iniNetworkInterfaceId =- lens _iniNetworkInterfaceId (\s a -> s { _iniNetworkInterfaceId = 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 private DNS name.-iniPrivateDnsName :: Lens' InstanceNetworkInterface (Maybe Text)-iniPrivateDnsName =- lens _iniPrivateDnsName (\s a -> s { _iniPrivateDnsName = a })---- | The IP address of the network interface within the subnet.-iniPrivateIpAddress :: Lens' InstanceNetworkInterface (Maybe Text)-iniPrivateIpAddress =- lens _iniPrivateIpAddress (\s a -> s { _iniPrivateIpAddress = a })---- | The private IP addresses associated with the network interface.-iniPrivateIpAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIpAddress]-iniPrivateIpAddresses =- lens _iniPrivateIpAddresses (\s a -> s { _iniPrivateIpAddresses = a })- . _List---- | 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 status of the network interface.-iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)-iniStatus = lens _iniStatus (\s a -> s { _iniStatus = a })---- | The ID of the subnet.-iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)-iniSubnetId = lens _iniSubnetId (\s a -> s { _iniSubnetId = a })---- | The ID of the VPC.-iniVpcId :: Lens' InstanceNetworkInterface (Maybe Text)-iniVpcId = lens _iniVpcId (\s a -> s { _iniVpcId = a })--instance FromXML InstanceNetworkInterface where- parseXML x = InstanceNetworkInterface- <$> x .@? "association"- <*> x .@? "attachment"- <*> x .@? "description"- <*> x .@? "groupSet" .!@ mempty- <*> x .@? "macAddress"- <*> x .@? "networkInterfaceId"- <*> x .@? "ownerId"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"- <*> x .@? "privateIpAddressesSet" .!@ mempty- <*> x .@? "sourceDestCheck"- <*> x .@? "status"- <*> x .@? "subnetId"- <*> x .@? "vpcId"--instance ToQuery InstanceNetworkInterface where- toQuery InstanceNetworkInterface{..} = mconcat- [ "association" =? _iniAssociation- , "attachment" =? _iniAttachment- , "description" =? _iniDescription- , "groupSet" `toQueryList` _iniGroups- , "macAddress" =? _iniMacAddress- , "networkInterfaceId" =? _iniNetworkInterfaceId- , "ownerId" =? _iniOwnerId- , "privateDnsName" =? _iniPrivateDnsName- , "privateIpAddress" =? _iniPrivateIpAddress- , "privateIpAddressesSet" `toQueryList` _iniPrivateIpAddresses- , "sourceDestCheck" =? _iniSourceDestCheck- , "status" =? _iniStatus- , "subnetId" =? _iniSubnetId- , "vpcId" =? _iniVpcId- ]--data VolumeStatusAction = VolumeStatusAction- { _vsaCode :: Maybe Text- , _vsaDescription :: Maybe Text- , _vsaEventId :: Maybe Text- , _vsaEventType :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'VolumeStatusAction' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsaCode' @::@ 'Maybe' 'Text'------ * 'vsaDescription' @::@ 'Maybe' 'Text'------ * 'vsaEventId' @::@ 'Maybe' 'Text'------ * 'vsaEventType' @::@ 'Maybe' 'Text'----volumeStatusAction :: VolumeStatusAction-volumeStatusAction = VolumeStatusAction- { _vsaCode = Nothing- , _vsaDescription = Nothing- , _vsaEventType = Nothing- , _vsaEventId = Nothing- }---- | 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 })---- | The event type associated with this operation.-vsaEventType :: Lens' VolumeStatusAction (Maybe Text)-vsaEventType = lens _vsaEventType (\s a -> s { _vsaEventType = a })--instance FromXML VolumeStatusAction where- parseXML x = VolumeStatusAction- <$> x .@? "code"- <*> x .@? "description"- <*> x .@? "eventId"- <*> x .@? "eventType"--instance ToQuery VolumeStatusAction where- toQuery VolumeStatusAction{..} = mconcat- [ "code" =? _vsaCode- , "description" =? _vsaDescription- , "eventId" =? _vsaEventId- , "eventType" =? _vsaEventType- ]--data VpcPeeringConnectionVpcInfo = VpcPeeringConnectionVpcInfo- { _vpcviCidrBlock :: Maybe Text- , _vpcviOwnerId :: Maybe Text- , _vpcviVpcId :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'VpcPeeringConnectionVpcInfo' constructor.------ The fields accessible through corresponding lenses are:------ * 'vpcviCidrBlock' @::@ 'Maybe' 'Text'------ * 'vpcviOwnerId' @::@ 'Maybe' 'Text'------ * 'vpcviVpcId' @::@ 'Maybe' 'Text'----vpcPeeringConnectionVpcInfo :: VpcPeeringConnectionVpcInfo-vpcPeeringConnectionVpcInfo = VpcPeeringConnectionVpcInfo- { _vpcviCidrBlock = Nothing- , _vpcviOwnerId = Nothing- , _vpcviVpcId = Nothing- }---- | The CIDR block for the VPC.-vpcviCidrBlock :: Lens' VpcPeeringConnectionVpcInfo (Maybe Text)-vpcviCidrBlock = lens _vpcviCidrBlock (\s a -> s { _vpcviCidrBlock = a })---- | The AWS account ID of the VPC owner.-vpcviOwnerId :: Lens' VpcPeeringConnectionVpcInfo (Maybe Text)-vpcviOwnerId = lens _vpcviOwnerId (\s a -> s { _vpcviOwnerId = a })---- | The ID of the VPC.-vpcviVpcId :: Lens' VpcPeeringConnectionVpcInfo (Maybe Text)-vpcviVpcId = lens _vpcviVpcId (\s a -> s { _vpcviVpcId = a })--instance FromXML VpcPeeringConnectionVpcInfo where- parseXML x = VpcPeeringConnectionVpcInfo- <$> x .@? "cidrBlock"- <*> x .@? "ownerId"- <*> x .@? "vpcId"--instance ToQuery VpcPeeringConnectionVpcInfo where- toQuery VpcPeeringConnectionVpcInfo{..} = mconcat- [ "cidrBlock" =? _vpcviCidrBlock- , "ownerId" =? _vpcviOwnerId- , "vpcId" =? _vpcviVpcId- ]--data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice- { _rilpAmount :: Maybe Double- , _rilpCurrencyCode :: Maybe CurrencyCodeValues- } deriving (Eq, Read, Show)---- | 'ReservedInstanceLimitPrice' constructor.------ The fields accessible through corresponding lenses are:------ * 'rilpAmount' @::@ 'Maybe' 'Double'------ * 'rilpCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'----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 FromXML ReservedInstanceLimitPrice where- parseXML x = ReservedInstanceLimitPrice- <$> x .@? "amount"- <*> x .@? "currencyCode"--instance ToQuery ReservedInstanceLimitPrice where- toQuery ReservedInstanceLimitPrice{..} = mconcat- [ "amount" =? _rilpAmount- , "currencyCode" =? _rilpCurrencyCode- ]--data Vpc = Vpc- { _vpcCidrBlock :: Text- , _vpcDhcpOptionsId :: Text- , _vpcInstanceTenancy :: Tenancy- , _vpcIsDefault :: Bool- , _vpcState :: VpcState- , _vpcTags :: List "item" Tag- , _vpcVpcId :: Text- } deriving (Eq, Read, Show)---- | 'Vpc' constructor.------ The fields accessible through corresponding lenses are:------ * 'vpcCidrBlock' @::@ 'Text'------ * 'vpcDhcpOptionsId' @::@ 'Text'------ * 'vpcInstanceTenancy' @::@ 'Tenancy'------ * 'vpcIsDefault' @::@ 'Bool'------ * 'vpcState' @::@ 'VpcState'------ * 'vpcTags' @::@ ['Tag']------ * 'vpcVpcId' @::@ 'Text'----vpc :: Text -- ^ 'vpcVpcId'- -> VpcState -- ^ 'vpcState'- -> Text -- ^ 'vpcCidrBlock'- -> Text -- ^ 'vpcDhcpOptionsId'- -> Tenancy -- ^ 'vpcInstanceTenancy'- -> Bool -- ^ 'vpcIsDefault'- -> Vpc-vpc p1 p2 p3 p4 p5 p6 = Vpc- { _vpcVpcId = p1- , _vpcState = p2- , _vpcCidrBlock = p3- , _vpcDhcpOptionsId = p4- , _vpcInstanceTenancy = p5- , _vpcIsDefault = p6- , _vpcTags = mempty- }---- | The 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 })---- | Indicates whether the VPC is the default VPC.-vpcIsDefault :: Lens' Vpc Bool-vpcIsDefault = lens _vpcIsDefault (\s a -> s { _vpcIsDefault = a })---- | The current state of the VPC.-vpcState :: Lens' Vpc VpcState-vpcState = lens _vpcState (\s a -> s { _vpcState = a })---- | Any tags assigned to the VPC.-vpcTags :: Lens' Vpc [Tag]-vpcTags = lens _vpcTags (\s a -> s { _vpcTags = a }) . _List---- | 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 .@ "cidrBlock"- <*> x .@ "dhcpOptionsId"- <*> x .@ "instanceTenancy"- <*> x .@ "isDefault"- <*> x .@ "state"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "vpcId"--instance ToQuery Vpc where- toQuery Vpc{..} = mconcat- [ "cidrBlock" =? _vpcCidrBlock- , "dhcpOptionsId" =? _vpcDhcpOptionsId- , "instanceTenancy" =? _vpcInstanceTenancy- , "isDefault" =? _vpcIsDefault- , "state" =? _vpcState- , "tagSet" `toQueryList` _vpcTags- , "vpcId" =? _vpcVpcId- ]--data InstanceStatus = InstanceStatus- { _isAvailabilityZone :: Maybe Text- , _isEvents :: List "item" InstanceStatusEvent- , _isInstanceId :: Maybe Text- , _isInstanceState :: Maybe InstanceState- , _isInstanceStatus :: Maybe InstanceStatusSummary- , _isSystemStatus :: Maybe InstanceStatusSummary- } deriving (Eq, Read, Show)---- | 'InstanceStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'isAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'isEvents' @::@ ['InstanceStatusEvent']------ * 'isInstanceId' @::@ 'Maybe' 'Text'------ * 'isInstanceState' @::@ 'Maybe' 'InstanceState'------ * 'isInstanceStatus' @::@ 'Maybe' 'InstanceStatusSummary'------ * 'isSystemStatus' @::@ 'Maybe' 'InstanceStatusSummary'----instanceStatus :: InstanceStatus-instanceStatus = InstanceStatus- { _isInstanceId = Nothing- , _isAvailabilityZone = Nothing- , _isEvents = mempty- , _isInstanceState = Nothing- , _isSystemStatus = Nothing- , _isInstanceStatus = Nothing- }---- | The Availability Zone of the instance.-isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)-isAvailabilityZone =- lens _isAvailabilityZone (\s a -> s { _isAvailabilityZone = a })---- | Extra information regarding events associated with the instance.-isEvents :: Lens' InstanceStatus [InstanceStatusEvent]-isEvents = lens _isEvents (\s a -> s { _isEvents = a }) . _List---- | The ID of the instance.-isInstanceId :: Lens' InstanceStatus (Maybe Text)-isInstanceId = lens _isInstanceId (\s a -> s { _isInstanceId = 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 })---- | 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 })---- | 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 })--instance FromXML InstanceStatus where- parseXML x = InstanceStatus- <$> x .@? "availabilityZone"- <*> x .@? "eventsSet" .!@ mempty- <*> x .@? "instanceId"- <*> x .@? "instanceState"- <*> x .@? "instanceStatus"- <*> x .@? "systemStatus"--instance ToQuery InstanceStatus where- toQuery InstanceStatus{..} = mconcat- [ "availabilityZone" =? _isAvailabilityZone- , "eventsSet" `toQueryList` _isEvents- , "instanceId" =? _isInstanceId- , "instanceState" =? _isInstanceState- , "instanceStatus" =? _isInstanceStatus- , "systemStatus" =? _isSystemStatus- ]--data ArchitectureValues- = I386 -- ^ i386- | X8664 -- ^ x86_64- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ArchitectureValues--instance FromText ArchitectureValues where- parser = takeLowerText >>= \case- "i386" -> pure I386- "x86_64" -> pure X8664- e -> fail $- "Failure parsing ArchitectureValues from " ++ show e--instance ToText ArchitectureValues where- toText = \case- I386 -> "i386"- X8664 -> "x86_64"--instance ToByteString ArchitectureValues-instance ToHeader ArchitectureValues-instance ToQuery ArchitectureValues--instance FromXML ArchitectureValues where- parseXML = parseXMLText "ArchitectureValues"--data ReportInstanceReasonCodes- = 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- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ReportInstanceReasonCodes--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 -> fail $- "Failure parsing ReportInstanceReasonCodes from " ++ show e--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 ToByteString ReportInstanceReasonCodes-instance ToHeader ReportInstanceReasonCodes-instance ToQuery ReportInstanceReasonCodes--instance FromXML ReportInstanceReasonCodes where- parseXML = parseXMLText "ReportInstanceReasonCodes"--data EbsBlockDevice = EbsBlockDevice- { _ebdDeleteOnTermination :: Maybe Bool- , _ebdEncrypted :: Maybe Bool- , _ebdIops :: Maybe Int- , _ebdSnapshotId :: Maybe Text- , _ebdVolumeSize :: Maybe Int- , _ebdVolumeType :: Maybe VolumeType- } deriving (Eq, Read, Show)---- | 'EbsBlockDevice' constructor.------ The fields accessible through corresponding lenses are:------ * 'ebdDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'ebdEncrypted' @::@ 'Maybe' 'Bool'------ * 'ebdIops' @::@ 'Maybe' 'Int'------ * 'ebdSnapshotId' @::@ 'Maybe' 'Text'------ * 'ebdVolumeSize' @::@ 'Maybe' 'Int'------ * 'ebdVolumeType' @::@ 'Maybe' 'VolumeType'----ebsBlockDevice :: EbsBlockDevice-ebsBlockDevice = EbsBlockDevice- { _ebdSnapshotId = Nothing- , _ebdVolumeSize = Nothing- , _ebdDeleteOnTermination = Nothing- , _ebdVolumeType = Nothing- , _ebdIops = Nothing- , _ebdEncrypted = Nothing- }---- | Indicates whether the Amazon EBS volume is deleted on instance termination.-ebdDeleteOnTermination :: Lens' EbsBlockDevice (Maybe Bool)-ebdDeleteOnTermination =- lens _ebdDeleteOnTermination (\s a -> s { _ebdDeleteOnTermination = a })---- | Indicates whether the Amazon 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 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 EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.------ Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to--- 3072 for General Purpose (SSD) volumes.------ Condition: This parameter is required for requests to create 'io1' volumes; it--- is not used in requests to create 'standard' or 'gp2' volumes.-ebdIops :: Lens' EbsBlockDevice (Maybe Int)-ebdIops = lens _ebdIops (\s a -> s { _ebdIops = a })---- | The ID of the snapshot.-ebdSnapshotId :: Lens' EbsBlockDevice (Maybe Text)-ebdSnapshotId = lens _ebdSnapshotId (\s a -> s { _ebdSnapshotId = a })---- | The size of the volume, in GiB.------ Constraints: If the volume type is 'io1', the minimum size of the volume is 10--- GiB; otherwise, the minimum size is 1 GiB. The maximum volume size is 1024--- GiB. 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 volume type. 'gp2' for General Purpose (SSD) volumes, 'io1' for Provisioned--- IOPS (SSD) volumes, and 'standard' for Magnetic volumes.------ Default: 'standard'-ebdVolumeType :: Lens' EbsBlockDevice (Maybe VolumeType)-ebdVolumeType = lens _ebdVolumeType (\s a -> s { _ebdVolumeType = a })--instance FromXML EbsBlockDevice where- parseXML x = EbsBlockDevice- <$> x .@? "deleteOnTermination"- <*> x .@? "encrypted"- <*> x .@? "iops"- <*> x .@? "snapshotId"- <*> x .@? "volumeSize"- <*> x .@? "volumeType"--instance ToQuery EbsBlockDevice where- toQuery EbsBlockDevice{..} = mconcat- [ "deleteOnTermination" =? _ebdDeleteOnTermination- , "encrypted" =? _ebdEncrypted- , "iops" =? _ebdIops- , "snapshotId" =? _ebdSnapshotId- , "volumeSize" =? _ebdVolumeSize- , "volumeType" =? _ebdVolumeType- ]--data AccountAttribute = AccountAttribute- { _aaAttributeName :: Maybe Text- , _aaAttributeValues :: List "item" AccountAttributeValue- } deriving (Eq, Read, Show)---- | 'AccountAttribute' constructor.------ The fields accessible through corresponding lenses are:------ * 'aaAttributeName' @::@ 'Maybe' 'Text'------ * 'aaAttributeValues' @::@ ['AccountAttributeValue']----accountAttribute :: AccountAttribute-accountAttribute = AccountAttribute- { _aaAttributeName = Nothing- , _aaAttributeValues = mempty- }---- | The name of the account attribute.-aaAttributeName :: Lens' AccountAttribute (Maybe Text)-aaAttributeName = lens _aaAttributeName (\s a -> s { _aaAttributeName = a })---- | One or more values for the account attribute.-aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]-aaAttributeValues =- lens _aaAttributeValues (\s a -> s { _aaAttributeValues = a })- . _List--instance FromXML AccountAttribute where- parseXML x = AccountAttribute- <$> x .@? "attributeName"- <*> x .@? "attributeValueSet" .!@ mempty--instance ToQuery AccountAttribute where- toQuery AccountAttribute{..} = mconcat- [ "attributeName" =? _aaAttributeName- , "attributeValueSet" `toQueryList` _aaAttributeValues- ]--data PriceSchedule = PriceSchedule- { _psActive :: Maybe Bool- , _psCurrencyCode :: Maybe CurrencyCodeValues- , _psPrice :: Maybe Double- , _psTerm :: Maybe Integer- } deriving (Eq, Read, Show)---- | 'PriceSchedule' constructor.------ The fields accessible through corresponding lenses are:------ * 'psActive' @::@ 'Maybe' 'Bool'------ * 'psCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'------ * 'psPrice' @::@ 'Maybe' 'Double'------ * 'psTerm' @::@ 'Maybe' 'Integer'----priceSchedule :: PriceSchedule-priceSchedule = PriceSchedule- { _psTerm = Nothing- , _psPrice = Nothing- , _psCurrencyCode = Nothing- , _psActive = Nothing- }---- | 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 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 fixed price for the term.-psPrice :: Lens' PriceSchedule (Maybe Double)-psPrice = lens _psPrice (\s a -> s { _psPrice = 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 })--instance FromXML PriceSchedule where- parseXML x = PriceSchedule- <$> x .@? "active"- <*> x .@? "currencyCode"- <*> x .@? "price"- <*> x .@? "term"--instance ToQuery PriceSchedule where- toQuery PriceSchedule{..} = mconcat- [ "active" =? _psActive- , "currencyCode" =? _psCurrencyCode- , "price" =? _psPrice- , "term" =? _psTerm- ]--data DeviceType- = Ebs -- ^ ebs- | InstanceStore -- ^ instance-store- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable DeviceType--instance FromText DeviceType where- parser = takeLowerText >>= \case- "ebs" -> pure Ebs- "instance-store" -> pure InstanceStore- e -> fail $- "Failure parsing DeviceType from " ++ show e--instance ToText DeviceType where- toText = \case- Ebs -> "ebs"- InstanceStore -> "instance-store"--instance ToByteString DeviceType-instance ToHeader DeviceType-instance ToQuery DeviceType--instance FromXML DeviceType where- parseXML = parseXMLText "DeviceType"--data DomainType- = DTStandard -- ^ standard- | DTVpc -- ^ vpc- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable DomainType--instance FromText DomainType where- parser = takeLowerText >>= \case- "standard" -> pure DTStandard- "vpc" -> pure DTVpc- e -> fail $- "Failure parsing DomainType from " ++ show e--instance ToText DomainType where- toText = \case- DTStandard -> "standard"- DTVpc -> "vpc"--instance ToByteString DomainType-instance ToHeader DomainType-instance ToQuery DomainType--instance FromXML DomainType where- parseXML = parseXMLText "DomainType"--data Region = Region- { _rEndpoint :: Maybe Text- , _rRegionName :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'Region' constructor.------ The fields accessible through corresponding lenses are:------ * 'rEndpoint' @::@ 'Maybe' 'Text'------ * 'rRegionName' @::@ 'Maybe' 'Text'----region :: Region-region = Region- { _rRegionName = Nothing- , _rEndpoint = Nothing- }---- | The region service endpoint.-rEndpoint :: Lens' Region (Maybe Text)-rEndpoint = lens _rEndpoint (\s a -> s { _rEndpoint = a })---- | The name of the region.-rRegionName :: Lens' Region (Maybe Text)-rRegionName = lens _rRegionName (\s a -> s { _rRegionName = a })--instance FromXML Region where- parseXML x = Region- <$> x .@? "regionEndpoint"- <*> x .@? "regionName"--instance ToQuery Region where- toQuery Region{..} = mconcat- [ "regionEndpoint" =? _rEndpoint- , "regionName" =? _rRegionName- ]--newtype PropagatingVgw = PropagatingVgw- { _pvGatewayId :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)---- | 'PropagatingVgw' constructor.------ The fields accessible through corresponding lenses are:------ * 'pvGatewayId' @::@ 'Maybe' 'Text'----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 ToQuery PropagatingVgw where- toQuery PropagatingVgw{..} = mconcat- [ "gatewayId" =? _pvGatewayId- ]--data OfferingTypeValues- = AllUpfront -- ^ All Upfront- | HeavyUtilization -- ^ Heavy Utilization- | LightUtilization -- ^ Light Utilization- | MediumUtilization -- ^ Medium Utilization- | NoUpfront -- ^ No Upfront- | PartialUpfront -- ^ Partial Upfront- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable OfferingTypeValues--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 -> fail $- "Failure parsing OfferingTypeValues from " ++ show e--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 ToByteString OfferingTypeValues-instance ToHeader OfferingTypeValues-instance ToQuery OfferingTypeValues--instance FromXML OfferingTypeValues where- parseXML = parseXMLText "OfferingTypeValues"--data VpnGateway = VpnGateway- { _vgAvailabilityZone :: Maybe Text- , _vgState :: Maybe VpnState- , _vgTags :: List "item" Tag- , _vgType :: Maybe GatewayType- , _vgVpcAttachments :: List "item" VpcAttachment- , _vgVpnGatewayId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VpnGateway' constructor.------ The fields accessible through corresponding lenses are:------ * 'vgAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'vgState' @::@ 'Maybe' 'VpnState'------ * 'vgTags' @::@ ['Tag']------ * 'vgType' @::@ 'Maybe' 'GatewayType'------ * 'vgVpcAttachments' @::@ ['VpcAttachment']------ * 'vgVpnGatewayId' @::@ 'Maybe' 'Text'----vpnGateway :: VpnGateway-vpnGateway = VpnGateway- { _vgVpnGatewayId = Nothing- , _vgState = Nothing- , _vgType = Nothing- , _vgAvailabilityZone = Nothing- , _vgVpcAttachments = mempty- , _vgTags = mempty- }---- | The Availability Zone where the virtual private gateway was created.-vgAvailabilityZone :: Lens' VpnGateway (Maybe Text)-vgAvailabilityZone =- lens _vgAvailabilityZone (\s a -> s { _vgAvailabilityZone = a })---- | The current state of the virtual private gateway.-vgState :: Lens' VpnGateway (Maybe VpnState)-vgState = lens _vgState (\s a -> s { _vgState = a })---- | Any tags assigned to the virtual private gateway.-vgTags :: Lens' VpnGateway [Tag]-vgTags = lens _vgTags (\s a -> s { _vgTags = a }) . _List---- | The type of VPN connection the virtual private gateway supports.-vgType :: Lens' VpnGateway (Maybe GatewayType)-vgType = lens _vgType (\s a -> s { _vgType = a })---- | Any VPCs attached to the virtual private gateway.-vgVpcAttachments :: Lens' VpnGateway [VpcAttachment]-vgVpcAttachments = lens _vgVpcAttachments (\s a -> s { _vgVpcAttachments = a }) . _List---- | The ID of the virtual private gateway.-vgVpnGatewayId :: Lens' VpnGateway (Maybe Text)-vgVpnGatewayId = lens _vgVpnGatewayId (\s a -> s { _vgVpnGatewayId = a })--instance FromXML VpnGateway where- parseXML x = VpnGateway- <$> x .@? "availabilityZone"- <*> x .@? "state"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "type"- <*> x .@? "attachments" .!@ mempty- <*> x .@? "vpnGatewayId"--instance ToQuery VpnGateway where- toQuery VpnGateway{..} = mconcat- [ "availabilityZone" =? _vgAvailabilityZone- , "state" =? _vgState- , "tagSet" `toQueryList` _vgTags- , "type" =? _vgType- , "attachments" `toQueryList` _vgVpcAttachments- , "vpnGatewayId" =? _vgVpnGatewayId- ]--data Filter = Filter- { _fName :: Text- , _fValues :: List "item" Text- } deriving (Eq, Ord, Read, Show)---- | 'Filter' constructor.------ The fields accessible through corresponding lenses are:------ * 'fName' @::@ 'Text'------ * 'fValues' @::@ ['Text']----filter' :: Text -- ^ 'fName'- -> Filter-filter' p1 = Filter- { _fName = p1- , _fValues = mempty- }---- | The name of the filter. Filter names are case-sensitive.-fName :: Lens' Filter Text-fName = lens _fName (\s a -> s { _fName = a })---- | One or more filter values. Filter values are case-sensitive.-fValues :: Lens' Filter [Text]-fValues = lens _fValues (\s a -> s { _fValues = a }) . _List--instance FromXML Filter where- parseXML x = Filter- <$> x .@ "Name"- <*> x .@? "Value" .!@ mempty--instance ToQuery Filter where- toQuery Filter{..} = mconcat- [ "Name" =? _fName- , "Value" `toQueryList` _fValues- ]--data VolumeType- = Gp2 -- ^ gp2- | Io1 -- ^ io1- | Standard -- ^ standard- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VolumeType--instance FromText VolumeType where- parser = takeLowerText >>= \case- "gp2" -> pure Gp2- "io1" -> pure Io1- "standard" -> pure Standard- e -> fail $- "Failure parsing VolumeType from " ++ show e--instance ToText VolumeType where- toText = \case- Gp2 -> "gp2"- Io1 -> "io1"- Standard -> "standard"--instance ToByteString VolumeType-instance ToHeader VolumeType-instance ToQuery VolumeType--instance FromXML VolumeType where- parseXML = parseXMLText "VolumeType"--data InstanceStateChange = InstanceStateChange- { _iscCurrentState :: Maybe InstanceState- , _iscInstanceId :: Maybe Text- , _iscPreviousState :: Maybe InstanceState- } deriving (Eq, Read, Show)---- | 'InstanceStateChange' constructor.------ The fields accessible through corresponding lenses are:------ * 'iscCurrentState' @::@ 'Maybe' 'InstanceState'------ * 'iscInstanceId' @::@ 'Maybe' 'Text'------ * 'iscPreviousState' @::@ 'Maybe' 'InstanceState'----instanceStateChange :: InstanceStateChange-instanceStateChange = InstanceStateChange- { _iscInstanceId = Nothing- , _iscCurrentState = Nothing- , _iscPreviousState = Nothing- }---- | The current state of the instance.-iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)-iscCurrentState = lens _iscCurrentState (\s a -> s { _iscCurrentState = a })---- | The ID of the instance.-iscInstanceId :: Lens' InstanceStateChange (Maybe Text)-iscInstanceId = lens _iscInstanceId (\s a -> s { _iscInstanceId = 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 .@? "currentState"- <*> x .@? "instanceId"- <*> x .@? "previousState"--instance ToQuery InstanceStateChange where- toQuery InstanceStateChange{..} = mconcat- [ "currentState" =? _iscCurrentState- , "instanceId" =? _iscInstanceId- , "previousState" =? _iscPreviousState- ]--data NetworkAcl = NetworkAcl- { _naAssociations :: List "item" NetworkAclAssociation- , _naEntries :: List "item" NetworkAclEntry- , _naIsDefault :: Maybe Bool- , _naNetworkAclId :: Maybe Text- , _naTags :: List "item" Tag- , _naVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'NetworkAcl' constructor.------ The fields accessible through corresponding lenses are:------ * 'naAssociations' @::@ ['NetworkAclAssociation']------ * 'naEntries' @::@ ['NetworkAclEntry']------ * 'naIsDefault' @::@ 'Maybe' 'Bool'------ * 'naNetworkAclId' @::@ 'Maybe' 'Text'------ * 'naTags' @::@ ['Tag']------ * 'naVpcId' @::@ 'Maybe' 'Text'----networkAcl :: NetworkAcl-networkAcl = NetworkAcl- { _naNetworkAclId = Nothing- , _naVpcId = Nothing- , _naIsDefault = Nothing- , _naEntries = mempty- , _naAssociations = mempty- , _naTags = mempty- }---- | Any associations between the network ACL and one or more subnets-naAssociations :: Lens' NetworkAcl [NetworkAclAssociation]-naAssociations = lens _naAssociations (\s a -> s { _naAssociations = a }) . _List---- | One or more entries (rules) in the network ACL.-naEntries :: Lens' NetworkAcl [NetworkAclEntry]-naEntries = lens _naEntries (\s a -> s { _naEntries = a }) . _List---- | Indicates whether this is the default network ACL for the VPC.-naIsDefault :: Lens' NetworkAcl (Maybe Bool)-naIsDefault = lens _naIsDefault (\s a -> s { _naIsDefault = a })---- | The ID of the network ACL.-naNetworkAclId :: Lens' NetworkAcl (Maybe Text)-naNetworkAclId = lens _naNetworkAclId (\s a -> s { _naNetworkAclId = a })---- | Any tags assigned to the network ACL.-naTags :: Lens' NetworkAcl [Tag]-naTags = lens _naTags (\s a -> s { _naTags = a }) . _List---- | The ID of the VPC for the network ACL.-naVpcId :: Lens' NetworkAcl (Maybe Text)-naVpcId = lens _naVpcId (\s a -> s { _naVpcId = a })--instance FromXML NetworkAcl where- parseXML x = NetworkAcl- <$> x .@? "associationSet" .!@ mempty- <*> x .@? "entrySet" .!@ mempty- <*> x .@? "default"- <*> x .@? "networkAclId"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcId"--instance ToQuery NetworkAcl where- toQuery NetworkAcl{..} = mconcat- [ "associationSet" `toQueryList` _naAssociations- , "entrySet" `toQueryList` _naEntries- , "default" =? _naIsDefault- , "networkAclId" =? _naNetworkAclId- , "tagSet" `toQueryList` _naTags- , "vpcId" =? _naVpcId- ]--data ImageState- = ISAvailable -- ^ available- | ISDeregistered -- ^ deregistered- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ImageState--instance FromText ImageState where- parser = takeLowerText >>= \case- "available" -> pure ISAvailable- "deregistered" -> pure ISDeregistered- e -> fail $- "Failure parsing ImageState from " ++ show e--instance ToText ImageState where- toText = \case- ISAvailable -> "available"- ISDeregistered -> "deregistered"--instance ToByteString ImageState-instance ToHeader ImageState-instance ToQuery ImageState--instance FromXML ImageState where- parseXML = parseXMLText "ImageState"--data GatewayType- = Ipsec1 -- ^ ipsec.1- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable GatewayType--instance FromText GatewayType where- parser = takeLowerText >>= \case- "ipsec.1" -> pure Ipsec1- e -> fail $- "Failure parsing GatewayType from " ++ show e--instance ToText GatewayType where- toText Ipsec1 = "ipsec.1"--instance ToByteString GatewayType-instance ToHeader GatewayType-instance ToQuery GatewayType--instance FromXML GatewayType where- parseXML = parseXMLText "GatewayType"--data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment- { _iniaAttachTime :: Maybe ISO8601- , _iniaAttachmentId :: Maybe Text- , _iniaDeleteOnTermination :: Maybe Bool- , _iniaDeviceIndex :: Maybe Int- , _iniaStatus :: Maybe AttachmentStatus- } deriving (Eq, Read, Show)---- | 'InstanceNetworkInterfaceAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'iniaAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'iniaAttachmentId' @::@ 'Maybe' 'Text'------ * 'iniaDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'iniaDeviceIndex' @::@ 'Maybe' 'Int'------ * 'iniaStatus' @::@ 'Maybe' 'AttachmentStatus'----instanceNetworkInterfaceAttachment :: InstanceNetworkInterfaceAttachment-instanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment- { _iniaAttachmentId = Nothing- , _iniaDeviceIndex = Nothing- , _iniaStatus = Nothing- , _iniaAttachTime = Nothing- , _iniaDeleteOnTermination = Nothing- }---- | The time stamp when the attachment initiated.-iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)-iniaAttachTime = lens _iniaAttachTime (\s a -> s { _iniaAttachTime = a }) . mapping _Time---- | The ID of the network interface attachment.-iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)-iniaAttachmentId = lens _iniaAttachmentId (\s a -> s { _iniaAttachmentId = 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 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 })---- | The attachment state.-iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)-iniaStatus = lens _iniaStatus (\s a -> s { _iniaStatus = a })--instance FromXML InstanceNetworkInterfaceAttachment where- parseXML x = InstanceNetworkInterfaceAttachment- <$> x .@? "attachTime"- <*> x .@? "attachmentId"- <*> x .@? "deleteOnTermination"- <*> x .@? "deviceIndex"- <*> x .@? "status"--instance ToQuery InstanceNetworkInterfaceAttachment where- toQuery InstanceNetworkInterfaceAttachment{..} = mconcat- [ "attachTime" =? _iniaAttachTime- , "attachmentId" =? _iniaAttachmentId- , "deleteOnTermination" =? _iniaDeleteOnTermination- , "deviceIndex" =? _iniaDeviceIndex- , "status" =? _iniaStatus- ]--newtype AttributeBooleanValue = AttributeBooleanValue- { _abvValue :: Maybe Bool- } deriving (Eq, Ord, Read, Show)---- | 'AttributeBooleanValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'abvValue' @::@ 'Maybe' 'Bool'----attributeBooleanValue :: AttributeBooleanValue-attributeBooleanValue = AttributeBooleanValue- { _abvValue = Nothing- }---- | 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 ToQuery AttributeBooleanValue where- toQuery AttributeBooleanValue{..} = mconcat- [ "value" =? _abvValue- ]--data RecurringCharge = RecurringCharge- { _rcAmount :: Maybe Double- , _rcFrequency :: Maybe RecurringChargeFrequency- } deriving (Eq, Read, Show)---- | 'RecurringCharge' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcAmount' @::@ 'Maybe' 'Double'------ * 'rcFrequency' @::@ 'Maybe' 'RecurringChargeFrequency'----recurringCharge :: RecurringCharge-recurringCharge = RecurringCharge- { _rcFrequency = Nothing- , _rcAmount = 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 ToQuery RecurringCharge where- toQuery RecurringCharge{..} = mconcat- [ "amount" =? _rcAmount- , "frequency" =? _rcFrequency- ]--data NewDhcpConfiguration = NewDhcpConfiguration- { _ndcKey :: Maybe Text- , _ndcValues :: List "item" Text- } deriving (Eq, Ord, Read, Show)---- | 'NewDhcpConfiguration' constructor.------ The fields accessible through corresponding lenses are:------ * 'ndcKey' @::@ 'Maybe' 'Text'------ * 'ndcValues' @::@ ['Text']----newDhcpConfiguration :: NewDhcpConfiguration-newDhcpConfiguration = NewDhcpConfiguration- { _ndcKey = Nothing- , _ndcValues = mempty- }--ndcKey :: Lens' NewDhcpConfiguration (Maybe Text)-ndcKey = lens _ndcKey (\s a -> s { _ndcKey = a })--ndcValues :: Lens' NewDhcpConfiguration [Text]-ndcValues = lens _ndcValues (\s a -> s { _ndcValues = a }) . _List--instance FromXML NewDhcpConfiguration where- parseXML x = NewDhcpConfiguration- <$> x .@? "key"- <*> x .@? "Value" .!@ mempty--instance ToQuery NewDhcpConfiguration where- toQuery NewDhcpConfiguration{..} = mconcat- [ "key" =? _ndcKey- , "Value" `toQueryList` _ndcValues- ]--data StateReason = StateReason- { _srCode :: Maybe Text- , _srMessage :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'StateReason' constructor.------ The fields accessible through corresponding lenses are:------ * 'srCode' @::@ 'Maybe' 'Text'------ * 'srMessage' @::@ 'Maybe' 'Text'----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 volume limit was exceeded.------ '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 ToQuery StateReason where- toQuery StateReason{..} = mconcat- [ "code" =? _srCode- , "message" =? _srMessage- ]--data MonitoringState- = MSDisabled -- ^ disabled- | MSEnabled -- ^ enabled- | MSPending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable MonitoringState--instance FromText MonitoringState where- parser = takeLowerText >>= \case- "disabled" -> pure MSDisabled- "enabled" -> pure MSEnabled- "pending" -> pure MSPending- e -> fail $- "Failure parsing MonitoringState from " ++ show e--instance ToText MonitoringState where- toText = \case- MSDisabled -> "disabled"- MSEnabled -> "enabled"- MSPending -> "pending"--instance ToByteString MonitoringState-instance ToHeader MonitoringState-instance ToQuery MonitoringState--instance FromXML MonitoringState where- parseXML = parseXMLText "MonitoringState"--newtype ReservedInstancesId = ReservedInstancesId- { _riiReservedInstancesId :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)---- | 'ReservedInstancesId' constructor.------ The fields accessible through corresponding lenses are:------ * 'riiReservedInstancesId' @::@ 'Maybe' 'Text'----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 ToQuery ReservedInstancesId where- toQuery ReservedInstancesId{..} = mconcat- [ "reservedInstancesId" =? _riiReservedInstancesId- ]--data StatusName- = Reachability -- ^ reachability- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable StatusName--instance FromText StatusName where- parser = takeLowerText >>= \case- "reachability" -> pure Reachability- e -> fail $- "Failure parsing StatusName from " ++ show e--instance ToText StatusName where- toText Reachability = "reachability"--instance ToByteString StatusName-instance ToHeader StatusName-instance ToQuery StatusName--instance FromXML StatusName where- parseXML = parseXMLText "StatusName"--data InternetGateway = InternetGateway- { _igAttachments :: List "item" InternetGatewayAttachment- , _igInternetGatewayId :: Text- , _igTags :: List "item" Tag- } deriving (Eq, Read, Show)---- | 'InternetGateway' constructor.------ The fields accessible through corresponding lenses are:------ * 'igAttachments' @::@ ['InternetGatewayAttachment']------ * 'igInternetGatewayId' @::@ 'Text'------ * 'igTags' @::@ ['Tag']----internetGateway :: Text -- ^ 'igInternetGatewayId'- -> InternetGateway-internetGateway p1 = InternetGateway- { _igInternetGatewayId = p1- , _igAttachments = mempty- , _igTags = mempty- }---- | Any VPCs attached to the Internet gateway.-igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]-igAttachments = lens _igAttachments (\s a -> s { _igAttachments = a }) . _List---- | The ID of the Internet gateway.-igInternetGatewayId :: Lens' InternetGateway Text-igInternetGatewayId =- lens _igInternetGatewayId (\s a -> s { _igInternetGatewayId = a })---- | Any tags assigned to the Internet gateway.-igTags :: Lens' InternetGateway [Tag]-igTags = lens _igTags (\s a -> s { _igTags = a }) . _List--instance FromXML InternetGateway where- parseXML x = InternetGateway- <$> x .@? "attachmentSet" .!@ mempty- <*> x .@ "internetGatewayId"- <*> x .@? "tagSet" .!@ mempty--instance ToQuery InternetGateway where- toQuery InternetGateway{..} = mconcat- [ "attachmentSet" `toQueryList` _igAttachments- , "internetGatewayId" =? _igInternetGatewayId- , "tagSet" `toQueryList` _igTags- ]--data VolumeStatusName- = IoEnabled -- ^ io-enabled- | IoPerformance -- ^ io-performance- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VolumeStatusName--instance FromText VolumeStatusName where- parser = takeLowerText >>= \case- "io-enabled" -> pure IoEnabled- "io-performance" -> pure IoPerformance- e -> fail $- "Failure parsing VolumeStatusName from " ++ show e--instance ToText VolumeStatusName where- toText = \case- IoEnabled -> "io-enabled"- IoPerformance -> "io-performance"--instance ToByteString VolumeStatusName-instance ToHeader VolumeStatusName-instance ToQuery VolumeStatusName--instance FromXML VolumeStatusName where- parseXML = parseXMLText "VolumeStatusName"--data VolumeAttributeName- = AutoEnableIO -- ^ autoEnableIO- | ProductCodes -- ^ productCodes- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VolumeAttributeName--instance FromText VolumeAttributeName where- parser = takeLowerText >>= \case- "autoenableio" -> pure AutoEnableIO- "productcodes" -> pure ProductCodes- e -> fail $- "Failure parsing VolumeAttributeName from " ++ show e--instance ToText VolumeAttributeName where- toText = \case- AutoEnableIO -> "autoEnableIO"- ProductCodes -> "productCodes"--instance ToByteString VolumeAttributeName-instance ToHeader VolumeAttributeName-instance ToQuery VolumeAttributeName--instance FromXML VolumeAttributeName where- parseXML = parseXMLText "VolumeAttributeName"--data ImportInstanceTaskDetails = ImportInstanceTaskDetails- { _iitdDescription :: Maybe Text- , _iitdInstanceId :: Maybe Text- , _iitdPlatform :: Maybe PlatformValues- , _iitdVolumes :: List "item" ImportInstanceVolumeDetailItem- } deriving (Eq, Read, Show)---- | 'ImportInstanceTaskDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'iitdDescription' @::@ 'Maybe' 'Text'------ * 'iitdInstanceId' @::@ 'Maybe' 'Text'------ * 'iitdPlatform' @::@ 'Maybe' 'PlatformValues'------ * 'iitdVolumes' @::@ ['ImportInstanceVolumeDetailItem']----importInstanceTaskDetails :: ImportInstanceTaskDetails-importInstanceTaskDetails = ImportInstanceTaskDetails- { _iitdVolumes = mempty- , _iitdInstanceId = Nothing- , _iitdPlatform = Nothing- , _iitdDescription = Nothing- }--iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)-iitdDescription = lens _iitdDescription (\s a -> s { _iitdDescription = a })--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 })--iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]-iitdVolumes = lens _iitdVolumes (\s a -> s { _iitdVolumes = a }) . _List--instance FromXML ImportInstanceTaskDetails where- parseXML x = ImportInstanceTaskDetails- <$> x .@? "description"- <*> x .@? "instanceId"- <*> x .@? "platform"- <*> x .@? "volumes" .!@ mempty--instance ToQuery ImportInstanceTaskDetails where- toQuery ImportInstanceTaskDetails{..} = mconcat- [ "description" =? _iitdDescription- , "instanceId" =? _iitdInstanceId- , "platform" =? _iitdPlatform- , "volumes" `toQueryList` _iitdVolumes- ]--data PlacementGroup = PlacementGroup- { _pgGroupName :: Maybe Text- , _pgState :: Maybe PlacementGroupState- , _pgStrategy :: Maybe PlacementStrategy- } deriving (Eq, Read, Show)---- | 'PlacementGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'pgGroupName' @::@ 'Maybe' 'Text'------ * 'pgState' @::@ 'Maybe' 'PlacementGroupState'------ * 'pgStrategy' @::@ 'Maybe' 'PlacementStrategy'----placementGroup :: PlacementGroup-placementGroup = PlacementGroup- { _pgGroupName = Nothing- , _pgStrategy = Nothing- , _pgState = Nothing- }---- | The name of the placement group.-pgGroupName :: Lens' PlacementGroup (Maybe Text)-pgGroupName = lens _pgGroupName (\s a -> s { _pgGroupName = a })---- | 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 })--instance FromXML PlacementGroup where- parseXML x = PlacementGroup- <$> x .@? "groupName"- <*> x .@? "state"- <*> x .@? "strategy"--instance ToQuery PlacementGroup where- toQuery PlacementGroup{..} = mconcat- [ "groupName" =? _pgGroupName- , "state" =? _pgState- , "strategy" =? _pgStrategy- ]--data ProductCode = ProductCode- { _pcProductCodeId :: Maybe Text- , _pcProductCodeType :: Maybe ProductCodeValues- } deriving (Eq, Read, Show)---- | 'ProductCode' constructor.------ The fields accessible through corresponding lenses are:------ * 'pcProductCodeId' @::@ 'Maybe' 'Text'------ * 'pcProductCodeType' @::@ 'Maybe' 'ProductCodeValues'----productCode :: ProductCode-productCode = ProductCode- { _pcProductCodeId = Nothing- , _pcProductCodeType = Nothing- }---- | The product code.-pcProductCodeId :: Lens' ProductCode (Maybe Text)-pcProductCodeId = lens _pcProductCodeId (\s a -> s { _pcProductCodeId = a })---- | The type of product code.-pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)-pcProductCodeType =- lens _pcProductCodeType (\s a -> s { _pcProductCodeType = a })--instance FromXML ProductCode where- parseXML x = ProductCode- <$> x .@? "productCode"- <*> x .@? "type"--instance ToQuery ProductCode where- toQuery ProductCode{..} = mconcat- [ "productCode" =? _pcProductCodeId- , "type" =? _pcProductCodeType- ]--data ListingStatus- = ListingStatusActive -- ^ active- | ListingStatusCancelled -- ^ cancelled- | ListingStatusClosed -- ^ closed- | ListingStatusPending -- ^ pending- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ListingStatus--instance FromText ListingStatus where- parser = takeLowerText >>= \case- "active" -> pure ListingStatusActive- "cancelled" -> pure ListingStatusCancelled- "closed" -> pure ListingStatusClosed- "pending" -> pure ListingStatusPending- e -> fail $- "Failure parsing ListingStatus from " ++ show e--instance ToText ListingStatus where- toText = \case- ListingStatusActive -> "active"- ListingStatusCancelled -> "cancelled"- ListingStatusClosed -> "closed"- ListingStatusPending -> "pending"--instance ToByteString ListingStatus-instance ToHeader ListingStatus-instance ToQuery ListingStatus--instance FromXML ListingStatus where- parseXML = parseXMLText "ListingStatus"--newtype IpRange = IpRange- { _irCidrIp :: Text- } deriving (Eq, Ord, Read, Show, Monoid, IsString)---- | 'IpRange' constructor.------ The fields accessible through corresponding lenses are:------ * 'irCidrIp' @::@ 'Text'----ipRange :: Text -- ^ 'irCidrIp'- -> IpRange-ipRange p1 = IpRange- { _irCidrIp = p1- }---- | The CIDR range. You can either specify a CIDR range or a source security--- group, not both.-irCidrIp :: Lens' IpRange Text-irCidrIp = lens _irCidrIp (\s a -> s { _irCidrIp = a })--instance FromXML IpRange where- parseXML x = IpRange- <$> x .@ "cidrIp"--instance ToQuery IpRange where- toQuery IpRange{..} = mconcat- [ "cidrIp" =? _irCidrIp- ]--data VolumeStatusInfoStatus- = VSISImpaired -- ^ impaired- | VSISInsufficientData -- ^ insufficient-data- | VSISOk -- ^ ok- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable VolumeStatusInfoStatus--instance FromText VolumeStatusInfoStatus where- parser = takeLowerText >>= \case- "impaired" -> pure VSISImpaired- "insufficient-data" -> pure VSISInsufficientData- "ok" -> pure VSISOk- e -> fail $- "Failure parsing VolumeStatusInfoStatus from " ++ show e--instance ToText VolumeStatusInfoStatus where- toText = \case- VSISImpaired -> "impaired"- VSISInsufficientData -> "insufficient-data"- VSISOk -> "ok"--instance ToByteString VolumeStatusInfoStatus-instance ToHeader VolumeStatusInfoStatus-instance ToQuery VolumeStatusInfoStatus--instance FromXML VolumeStatusInfoStatus where- parseXML = parseXMLText "VolumeStatusInfoStatus"--newtype AccountAttributeValue = AccountAttributeValue- { _aavAttributeValue :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)---- | 'AccountAttributeValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'aavAttributeValue' @::@ 'Maybe' 'Text'----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 ToQuery AccountAttributeValue where- toQuery AccountAttributeValue{..} = mconcat- [ "attributeValue" =? _aavAttributeValue- ]--data RIProductDescription- = RIPDLinuxUNIX -- ^ Linux/UNIX- | RIPDLinuxUNIXAmazonVPC -- ^ Linux/UNIX (Amazon VPC)- | RIPDWindows -- ^ Windows- | RIPDWindowsAmazonVPC -- ^ Windows (Amazon VPC)- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable RIProductDescription--instance FromText RIProductDescription where- parser = takeLowerText >>= \case- "linux/unix" -> pure RIPDLinuxUNIX- "linux/unix (amazon vpc)" -> pure RIPDLinuxUNIXAmazonVPC- "windows" -> pure RIPDWindows- "windows (amazon vpc)" -> pure RIPDWindowsAmazonVPC- e -> fail $- "Failure parsing RIProductDescription from " ++ show e--instance ToText RIProductDescription where- toText = \case- RIPDLinuxUNIX -> "Linux/UNIX"- RIPDLinuxUNIXAmazonVPC -> "Linux/UNIX (Amazon VPC)"- RIPDWindows -> "Windows"- RIPDWindowsAmazonVPC -> "Windows (Amazon VPC)"--instance ToByteString RIProductDescription-instance ToHeader RIProductDescription-instance ToQuery RIProductDescription--instance FromXML RIProductDescription where- parseXML = parseXMLText "RIProductDescription"--data ReservedInstancesOffering = ReservedInstancesOffering- { _rioAvailabilityZone :: Maybe Text- , _rioCurrencyCode :: Maybe CurrencyCodeValues- , _rioDuration :: Maybe Integer- , _rioFixedPrice :: Maybe Double- , _rioInstanceTenancy :: Maybe Tenancy- , _rioInstanceType :: Maybe InstanceType- , _rioMarketplace :: Maybe Bool- , _rioOfferingType :: Maybe OfferingTypeValues- , _rioPricingDetails :: List "item" PricingDetail- , _rioProductDescription :: Maybe RIProductDescription- , _rioRecurringCharges :: List "item" RecurringCharge- , _rioReservedInstancesOfferingId :: Maybe Text- , _rioUsagePrice :: Maybe Double- } deriving (Eq, Read, Show)---- | 'ReservedInstancesOffering' constructor.------ The fields accessible through corresponding lenses are:------ * 'rioAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'rioCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'------ * 'rioDuration' @::@ 'Maybe' 'Integer'------ * 'rioFixedPrice' @::@ 'Maybe' 'Double'------ * 'rioInstanceTenancy' @::@ 'Maybe' 'Tenancy'------ * 'rioInstanceType' @::@ 'Maybe' 'InstanceType'------ * 'rioMarketplace' @::@ 'Maybe' 'Bool'------ * 'rioOfferingType' @::@ 'Maybe' 'OfferingTypeValues'------ * 'rioPricingDetails' @::@ ['PricingDetail']------ * 'rioProductDescription' @::@ 'Maybe' 'RIProductDescription'------ * 'rioRecurringCharges' @::@ ['RecurringCharge']------ * 'rioReservedInstancesOfferingId' @::@ 'Maybe' 'Text'------ * 'rioUsagePrice' @::@ 'Maybe' 'Double'----reservedInstancesOffering :: ReservedInstancesOffering-reservedInstancesOffering = ReservedInstancesOffering- { _rioReservedInstancesOfferingId = Nothing- , _rioInstanceType = Nothing- , _rioAvailabilityZone = Nothing- , _rioDuration = Nothing- , _rioUsagePrice = Nothing- , _rioFixedPrice = Nothing- , _rioProductDescription = Nothing- , _rioInstanceTenancy = Nothing- , _rioCurrencyCode = Nothing- , _rioOfferingType = Nothing- , _rioRecurringCharges = mempty- , _rioMarketplace = Nothing- , _rioPricingDetails = mempty- }---- | 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 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 duration of the Reserved Instance, in seconds.-rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)-rioDuration = lens _rioDuration (\s a -> s { _rioDuration = 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 reserved instance.-rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)-rioInstanceTenancy =- lens _rioInstanceTenancy (\s a -> s { _rioInstanceTenancy = 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 })---- | 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 Reserved Instance offering type.-rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)-rioOfferingType = lens _rioOfferingType (\s a -> s { _rioOfferingType = a })---- | The pricing details of the Reserved Instance offering.-rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]-rioPricingDetails =- lens _rioPricingDetails (\s a -> s { _rioPricingDetails = a })- . _List---- | The Reserved Instance description.-rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)-rioProductDescription =- lens _rioProductDescription (\s a -> s { _rioProductDescription = a })---- | The recurring charge tag assigned to the resource.-rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]-rioRecurringCharges =- lens _rioRecurringCharges (\s a -> s { _rioRecurringCharges = a })- . _List---- | The ID of the Reserved Instance offering.-rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)-rioReservedInstancesOfferingId =- lens _rioReservedInstancesOfferingId- (\s a -> s { _rioReservedInstancesOfferingId = a })---- | The usage price of the Reserved Instance, per hour.-rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)-rioUsagePrice = lens _rioUsagePrice (\s a -> s { _rioUsagePrice = a })--instance FromXML ReservedInstancesOffering where- parseXML x = ReservedInstancesOffering- <$> x .@? "availabilityZone"- <*> x .@? "currencyCode"- <*> x .@? "duration"- <*> x .@? "fixedPrice"- <*> x .@? "instanceTenancy"- <*> x .@? "instanceType"- <*> x .@? "marketplace"- <*> x .@? "offeringType"- <*> x .@? "pricingDetailsSet" .!@ mempty- <*> x .@? "productDescription"- <*> x .@? "recurringCharges" .!@ mempty- <*> x .@? "reservedInstancesOfferingId"- <*> x .@? "usagePrice"--instance ToQuery ReservedInstancesOffering where- toQuery ReservedInstancesOffering{..} = mconcat- [ "availabilityZone" =? _rioAvailabilityZone- , "currencyCode" =? _rioCurrencyCode- , "duration" =? _rioDuration- , "fixedPrice" =? _rioFixedPrice- , "instanceTenancy" =? _rioInstanceTenancy- , "instanceType" =? _rioInstanceType- , "marketplace" =? _rioMarketplace- , "offeringType" =? _rioOfferingType- , "pricingDetailsSet" `toQueryList` _rioPricingDetails- , "productDescription" =? _rioProductDescription- , "recurringCharges" `toQueryList` _rioRecurringCharges- , "reservedInstancesOfferingId" =? _rioReservedInstancesOfferingId- , "usagePrice" =? _rioUsagePrice- ]--data ReservedInstances = ReservedInstances- { _ri1AvailabilityZone :: Maybe Text- , _ri1CurrencyCode :: Maybe CurrencyCodeValues- , _ri1Duration :: Maybe Integer- , _ri1End :: Maybe ISO8601- , _ri1FixedPrice :: Maybe Double- , _ri1InstanceCount :: Maybe Int- , _ri1InstanceTenancy :: Maybe Tenancy- , _ri1InstanceType :: Maybe InstanceType- , _ri1OfferingType :: Maybe OfferingTypeValues- , _ri1ProductDescription :: Maybe RIProductDescription- , _ri1RecurringCharges :: List "item" RecurringCharge- , _ri1ReservedInstancesId :: Maybe Text- , _ri1Start :: Maybe ISO8601- , _ri1State :: Maybe ReservedInstanceState- , _ri1Tags :: List "item" Tag- , _ri1UsagePrice :: Maybe Double- } deriving (Eq, Read, Show)---- | 'ReservedInstances' constructor.------ The fields accessible through corresponding lenses are:------ * 'ri1AvailabilityZone' @::@ 'Maybe' 'Text'------ * 'ri1CurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'------ * 'ri1Duration' @::@ 'Maybe' 'Integer'------ * 'ri1End' @::@ 'Maybe' 'UTCTime'------ * 'ri1FixedPrice' @::@ 'Maybe' 'Double'------ * 'ri1InstanceCount' @::@ 'Maybe' 'Int'------ * 'ri1InstanceTenancy' @::@ 'Maybe' 'Tenancy'------ * 'ri1InstanceType' @::@ 'Maybe' 'InstanceType'------ * 'ri1OfferingType' @::@ 'Maybe' 'OfferingTypeValues'------ * 'ri1ProductDescription' @::@ 'Maybe' 'RIProductDescription'------ * 'ri1RecurringCharges' @::@ ['RecurringCharge']------ * 'ri1ReservedInstancesId' @::@ 'Maybe' 'Text'------ * 'ri1Start' @::@ 'Maybe' 'UTCTime'------ * 'ri1State' @::@ 'Maybe' 'ReservedInstanceState'------ * 'ri1Tags' @::@ ['Tag']------ * 'ri1UsagePrice' @::@ 'Maybe' 'Double'----reservedInstances :: ReservedInstances-reservedInstances = ReservedInstances- { _ri1ReservedInstancesId = Nothing- , _ri1InstanceType = Nothing- , _ri1AvailabilityZone = Nothing- , _ri1Start = Nothing- , _ri1End = Nothing- , _ri1Duration = Nothing- , _ri1UsagePrice = Nothing- , _ri1FixedPrice = Nothing- , _ri1InstanceCount = Nothing- , _ri1ProductDescription = Nothing- , _ri1State = Nothing- , _ri1Tags = mempty- , _ri1InstanceTenancy = Nothing- , _ri1CurrencyCode = Nothing- , _ri1OfferingType = Nothing- , _ri1RecurringCharges = mempty- }---- | The Availability Zone in which the Reserved Instance can be used.-ri1AvailabilityZone :: Lens' ReservedInstances (Maybe Text)-ri1AvailabilityZone =- lens _ri1AvailabilityZone (\s a -> s { _ri1AvailabilityZone = 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'.-ri1CurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)-ri1CurrencyCode = lens _ri1CurrencyCode (\s a -> s { _ri1CurrencyCode = a })---- | The duration of the Reserved Instance, in seconds.-ri1Duration :: Lens' ReservedInstances (Maybe Integer)-ri1Duration = lens _ri1Duration (\s a -> s { _ri1Duration = a })---- | The time when the Reserved Instance expires.-ri1End :: Lens' ReservedInstances (Maybe UTCTime)-ri1End = lens _ri1End (\s a -> s { _ri1End = a }) . mapping _Time---- | The purchase price of the Reserved Instance.-ri1FixedPrice :: Lens' ReservedInstances (Maybe Double)-ri1FixedPrice = lens _ri1FixedPrice (\s a -> s { _ri1FixedPrice = a })---- | The number of Reserved Instances purchased.-ri1InstanceCount :: Lens' ReservedInstances (Maybe Int)-ri1InstanceCount = lens _ri1InstanceCount (\s a -> s { _ri1InstanceCount = a })---- | The tenancy of the reserved instance.-ri1InstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)-ri1InstanceTenancy =- lens _ri1InstanceTenancy (\s a -> s { _ri1InstanceTenancy = a })---- | The instance type on which the Reserved Instance can be used.-ri1InstanceType :: Lens' ReservedInstances (Maybe InstanceType)-ri1InstanceType = lens _ri1InstanceType (\s a -> s { _ri1InstanceType = a })---- | The Reserved Instance offering type.-ri1OfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)-ri1OfferingType = lens _ri1OfferingType (\s a -> s { _ri1OfferingType = a })---- | The Reserved Instance description.-ri1ProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)-ri1ProductDescription =- lens _ri1ProductDescription (\s a -> s { _ri1ProductDescription = a })---- | The recurring charge tag assigned to the resource.-ri1RecurringCharges :: Lens' ReservedInstances [RecurringCharge]-ri1RecurringCharges =- lens _ri1RecurringCharges (\s a -> s { _ri1RecurringCharges = a })- . _List---- | The ID of the Reserved Instance.-ri1ReservedInstancesId :: Lens' ReservedInstances (Maybe Text)-ri1ReservedInstancesId =- lens _ri1ReservedInstancesId (\s a -> s { _ri1ReservedInstancesId = a })---- | The date and time the Reserved Instance started.-ri1Start :: Lens' ReservedInstances (Maybe UTCTime)-ri1Start = lens _ri1Start (\s a -> s { _ri1Start = a }) . mapping _Time---- | The state of the Reserved Instance purchase.-ri1State :: Lens' ReservedInstances (Maybe ReservedInstanceState)-ri1State = lens _ri1State (\s a -> s { _ri1State = a })---- | Any tags assigned to the resource.-ri1Tags :: Lens' ReservedInstances [Tag]-ri1Tags = lens _ri1Tags (\s a -> s { _ri1Tags = a }) . _List---- | The usage price of the Reserved Instance, per hour.-ri1UsagePrice :: Lens' ReservedInstances (Maybe Double)-ri1UsagePrice = lens _ri1UsagePrice (\s a -> s { _ri1UsagePrice = a })--instance FromXML ReservedInstances where- parseXML x = ReservedInstances- <$> x .@? "availabilityZone"- <*> x .@? "currencyCode"- <*> x .@? "duration"- <*> x .@? "end"- <*> x .@? "fixedPrice"- <*> x .@? "instanceCount"- <*> x .@? "instanceTenancy"- <*> x .@? "instanceType"- <*> x .@? "offeringType"- <*> x .@? "productDescription"- <*> x .@? "recurringCharges" .!@ mempty- <*> x .@? "reservedInstancesId"- <*> x .@? "start"- <*> x .@? "state"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "usagePrice"--instance ToQuery ReservedInstances where- toQuery ReservedInstances{..} = mconcat- [ "availabilityZone" =? _ri1AvailabilityZone- , "currencyCode" =? _ri1CurrencyCode- , "duration" =? _ri1Duration- , "end" =? _ri1End- , "fixedPrice" =? _ri1FixedPrice- , "instanceCount" =? _ri1InstanceCount- , "instanceTenancy" =? _ri1InstanceTenancy- , "instanceType" =? _ri1InstanceType- , "offeringType" =? _ri1OfferingType- , "productDescription" =? _ri1ProductDescription- , "recurringCharges" `toQueryList` _ri1RecurringCharges- , "reservedInstancesId" =? _ri1ReservedInstancesId- , "start" =? _ri1Start- , "state" =? _ri1State- , "tagSet" `toQueryList` _ri1Tags- , "usagePrice" =? _ri1UsagePrice- ]--data DatafeedSubscriptionState- = DSSActive -- ^ Active- | DSSInactive -- ^ Inactive- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable DatafeedSubscriptionState--instance FromText DatafeedSubscriptionState where- parser = takeLowerText >>= \case- "active" -> pure DSSActive- "inactive" -> pure DSSInactive- e -> fail $- "Failure parsing DatafeedSubscriptionState from " ++ show e--instance ToText DatafeedSubscriptionState where- toText = \case- DSSActive -> "Active"- DSSInactive -> "Inactive"--instance ToByteString DatafeedSubscriptionState-instance ToHeader DatafeedSubscriptionState-instance ToQuery DatafeedSubscriptionState--instance FromXML DatafeedSubscriptionState where- parseXML = parseXMLText "DatafeedSubscriptionState"--data ExportTaskState- = ETSActive -- ^ active- | ETSCancelled -- ^ cancelled- | ETSCancelling -- ^ cancelling- | ETSCompleted -- ^ completed- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ExportTaskState--instance FromText ExportTaskState where- parser = takeLowerText >>= \case- "active" -> pure ETSActive- "cancelled" -> pure ETSCancelled- "cancelling" -> pure ETSCancelling- "completed" -> pure ETSCompleted- e -> fail $- "Failure parsing ExportTaskState from " ++ show e--instance ToText ExportTaskState where- toText = \case- ETSActive -> "active"- ETSCancelled -> "cancelled"- ETSCancelling -> "cancelling"- ETSCompleted -> "completed"--instance ToByteString ExportTaskState-instance ToHeader ExportTaskState-instance ToQuery ExportTaskState--instance FromXML ExportTaskState where- parseXML = parseXMLText "ExportTaskState"--data ProductCodeValues- = Devpay -- ^ devpay- | Marketplace -- ^ marketplace- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ProductCodeValues--instance FromText ProductCodeValues where- parser = takeLowerText >>= \case- "devpay" -> pure Devpay- "marketplace" -> pure Marketplace- e -> fail $- "Failure parsing ProductCodeValues from " ++ show e--instance ToText ProductCodeValues where- toText = \case- Devpay -> "devpay"- Marketplace -> "marketplace"--instance ToByteString ProductCodeValues-instance ToHeader ProductCodeValues-instance ToQuery ProductCodeValues--instance FromXML ProductCodeValues where- parseXML = parseXMLText "ProductCodeValues"--data VpnConnection = VpnConnection- { _vcCustomerGatewayConfiguration :: Text- , _vcCustomerGatewayId :: Text- , _vcOptions :: Maybe VpnConnectionOptions- , _vcRoutes :: List "item" VpnStaticRoute- , _vcState :: VpnState- , _vcTags :: List "item" Tag- , _vcType :: GatewayType- , _vcVgwTelemetry :: List "item" VgwTelemetry- , _vcVpnConnectionId :: Text- , _vcVpnGatewayId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VpnConnection' constructor.------ The fields accessible through corresponding lenses are:------ * 'vcCustomerGatewayConfiguration' @::@ 'Text'------ * 'vcCustomerGatewayId' @::@ 'Text'------ * 'vcOptions' @::@ 'Maybe' 'VpnConnectionOptions'------ * 'vcRoutes' @::@ ['VpnStaticRoute']------ * 'vcState' @::@ 'VpnState'------ * 'vcTags' @::@ ['Tag']------ * 'vcType' @::@ 'GatewayType'------ * 'vcVgwTelemetry' @::@ ['VgwTelemetry']------ * 'vcVpnConnectionId' @::@ 'Text'------ * 'vcVpnGatewayId' @::@ 'Maybe' 'Text'----vpnConnection :: Text -- ^ 'vcVpnConnectionId'- -> VpnState -- ^ 'vcState'- -> Text -- ^ 'vcCustomerGatewayConfiguration'- -> GatewayType -- ^ 'vcType'- -> Text -- ^ 'vcCustomerGatewayId'- -> VpnConnection-vpnConnection p1 p2 p3 p4 p5 = VpnConnection- { _vcVpnConnectionId = p1- , _vcState = p2- , _vcCustomerGatewayConfiguration = p3- , _vcType = p4- , _vcCustomerGatewayId = p5- , _vcVpnGatewayId = Nothing- , _vcTags = mempty- , _vcVgwTelemetry = mempty- , _vcOptions = Nothing- , _vcRoutes = mempty- }---- | 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 Text-vcCustomerGatewayConfiguration =- lens _vcCustomerGatewayConfiguration- (\s a -> s { _vcCustomerGatewayConfiguration = 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 VPN connection options.-vcOptions :: Lens' VpnConnection (Maybe VpnConnectionOptions)-vcOptions = lens _vcOptions (\s a -> s { _vcOptions = a })---- | The static routes associated with the VPN connection.-vcRoutes :: Lens' VpnConnection [VpnStaticRoute]-vcRoutes = lens _vcRoutes (\s a -> s { _vcRoutes = a }) . _List---- | The current state of the VPN connection.-vcState :: Lens' VpnConnection VpnState-vcState = lens _vcState (\s a -> s { _vcState = a })---- | Any tags assigned to the VPN connection.-vcTags :: Lens' VpnConnection [Tag]-vcTags = lens _vcTags (\s a -> s { _vcTags = a }) . _List---- | The type of VPN connection.-vcType :: Lens' VpnConnection GatewayType-vcType = lens _vcType (\s a -> s { _vcType = a })---- | Information about the VPN tunnel.-vcVgwTelemetry :: Lens' VpnConnection [VgwTelemetry]-vcVgwTelemetry = lens _vcVgwTelemetry (\s a -> s { _vcVgwTelemetry = a }) . _List---- | The ID of the VPN connection.-vcVpnConnectionId :: Lens' VpnConnection Text-vcVpnConnectionId =- lens _vcVpnConnectionId (\s a -> s { _vcVpnConnectionId = a })---- | 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 })--instance FromXML VpnConnection where- parseXML x = VpnConnection- <$> x .@ "customerGatewayConfiguration"- <*> x .@ "customerGatewayId"- <*> x .@? "options"- <*> x .@? "routes" .!@ mempty- <*> x .@ "state"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "type"- <*> x .@? "vgwTelemetry" .!@ mempty- <*> x .@ "vpnConnectionId"- <*> x .@? "vpnGatewayId"--instance ToQuery VpnConnection where- toQuery VpnConnection{..} = mconcat- [ "customerGatewayConfiguration" =? _vcCustomerGatewayConfiguration- , "customerGatewayId" =? _vcCustomerGatewayId- , "options" =? _vcOptions- , "routes" `toQueryList` _vcRoutes- , "state" =? _vcState- , "tagSet" `toQueryList` _vcTags- , "type" =? _vcType- , "vgwTelemetry" `toQueryList` _vcVgwTelemetry- , "vpnConnectionId" =? _vcVpnConnectionId- , "vpnGatewayId" =? _vcVpnGatewayId- ]--data InstanceState = InstanceState- { _isCode :: Int- , _isName :: InstanceStateName- } deriving (Eq, Read, Show)---- | 'InstanceState' constructor.------ The fields accessible through corresponding lenses are:------ * 'isCode' @::@ 'Int'------ * 'isName' @::@ 'InstanceStateName'----instanceState :: Int -- ^ 'isCode'- -> InstanceStateName -- ^ 'isName'- -> InstanceState-instanceState p1 p2 = InstanceState- { _isCode = p1- , _isName = p2- }---- | 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 })---- | The current state of the instance.-isName :: Lens' InstanceState InstanceStateName-isName = lens _isName (\s a -> s { _isName = a })--instance FromXML InstanceState where- parseXML x = InstanceState- <$> x .@ "code"- <*> x .@ "name"--instance ToQuery InstanceState where- toQuery InstanceState{..} = mconcat- [ "code" =? _isCode- , "name" =? _isName- ]--data Placement = Placement- { _pAvailabilityZone :: Maybe Text- , _pGroupName :: Maybe Text- , _pTenancy :: Maybe Tenancy- } deriving (Eq, Read, Show)---- | 'Placement' constructor.------ The fields accessible through corresponding lenses are:------ * 'pAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'pGroupName' @::@ 'Maybe' 'Text'------ * 'pTenancy' @::@ 'Maybe' 'Tenancy'----placement :: Placement-placement = Placement- { _pAvailabilityZone = Nothing- , _pGroupName = Nothing- , _pTenancy = Nothing- }---- | The Availability Zone of the instance.-pAvailabilityZone :: Lens' Placement (Maybe Text)-pAvailabilityZone =- lens _pAvailabilityZone (\s a -> s { _pAvailabilityZone = 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 })---- | 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.-pTenancy :: Lens' Placement (Maybe Tenancy)-pTenancy = lens _pTenancy (\s a -> s { _pTenancy = a })--instance FromXML Placement where- parseXML x = Placement- <$> x .@? "availabilityZone"- <*> x .@? "groupName"- <*> x .@? "tenancy"--instance ToQuery Placement where- toQuery Placement{..} = mconcat- [ "availabilityZone" =? _pAvailabilityZone- , "groupName" =? _pGroupName- , "tenancy" =? _pTenancy- ]--data EventCode- = InstanceReboot -- ^ instance-reboot- | InstanceRetirement -- ^ instance-retirement- | InstanceStop -- ^ instance-stop- | SystemMaintenance -- ^ system-maintenance- | SystemReboot -- ^ system-reboot- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable EventCode--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 -> fail $- "Failure parsing EventCode from " ++ show e--instance ToText EventCode where- toText = \case- InstanceReboot -> "instance-reboot"- InstanceRetirement -> "instance-retirement"- InstanceStop -> "instance-stop"- SystemMaintenance -> "system-maintenance"- SystemReboot -> "system-reboot"--instance ToByteString EventCode-instance ToHeader EventCode-instance ToQuery EventCode--instance FromXML EventCode where- parseXML = parseXMLText "EventCode"--data SpotInstanceType- = OneTime -- ^ one-time- | Persistent -- ^ persistent- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SpotInstanceType--instance FromText SpotInstanceType where- parser = takeLowerText >>= \case- "one-time" -> pure OneTime- "persistent" -> pure Persistent- e -> fail $- "Failure parsing SpotInstanceType from " ++ show e--instance ToText SpotInstanceType where- toText = \case- OneTime -> "one-time"- Persistent -> "persistent"--instance ToByteString SpotInstanceType-instance ToHeader SpotInstanceType-instance ToQuery SpotInstanceType--instance FromXML SpotInstanceType where- parseXML = parseXMLText "SpotInstanceType"--data VpcPeeringConnection = VpcPeeringConnection- { _vpc1AccepterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo- , _vpc1ExpirationTime :: Maybe ISO8601- , _vpc1RequesterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo- , _vpc1Status :: Maybe VpcPeeringConnectionStateReason- , _vpc1Tags :: List "item" Tag- , _vpc1VpcPeeringConnectionId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VpcPeeringConnection' constructor.------ The fields accessible through corresponding lenses are:------ * 'vpc1AccepterVpcInfo' @::@ 'Maybe' 'VpcPeeringConnectionVpcInfo'------ * 'vpc1ExpirationTime' @::@ 'Maybe' 'UTCTime'------ * 'vpc1RequesterVpcInfo' @::@ 'Maybe' 'VpcPeeringConnectionVpcInfo'------ * 'vpc1Status' @::@ 'Maybe' 'VpcPeeringConnectionStateReason'------ * 'vpc1Tags' @::@ ['Tag']------ * 'vpc1VpcPeeringConnectionId' @::@ 'Maybe' 'Text'----vpcPeeringConnection :: VpcPeeringConnection-vpcPeeringConnection = VpcPeeringConnection- { _vpc1AccepterVpcInfo = Nothing- , _vpc1ExpirationTime = Nothing- , _vpc1RequesterVpcInfo = Nothing- , _vpc1Status = Nothing- , _vpc1Tags = mempty- , _vpc1VpcPeeringConnectionId = Nothing- }---- | The information of the peer VPC.-vpc1AccepterVpcInfo :: Lens' VpcPeeringConnection (Maybe VpcPeeringConnectionVpcInfo)-vpc1AccepterVpcInfo =- lens _vpc1AccepterVpcInfo (\s a -> s { _vpc1AccepterVpcInfo = a })---- | The time that an unaccepted VPC peering connection will expire.-vpc1ExpirationTime :: Lens' VpcPeeringConnection (Maybe UTCTime)-vpc1ExpirationTime =- lens _vpc1ExpirationTime (\s a -> s { _vpc1ExpirationTime = a })- . mapping _Time---- | The information of the requester VPC.-vpc1RequesterVpcInfo :: Lens' VpcPeeringConnection (Maybe VpcPeeringConnectionVpcInfo)-vpc1RequesterVpcInfo =- lens _vpc1RequesterVpcInfo (\s a -> s { _vpc1RequesterVpcInfo = a })---- | The status of the VPC peering connection.-vpc1Status :: Lens' VpcPeeringConnection (Maybe VpcPeeringConnectionStateReason)-vpc1Status = lens _vpc1Status (\s a -> s { _vpc1Status = a })---- | Any tags assigned to the resource.-vpc1Tags :: Lens' VpcPeeringConnection [Tag]-vpc1Tags = lens _vpc1Tags (\s a -> s { _vpc1Tags = a }) . _List---- | The ID of the VPC peering connection.-vpc1VpcPeeringConnectionId :: Lens' VpcPeeringConnection (Maybe Text)-vpc1VpcPeeringConnectionId =- lens _vpc1VpcPeeringConnectionId- (\s a -> s { _vpc1VpcPeeringConnectionId = a })--instance FromXML VpcPeeringConnection where- parseXML x = VpcPeeringConnection- <$> x .@? "accepterVpcInfo"- <*> x .@? "expirationTime"- <*> x .@? "requesterVpcInfo"- <*> x .@? "status"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcPeeringConnectionId"--instance ToQuery VpcPeeringConnection where- toQuery VpcPeeringConnection{..} = mconcat- [ "accepterVpcInfo" =? _vpc1AccepterVpcInfo- , "expirationTime" =? _vpc1ExpirationTime- , "requesterVpcInfo" =? _vpc1RequesterVpcInfo- , "status" =? _vpc1Status- , "tagSet" `toQueryList` _vpc1Tags- , "vpcPeeringConnectionId" =? _vpc1VpcPeeringConnectionId- ]--data S3Storage = S3Storage- { _ssAWSAccessKeyId :: Maybe Text- , _ssBucket :: Maybe Text- , _ssPrefix :: Maybe Text- , _ssUploadPolicy :: Maybe Base64- , _ssUploadPolicySignature :: Maybe Text- } deriving (Eq, Read, Show)---- | 'S3Storage' constructor.------ The fields accessible through corresponding lenses are:------ * 'ssAWSAccessKeyId' @::@ 'Maybe' 'Text'------ * 'ssBucket' @::@ 'Maybe' 'Text'------ * 'ssPrefix' @::@ 'Maybe' 'Text'------ * 'ssUploadPolicy' @::@ 'Maybe' 'Base64'------ * 'ssUploadPolicySignature' @::@ 'Maybe' 'Text'----s3Storage :: S3Storage-s3Storage = S3Storage- { _ssBucket = Nothing- , _ssPrefix = Nothing- , _ssAWSAccessKeyId = Nothing- , _ssUploadPolicy = Nothing- , _ssUploadPolicySignature = Nothing- }---- | 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 forManaging AWS Access Keys>.-ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)-ssAWSAccessKeyId = lens _ssAWSAccessKeyId (\s a -> s { _ssAWSAccessKeyId = a })---- | The bucket in which to store the AMI. You can specify a bucket that you--- already own or a new bucket that Amazon EC2 creates on your behalf. If you--- specify a bucket that belongs to someone else, Amazon EC2 returns an error.-ssBucket :: Lens' S3Storage (Maybe Text)-ssBucket = lens _ssBucket (\s a -> s { _ssBucket = a })---- | The beginning of the file name of the AMI.-ssPrefix :: Lens' S3Storage (Maybe Text)-ssPrefix = lens _ssPrefix (\s a -> s { _ssPrefix = a })---- | A Base64-encoded Amazon S3 upload policy that gives Amazon EC2 permission to--- upload items into Amazon S3 on your behalf.-ssUploadPolicy :: Lens' S3Storage (Maybe Base64)-ssUploadPolicy = lens _ssUploadPolicy (\s a -> s { _ssUploadPolicy = a })---- | The signature of the Base64 encoded JSON document.-ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)-ssUploadPolicySignature =- lens _ssUploadPolicySignature (\s a -> s { _ssUploadPolicySignature = a })--instance FromXML S3Storage where- parseXML x = S3Storage- <$> x .@? "AWSAccessKeyId"- <*> x .@? "bucket"- <*> x .@? "prefix"- <*> x .@? "uploadPolicy"- <*> x .@? "uploadPolicySignature"--instance ToQuery S3Storage where- toQuery S3Storage{..} = mconcat- [ "AWSAccessKeyId" =? _ssAWSAccessKeyId- , "bucket" =? _ssBucket- , "prefix" =? _ssPrefix- , "uploadPolicy" =? _ssUploadPolicy- , "uploadPolicySignature" =? _ssUploadPolicySignature- ]--data VgwTelemetry = VgwTelemetry- { _vtAcceptedRouteCount :: Maybe Int- , _vtLastStatusChange :: Maybe ISO8601- , _vtOutsideIpAddress :: Maybe Text- , _vtStatus :: Maybe TelemetryStatus- , _vtStatusMessage :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VgwTelemetry' constructor.------ The fields accessible through corresponding lenses are:------ * 'vtAcceptedRouteCount' @::@ 'Maybe' 'Int'------ * 'vtLastStatusChange' @::@ 'Maybe' 'UTCTime'------ * 'vtOutsideIpAddress' @::@ 'Maybe' 'Text'------ * 'vtStatus' @::@ 'Maybe' 'TelemetryStatus'------ * 'vtStatusMessage' @::@ 'Maybe' 'Text'----vgwTelemetry :: VgwTelemetry-vgwTelemetry = VgwTelemetry- { _vtOutsideIpAddress = Nothing- , _vtStatus = Nothing- , _vtLastStatusChange = Nothing- , _vtStatusMessage = Nothing- , _vtAcceptedRouteCount = Nothing- }---- | The number of accepted routes.-vtAcceptedRouteCount :: Lens' VgwTelemetry (Maybe Int)-vtAcceptedRouteCount =- lens _vtAcceptedRouteCount (\s a -> s { _vtAcceptedRouteCount = 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 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 status of the VPN tunnel.-vtStatus :: Lens' VgwTelemetry (Maybe TelemetryStatus)-vtStatus = lens _vtStatus (\s a -> s { _vtStatus = 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 .@? "acceptedRouteCount"- <*> x .@? "lastStatusChange"- <*> x .@? "outsideIpAddress"- <*> x .@? "status"- <*> x .@? "statusMessage"--instance ToQuery VgwTelemetry where- toQuery VgwTelemetry{..} = mconcat- [ "acceptedRouteCount" =? _vtAcceptedRouteCount- , "lastStatusChange" =? _vtLastStatusChange- , "outsideIpAddress" =? _vtOutsideIpAddress- , "status" =? _vtStatus- , "statusMessage" =? _vtStatusMessage- ]--data VpnStaticRoute = VpnStaticRoute- { _vsrDestinationCidrBlock :: Maybe Text- , _vsrSource :: Maybe VpnStaticRouteSource- , _vsrState :: Maybe VpnState- } deriving (Eq, Read, Show)---- | 'VpnStaticRoute' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsrDestinationCidrBlock' @::@ 'Maybe' 'Text'------ * 'vsrSource' @::@ 'Maybe' 'VpnStaticRouteSource'------ * 'vsrState' @::@ 'Maybe' 'VpnState'----vpnStaticRoute :: VpnStaticRoute-vpnStaticRoute = VpnStaticRoute- { _vsrDestinationCidrBlock = Nothing- , _vsrSource = Nothing- , _vsrState = Nothing- }---- | 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 })---- | Indicates how the routes were provided.-vsrSource :: Lens' VpnStaticRoute (Maybe VpnStaticRouteSource)-vsrSource = lens _vsrSource (\s a -> s { _vsrSource = a })---- | The current state of the static route.-vsrState :: Lens' VpnStaticRoute (Maybe VpnState)-vsrState = lens _vsrState (\s a -> s { _vsrState = a })--instance FromXML VpnStaticRoute where- parseXML x = VpnStaticRoute- <$> x .@? "destinationCidrBlock"- <*> x .@? "source"- <*> x .@? "state"--instance ToQuery VpnStaticRoute where- toQuery VpnStaticRoute{..} = mconcat- [ "destinationCidrBlock" =? _vsrDestinationCidrBlock- , "source" =? _vsrSource- , "state" =? _vsrState- ]--data InstanceStateName- = ISNPending -- ^ pending- | ISNRunning -- ^ running- | ISNShuttingDown -- ^ shutting-down- | ISNStopped -- ^ stopped- | ISNStopping -- ^ stopping- | ISNTerminated -- ^ terminated- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceStateName--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 -> fail $- "Failure parsing InstanceStateName from " ++ show e--instance ToText InstanceStateName where- toText = \case- ISNPending -> "pending"- ISNRunning -> "running"- ISNShuttingDown -> "shutting-down"- ISNStopped -> "stopped"- ISNStopping -> "stopping"- ISNTerminated -> "terminated"--instance ToByteString InstanceStateName-instance ToHeader InstanceStateName-instance ToQuery InstanceStateName--instance FromXML InstanceStateName where- parseXML = parseXMLText "InstanceStateName"--data Instance = Instance- { _i1AmiLaunchIndex :: Int- , _i1Architecture :: ArchitectureValues- , _i1BlockDeviceMappings :: List "item" InstanceBlockDeviceMapping- , _i1ClientToken :: Maybe Text- , _i1EbsOptimized :: Bool- , _i1Hypervisor :: HypervisorType- , _i1IamInstanceProfile :: Maybe IamInstanceProfile- , _i1ImageId :: Text- , _i1InstanceId :: Text- , _i1InstanceLifecycle :: Maybe InstanceLifecycleType- , _i1InstanceType :: InstanceType- , _i1KernelId :: Maybe Text- , _i1KeyName :: Maybe Text- , _i1LaunchTime :: ISO8601- , _i1Monitoring :: Monitoring- , _i1NetworkInterfaces :: List "item" InstanceNetworkInterface- , _i1Placement :: Placement- , _i1Platform :: Maybe PlatformValues- , _i1PrivateDnsName :: Maybe Text- , _i1PrivateIpAddress :: Maybe Text- , _i1ProductCodes :: List "item" ProductCode- , _i1PublicDnsName :: Maybe Text- , _i1PublicIpAddress :: Maybe Text- , _i1RamdiskId :: Maybe Text- , _i1RootDeviceName :: Maybe Text- , _i1RootDeviceType :: DeviceType- , _i1SecurityGroups :: List "item" GroupIdentifier- , _i1SourceDestCheck :: Maybe Bool- , _i1SpotInstanceRequestId :: Maybe Text- , _i1SriovNetSupport :: Maybe Text- , _i1State :: InstanceState- , _i1StateReason :: Maybe StateReason- , _i1StateTransitionReason :: Maybe Text- , _i1SubnetId :: Maybe Text- , _i1Tags :: List "item" Tag- , _i1VirtualizationType :: VirtualizationType- , _i1VpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'Instance' constructor.------ The fields accessible through corresponding lenses are:------ * 'i1AmiLaunchIndex' @::@ 'Int'------ * 'i1Architecture' @::@ 'ArchitectureValues'------ * 'i1BlockDeviceMappings' @::@ ['InstanceBlockDeviceMapping']------ * 'i1ClientToken' @::@ 'Maybe' 'Text'------ * 'i1EbsOptimized' @::@ 'Bool'------ * 'i1Hypervisor' @::@ 'HypervisorType'------ * 'i1IamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfile'------ * 'i1ImageId' @::@ 'Text'------ * 'i1InstanceId' @::@ 'Text'------ * 'i1InstanceLifecycle' @::@ 'Maybe' 'InstanceLifecycleType'------ * 'i1InstanceType' @::@ 'InstanceType'------ * 'i1KernelId' @::@ 'Maybe' 'Text'------ * 'i1KeyName' @::@ 'Maybe' 'Text'------ * 'i1LaunchTime' @::@ 'UTCTime'------ * 'i1Monitoring' @::@ 'Monitoring'------ * 'i1NetworkInterfaces' @::@ ['InstanceNetworkInterface']------ * 'i1Placement' @::@ 'Placement'------ * 'i1Platform' @::@ 'Maybe' 'PlatformValues'------ * 'i1PrivateDnsName' @::@ 'Maybe' 'Text'------ * 'i1PrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'i1ProductCodes' @::@ ['ProductCode']------ * 'i1PublicDnsName' @::@ 'Maybe' 'Text'------ * 'i1PublicIpAddress' @::@ 'Maybe' 'Text'------ * 'i1RamdiskId' @::@ 'Maybe' 'Text'------ * 'i1RootDeviceName' @::@ 'Maybe' 'Text'------ * 'i1RootDeviceType' @::@ 'DeviceType'------ * 'i1SecurityGroups' @::@ ['GroupIdentifier']------ * 'i1SourceDestCheck' @::@ 'Maybe' 'Bool'------ * 'i1SpotInstanceRequestId' @::@ 'Maybe' 'Text'------ * 'i1SriovNetSupport' @::@ 'Maybe' 'Text'------ * 'i1State' @::@ 'InstanceState'------ * 'i1StateReason' @::@ 'Maybe' 'StateReason'------ * 'i1StateTransitionReason' @::@ 'Maybe' 'Text'------ * 'i1SubnetId' @::@ 'Maybe' 'Text'------ * 'i1Tags' @::@ ['Tag']------ * 'i1VirtualizationType' @::@ 'VirtualizationType'------ * 'i1VpcId' @::@ 'Maybe' 'Text'----instance' :: Text -- ^ 'i1InstanceId'- -> Text -- ^ 'i1ImageId'- -> InstanceState -- ^ 'i1State'- -> Int -- ^ 'i1AmiLaunchIndex'- -> InstanceType -- ^ 'i1InstanceType'- -> UTCTime -- ^ 'i1LaunchTime'- -> Placement -- ^ 'i1Placement'- -> Monitoring -- ^ 'i1Monitoring'- -> ArchitectureValues -- ^ 'i1Architecture'- -> DeviceType -- ^ 'i1RootDeviceType'- -> VirtualizationType -- ^ 'i1VirtualizationType'- -> HypervisorType -- ^ 'i1Hypervisor'- -> Bool -- ^ 'i1EbsOptimized'- -> Instance-instance' p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 = Instance- { _i1InstanceId = p1- , _i1ImageId = p2- , _i1State = p3- , _i1AmiLaunchIndex = p4- , _i1InstanceType = p5- , _i1LaunchTime = withIso _Time (const id) p6- , _i1Placement = p7- , _i1Monitoring = p8- , _i1Architecture = p9- , _i1RootDeviceType = p10- , _i1VirtualizationType = p11- , _i1Hypervisor = p12- , _i1EbsOptimized = p13- , _i1PrivateDnsName = Nothing- , _i1PublicDnsName = Nothing- , _i1StateTransitionReason = Nothing- , _i1KeyName = Nothing- , _i1ProductCodes = mempty- , _i1KernelId = Nothing- , _i1RamdiskId = Nothing- , _i1Platform = Nothing- , _i1SubnetId = Nothing- , _i1VpcId = Nothing- , _i1PrivateIpAddress = Nothing- , _i1PublicIpAddress = Nothing- , _i1StateReason = Nothing- , _i1RootDeviceName = Nothing- , _i1BlockDeviceMappings = mempty- , _i1InstanceLifecycle = Nothing- , _i1SpotInstanceRequestId = Nothing- , _i1ClientToken = Nothing- , _i1Tags = mempty- , _i1SecurityGroups = mempty- , _i1SourceDestCheck = Nothing- , _i1NetworkInterfaces = mempty- , _i1IamInstanceProfile = Nothing- , _i1SriovNetSupport = Nothing- }---- | The AMI launch index, which can be used to find this instance in the launch--- group.-i1AmiLaunchIndex :: Lens' Instance Int-i1AmiLaunchIndex = lens _i1AmiLaunchIndex (\s a -> s { _i1AmiLaunchIndex = a })---- | The architecture of the image.-i1Architecture :: Lens' Instance ArchitectureValues-i1Architecture = lens _i1Architecture (\s a -> s { _i1Architecture = a })---- | Any block device mapping entries for the instance.-i1BlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]-i1BlockDeviceMappings =- lens _i1BlockDeviceMappings (\s a -> s { _i1BlockDeviceMappings = a })- . _List---- | The idempotency token you provided when you launched the instance.-i1ClientToken :: Lens' Instance (Maybe Text)-i1ClientToken = lens _i1ClientToken (\s a -> s { _i1ClientToken = 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.-i1EbsOptimized :: Lens' Instance Bool-i1EbsOptimized = lens _i1EbsOptimized (\s a -> s { _i1EbsOptimized = a })---- | The hypervisor type of the instance.-i1Hypervisor :: Lens' Instance HypervisorType-i1Hypervisor = lens _i1Hypervisor (\s a -> s { _i1Hypervisor = a })---- | The IAM instance profile associated with the instance.-i1IamInstanceProfile :: Lens' Instance (Maybe IamInstanceProfile)-i1IamInstanceProfile =- lens _i1IamInstanceProfile (\s a -> s { _i1IamInstanceProfile = a })---- | The ID of the AMI used to launch the instance.-i1ImageId :: Lens' Instance Text-i1ImageId = lens _i1ImageId (\s a -> s { _i1ImageId = a })---- | The ID of the instance.-i1InstanceId :: Lens' Instance Text-i1InstanceId = lens _i1InstanceId (\s a -> s { _i1InstanceId = a })---- | Indicates whether this is a Spot Instance.-i1InstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)-i1InstanceLifecycle =- lens _i1InstanceLifecycle (\s a -> s { _i1InstanceLifecycle = a })---- | The instance type.-i1InstanceType :: Lens' Instance InstanceType-i1InstanceType = lens _i1InstanceType (\s a -> s { _i1InstanceType = a })---- | The kernel associated with this instance.-i1KernelId :: Lens' Instance (Maybe Text)-i1KernelId = lens _i1KernelId (\s a -> s { _i1KernelId = a })---- | The name of the key pair, if this instance was launched with an associated--- key pair.-i1KeyName :: Lens' Instance (Maybe Text)-i1KeyName = lens _i1KeyName (\s a -> s { _i1KeyName = a })---- | The time the instance was launched.-i1LaunchTime :: Lens' Instance UTCTime-i1LaunchTime = lens _i1LaunchTime (\s a -> s { _i1LaunchTime = a }) . _Time---- | The monitoring information for the instance.-i1Monitoring :: Lens' Instance Monitoring-i1Monitoring = lens _i1Monitoring (\s a -> s { _i1Monitoring = a })---- | [EC2-VPC] One or more network interfaces for the instance.-i1NetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]-i1NetworkInterfaces =- lens _i1NetworkInterfaces (\s a -> s { _i1NetworkInterfaces = a })- . _List---- | The location where the instance launched.-i1Placement :: Lens' Instance Placement-i1Placement = lens _i1Placement (\s a -> s { _i1Placement = a })---- | The value is 'Windows' for Windows instances; otherwise blank.-i1Platform :: Lens' Instance (Maybe PlatformValues)-i1Platform = lens _i1Platform (\s a -> s { _i1Platform = a })---- | The private DNS name assigned to the instance. This DNS name can only be used--- inside the Amazon EC2 network. This name is not available until the instance--- enters the 'running' state.-i1PrivateDnsName :: Lens' Instance (Maybe Text)-i1PrivateDnsName = lens _i1PrivateDnsName (\s a -> s { _i1PrivateDnsName = a })---- | The private IP address assigned to the instance.-i1PrivateIpAddress :: Lens' Instance (Maybe Text)-i1PrivateIpAddress =- lens _i1PrivateIpAddress (\s a -> s { _i1PrivateIpAddress = a })---- | The product codes attached to this instance.-i1ProductCodes :: Lens' Instance [ProductCode]-i1ProductCodes = lens _i1ProductCodes (\s a -> s { _i1ProductCodes = a }) . _List---- | The public DNS name assigned to the instance. This name is not available--- until the instance enters the 'running' state.-i1PublicDnsName :: Lens' Instance (Maybe Text)-i1PublicDnsName = lens _i1PublicDnsName (\s a -> s { _i1PublicDnsName = a })---- | The public IP address assigned to the instance.-i1PublicIpAddress :: Lens' Instance (Maybe Text)-i1PublicIpAddress =- lens _i1PublicIpAddress (\s a -> s { _i1PublicIpAddress = a })---- | The RAM disk associated with this instance.-i1RamdiskId :: Lens' Instance (Maybe Text)-i1RamdiskId = lens _i1RamdiskId (\s a -> s { _i1RamdiskId = a })---- | The root device name (for example, '/dev/sda1').-i1RootDeviceName :: Lens' Instance (Maybe Text)-i1RootDeviceName = lens _i1RootDeviceName (\s a -> s { _i1RootDeviceName = a })---- | The root device type used by the AMI. The AMI can use an Amazon EBS volume or--- an instance store volume.-i1RootDeviceType :: Lens' Instance DeviceType-i1RootDeviceType = lens _i1RootDeviceType (\s a -> s { _i1RootDeviceType = a })---- | One or more security groups for the instance.-i1SecurityGroups :: Lens' Instance [GroupIdentifier]-i1SecurityGroups = lens _i1SecurityGroups (\s a -> s { _i1SecurityGroups = a }) . _List---- | 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/.-i1SourceDestCheck :: Lens' Instance (Maybe Bool)-i1SourceDestCheck =- lens _i1SourceDestCheck (\s a -> s { _i1SourceDestCheck = a })---- | The ID of the Spot Instance request.-i1SpotInstanceRequestId :: Lens' Instance (Maybe Text)-i1SpotInstanceRequestId =- lens _i1SpotInstanceRequestId (\s a -> s { _i1SpotInstanceRequestId = a })---- | Specifies whether enhanced networking is enabled.-i1SriovNetSupport :: Lens' Instance (Maybe Text)-i1SriovNetSupport =- lens _i1SriovNetSupport (\s a -> s { _i1SriovNetSupport = a })---- | The current state of the instance.-i1State :: Lens' Instance InstanceState-i1State = lens _i1State (\s a -> s { _i1State = a })---- | The reason for the most recent state transition.-i1StateReason :: Lens' Instance (Maybe StateReason)-i1StateReason = lens _i1StateReason (\s a -> s { _i1StateReason = a })---- | The reason for the most recent state transition. This might be an empty--- string.-i1StateTransitionReason :: Lens' Instance (Maybe Text)-i1StateTransitionReason =- lens _i1StateTransitionReason (\s a -> s { _i1StateTransitionReason = a })---- | The ID of the subnet in which the instance is running.-i1SubnetId :: Lens' Instance (Maybe Text)-i1SubnetId = lens _i1SubnetId (\s a -> s { _i1SubnetId = a })---- | Any tags assigned to the instance.-i1Tags :: Lens' Instance [Tag]-i1Tags = lens _i1Tags (\s a -> s { _i1Tags = a }) . _List---- | The virtualization type of the instance.-i1VirtualizationType :: Lens' Instance VirtualizationType-i1VirtualizationType =- lens _i1VirtualizationType (\s a -> s { _i1VirtualizationType = a })---- | The ID of the VPC in which the instance is running.-i1VpcId :: Lens' Instance (Maybe Text)-i1VpcId = lens _i1VpcId (\s a -> s { _i1VpcId = a })--instance FromXML Instance where- parseXML x = Instance- <$> x .@ "amiLaunchIndex"- <*> x .@ "architecture"- <*> x .@? "blockDeviceMapping" .!@ mempty- <*> x .@? "clientToken"- <*> x .@ "ebsOptimized"- <*> x .@ "hypervisor"- <*> x .@? "iamInstanceProfile"- <*> x .@ "imageId"- <*> x .@ "instanceId"- <*> x .@? "instanceLifecycle"- <*> x .@ "instanceType"- <*> x .@? "kernelId"- <*> x .@? "keyName"- <*> x .@ "launchTime"- <*> x .@ "monitoring"- <*> x .@? "networkInterfaceSet" .!@ mempty- <*> x .@ "placement"- <*> x .@? "platform"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"- <*> x .@? "productCodes" .!@ mempty- <*> x .@? "dnsName"- <*> x .@? "ipAddress"- <*> x .@? "ramdiskId"- <*> x .@? "rootDeviceName"- <*> x .@ "rootDeviceType"- <*> x .@? "groupSet" .!@ mempty- <*> x .@? "sourceDestCheck"- <*> x .@? "spotInstanceRequestId"- <*> x .@? "sriovNetSupport"- <*> x .@ "instanceState"- <*> x .@? "stateReason"- <*> x .@? "reason"- <*> x .@? "subnetId"- <*> x .@? "tagSet" .!@ mempty- <*> x .@ "virtualizationType"- <*> x .@? "vpcId"--instance ToQuery Instance where- toQuery Instance{..} = mconcat- [ "amiLaunchIndex" =? _i1AmiLaunchIndex- , "architecture" =? _i1Architecture- , "blockDeviceMapping" `toQueryList` _i1BlockDeviceMappings- , "clientToken" =? _i1ClientToken- , "ebsOptimized" =? _i1EbsOptimized- , "hypervisor" =? _i1Hypervisor- , "iamInstanceProfile" =? _i1IamInstanceProfile- , "imageId" =? _i1ImageId- , "instanceId" =? _i1InstanceId- , "instanceLifecycle" =? _i1InstanceLifecycle- , "instanceType" =? _i1InstanceType- , "kernelId" =? _i1KernelId- , "keyName" =? _i1KeyName- , "launchTime" =? _i1LaunchTime- , "monitoring" =? _i1Monitoring- , "networkInterfaceSet" `toQueryList` _i1NetworkInterfaces- , "placement" =? _i1Placement- , "platform" =? _i1Platform- , "privateDnsName" =? _i1PrivateDnsName- , "privateIpAddress" =? _i1PrivateIpAddress- , "productCodes" `toQueryList` _i1ProductCodes- , "dnsName" =? _i1PublicDnsName- , "ipAddress" =? _i1PublicIpAddress- , "ramdiskId" =? _i1RamdiskId- , "rootDeviceName" =? _i1RootDeviceName- , "rootDeviceType" =? _i1RootDeviceType- , "groupSet" `toQueryList` _i1SecurityGroups- , "sourceDestCheck" =? _i1SourceDestCheck- , "spotInstanceRequestId" =? _i1SpotInstanceRequestId- , "sriovNetSupport" =? _i1SriovNetSupport- , "instanceState" =? _i1State- , "stateReason" =? _i1StateReason- , "reason" =? _i1StateTransitionReason- , "subnetId" =? _i1SubnetId- , "tagSet" `toQueryList` _i1Tags- , "virtualizationType" =? _i1VirtualizationType- , "vpcId" =? _i1VpcId- ]--data ExportTask = ExportTask- { _etDescription :: Text- , _etExportTaskId :: Text- , _etExportToS3Task :: ExportToS3Task- , _etInstanceExportDetails :: InstanceExportDetails- , _etState :: ExportTaskState- , _etStatusMessage :: Text- } deriving (Eq, Read, Show)---- | 'ExportTask' constructor.------ The fields accessible through corresponding lenses are:------ * 'etDescription' @::@ 'Text'------ * 'etExportTaskId' @::@ 'Text'------ * 'etExportToS3Task' @::@ 'ExportToS3Task'------ * 'etInstanceExportDetails' @::@ 'InstanceExportDetails'------ * 'etState' @::@ 'ExportTaskState'------ * 'etStatusMessage' @::@ 'Text'----exportTask :: Text -- ^ 'etExportTaskId'- -> Text -- ^ 'etDescription'- -> ExportTaskState -- ^ 'etState'- -> Text -- ^ 'etStatusMessage'- -> InstanceExportDetails -- ^ 'etInstanceExportDetails'- -> ExportToS3Task -- ^ 'etExportToS3Task'- -> ExportTask-exportTask p1 p2 p3 p4 p5 p6 = ExportTask- { _etExportTaskId = p1- , _etDescription = p2- , _etState = p3- , _etStatusMessage = p4- , _etInstanceExportDetails = p5- , _etExportToS3Task = p6- }---- | 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 })--etExportToS3Task :: Lens' ExportTask ExportToS3Task-etExportToS3Task = lens _etExportToS3Task (\s a -> s { _etExportToS3Task = a })---- | The instance being exported.-etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails-etInstanceExportDetails =- lens _etInstanceExportDetails (\s a -> s { _etInstanceExportDetails = a })---- | The state of the conversion 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 ToQuery ExportTask where- toQuery ExportTask{..} = mconcat- [ "description" =? _etDescription- , "exportTaskId" =? _etExportTaskId- , "exportToS3" =? _etExportToS3Task- , "instanceExport" =? _etInstanceExportDetails- , "state" =? _etState- , "statusMessage" =? _etStatusMessage- ]--data ResetImageAttributeName- = RIANLaunchPermission -- ^ launchPermission- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ResetImageAttributeName--instance FromText ResetImageAttributeName where- parser = takeLowerText >>= \case- "launchpermission" -> pure RIANLaunchPermission- e -> fail $- "Failure parsing ResetImageAttributeName from " ++ show e--instance ToText ResetImageAttributeName where- toText RIANLaunchPermission = "launchPermission"--instance ToByteString ResetImageAttributeName-instance ToHeader ResetImageAttributeName-instance ToQuery ResetImageAttributeName--instance FromXML ResetImageAttributeName where- parseXML = parseXMLText "ResetImageAttributeName"--data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification- { _rslsAddressingType :: Maybe Text- , _rslsBlockDeviceMappings :: List "item" BlockDeviceMapping- , _rslsEbsOptimized :: Maybe Bool- , _rslsIamInstanceProfile :: Maybe IamInstanceProfileSpecification- , _rslsImageId :: Maybe Text- , _rslsInstanceType :: Maybe InstanceType- , _rslsKernelId :: Maybe Text- , _rslsKeyName :: Maybe Text- , _rslsMonitoring :: Maybe RunInstancesMonitoringEnabled- , _rslsNetworkInterfaces :: List "item" InstanceNetworkInterfaceSpecification- , _rslsPlacement :: Maybe SpotPlacement- , _rslsRamdiskId :: Maybe Text- , _rslsSecurityGroupIds :: List "item" Text- , _rslsSecurityGroups :: List "item" Text- , _rslsSubnetId :: Maybe Text- , _rslsUserData :: Maybe Text- } deriving (Eq, Read, Show)---- | 'RequestSpotLaunchSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'rslsAddressingType' @::@ 'Maybe' 'Text'------ * 'rslsBlockDeviceMappings' @::@ ['BlockDeviceMapping']------ * 'rslsEbsOptimized' @::@ 'Maybe' 'Bool'------ * 'rslsIamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfileSpecification'------ * 'rslsImageId' @::@ 'Maybe' 'Text'------ * 'rslsInstanceType' @::@ 'Maybe' 'InstanceType'------ * 'rslsKernelId' @::@ 'Maybe' 'Text'------ * 'rslsKeyName' @::@ 'Maybe' 'Text'------ * 'rslsMonitoring' @::@ 'Maybe' 'RunInstancesMonitoringEnabled'------ * 'rslsNetworkInterfaces' @::@ ['InstanceNetworkInterfaceSpecification']------ * 'rslsPlacement' @::@ 'Maybe' 'SpotPlacement'------ * 'rslsRamdiskId' @::@ 'Maybe' 'Text'------ * 'rslsSecurityGroupIds' @::@ ['Text']------ * 'rslsSecurityGroups' @::@ ['Text']------ * 'rslsSubnetId' @::@ 'Maybe' 'Text'------ * 'rslsUserData' @::@ 'Maybe' 'Text'----requestSpotLaunchSpecification :: RequestSpotLaunchSpecification-requestSpotLaunchSpecification = RequestSpotLaunchSpecification- { _rslsImageId = Nothing- , _rslsKeyName = Nothing- , _rslsSecurityGroups = mempty- , _rslsUserData = Nothing- , _rslsAddressingType = Nothing- , _rslsInstanceType = Nothing- , _rslsPlacement = Nothing- , _rslsKernelId = Nothing- , _rslsRamdiskId = Nothing- , _rslsBlockDeviceMappings = mempty- , _rslsSubnetId = Nothing- , _rslsNetworkInterfaces = mempty- , _rslsIamInstanceProfile = Nothing- , _rslsEbsOptimized = Nothing- , _rslsMonitoring = Nothing- , _rslsSecurityGroupIds = mempty- }---- | Deprecated.-rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsAddressingType =- lens _rslsAddressingType (\s a -> s { _rslsAddressingType = a })---- | One or more block device mapping entries.-rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]-rslsBlockDeviceMappings =- lens _rslsBlockDeviceMappings (\s a -> s { _rslsBlockDeviceMappings = a })- . _List---- | 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 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 })---- | The instance type.------ Default: 'm1.small'-rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)-rslsInstanceType = lens _rslsInstanceType (\s a -> s { _rslsInstanceType = a })---- | The ID of the kernel.-rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsKernelId = lens _rslsKernelId (\s a -> s { _rslsKernelId = a })---- | The name of the key pair.-rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsKeyName = lens _rslsKeyName (\s a -> s { _rslsKeyName = a })--rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)-rslsMonitoring = lens _rslsMonitoring (\s a -> s { _rslsMonitoring = a })---- | One or more network interfaces.-rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]-rslsNetworkInterfaces =- lens _rslsNetworkInterfaces (\s a -> s { _rslsNetworkInterfaces = a })- . _List---- | The placement information for the instance.-rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)-rslsPlacement = lens _rslsPlacement (\s a -> s { _rslsPlacement = a })---- | The ID of the RAM disk.-rslsRamdiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsRamdiskId = lens _rslsRamdiskId (\s a -> s { _rslsRamdiskId = a })--rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]-rslsSecurityGroupIds =- lens _rslsSecurityGroupIds (\s a -> s { _rslsSecurityGroupIds = a })- . _List--rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]-rslsSecurityGroups =- lens _rslsSecurityGroups (\s a -> s { _rslsSecurityGroups = a })- . _List---- | 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 Base64-encoded MIME user data to make available to the instances.-rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)-rslsUserData = lens _rslsUserData (\s a -> s { _rslsUserData = a })--instance FromXML RequestSpotLaunchSpecification where- parseXML x = RequestSpotLaunchSpecification- <$> x .@? "addressingType"- <*> x .@? "blockDeviceMapping" .!@ mempty- <*> x .@? "ebsOptimized"- <*> x .@? "iamInstanceProfile"- <*> x .@? "imageId"- <*> x .@? "instanceType"- <*> x .@? "kernelId"- <*> x .@? "keyName"- <*> x .@? "monitoring"- <*> x .@? "NetworkInterface" .!@ mempty- <*> x .@? "placement"- <*> x .@? "ramdiskId"- <*> x .@? "SecurityGroupId" .!@ mempty- <*> x .@? "SecurityGroup" .!@ mempty- <*> x .@? "subnetId"- <*> x .@? "userData"--instance ToQuery RequestSpotLaunchSpecification where- toQuery RequestSpotLaunchSpecification{..} = mconcat- [ "addressingType" =? _rslsAddressingType- , "blockDeviceMapping" `toQueryList` _rslsBlockDeviceMappings- , "ebsOptimized" =? _rslsEbsOptimized- , "iamInstanceProfile" =? _rslsIamInstanceProfile- , "imageId" =? _rslsImageId- , "instanceType" =? _rslsInstanceType- , "kernelId" =? _rslsKernelId- , "keyName" =? _rslsKeyName- , "monitoring" =? _rslsMonitoring- , "NetworkInterface" `toQueryList` _rslsNetworkInterfaces- , "placement" =? _rslsPlacement- , "ramdiskId" =? _rslsRamdiskId- , "SecurityGroupId" `toQueryList` _rslsSecurityGroupIds- , "SecurityGroup" `toQueryList` _rslsSecurityGroups- , "subnetId" =? _rslsSubnetId- , "userData" =? _rslsUserData- ]--newtype VolumeDetail = VolumeDetail- { _vdSize :: Integer- } deriving (Eq, Ord, Read, Show, Enum, Num, Integral, Real)---- | 'VolumeDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'vdSize' @::@ 'Integer'----volumeDetail :: Integer -- ^ 'vdSize'- -> VolumeDetail-volumeDetail p1 = VolumeDetail- { _vdSize = p1- }---- | The size of the volume, in GiB.-vdSize :: Lens' VolumeDetail Integer-vdSize = lens _vdSize (\s a -> s { _vdSize = a })--instance FromXML VolumeDetail where- parseXML x = VolumeDetail- <$> x .@ "size"--instance ToQuery VolumeDetail where- toQuery VolumeDetail{..} = mconcat- [ "size" =? _vdSize- ]--data PricingDetail = PricingDetail- { _pdCount :: Maybe Int- , _pdPrice :: Maybe Double- } deriving (Eq, Ord, Read, Show)---- | 'PricingDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'pdCount' @::@ 'Maybe' 'Int'------ * 'pdPrice' @::@ 'Maybe' 'Double'----pricingDetail :: PricingDetail-pricingDetail = PricingDetail- { _pdPrice = Nothing- , _pdCount = Nothing- }---- | The number of instances 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 ToQuery PricingDetail where- toQuery PricingDetail{..} = mconcat- [ "count" =? _pdCount- , "price" =? _pdPrice- ]--data NetworkInterfacePrivateIpAddress = NetworkInterfacePrivateIpAddress- { _nipiaAssociation :: Maybe NetworkInterfaceAssociation- , _nipiaPrimary :: Maybe Bool- , _nipiaPrivateDnsName :: Maybe Text- , _nipiaPrivateIpAddress :: Maybe Text- } deriving (Eq, Read, Show)---- | 'NetworkInterfacePrivateIpAddress' constructor.------ The fields accessible through corresponding lenses are:------ * 'nipiaAssociation' @::@ 'Maybe' 'NetworkInterfaceAssociation'------ * 'nipiaPrimary' @::@ 'Maybe' 'Bool'------ * 'nipiaPrivateDnsName' @::@ 'Maybe' 'Text'------ * 'nipiaPrivateIpAddress' @::@ 'Maybe' 'Text'----networkInterfacePrivateIpAddress :: NetworkInterfacePrivateIpAddress-networkInterfacePrivateIpAddress = NetworkInterfacePrivateIpAddress- { _nipiaPrivateIpAddress = Nothing- , _nipiaPrivateDnsName = Nothing- , _nipiaPrimary = Nothing- , _nipiaAssociation = Nothing- }---- | The association information for an Elastic IP address associated with the--- network interface.-nipiaAssociation :: Lens' NetworkInterfacePrivateIpAddress (Maybe NetworkInterfaceAssociation)-nipiaAssociation = lens _nipiaAssociation (\s a -> s { _nipiaAssociation = a })---- | Indicates whether this IP address is the primary private IP address of the--- network interface.-nipiaPrimary :: Lens' NetworkInterfacePrivateIpAddress (Maybe Bool)-nipiaPrimary = lens _nipiaPrimary (\s a -> s { _nipiaPrimary = a })---- | The private DNS name.-nipiaPrivateDnsName :: Lens' NetworkInterfacePrivateIpAddress (Maybe Text)-nipiaPrivateDnsName =- lens _nipiaPrivateDnsName (\s a -> s { _nipiaPrivateDnsName = a })---- | The private IP address.-nipiaPrivateIpAddress :: Lens' NetworkInterfacePrivateIpAddress (Maybe Text)-nipiaPrivateIpAddress =- lens _nipiaPrivateIpAddress (\s a -> s { _nipiaPrivateIpAddress = a })--instance FromXML NetworkInterfacePrivateIpAddress where- parseXML x = NetworkInterfacePrivateIpAddress- <$> x .@? "association"- <*> x .@? "primary"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"--instance ToQuery NetworkInterfacePrivateIpAddress where- toQuery NetworkInterfacePrivateIpAddress{..} = mconcat- [ "association" =? _nipiaAssociation- , "primary" =? _nipiaPrimary- , "privateDnsName" =? _nipiaPrivateDnsName- , "privateIpAddress" =? _nipiaPrivateIpAddress- ]--data DiskImageFormat- = Raw -- ^ RAW- | Vhd -- ^ VHD- | Vmdk -- ^ VMDK- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable DiskImageFormat--instance FromText DiskImageFormat where- parser = takeLowerText >>= \case- "raw" -> pure Raw- "vhd" -> pure Vhd- "vmdk" -> pure Vmdk- e -> fail $- "Failure parsing DiskImageFormat from " ++ show e--instance ToText DiskImageFormat where- toText = \case- Raw -> "RAW"- Vhd -> "VHD"- Vmdk -> "VMDK"--instance ToByteString DiskImageFormat-instance ToHeader DiskImageFormat-instance ToQuery DiskImageFormat--instance FromXML DiskImageFormat where- parseXML = parseXMLText "DiskImageFormat"--data BundleTaskError = BundleTaskError- { _bteCode :: Maybe Text- , _bteMessage :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'BundleTaskError' constructor.------ The fields accessible through corresponding lenses are:------ * 'bteCode' @::@ 'Maybe' 'Text'------ * 'bteMessage' @::@ 'Maybe' 'Text'----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 ToQuery BundleTaskError where- toQuery BundleTaskError{..} = mconcat- [ "code" =? _bteCode- , "message" =? _bteMessage- ]--data VpcClassicLink = VpcClassicLink- { _vclClassicLinkEnabled :: Maybe Bool- , _vclTags :: List "item" Tag- , _vclVpcId :: Maybe Text- } deriving (Eq, Read, Show)---- | 'VpcClassicLink' constructor.------ The fields accessible through corresponding lenses are:------ * 'vclClassicLinkEnabled' @::@ 'Maybe' 'Bool'------ * 'vclTags' @::@ ['Tag']------ * 'vclVpcId' @::@ 'Maybe' 'Text'----vpcClassicLink :: VpcClassicLink-vpcClassicLink = VpcClassicLink- { _vclVpcId = Nothing- , _vclClassicLinkEnabled = Nothing- , _vclTags = mempty- }---- | Indicates whether the VPC is enabled for ClassicLink.-vclClassicLinkEnabled :: Lens' VpcClassicLink (Maybe Bool)-vclClassicLinkEnabled =- lens _vclClassicLinkEnabled (\s a -> s { _vclClassicLinkEnabled = a })---- | Any tags assigned to the VPC.-vclTags :: Lens' VpcClassicLink [Tag]-vclTags = lens _vclTags (\s a -> s { _vclTags = a }) . _List---- | The ID of the VPC.-vclVpcId :: Lens' VpcClassicLink (Maybe Text)-vclVpcId = lens _vclVpcId (\s a -> s { _vclVpcId = a })--instance FromXML VpcClassicLink where- parseXML x = VpcClassicLink- <$> x .@? "classicLinkEnabled"- <*> x .@? "tagSet" .!@ mempty- <*> x .@? "vpcId"--instance ToQuery VpcClassicLink where- toQuery VpcClassicLink{..} = mconcat- [ "classicLinkEnabled" =? _vclClassicLinkEnabled- , "tagSet" `toQueryList` _vclTags- , "vpcId" =? _vclVpcId- ]--data VolumeStatusItem = VolumeStatusItem- { _vsiActions :: List "item" VolumeStatusAction- , _vsiAvailabilityZone :: Maybe Text- , _vsiEvents :: List "item" VolumeStatusEvent- , _vsiVolumeId :: Maybe Text- , _vsiVolumeStatus :: Maybe VolumeStatusInfo- } deriving (Eq, Read, Show)---- | 'VolumeStatusItem' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsiActions' @::@ ['VolumeStatusAction']------ * 'vsiAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'vsiEvents' @::@ ['VolumeStatusEvent']------ * 'vsiVolumeId' @::@ 'Maybe' 'Text'------ * 'vsiVolumeStatus' @::@ 'Maybe' 'VolumeStatusInfo'----volumeStatusItem :: VolumeStatusItem-volumeStatusItem = VolumeStatusItem- { _vsiVolumeId = Nothing- , _vsiAvailabilityZone = Nothing- , _vsiVolumeStatus = Nothing- , _vsiEvents = mempty- , _vsiActions = mempty- }---- | The details of the operation.-vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]-vsiActions = lens _vsiActions (\s a -> s { _vsiActions = a }) . _List---- | The Availability Zone of the volume.-vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)-vsiAvailabilityZone =- lens _vsiAvailabilityZone (\s a -> s { _vsiAvailabilityZone = a })---- | A list of events associated with the volume.-vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]-vsiEvents = lens _vsiEvents (\s a -> s { _vsiEvents = a }) . _List---- | The volume ID.-vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)-vsiVolumeId = lens _vsiVolumeId (\s a -> s { _vsiVolumeId = a })---- | The volume status.-vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)-vsiVolumeStatus = lens _vsiVolumeStatus (\s a -> s { _vsiVolumeStatus = a })--instance FromXML VolumeStatusItem where- parseXML x = VolumeStatusItem- <$> x .@? "actionsSet" .!@ mempty- <*> x .@? "availabilityZone"- <*> x .@? "eventsSet" .!@ mempty- <*> x .@? "volumeId"- <*> x .@? "volumeStatus"--instance ToQuery VolumeStatusItem where- toQuery VolumeStatusItem{..} = mconcat- [ "actionsSet" `toQueryList` _vsiActions- , "availabilityZone" =? _vsiAvailabilityZone- , "eventsSet" `toQueryList` _vsiEvents- , "volumeId" =? _vsiVolumeId- , "volumeStatus" =? _vsiVolumeStatus+ [ "CidrBlock" =? _naeCidrBlock+ , "Egress" =? _naeEgress+ , "IcmpTypeCode" =? _naeIcmpTypeCode+ , "PortRange" =? _naePortRange+ , "Protocol" =? _naeProtocol+ , "RuleAction" =? _naeRuleAction+ , "RuleNumber" =? _naeRuleNumber+ ]++newtype BlobAttributeValue = BlobAttributeValue+ { _bavValue :: Maybe Base64+ } deriving (Eq, Read, Show)++-- | 'BlobAttributeValue' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'bavValue' @::@ 'Maybe' 'Base64'+--+blobAttributeValue :: BlobAttributeValue+blobAttributeValue = BlobAttributeValue+ { _bavValue = Nothing+ }++bavValue :: Lens' BlobAttributeValue (Maybe Base64)+bavValue = lens _bavValue (\s a -> s { _bavValue = a })++instance FromXML BlobAttributeValue where+ parseXML x = BlobAttributeValue+ <$> x .@? "value"++instance ToQuery BlobAttributeValue where+ toQuery BlobAttributeValue{..} = mconcat+ [ "Value" =? _bavValue+ ]++data ImportInstanceLaunchSpecification = ImportInstanceLaunchSpecification+ { _iilsAdditionalInfo :: Maybe Text+ , _iilsArchitecture :: Maybe ArchitectureValues+ , _iilsGroupIds :: List "SecurityGroupId" Text+ , _iilsGroupNames :: List "SecurityGroup" Text+ , _iilsInstanceInitiatedShutdownBehavior :: Maybe ShutdownBehavior+ , _iilsInstanceType :: Maybe InstanceType+ , _iilsMonitoring :: Maybe Bool+ , _iilsPlacement :: Maybe Placement+ , _iilsPrivateIpAddress :: Maybe Text+ , _iilsSubnetId :: Maybe Text+ , _iilsUserData :: Maybe UserData+ } deriving (Eq, Read, Show)++-- | 'ImportInstanceLaunchSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iilsAdditionalInfo' @::@ 'Maybe' 'Text'+--+-- * 'iilsArchitecture' @::@ 'Maybe' 'ArchitectureValues'+--+-- * 'iilsGroupIds' @::@ ['Text']+--+-- * 'iilsGroupNames' @::@ ['Text']+--+-- * 'iilsInstanceInitiatedShutdownBehavior' @::@ 'Maybe' 'ShutdownBehavior'+--+-- * 'iilsInstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'iilsMonitoring' @::@ 'Maybe' 'Bool'+--+-- * 'iilsPlacement' @::@ 'Maybe' 'Placement'+--+-- * 'iilsPrivateIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'iilsSubnetId' @::@ 'Maybe' 'Text'+--+-- * 'iilsUserData' @::@ 'Maybe' 'UserData'+--+importInstanceLaunchSpecification :: ImportInstanceLaunchSpecification+importInstanceLaunchSpecification = ImportInstanceLaunchSpecification+ { _iilsArchitecture = Nothing+ , _iilsGroupNames = mempty+ , _iilsGroupIds = mempty+ , _iilsAdditionalInfo = Nothing+ , _iilsUserData = Nothing+ , _iilsInstanceType = Nothing+ , _iilsPlacement = Nothing+ , _iilsMonitoring = Nothing+ , _iilsSubnetId = Nothing+ , _iilsInstanceInitiatedShutdownBehavior = Nothing+ , _iilsPrivateIpAddress = Nothing+ }++iilsAdditionalInfo :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsAdditionalInfo =+ lens _iilsAdditionalInfo (\s a -> s { _iilsAdditionalInfo = a })++-- | The architecture of the instance.+iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)+iilsArchitecture = lens _iilsArchitecture (\s a -> s { _iilsArchitecture = a })++-- | One or more security group IDs.+iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]+iilsGroupIds = lens _iilsGroupIds (\s a -> s { _iilsGroupIds = a }) . _List++-- | One or more security group names.+iilsGroupNames :: Lens' ImportInstanceLaunchSpecification [Text]+iilsGroupNames = lens _iilsGroupNames (\s a -> s { _iilsGroupNames = a }) . _List++-- | 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 instance type. This is not supported for VMs imported into a VPC, which+-- are assigned the default security group. After a VM is imported into a VPC,+-- you can specify another security group using the AWS Management Console. For+-- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon Elastic Compute Cloud UserGuide for Linux/. For more information about the Linux instance types you can+-- import, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/VMImportPrerequisites.html Before You Get Started> in the Amazon Elastic Compute Cloud User+-- Guide for Linux.+iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)+iilsInstanceType = lens _iilsInstanceType (\s a -> s { _iilsInstanceType = a })++iilsMonitoring :: Lens' ImportInstanceLaunchSpecification (Maybe Bool)+iilsMonitoring = lens _iilsMonitoring (\s a -> s { _iilsMonitoring = a })++iilsPlacement :: Lens' ImportInstanceLaunchSpecification (Maybe Placement)+iilsPlacement = lens _iilsPlacement (\s a -> s { _iilsPlacement = a })++-- | [EC2-VPC] Optionally, you can use this parameter to assign the instance a+-- specific available IP address from the IP address range of the subnet.+iilsPrivateIpAddress :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsPrivateIpAddress =+ lens _iilsPrivateIpAddress (\s a -> s { _iilsPrivateIpAddress = a })++-- | [EC2-VPC] The ID of the subnet to launch the instance into.+iilsSubnetId :: Lens' ImportInstanceLaunchSpecification (Maybe Text)+iilsSubnetId = lens _iilsSubnetId (\s a -> s { _iilsSubnetId = a })++-- | User data to be made available to the instance.+iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)+iilsUserData = lens _iilsUserData (\s a -> s { _iilsUserData = a })++instance FromXML ImportInstanceLaunchSpecification where+ parseXML x = ImportInstanceLaunchSpecification+ <$> x .@? "additionalInfo"+ <*> x .@? "architecture"+ <*> x .@? "GroupId" .!@ mempty+ <*> x .@? "GroupName" .!@ mempty+ <*> x .@? "instanceInitiatedShutdownBehavior"+ <*> x .@? "instanceType"+ <*> x .@? "monitoring"+ <*> x .@? "placement"+ <*> x .@? "privateIpAddress"+ <*> x .@? "subnetId"+ <*> x .@? "userData"++instance ToQuery ImportInstanceLaunchSpecification where+ toQuery ImportInstanceLaunchSpecification{..} = mconcat+ [ "AdditionalInfo" =? _iilsAdditionalInfo+ , "Architecture" =? _iilsArchitecture+ , "GroupId" `toQueryList` _iilsGroupIds+ , "GroupName" `toQueryList` _iilsGroupNames+ , "InstanceInitiatedShutdownBehavior" =? _iilsInstanceInitiatedShutdownBehavior+ , "InstanceType" =? _iilsInstanceType+ , "Monitoring" =? _iilsMonitoring+ , "Placement" =? _iilsPlacement+ , "PrivateIpAddress" =? _iilsPrivateIpAddress+ , "SubnetId" =? _iilsSubnetId+ , "UserData" =? _iilsUserData+ ]++data Snapshot = Snapshot+ { _sDescription :: Text+ , _sEncrypted :: Bool+ , _sKmsKeyId :: Maybe Text+ , _sOwnerAlias :: Maybe Text+ , _sOwnerId :: Text+ , _sProgress :: Text+ , _sSnapshotId :: Text+ , _sStartTime :: ISO8601+ , _sState :: SnapshotState+ , _sTags :: List "item" Tag+ , _sVolumeId :: Text+ , _sVolumeSize :: Int+ } deriving (Eq, Read, Show)++-- | 'Snapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sDescription' @::@ 'Text'+--+-- * 'sEncrypted' @::@ 'Bool'+--+-- * 'sKmsKeyId' @::@ 'Maybe' 'Text'+--+-- * 'sOwnerAlias' @::@ 'Maybe' 'Text'+--+-- * 'sOwnerId' @::@ 'Text'+--+-- * 'sProgress' @::@ 'Text'+--+-- * 'sSnapshotId' @::@ 'Text'+--+-- * 'sStartTime' @::@ 'UTCTime'+--+-- * 'sState' @::@ 'SnapshotState'+--+-- * 'sTags' @::@ ['Tag']+--+-- * 'sVolumeId' @::@ 'Text'+--+-- * 'sVolumeSize' @::@ 'Int'+--+snapshot :: Text -- ^ 'sSnapshotId'+ -> Text -- ^ 'sVolumeId'+ -> SnapshotState -- ^ 'sState'+ -> UTCTime -- ^ 'sStartTime'+ -> Text -- ^ 'sProgress'+ -> Text -- ^ 'sOwnerId'+ -> Text -- ^ 'sDescription'+ -> Int -- ^ 'sVolumeSize'+ -> Bool -- ^ 'sEncrypted'+ -> Snapshot+snapshot p1 p2 p3 p4 p5 p6 p7 p8 p9 = Snapshot+ { _sSnapshotId = p1+ , _sVolumeId = p2+ , _sState = p3+ , _sStartTime = withIso _Time (const id) p4+ , _sProgress = p5+ , _sOwnerId = p6+ , _sDescription = p7+ , _sVolumeSize = p8+ , _sEncrypted = p9+ , _sOwnerAlias = Nothing+ , _sTags = mempty+ , _sKmsKeyId = Nothing+ }++-- | The description for the snapshot.+sDescription :: Lens' Snapshot Text+sDescription = lens _sDescription (\s a -> s { _sDescription = a })++-- | Indicates whether the snapshot is encrypted.+sEncrypted :: Lens' Snapshot Bool+sEncrypted = lens _sEncrypted (\s a -> s { _sEncrypted = a })++-- | The full ARN of the AWS Key Management Service (KMS) master key 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 })++-- | The AWS account alias (for example, 'amazon', 'self') or AWS account ID that owns+-- the snapshot.+sOwnerAlias :: Lens' Snapshot (Maybe Text)+sOwnerAlias = lens _sOwnerAlias (\s a -> s { _sOwnerAlias = a })++-- | The AWS account ID of the Amazon EBS snapshot owner.+sOwnerId :: Lens' Snapshot Text+sOwnerId = lens _sOwnerId (\s a -> s { _sOwnerId = a })++-- | The progress of the snapshot, as a percentage.+sProgress :: Lens' Snapshot Text+sProgress = lens _sProgress (\s a -> s { _sProgress = a })++-- | The ID of the snapshot.+sSnapshotId :: Lens' Snapshot Text+sSnapshotId = lens _sSnapshotId (\s a -> s { _sSnapshotId = a })++-- | The time stamp when the snapshot was initiated.+sStartTime :: Lens' Snapshot UTCTime+sStartTime = lens _sStartTime (\s a -> s { _sStartTime = a }) . _Time++-- | The snapshot state.+sState :: Lens' Snapshot SnapshotState+sState = lens _sState (\s a -> s { _sState = a })++-- | Any tags assigned to the snapshot.+sTags :: Lens' Snapshot [Tag]+sTags = lens _sTags (\s a -> s { _sTags = a }) . _List++-- | The ID of the volume.+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 })++instance FromXML Snapshot where+ parseXML x = Snapshot+ <$> x .@ "description"+ <*> x .@ "encrypted"+ <*> x .@? "kmsKeyId"+ <*> x .@? "ownerAlias"+ <*> x .@ "ownerId"+ <*> x .@ "progress"+ <*> x .@ "snapshotId"+ <*> x .@ "startTime"+ <*> x .@ "status"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "volumeId"+ <*> x .@ "volumeSize"++instance ToQuery Snapshot where+ toQuery Snapshot{..} = mconcat+ [ "Description" =? _sDescription+ , "Encrypted" =? _sEncrypted+ , "KmsKeyId" =? _sKmsKeyId+ , "OwnerAlias" =? _sOwnerAlias+ , "OwnerId" =? _sOwnerId+ , "Progress" =? _sProgress+ , "SnapshotId" =? _sSnapshotId+ , "StartTime" =? _sStartTime+ , "Status" =? _sState+ , "TagSet" `toQueryList` _sTags+ , "VolumeId" =? _sVolumeId+ , "VolumeSize" =? _sVolumeSize+ ]++data SpotInstanceStateFault = SpotInstanceStateFault+ { _sisfCode :: Maybe Text+ , _sisfMessage :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'SpotInstanceStateFault' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sisfCode' @::@ 'Maybe' 'Text'+--+-- * 'sisfMessage' @::@ 'Maybe' 'Text'+--+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 ToQuery SpotInstanceStateFault where+ toQuery SpotInstanceStateFault{..} = mconcat+ [ "Code" =? _sisfCode+ , "Message" =? _sisfMessage+ ]++data TagDescription = TagDescription+ { _tdKey :: Text+ , _tdResourceId :: Text+ , _tdResourceType :: ResourceType+ , _tdValue :: Text+ } deriving (Eq, Read, Show)++-- | 'TagDescription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tdKey' @::@ 'Text'+--+-- * 'tdResourceId' @::@ 'Text'+--+-- * 'tdResourceType' @::@ 'ResourceType'+--+-- * 'tdValue' @::@ 'Text'+--+tagDescription :: Text -- ^ 'tdResourceId'+ -> ResourceType -- ^ 'tdResourceType'+ -> Text -- ^ 'tdKey'+ -> Text -- ^ 'tdValue'+ -> TagDescription+tagDescription p1 p2 p3 p4 = TagDescription+ { _tdResourceId = p1+ , _tdResourceType = p2+ , _tdKey = p3+ , _tdValue = p4+ }++-- | The tag key.+tdKey :: Lens' TagDescription Text+tdKey = lens _tdKey (\s a -> s { _tdKey = a })++-- | 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 value.+tdValue :: Lens' TagDescription Text+tdValue = lens _tdValue (\s a -> s { _tdValue = a })++instance FromXML TagDescription where+ parseXML x = TagDescription+ <$> x .@ "key"+ <*> x .@ "resourceId"+ <*> x .@ "resourceType"+ <*> x .@ "value"++instance ToQuery TagDescription where+ toQuery TagDescription{..} = mconcat+ [ "Key" =? _tdKey+ , "ResourceId" =? _tdResourceId+ , "ResourceType" =? _tdResourceType+ , "Value" =? _tdValue+ ]++data GroupIdentifier = GroupIdentifier+ { _giGroupId :: Maybe Text+ , _giGroupName :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'GroupIdentifier' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'giGroupId' @::@ 'Maybe' 'Text'+--+-- * 'giGroupName' @::@ 'Maybe' 'Text'+--+groupIdentifier :: GroupIdentifier+groupIdentifier = GroupIdentifier+ { _giGroupName = Nothing+ , _giGroupId = 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 ToQuery GroupIdentifier where+ toQuery GroupIdentifier{..} = mconcat+ [ "GroupId" =? _giGroupId+ , "GroupName" =? _giGroupName+ ]++data VpnStaticRouteSource+ = Static -- ^ Static+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VpnStaticRouteSource++instance FromText VpnStaticRouteSource where+ parser = takeLowerText >>= \case+ "static" -> pure Static+ e -> fail $+ "Failure parsing VpnStaticRouteSource from " ++ show e++instance ToText VpnStaticRouteSource where+ toText Static = "Static"++instance ToByteString VpnStaticRouteSource+instance ToHeader VpnStaticRouteSource+instance ToQuery VpnStaticRouteSource++instance FromXML VpnStaticRouteSource where+ parseXML = parseXMLText "VpnStaticRouteSource"++data ReservedInstancesListing = ReservedInstancesListing+ { _rilClientToken :: Maybe Text+ , _rilCreateDate :: Maybe ISO8601+ , _rilInstanceCounts :: List "item" InstanceCount+ , _rilPriceSchedules :: List "item" PriceSchedule+ , _rilReservedInstancesId :: Maybe Text+ , _rilReservedInstancesListingId :: Maybe Text+ , _rilStatus :: Maybe ListingStatus+ , _rilStatusMessage :: Maybe Text+ , _rilTags :: List "item" Tag+ , _rilUpdateDate :: Maybe ISO8601+ } deriving (Eq, Read, Show)++-- | 'ReservedInstancesListing' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rilClientToken' @::@ 'Maybe' 'Text'+--+-- * 'rilCreateDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'rilInstanceCounts' @::@ ['InstanceCount']+--+-- * 'rilPriceSchedules' @::@ ['PriceSchedule']+--+-- * 'rilReservedInstancesId' @::@ 'Maybe' 'Text'+--+-- * 'rilReservedInstancesListingId' @::@ 'Maybe' 'Text'+--+-- * 'rilStatus' @::@ 'Maybe' 'ListingStatus'+--+-- * 'rilStatusMessage' @::@ 'Maybe' 'Text'+--+-- * 'rilTags' @::@ ['Tag']+--+-- * 'rilUpdateDate' @::@ 'Maybe' 'UTCTime'+--+reservedInstancesListing :: ReservedInstancesListing+reservedInstancesListing = ReservedInstancesListing+ { _rilReservedInstancesListingId = Nothing+ , _rilReservedInstancesId = Nothing+ , _rilCreateDate = Nothing+ , _rilUpdateDate = Nothing+ , _rilStatus = Nothing+ , _rilStatusMessage = Nothing+ , _rilInstanceCounts = mempty+ , _rilPriceSchedules = mempty+ , _rilTags = mempty+ , _rilClientToken = Nothing+ }++-- | The idempotency token you provided when you created the listing.+rilClientToken :: Lens' ReservedInstancesListing (Maybe Text)+rilClientToken = lens _rilClientToken (\s a -> s { _rilClientToken = a })++-- | The time the listing was created.+rilCreateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)+rilCreateDate = lens _rilCreateDate (\s a -> s { _rilCreateDate = a }) . mapping _Time++-- | The number of instances in this state.+rilInstanceCounts :: Lens' ReservedInstancesListing [InstanceCount]+rilInstanceCounts =+ lens _rilInstanceCounts (\s a -> s { _rilInstanceCounts = a })+ . _List++-- | The price of the Reserved Instance listing.+rilPriceSchedules :: Lens' ReservedInstancesListing [PriceSchedule]+rilPriceSchedules =+ lens _rilPriceSchedules (\s a -> s { _rilPriceSchedules = a })+ . _List++-- | The ID of the Reserved Instance.+rilReservedInstancesId :: Lens' ReservedInstancesListing (Maybe Text)+rilReservedInstancesId =+ lens _rilReservedInstancesId (\s a -> s { _rilReservedInstancesId = a })++-- | The ID of the Reserved Instance listing.+rilReservedInstancesListingId :: Lens' ReservedInstancesListing (Maybe Text)+rilReservedInstancesListingId =+ lens _rilReservedInstancesListingId+ (\s a -> s { _rilReservedInstancesListingId = a })++-- | The status of the Reserved Instance listing.+rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)+rilStatus = lens _rilStatus (\s a -> s { _rilStatus = a })++-- | 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 })++-- | Any tags assigned to the resource.+rilTags :: Lens' ReservedInstancesListing [Tag]+rilTags = lens _rilTags (\s a -> s { _rilTags = a }) . _List++-- | The last modified timestamp of the listing.+rilUpdateDate :: Lens' ReservedInstancesListing (Maybe UTCTime)+rilUpdateDate = lens _rilUpdateDate (\s a -> s { _rilUpdateDate = a }) . mapping _Time++instance FromXML ReservedInstancesListing where+ parseXML x = ReservedInstancesListing+ <$> x .@? "clientToken"+ <*> x .@? "createDate"+ <*> x .@? "instanceCounts" .!@ mempty+ <*> x .@? "priceSchedules" .!@ mempty+ <*> x .@? "reservedInstancesId"+ <*> x .@? "reservedInstancesListingId"+ <*> x .@? "status"+ <*> x .@? "statusMessage"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "updateDate"++instance ToQuery ReservedInstancesListing where+ toQuery ReservedInstancesListing{..} = mconcat+ [ "ClientToken" =? _rilClientToken+ , "CreateDate" =? _rilCreateDate+ , "InstanceCounts" `toQueryList` _rilInstanceCounts+ , "PriceSchedules" `toQueryList` _rilPriceSchedules+ , "ReservedInstancesId" =? _rilReservedInstancesId+ , "ReservedInstancesListingId" =? _rilReservedInstancesListingId+ , "Status" =? _rilStatus+ , "StatusMessage" =? _rilStatusMessage+ , "TagSet" `toQueryList` _rilTags+ , "UpdateDate" =? _rilUpdateDate+ ]++data InstanceLifecycleType+ = Spot -- ^ spot+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable InstanceLifecycleType++instance FromText InstanceLifecycleType where+ parser = takeLowerText >>= \case+ "spot" -> pure Spot+ e -> fail $+ "Failure parsing InstanceLifecycleType from " ++ show e++instance ToText InstanceLifecycleType where+ toText Spot = "spot"++instance ToByteString InstanceLifecycleType+instance ToHeader InstanceLifecycleType+instance ToQuery InstanceLifecycleType++instance FromXML InstanceLifecycleType where+ parseXML = parseXMLText "InstanceLifecycleType"++data VirtualizationType+ = Hvm -- ^ hvm+ | Paravirtual -- ^ paravirtual+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VirtualizationType++instance FromText VirtualizationType where+ parser = takeLowerText >>= \case+ "hvm" -> pure Hvm+ "paravirtual" -> pure Paravirtual+ e -> fail $+ "Failure parsing VirtualizationType from " ++ show e++instance ToText VirtualizationType where+ toText = \case+ Hvm -> "hvm"+ Paravirtual -> "paravirtual"++instance ToByteString VirtualizationType+instance ToHeader VirtualizationType+instance ToQuery VirtualizationType++instance FromXML VirtualizationType where+ parseXML = parseXMLText "VirtualizationType"++data NetworkInterfaceStatus+ = Attaching -- ^ attaching+ | Available -- ^ available+ | Detaching -- ^ detaching+ | InUse -- ^ in-use+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable NetworkInterfaceStatus++instance FromText NetworkInterfaceStatus where+ parser = takeLowerText >>= \case+ "attaching" -> pure Attaching+ "available" -> pure Available+ "detaching" -> pure Detaching+ "in-use" -> pure InUse+ e -> fail $+ "Failure parsing NetworkInterfaceStatus from " ++ show e++instance ToText NetworkInterfaceStatus where+ toText = \case+ Attaching -> "attaching"+ Available -> "available"+ Detaching -> "detaching"+ InUse -> "in-use"++instance ToByteString NetworkInterfaceStatus+instance ToHeader NetworkInterfaceStatus+instance ToQuery NetworkInterfaceStatus++instance FromXML NetworkInterfaceStatus where+ parseXML = parseXMLText "NetworkInterfaceStatus"++data PlatformValues+ = Windows -- ^ Windows+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable PlatformValues++instance FromText PlatformValues where+ parser = takeLowerText >>= \case+ "windows" -> pure Windows+ e -> fail $+ "Failure parsing PlatformValues from " ++ show e++instance ToText PlatformValues where+ toText Windows = "Windows"++instance ToByteString PlatformValues+instance ToHeader PlatformValues+instance ToQuery PlatformValues++instance FromXML PlatformValues where+ parseXML = parseXMLText "PlatformValues"++data CreateVolumePermission = CreateVolumePermission+ { _cvpGroup :: Maybe PermissionGroup+ , _cvpUserId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'CreateVolumePermission' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cvpGroup' @::@ 'Maybe' 'PermissionGroup'+--+-- * 'cvpUserId' @::@ 'Maybe' 'Text'+--+createVolumePermission :: CreateVolumePermission+createVolumePermission = CreateVolumePermission+ { _cvpUserId = Nothing+ , _cvpGroup = 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 ToQuery CreateVolumePermission where+ toQuery CreateVolumePermission{..} = mconcat+ [ "Group" =? _cvpGroup+ , "UserId" =? _cvpUserId+ ]++data NetworkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges+ { _niacAttachmentId :: Maybe Text+ , _niacDeleteOnTermination :: Maybe Bool+ } deriving (Eq, Ord, Read, Show)++-- | 'NetworkInterfaceAttachmentChanges' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'niacAttachmentId' @::@ 'Maybe' 'Text'+--+-- * 'niacDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+networkInterfaceAttachmentChanges :: NetworkInterfaceAttachmentChanges+networkInterfaceAttachmentChanges = NetworkInterfaceAttachmentChanges+ { _niacAttachmentId = Nothing+ , _niacDeleteOnTermination = Nothing+ }++-- | The ID of the network interface attachment.+niacAttachmentId :: Lens' NetworkInterfaceAttachmentChanges (Maybe Text)+niacAttachmentId = lens _niacAttachmentId (\s a -> s { _niacAttachmentId = a })++-- | 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 })++instance FromXML NetworkInterfaceAttachmentChanges where+ parseXML x = NetworkInterfaceAttachmentChanges+ <$> x .@? "attachmentId"+ <*> x .@? "deleteOnTermination"++instance ToQuery NetworkInterfaceAttachmentChanges where+ toQuery NetworkInterfaceAttachmentChanges{..} = mconcat+ [ "AttachmentId" =? _niacAttachmentId+ , "DeleteOnTermination" =? _niacDeleteOnTermination+ ]++data RecurringChargeFrequency+ = Hourly -- ^ Hourly+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable RecurringChargeFrequency++instance FromText RecurringChargeFrequency where+ parser = takeLowerText >>= \case+ "hourly" -> pure Hourly+ e -> fail $+ "Failure parsing RecurringChargeFrequency from " ++ show e++instance ToText RecurringChargeFrequency where+ toText Hourly = "Hourly"++instance ToByteString RecurringChargeFrequency+instance ToHeader RecurringChargeFrequency+instance ToQuery RecurringChargeFrequency++instance FromXML RecurringChargeFrequency where+ parseXML = parseXMLText "RecurringChargeFrequency"++data DhcpOptions = DhcpOptions+ { _doDhcpConfigurations :: List "item" DhcpConfiguration+ , _doDhcpOptionsId :: Maybe Text+ , _doTags :: List "item" Tag+ } deriving (Eq, Read, Show)++-- | 'DhcpOptions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'doDhcpConfigurations' @::@ ['DhcpConfiguration']+--+-- * 'doDhcpOptionsId' @::@ 'Maybe' 'Text'+--+-- * 'doTags' @::@ ['Tag']+--+dhcpOptions :: DhcpOptions+dhcpOptions = DhcpOptions+ { _doDhcpOptionsId = Nothing+ , _doDhcpConfigurations = mempty+ , _doTags = mempty+ }++-- | One or more DHCP options in the set.+doDhcpConfigurations :: Lens' DhcpOptions [DhcpConfiguration]+doDhcpConfigurations =+ lens _doDhcpConfigurations (\s a -> s { _doDhcpConfigurations = a })+ . _List++-- | 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 }) . _List++instance FromXML DhcpOptions where+ parseXML x = DhcpOptions+ <$> x .@? "dhcpConfigurationSet" .!@ mempty+ <*> x .@? "dhcpOptionsId"+ <*> x .@? "tagSet" .!@ mempty++instance ToQuery DhcpOptions where+ toQuery DhcpOptions{..} = mconcat+ [ "DhcpConfigurationSet" `toQueryList` _doDhcpConfigurations+ , "DhcpOptionsId" =? _doDhcpOptionsId+ , "TagSet" `toQueryList` _doTags+ ]++data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification+ { _inisAssociatePublicIpAddress :: Maybe Bool+ , _inisDeleteOnTermination :: Maybe Bool+ , _inisDescription :: Maybe Text+ , _inisDeviceIndex :: Maybe Int+ , _inisGroups :: List "SecurityGroupId" Text+ , _inisNetworkInterfaceId :: Maybe Text+ , _inisPrivateIpAddress :: Maybe Text+ , _inisPrivateIpAddresses :: List "item" PrivateIpAddressSpecification+ , _inisSecondaryPrivateIpAddressCount :: Maybe Int+ , _inisSubnetId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'InstanceNetworkInterfaceSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'inisAssociatePublicIpAddress' @::@ 'Maybe' 'Bool'+--+-- * 'inisDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'inisDescription' @::@ 'Maybe' 'Text'+--+-- * 'inisDeviceIndex' @::@ 'Maybe' 'Int'+--+-- * 'inisGroups' @::@ ['Text']+--+-- * 'inisNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'inisPrivateIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'inisPrivateIpAddresses' @::@ ['PrivateIpAddressSpecification']+--+-- * 'inisSecondaryPrivateIpAddressCount' @::@ 'Maybe' 'Int'+--+-- * 'inisSubnetId' @::@ 'Maybe' 'Text'+--+instanceNetworkInterfaceSpecification :: InstanceNetworkInterfaceSpecification+instanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification+ { _inisNetworkInterfaceId = Nothing+ , _inisDeviceIndex = Nothing+ , _inisSubnetId = Nothing+ , _inisDescription = Nothing+ , _inisPrivateIpAddress = Nothing+ , _inisGroups = mempty+ , _inisDeleteOnTermination = Nothing+ , _inisPrivateIpAddresses = mempty+ , _inisSecondaryPrivateIpAddressCount = Nothing+ , _inisAssociatePublicIpAddress = Nothing+ }++-- | Indicates whether to assign a public IP 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+-- luanching into a default subnet, the default value is 'true'.+inisAssociatePublicIpAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Bool)+inisAssociatePublicIpAddress =+ lens _inisAssociatePublicIpAddress+ (\s a -> s { _inisAssociatePublicIpAddress = a })++-- | 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 })++-- | 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 })++-- | 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 }) . _List++-- | The ID of the network interface.+inisNetworkInterfaceId :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisNetworkInterfaceId =+ lens _inisNetworkInterfaceId (\s a -> s { _inisNetworkInterfaceId = a })++-- | The private IP address of the network interface. Applies only if creating a+-- network interface when launching an instance.+inisPrivateIpAddress :: Lens' InstanceNetworkInterfaceSpecification (Maybe Text)+inisPrivateIpAddress =+ lens _inisPrivateIpAddress (\s a -> s { _inisPrivateIpAddress = a })++-- | One or more private IP addresses to assign to the network interface. Only one+-- private IP address can be designated as primary.+inisPrivateIpAddresses :: Lens' InstanceNetworkInterfaceSpecification [PrivateIpAddressSpecification]+inisPrivateIpAddresses =+ lens _inisPrivateIpAddresses (\s a -> s { _inisPrivateIpAddresses = a })+ . _List++-- | The number of secondary private IP addresses. You can't specify this option+-- and specify more than one private IP address using the private IP addresses+-- option.+inisSecondaryPrivateIpAddressCount :: Lens' InstanceNetworkInterfaceSpecification (Maybe Int)+inisSecondaryPrivateIpAddressCount =+ lens _inisSecondaryPrivateIpAddressCount+ (\s a -> s { _inisSecondaryPrivateIpAddressCount = 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 })++instance FromXML InstanceNetworkInterfaceSpecification where+ parseXML x = InstanceNetworkInterfaceSpecification+ <$> x .@? "associatePublicIpAddress"+ <*> x .@? "deleteOnTermination"+ <*> x .@? "description"+ <*> x .@? "deviceIndex"+ <*> x .@? "SecurityGroupId" .!@ mempty+ <*> x .@? "networkInterfaceId"+ <*> x .@? "privateIpAddress"+ <*> x .@? "privateIpAddressesSet" .!@ mempty+ <*> x .@? "secondaryPrivateIpAddressCount"+ <*> x .@? "subnetId"++instance ToQuery InstanceNetworkInterfaceSpecification where+ toQuery InstanceNetworkInterfaceSpecification{..} = mconcat+ [ "AssociatePublicIpAddress" =? _inisAssociatePublicIpAddress+ , "DeleteOnTermination" =? _inisDeleteOnTermination+ , "Description" =? _inisDescription+ , "DeviceIndex" =? _inisDeviceIndex+ , "SecurityGroupId" `toQueryList` _inisGroups+ , "NetworkInterfaceId" =? _inisNetworkInterfaceId+ , "PrivateIpAddress" =? _inisPrivateIpAddress+ , "PrivateIpAddressesSet" `toQueryList` _inisPrivateIpAddresses+ , "SecondaryPrivateIpAddressCount" =? _inisSecondaryPrivateIpAddressCount+ , "SubnetId" =? _inisSubnetId+ ]++data VolumeState+ = VSAvailable -- ^ available+ | VSCreating -- ^ creating+ | VSDeleted -- ^ deleted+ | VSDeleting -- ^ deleting+ | VSError -- ^ error+ | VSInUse -- ^ in-use+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VolumeState++instance FromText VolumeState where+ parser = takeLowerText >>= \case+ "available" -> pure VSAvailable+ "creating" -> pure VSCreating+ "deleted" -> pure VSDeleted+ "deleting" -> pure VSDeleting+ "error" -> pure VSError+ "in-use" -> pure VSInUse+ e -> fail $+ "Failure parsing VolumeState from " ++ show e++instance ToText VolumeState where+ toText = \case+ VSAvailable -> "available"+ VSCreating -> "creating"+ VSDeleted -> "deleted"+ VSDeleting -> "deleting"+ VSError -> "error"+ VSInUse -> "in-use"++instance ToByteString VolumeState+instance ToHeader VolumeState+instance ToQuery VolumeState++instance FromXML VolumeState where+ parseXML = parseXMLText "VolumeState"++newtype AttributeValue = AttributeValue+ { _avValue :: Maybe Text+ } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'AttributeValue' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'avValue' @::@ 'Maybe' 'Text'+--+attributeValue :: AttributeValue+attributeValue = AttributeValue+ { _avValue = Nothing+ }++-- | Valid values are case-sensitive and vary by action.+avValue :: Lens' AttributeValue (Maybe Text)+avValue = lens _avValue (\s a -> s { _avValue = a })++instance FromXML AttributeValue where+ parseXML x = AttributeValue+ <$> x .@? "value"++instance ToQuery AttributeValue where+ toQuery AttributeValue{..} = mconcat+ [ "Value" =? _avValue+ ]++data PrivateIpAddressSpecification = PrivateIpAddressSpecification+ { _piasPrimary :: Maybe Bool+ , _piasPrivateIpAddress :: Text+ } deriving (Eq, Ord, Read, Show)++-- | 'PrivateIpAddressSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'piasPrimary' @::@ 'Maybe' 'Bool'+--+-- * 'piasPrivateIpAddress' @::@ 'Text'+--+privateIpAddressSpecification :: Text -- ^ 'piasPrivateIpAddress'+ -> PrivateIpAddressSpecification+privateIpAddressSpecification p1 = PrivateIpAddressSpecification+ { _piasPrivateIpAddress = p1+ , _piasPrimary = Nothing+ }++-- | Indicates whether the private IP address is the primary private IP address.+-- Only one IP address can be designated as primary.+piasPrimary :: Lens' PrivateIpAddressSpecification (Maybe Bool)+piasPrimary = lens _piasPrimary (\s a -> s { _piasPrimary = a })++-- | The private IP 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 ToQuery PrivateIpAddressSpecification where+ toQuery PrivateIpAddressSpecification{..} = mconcat+ [ "Primary" =? _piasPrimary+ , "PrivateIpAddress" =? _piasPrivateIpAddress+ ]++data Image = Image+ { _iArchitecture :: ArchitectureValues+ , _iBlockDeviceMappings :: List "item" BlockDeviceMapping+ , _iCreationDate :: Maybe Text+ , _iDescription :: Maybe Text+ , _iHypervisor :: HypervisorType+ , _iImageId :: Text+ , _iImageLocation :: Text+ , _iImageOwnerAlias :: Maybe Text+ , _iImageType :: ImageTypeValues+ , _iKernelId :: Maybe Text+ , _iName :: Maybe Text+ , _iOwnerId :: Text+ , _iPlatform :: Maybe PlatformValues+ , _iProductCodes :: List "item" ProductCode+ , _iPublic :: Bool+ , _iRamdiskId :: Maybe Text+ , _iRootDeviceName :: Maybe Text+ , _iRootDeviceType :: DeviceType+ , _iSriovNetSupport :: Maybe Text+ , _iState :: ImageState+ , _iStateReason :: Maybe StateReason+ , _iTags :: List "item" Tag+ , _iVirtualizationType :: VirtualizationType+ } deriving (Eq, Read, Show)++-- | 'Image' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iArchitecture' @::@ 'ArchitectureValues'+--+-- * 'iBlockDeviceMappings' @::@ ['BlockDeviceMapping']+--+-- * 'iCreationDate' @::@ 'Maybe' 'Text'+--+-- * 'iDescription' @::@ 'Maybe' 'Text'+--+-- * 'iHypervisor' @::@ 'HypervisorType'+--+-- * 'iImageId' @::@ 'Text'+--+-- * 'iImageLocation' @::@ 'Text'+--+-- * 'iImageOwnerAlias' @::@ 'Maybe' 'Text'+--+-- * 'iImageType' @::@ 'ImageTypeValues'+--+-- * 'iKernelId' @::@ 'Maybe' 'Text'+--+-- * 'iName' @::@ 'Maybe' 'Text'+--+-- * 'iOwnerId' @::@ 'Text'+--+-- * 'iPlatform' @::@ 'Maybe' 'PlatformValues'+--+-- * 'iProductCodes' @::@ ['ProductCode']+--+-- * 'iPublic' @::@ 'Bool'+--+-- * 'iRamdiskId' @::@ 'Maybe' 'Text'+--+-- * 'iRootDeviceName' @::@ 'Maybe' 'Text'+--+-- * 'iRootDeviceType' @::@ 'DeviceType'+--+-- * 'iSriovNetSupport' @::@ 'Maybe' 'Text'+--+-- * 'iState' @::@ 'ImageState'+--+-- * 'iStateReason' @::@ 'Maybe' 'StateReason'+--+-- * 'iTags' @::@ ['Tag']+--+-- * 'iVirtualizationType' @::@ 'VirtualizationType'+--+image :: Text -- ^ 'iImageId'+ -> Text -- ^ 'iImageLocation'+ -> ImageState -- ^ 'iState'+ -> Text -- ^ 'iOwnerId'+ -> Bool -- ^ 'iPublic'+ -> ArchitectureValues -- ^ 'iArchitecture'+ -> ImageTypeValues -- ^ 'iImageType'+ -> DeviceType -- ^ 'iRootDeviceType'+ -> VirtualizationType -- ^ 'iVirtualizationType'+ -> HypervisorType -- ^ 'iHypervisor'+ -> Image+image p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 = Image+ { _iImageId = p1+ , _iImageLocation = p2+ , _iState = p3+ , _iOwnerId = p4+ , _iPublic = p5+ , _iArchitecture = p6+ , _iImageType = p7+ , _iRootDeviceType = p8+ , _iVirtualizationType = p9+ , _iHypervisor = p10+ , _iCreationDate = Nothing+ , _iProductCodes = mempty+ , _iKernelId = Nothing+ , _iRamdiskId = Nothing+ , _iPlatform = Nothing+ , _iSriovNetSupport = Nothing+ , _iStateReason = Nothing+ , _iImageOwnerAlias = Nothing+ , _iName = Nothing+ , _iDescription = Nothing+ , _iRootDeviceName = Nothing+ , _iBlockDeviceMappings = mempty+ , _iTags = mempty+ }++-- | The architecture of the image.+iArchitecture :: Lens' Image ArchitectureValues+iArchitecture = lens _iArchitecture (\s a -> s { _iArchitecture = a })++-- | Any block device mapping entries.+iBlockDeviceMappings :: Lens' Image [BlockDeviceMapping]+iBlockDeviceMappings =+ lens _iBlockDeviceMappings (\s a -> s { _iBlockDeviceMappings = a })+ . _List++-- | The date and time the image was created.+iCreationDate :: Lens' Image (Maybe Text)+iCreationDate = lens _iCreationDate (\s a -> s { _iCreationDate = 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 })++-- | The hypervisor type of the image.+iHypervisor :: Lens' Image HypervisorType+iHypervisor = lens _iHypervisor (\s a -> s { _iHypervisor = a })++-- | 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 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 type of image.+iImageType :: Lens' Image ImageTypeValues+iImageType = lens _iImageType (\s a -> s { _iImageType = 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 name of the AMI that was provided during image creation.+iName :: Lens' Image (Maybe Text)+iName = lens _iName (\s a -> s { _iName = a })++-- | The AWS account ID of the image owner.+iOwnerId :: Lens' Image Text+iOwnerId = lens _iOwnerId (\s a -> s { _iOwnerId = a })++-- | The value is 'Windows' for Windows AMIs; otherwise blank.+iPlatform :: Lens' Image (Maybe PlatformValues)+iPlatform = lens _iPlatform (\s a -> s { _iPlatform = a })++-- | Any product codes associated with the AMI.+iProductCodes :: Lens' Image [ProductCode]+iProductCodes = lens _iProductCodes (\s a -> s { _iProductCodes = a }) . _List++-- | 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 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 device name of the root device (for example, /dev/sda1 or xvda).+iRootDeviceName :: Lens' Image (Maybe Text)+iRootDeviceName = lens _iRootDeviceName (\s a -> s { _iRootDeviceName = a })++-- | The type of root device used by the AMI. The AMI can use an Amazon EBS volume+-- or an instance store volume.+iRootDeviceType :: Lens' Image DeviceType+iRootDeviceType = lens _iRootDeviceType (\s a -> s { _iRootDeviceType = a })++-- | Specifies whether enhanced networking is enabled.+iSriovNetSupport :: Lens' Image (Maybe Text)+iSriovNetSupport = lens _iSriovNetSupport (\s a -> s { _iSriovNetSupport = 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 reason for the state change.+iStateReason :: Lens' Image (Maybe StateReason)+iStateReason = lens _iStateReason (\s a -> s { _iStateReason = a })++-- | Any tags assigned to the image.+iTags :: Lens' Image [Tag]+iTags = lens _iTags (\s a -> s { _iTags = a }) . _List++-- | The type of virtualization of the AMI.+iVirtualizationType :: Lens' Image VirtualizationType+iVirtualizationType =+ lens _iVirtualizationType (\s a -> s { _iVirtualizationType = a })++instance FromXML Image where+ parseXML x = Image+ <$> x .@ "architecture"+ <*> x .@? "blockDeviceMapping" .!@ mempty+ <*> x .@? "creationDate"+ <*> x .@? "description"+ <*> x .@ "hypervisor"+ <*> x .@ "imageId"+ <*> x .@ "imageLocation"+ <*> x .@? "imageOwnerAlias"+ <*> x .@ "imageType"+ <*> x .@? "kernelId"+ <*> x .@? "name"+ <*> x .@ "imageOwnerId"+ <*> x .@? "platform"+ <*> x .@? "productCodes" .!@ mempty+ <*> x .@ "isPublic"+ <*> x .@? "ramdiskId"+ <*> x .@? "rootDeviceName"+ <*> x .@ "rootDeviceType"+ <*> x .@? "sriovNetSupport"+ <*> x .@ "imageState"+ <*> x .@? "stateReason"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "virtualizationType"++instance ToQuery Image where+ toQuery Image{..} = mconcat+ [ "Architecture" =? _iArchitecture+ , "BlockDeviceMapping" `toQueryList` _iBlockDeviceMappings+ , "CreationDate" =? _iCreationDate+ , "Description" =? _iDescription+ , "Hypervisor" =? _iHypervisor+ , "ImageId" =? _iImageId+ , "ImageLocation" =? _iImageLocation+ , "ImageOwnerAlias" =? _iImageOwnerAlias+ , "ImageType" =? _iImageType+ , "KernelId" =? _iKernelId+ , "Name" =? _iName+ , "ImageOwnerId" =? _iOwnerId+ , "Platform" =? _iPlatform+ , "ProductCodes" `toQueryList` _iProductCodes+ , "IsPublic" =? _iPublic+ , "RamdiskId" =? _iRamdiskId+ , "RootDeviceName" =? _iRootDeviceName+ , "RootDeviceType" =? _iRootDeviceType+ , "SriovNetSupport" =? _iSriovNetSupport+ , "ImageState" =? _iState+ , "StateReason" =? _iStateReason+ , "TagSet" `toQueryList` _iTags+ , "VirtualizationType" =? _iVirtualizationType+ ]++data DhcpConfiguration = DhcpConfiguration+ { _dcKey :: Maybe Text+ , _dcValues :: List "item" AttributeValue+ } deriving (Eq, Read, Show)++-- | 'DhcpConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcKey' @::@ 'Maybe' 'Text'+--+-- * 'dcValues' @::@ ['AttributeValue']+--+dhcpConfiguration :: DhcpConfiguration+dhcpConfiguration = DhcpConfiguration+ { _dcKey = Nothing+ , _dcValues = mempty+ }++-- | The name of a DHCP option.+dcKey :: Lens' DhcpConfiguration (Maybe Text)+dcKey = lens _dcKey (\s a -> s { _dcKey = a })++-- | One or more values for the DHCP option.+dcValues :: Lens' DhcpConfiguration [AttributeValue]+dcValues = lens _dcValues (\s a -> s { _dcValues = a }) . _List++instance FromXML DhcpConfiguration where+ parseXML x = DhcpConfiguration+ <$> x .@? "key"+ <*> x .@? "valueSet" .!@ mempty++instance ToQuery DhcpConfiguration where+ toQuery DhcpConfiguration{..} = mconcat+ [ "Key" =? _dcKey+ , "ValueSet" `toQueryList` _dcValues+ ]++data Tag = Tag+ { _tagKey :: Text+ , _tagValue :: Text+ } deriving (Eq, Ord, Read, Show)++-- | 'Tag' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tagKey' @::@ 'Text'+--+-- * 'tagValue' @::@ 'Text'+--+tag :: Text -- ^ 'tagKey'+ -> Text -- ^ 'tagValue'+ -> Tag+tag p1 p2 = Tag+ { _tagKey = p1+ , _tagValue = p2+ }++-- | 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 ToQuery Tag where+ toQuery Tag{..} = mconcat+ [ "Key" =? _tagKey+ , "Value" =? _tagValue+ ]++data AccountAttributeName+ = DefaultVpc -- ^ default-vpc+ | SupportedPlatforms -- ^ supported-platforms+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable AccountAttributeName++instance FromText AccountAttributeName where+ parser = takeLowerText >>= \case+ "default-vpc" -> pure DefaultVpc+ "supported-platforms" -> pure SupportedPlatforms+ e -> fail $+ "Failure parsing AccountAttributeName from " ++ show e++instance ToText AccountAttributeName where+ toText = \case+ DefaultVpc -> "default-vpc"+ SupportedPlatforms -> "supported-platforms"++instance ToByteString AccountAttributeName+instance ToHeader AccountAttributeName+instance ToQuery AccountAttributeName++instance FromXML AccountAttributeName where+ parseXML = parseXMLText "AccountAttributeName"++data NetworkInterfaceAttachment = NetworkInterfaceAttachment+ { _niaAttachTime :: Maybe ISO8601+ , _niaAttachmentId :: Maybe Text+ , _niaDeleteOnTermination :: Maybe Bool+ , _niaDeviceIndex :: Maybe Int+ , _niaInstanceId :: Maybe Text+ , _niaInstanceOwnerId :: Maybe Text+ , _niaStatus :: Maybe AttachmentStatus+ } deriving (Eq, Read, Show)++-- | 'NetworkInterfaceAttachment' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'niaAttachTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'niaAttachmentId' @::@ 'Maybe' 'Text'+--+-- * 'niaDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'niaDeviceIndex' @::@ 'Maybe' 'Int'+--+-- * 'niaInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'niaInstanceOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'niaStatus' @::@ 'Maybe' 'AttachmentStatus'+--+networkInterfaceAttachment :: NetworkInterfaceAttachment+networkInterfaceAttachment = NetworkInterfaceAttachment+ { _niaAttachmentId = Nothing+ , _niaInstanceId = Nothing+ , _niaInstanceOwnerId = Nothing+ , _niaDeviceIndex = Nothing+ , _niaStatus = Nothing+ , _niaAttachTime = Nothing+ , _niaDeleteOnTermination = Nothing+ }++-- | The timestamp indicating when the attachment initiated.+niaAttachTime :: Lens' NetworkInterfaceAttachment (Maybe UTCTime)+niaAttachTime = lens _niaAttachTime (\s a -> s { _niaAttachTime = a }) . mapping _Time++-- | The ID of the network interface attachment.+niaAttachmentId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaAttachmentId = lens _niaAttachmentId (\s a -> s { _niaAttachmentId = 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 device index of the network interface attachment on the instance.+niaDeviceIndex :: Lens' NetworkInterfaceAttachment (Maybe Int)+niaDeviceIndex = lens _niaDeviceIndex (\s a -> s { _niaDeviceIndex = a })++-- | The ID of the instance.+niaInstanceId :: Lens' NetworkInterfaceAttachment (Maybe Text)+niaInstanceId = lens _niaInstanceId (\s a -> s { _niaInstanceId = 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 attachment state.+niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)+niaStatus = lens _niaStatus (\s a -> s { _niaStatus = a })++instance FromXML NetworkInterfaceAttachment where+ parseXML x = NetworkInterfaceAttachment+ <$> x .@? "attachTime"+ <*> x .@? "attachmentId"+ <*> x .@? "deleteOnTermination"+ <*> x .@? "deviceIndex"+ <*> x .@? "instanceId"+ <*> x .@? "instanceOwnerId"+ <*> x .@? "status"++instance ToQuery NetworkInterfaceAttachment where+ toQuery NetworkInterfaceAttachment{..} = mconcat+ [ "AttachTime" =? _niaAttachTime+ , "AttachmentId" =? _niaAttachmentId+ , "DeleteOnTermination" =? _niaDeleteOnTermination+ , "DeviceIndex" =? _niaDeviceIndex+ , "InstanceId" =? _niaInstanceId+ , "InstanceOwnerId" =? _niaInstanceOwnerId+ , "Status" =? _niaStatus+ ]++newtype RunInstancesMonitoringEnabled = RunInstancesMonitoringEnabled+ { _rimeEnabled :: Bool+ } deriving (Eq, Ord, Read, Show, Enum)++-- | 'RunInstancesMonitoringEnabled' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rimeEnabled' @::@ 'Bool'+--+runInstancesMonitoringEnabled :: Bool -- ^ 'rimeEnabled'+ -> RunInstancesMonitoringEnabled+runInstancesMonitoringEnabled p1 = RunInstancesMonitoringEnabled+ { _rimeEnabled = p1+ }++-- | Indicates whether monitoring is enabled for the instance.+rimeEnabled :: Lens' RunInstancesMonitoringEnabled Bool+rimeEnabled = lens _rimeEnabled (\s a -> s { _rimeEnabled = a })++instance FromXML RunInstancesMonitoringEnabled where+ parseXML x = RunInstancesMonitoringEnabled+ <$> x .@ "enabled"++instance ToQuery RunInstancesMonitoringEnabled where+ toQuery RunInstancesMonitoringEnabled{..} = mconcat+ [ "Enabled" =? _rimeEnabled+ ]++data VolumeStatusInfo = VolumeStatusInfo+ { _vsiDetails :: List "item" VolumeStatusDetails+ , _vsiStatus :: Maybe VolumeStatusInfoStatus+ } deriving (Eq, Read, Show)++-- | 'VolumeStatusInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vsiDetails' @::@ ['VolumeStatusDetails']+--+-- * 'vsiStatus' @::@ 'Maybe' 'VolumeStatusInfoStatus'+--+volumeStatusInfo :: VolumeStatusInfo+volumeStatusInfo = VolumeStatusInfo+ { _vsiStatus = Nothing+ , _vsiDetails = mempty+ }++-- | The details of the volume status.+vsiDetails :: Lens' VolumeStatusInfo [VolumeStatusDetails]+vsiDetails = lens _vsiDetails (\s a -> s { _vsiDetails = a }) . _List++-- | The status of the volume.+vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)+vsiStatus = lens _vsiStatus (\s a -> s { _vsiStatus = a })++instance FromXML VolumeStatusInfo where+ parseXML x = VolumeStatusInfo+ <$> x .@? "details" .!@ mempty+ <*> x .@? "status"++instance ToQuery VolumeStatusInfo where+ toQuery VolumeStatusInfo{..} = mconcat+ [ "Details" `toQueryList` _vsiDetails+ , "Status" =? _vsiStatus+ ]++data NetworkInterfaceAssociation = NetworkInterfaceAssociation+ { _niaAllocationId :: Maybe Text+ , _niaAssociationId :: Maybe Text+ , _niaIpOwnerId :: Maybe Text+ , _niaPublicDnsName :: Maybe Text+ , _niaPublicIp :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'NetworkInterfaceAssociation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'niaAllocationId' @::@ 'Maybe' 'Text'+--+-- * 'niaAssociationId' @::@ 'Maybe' 'Text'+--+-- * 'niaIpOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'niaPublicDnsName' @::@ 'Maybe' 'Text'+--+-- * 'niaPublicIp' @::@ 'Maybe' 'Text'+--+networkInterfaceAssociation :: NetworkInterfaceAssociation+networkInterfaceAssociation = NetworkInterfaceAssociation+ { _niaPublicIp = Nothing+ , _niaPublicDnsName = Nothing+ , _niaIpOwnerId = Nothing+ , _niaAllocationId = Nothing+ , _niaAssociationId = Nothing+ }++-- | The allocation ID.+niaAllocationId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaAllocationId = lens _niaAllocationId (\s a -> s { _niaAllocationId = a })++-- | The association ID.+niaAssociationId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaAssociationId = lens _niaAssociationId (\s a -> s { _niaAssociationId = a })++-- | The ID of the Elastic IP address owner.+niaIpOwnerId :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaIpOwnerId = lens _niaIpOwnerId (\s a -> s { _niaIpOwnerId = a })++-- | The public DNS name.+niaPublicDnsName :: Lens' NetworkInterfaceAssociation (Maybe Text)+niaPublicDnsName = lens _niaPublicDnsName (\s a -> s { _niaPublicDnsName = 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 .@? "allocationId"+ <*> x .@? "associationId"+ <*> x .@? "ipOwnerId"+ <*> x .@? "publicDnsName"+ <*> x .@? "publicIp"++instance ToQuery NetworkInterfaceAssociation where+ toQuery NetworkInterfaceAssociation{..} = mconcat+ [ "AllocationId" =? _niaAllocationId+ , "AssociationId" =? _niaAssociationId+ , "IpOwnerId" =? _niaIpOwnerId+ , "PublicDnsName" =? _niaPublicDnsName+ , "PublicIp" =? _niaPublicIp+ ]++data CreateVolumePermissionModifications = CreateVolumePermissionModifications+ { _cvpmAdd :: List "item" CreateVolumePermission+ , _cvpmRemove :: List "item" CreateVolumePermission+ } deriving (Eq, Read, Show)++-- | 'CreateVolumePermissionModifications' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cvpmAdd' @::@ ['CreateVolumePermission']+--+-- * 'cvpmRemove' @::@ ['CreateVolumePermission']+--+createVolumePermissionModifications :: CreateVolumePermissionModifications+createVolumePermissionModifications = CreateVolumePermissionModifications+ { _cvpmAdd = mempty+ , _cvpmRemove = mempty+ }++-- | 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 }) . _List++-- | 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 }) . _List++instance FromXML CreateVolumePermissionModifications where+ parseXML x = CreateVolumePermissionModifications+ <$> x .@? "Add" .!@ mempty+ <*> x .@? "Remove" .!@ mempty++instance ToQuery CreateVolumePermissionModifications where+ toQuery CreateVolumePermissionModifications{..} = mconcat+ [ "Add" `toQueryList` _cvpmAdd+ , "Remove" `toQueryList` _cvpmRemove+ ]++data VpcState+ = VpcStateAvailable -- ^ available+ | VpcStatePending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VpcState++instance FromText VpcState where+ parser = takeLowerText >>= \case+ "available" -> pure VpcStateAvailable+ "pending" -> pure VpcStatePending+ e -> fail $+ "Failure parsing VpcState from " ++ show e++instance ToText VpcState where+ toText = \case+ VpcStateAvailable -> "available"+ VpcStatePending -> "pending"++instance ToByteString VpcState+instance ToHeader VpcState+instance ToQuery VpcState++instance FromXML VpcState where+ parseXML = parseXMLText "VpcState"++data ResourceType+ = RTCustomerGateway -- ^ customer-gateway+ | RTDhcpOptions -- ^ dhcp-options+ | RTImage -- ^ image+ | RTInstance' -- ^ instance+ | RTInternetGateway -- ^ internet-gateway+ | RTNetworkAcl -- ^ network-acl+ | RTNetworkInterface -- ^ network-interface+ | RTReservedInstances -- ^ reserved-instances+ | RTRouteTable -- ^ route-table+ | RTSecurityGroup -- ^ security-group+ | RTSnapshot -- ^ snapshot+ | RTSpotInstancesRequest -- ^ spot-instances-request+ | RTSubnet -- ^ subnet+ | RTVolume -- ^ volume+ | RTVpc -- ^ vpc+ | RTVpnConnection -- ^ vpn-connection+ | RTVpnGateway -- ^ vpn-gateway+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ResourceType++instance FromText ResourceType where+ parser = takeLowerText >>= \case+ "customer-gateway" -> pure RTCustomerGateway+ "dhcp-options" -> pure RTDhcpOptions+ "image" -> pure RTImage+ "instance" -> pure RTInstance'+ "internet-gateway" -> pure RTInternetGateway+ "network-acl" -> pure RTNetworkAcl+ "network-interface" -> pure RTNetworkInterface+ "reserved-instances" -> pure RTReservedInstances+ "route-table" -> pure RTRouteTable+ "security-group" -> pure RTSecurityGroup+ "snapshot" -> pure RTSnapshot+ "spot-instances-request" -> pure RTSpotInstancesRequest+ "subnet" -> pure RTSubnet+ "volume" -> pure RTVolume+ "vpc" -> pure RTVpc+ "vpn-connection" -> pure RTVpnConnection+ "vpn-gateway" -> pure RTVpnGateway+ e -> fail $+ "Failure parsing ResourceType from " ++ show e++instance ToText ResourceType where+ toText = \case+ RTCustomerGateway -> "customer-gateway"+ RTDhcpOptions -> "dhcp-options"+ RTImage -> "image"+ RTInstance' -> "instance"+ RTInternetGateway -> "internet-gateway"+ RTNetworkAcl -> "network-acl"+ RTNetworkInterface -> "network-interface"+ RTReservedInstances -> "reserved-instances"+ RTRouteTable -> "route-table"+ RTSecurityGroup -> "security-group"+ RTSnapshot -> "snapshot"+ RTSpotInstancesRequest -> "spot-instances-request"+ RTSubnet -> "subnet"+ RTVolume -> "volume"+ RTVpc -> "vpc"+ RTVpnConnection -> "vpn-connection"+ RTVpnGateway -> "vpn-gateway"++instance ToByteString ResourceType+instance ToHeader ResourceType+instance ToQuery ResourceType++instance FromXML ResourceType where+ parseXML = parseXMLText "ResourceType"++data ReportStatusType+ = Impaired -- ^ impaired+ | Ok -- ^ ok+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ReportStatusType++instance FromText ReportStatusType where+ parser = takeLowerText >>= \case+ "impaired" -> pure Impaired+ "ok" -> pure Ok+ e -> fail $+ "Failure parsing ReportStatusType from " ++ show e++instance ToText ReportStatusType where+ toText = \case+ Impaired -> "impaired"+ Ok -> "ok"++instance ToByteString ReportStatusType+instance ToHeader ReportStatusType+instance ToQuery ReportStatusType++instance FromXML ReportStatusType where+ parseXML = parseXMLText "ReportStatusType"++data CurrencyCodeValues+ = Usd -- ^ USD+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable CurrencyCodeValues++instance FromText CurrencyCodeValues where+ parser = takeLowerText >>= \case+ "usd" -> pure Usd+ e -> fail $+ "Failure parsing CurrencyCodeValues from " ++ show e++instance ToText CurrencyCodeValues where+ toText Usd = "USD"++instance ToByteString CurrencyCodeValues+instance ToHeader CurrencyCodeValues+instance ToQuery CurrencyCodeValues++instance FromXML CurrencyCodeValues where+ parseXML = parseXMLText "CurrencyCodeValues"++data IcmpTypeCode = IcmpTypeCode+ { _itcCode :: Maybe Int+ , _itcType :: Maybe Int+ } deriving (Eq, Ord, Read, Show)++-- | 'IcmpTypeCode' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'itcCode' @::@ 'Maybe' 'Int'+--+-- * 'itcType' @::@ 'Maybe' 'Int'+--+icmpTypeCode :: IcmpTypeCode+icmpTypeCode = IcmpTypeCode+ { _itcType = Nothing+ , _itcCode = Nothing+ }++-- | The ICMP type. A value of -1 means all types.+itcCode :: Lens' IcmpTypeCode (Maybe Int)+itcCode = lens _itcCode (\s a -> s { _itcCode = a })++-- | The ICMP code. A value of -1 means all codes for the specified ICMP type.+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 ToQuery IcmpTypeCode where+ toQuery IcmpTypeCode{..} = mconcat+ [ "Code" =? _itcCode+ , "Type" =? _itcType+ ]++data InstanceCount = InstanceCount+ { _icInstanceCount :: Maybe Int+ , _icState :: Maybe ListingState+ } deriving (Eq, Read, Show)++-- | 'InstanceCount' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'icInstanceCount' @::@ 'Maybe' 'Int'+--+-- * 'icState' @::@ 'Maybe' 'ListingState'+--+instanceCount :: InstanceCount+instanceCount = InstanceCount+ { _icState = Nothing+ , _icInstanceCount = Nothing+ }++-- | he 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 })++-- | The states of the listed Reserved Instances.+icState :: Lens' InstanceCount (Maybe ListingState)+icState = lens _icState (\s a -> s { _icState = a })++instance FromXML InstanceCount where+ parseXML x = InstanceCount+ <$> x .@? "instanceCount"+ <*> x .@? "state"++instance ToQuery InstanceCount where+ toQuery InstanceCount{..} = mconcat+ [ "InstanceCount" =? _icInstanceCount+ , "State" =? _icState+ ]++data ExportToS3Task = ExportToS3Task+ { _etstContainerFormat :: Maybe ContainerFormat+ , _etstDiskImageFormat :: Maybe DiskImageFormat+ , _etstS3Bucket :: Maybe Text+ , _etstS3Key :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'ExportToS3Task' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'etstContainerFormat' @::@ 'Maybe' 'ContainerFormat'+--+-- * 'etstDiskImageFormat' @::@ 'Maybe' 'DiskImageFormat'+--+-- * 'etstS3Bucket' @::@ 'Maybe' 'Text'+--+-- * 'etstS3Key' @::@ 'Maybe' 'Text'+--+exportToS3Task :: ExportToS3Task+exportToS3Task = ExportToS3Task+ { _etstDiskImageFormat = Nothing+ , _etstContainerFormat = Nothing+ , _etstS3Bucket = Nothing+ , _etstS3Key = Nothing+ }++-- | 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 format for the exported image.+etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)+etstDiskImageFormat =+ lens _etstDiskImageFormat (\s a -> s { _etstDiskImageFormat = a })++-- | The Amazon S3 bucket for the destination image. The destination bucket must+-- exist and grant WRITE and READ_ACL permissions to the AWS account 'vm-import-export@amazon.com'.+etstS3Bucket :: Lens' ExportToS3Task (Maybe Text)+etstS3Bucket = lens _etstS3Bucket (\s a -> s { _etstS3Bucket = a })++etstS3Key :: Lens' ExportToS3Task (Maybe Text)+etstS3Key = lens _etstS3Key (\s a -> s { _etstS3Key = a })++instance FromXML ExportToS3Task where+ parseXML x = ExportToS3Task+ <$> x .@? "containerFormat"+ <*> x .@? "diskImageFormat"+ <*> x .@? "s3Bucket"+ <*> x .@? "s3Key"++instance ToQuery ExportToS3Task where+ toQuery ExportToS3Task{..} = mconcat+ [ "ContainerFormat" =? _etstContainerFormat+ , "DiskImageFormat" =? _etstDiskImageFormat+ , "S3Bucket" =? _etstS3Bucket+ , "S3Key" =? _etstS3Key+ ]++data BlockDeviceMapping = BlockDeviceMapping+ { _bdmDeviceName :: Text+ , _bdmEbs :: Maybe EbsBlockDevice+ , _bdmNoDevice :: Maybe Text+ , _bdmVirtualName :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'BlockDeviceMapping' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'bdmDeviceName' @::@ 'Text'+--+-- * 'bdmEbs' @::@ 'Maybe' 'EbsBlockDevice'+--+-- * 'bdmNoDevice' @::@ 'Maybe' 'Text'+--+-- * 'bdmVirtualName' @::@ 'Maybe' 'Text'+--+blockDeviceMapping :: Text -- ^ 'bdmDeviceName'+ -> BlockDeviceMapping+blockDeviceMapping p1 = BlockDeviceMapping+ { _bdmDeviceName = p1+ , _bdmVirtualName = Nothing+ , _bdmEbs = Nothing+ , _bdmNoDevice = Nothing+ }++-- | The device name exposed to the instance (for example, '/dev/sdh').+bdmDeviceName :: Lens' BlockDeviceMapping Text+bdmDeviceName = lens _bdmDeviceName (\s a -> s { _bdmDeviceName = a })++-- | Parameters used to automatically set up Amazon EBS volumes when the instance+-- is launched.+bdmEbs :: Lens' BlockDeviceMapping (Maybe EbsBlockDevice)+bdmEbs = lens _bdmEbs (\s a -> s { _bdmEbs = 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 })++-- | 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 })++instance FromXML BlockDeviceMapping where+ parseXML x = BlockDeviceMapping+ <$> x .@ "deviceName"+ <*> x .@? "ebs"+ <*> x .@? "noDevice"+ <*> x .@? "virtualName"++instance ToQuery BlockDeviceMapping where+ toQuery BlockDeviceMapping{..} = mconcat+ [ "DeviceName" =? _bdmDeviceName+ , "Ebs" =? _bdmEbs+ , "NoDevice" =? _bdmNoDevice+ , "VirtualName" =? _bdmVirtualName+ ]++data ConversionTask = ConversionTask+ { _ctConversionTaskId :: Text+ , _ctExpirationTime :: Maybe Text+ , _ctImportInstance :: Maybe ImportInstanceTaskDetails+ , _ctImportVolume :: Maybe ImportVolumeTaskDetails+ , _ctState :: ConversionTaskState+ , _ctStatusMessage :: Maybe Text+ , _ctTags :: List "item" Tag+ } deriving (Eq, Read, Show)++-- | 'ConversionTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ctConversionTaskId' @::@ 'Text'+--+-- * 'ctExpirationTime' @::@ 'Maybe' 'Text'+--+-- * 'ctImportInstance' @::@ 'Maybe' 'ImportInstanceTaskDetails'+--+-- * 'ctImportVolume' @::@ 'Maybe' 'ImportVolumeTaskDetails'+--+-- * 'ctState' @::@ 'ConversionTaskState'+--+-- * 'ctStatusMessage' @::@ 'Maybe' 'Text'+--+-- * 'ctTags' @::@ ['Tag']+--+conversionTask :: Text -- ^ 'ctConversionTaskId'+ -> ConversionTaskState -- ^ 'ctState'+ -> ConversionTask+conversionTask p1 p2 = ConversionTask+ { _ctConversionTaskId = p1+ , _ctState = p2+ , _ctExpirationTime = Nothing+ , _ctImportInstance = Nothing+ , _ctImportVolume = Nothing+ , _ctStatusMessage = Nothing+ , _ctTags = mempty+ }++-- | The ID of the conversion task.+ctConversionTaskId :: Lens' ConversionTask Text+ctConversionTaskId =+ lens _ctConversionTaskId (\s a -> s { _ctConversionTaskId = 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 })++-- | 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 })++-- | 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 state of the conversion task.+ctState :: Lens' ConversionTask ConversionTaskState+ctState = lens _ctState (\s a -> s { _ctState = a })++-- | The status message related to the conversion task.+ctStatusMessage :: Lens' ConversionTask (Maybe Text)+ctStatusMessage = lens _ctStatusMessage (\s a -> s { _ctStatusMessage = a })++ctTags :: Lens' ConversionTask [Tag]+ctTags = lens _ctTags (\s a -> s { _ctTags = a }) . _List++instance FromXML ConversionTask where+ parseXML x = ConversionTask+ <$> x .@ "conversionTaskId"+ <*> x .@? "expirationTime"+ <*> x .@? "importInstance"+ <*> x .@? "importVolume"+ <*> x .@ "state"+ <*> x .@? "statusMessage"+ <*> x .@? "tagSet" .!@ mempty++instance ToQuery ConversionTask where+ toQuery ConversionTask{..} = mconcat+ [ "ConversionTaskId" =? _ctConversionTaskId+ , "ExpirationTime" =? _ctExpirationTime+ , "ImportInstance" =? _ctImportInstance+ , "ImportVolume" =? _ctImportVolume+ , "State" =? _ctState+ , "StatusMessage" =? _ctStatusMessage+ , "TagSet" `toQueryList` _ctTags+ ]++data AttachmentStatus+ = ASAttached -- ^ attached+ | ASAttaching -- ^ attaching+ | ASDetached -- ^ detached+ | ASDetaching -- ^ detaching+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable AttachmentStatus++instance FromText AttachmentStatus where+ parser = takeLowerText >>= \case+ "attached" -> pure ASAttached+ "attaching" -> pure ASAttaching+ "detached" -> pure ASDetached+ "detaching" -> pure ASDetaching+ e -> fail $+ "Failure parsing AttachmentStatus from " ++ show e++instance ToText AttachmentStatus where+ toText = \case+ ASAttached -> "attached"+ ASAttaching -> "attaching"+ ASDetached -> "detached"+ ASDetaching -> "detaching"++instance ToByteString AttachmentStatus+instance ToHeader AttachmentStatus+instance ToQuery AttachmentStatus++instance FromXML AttachmentStatus where+ parseXML = parseXMLText "AttachmentStatus"++data ClassicLinkInstance = ClassicLinkInstance+ { _cliGroups :: List "item" GroupIdentifier+ , _cliInstanceId :: Maybe Text+ , _cliTags :: List "item" Tag+ , _cliVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'ClassicLinkInstance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cliGroups' @::@ ['GroupIdentifier']+--+-- * 'cliInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'cliTags' @::@ ['Tag']+--+-- * 'cliVpcId' @::@ 'Maybe' 'Text'+--+classicLinkInstance :: ClassicLinkInstance+classicLinkInstance = ClassicLinkInstance+ { _cliInstanceId = Nothing+ , _cliVpcId = Nothing+ , _cliGroups = mempty+ , _cliTags = mempty+ }++-- | A list of security groups.+cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]+cliGroups = lens _cliGroups (\s a -> s { _cliGroups = a }) . _List++-- | The ID of the instance.+cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)+cliInstanceId = lens _cliInstanceId (\s a -> s { _cliInstanceId = a })++-- | Any tags assigned to the instance.+cliTags :: Lens' ClassicLinkInstance [Tag]+cliTags = lens _cliTags (\s a -> s { _cliTags = a }) . _List++-- | The ID of the VPC.+cliVpcId :: Lens' ClassicLinkInstance (Maybe Text)+cliVpcId = lens _cliVpcId (\s a -> s { _cliVpcId = a })++instance FromXML ClassicLinkInstance where+ parseXML x = ClassicLinkInstance+ <$> x .@? "groupSet" .!@ mempty+ <*> x .@? "instanceId"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcId"++instance ToQuery ClassicLinkInstance where+ toQuery ClassicLinkInstance{..} = mconcat+ [ "GroupSet" `toQueryList` _cliGroups+ , "InstanceId" =? _cliInstanceId+ , "TagSet" `toQueryList` _cliTags+ , "VpcId" =? _cliVpcId+ ]++data RouteOrigin+ = OriginCreateRoute -- ^ CreateRoute+ | OriginCreateRouteTable -- ^ CreateRouteTable+ | OriginEnableVgwRoutePropagation -- ^ EnableVgwRoutePropagation+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable RouteOrigin++instance FromText RouteOrigin where+ parser = takeLowerText >>= \case+ "createroute" -> pure OriginCreateRoute+ "createroutetable" -> pure OriginCreateRouteTable+ "enablevgwroutepropagation" -> pure OriginEnableVgwRoutePropagation+ e -> fail $+ "Failure parsing RouteOrigin from " ++ show e++instance ToText RouteOrigin where+ toText = \case+ OriginCreateRoute -> "CreateRoute"+ OriginCreateRouteTable -> "CreateRouteTable"+ OriginEnableVgwRoutePropagation -> "EnableVgwRoutePropagation"++instance ToByteString RouteOrigin+instance ToHeader RouteOrigin+instance ToQuery RouteOrigin++instance FromXML RouteOrigin where+ parseXML = parseXMLText "RouteOrigin"++data ListingState+ = LSAvailable -- ^ available+ | LSCancelled -- ^ cancelled+ | LSPending -- ^ pending+ | LSSold -- ^ sold+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ListingState++instance FromText ListingState where+ parser = takeLowerText >>= \case+ "available" -> pure LSAvailable+ "cancelled" -> pure LSCancelled+ "pending" -> pure LSPending+ "sold" -> pure LSSold+ e -> fail $+ "Failure parsing ListingState from " ++ show e++instance ToText ListingState where+ toText = \case+ LSAvailable -> "available"+ LSCancelled -> "cancelled"+ LSPending -> "pending"+ LSSold -> "sold"++instance ToByteString ListingState+instance ToHeader ListingState+instance ToQuery ListingState++instance FromXML ListingState where+ parseXML = parseXMLText "ListingState"++data SpotPrice = SpotPrice+ { _spAvailabilityZone :: Maybe Text+ , _spInstanceType :: Maybe InstanceType+ , _spProductDescription :: Maybe RIProductDescription+ , _spSpotPrice :: Maybe Text+ , _spTimestamp :: Maybe ISO8601+ } deriving (Eq, Read, Show)++-- | 'SpotPrice' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'spAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'spInstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'spProductDescription' @::@ 'Maybe' 'RIProductDescription'+--+-- * 'spSpotPrice' @::@ 'Maybe' 'Text'+--+-- * 'spTimestamp' @::@ 'Maybe' 'UTCTime'+--+spotPrice :: SpotPrice+spotPrice = SpotPrice+ { _spInstanceType = Nothing+ , _spProductDescription = Nothing+ , _spSpotPrice = Nothing+ , _spTimestamp = Nothing+ , _spAvailabilityZone = Nothing+ }++-- | The Availability Zone.+spAvailabilityZone :: Lens' SpotPrice (Maybe Text)+spAvailabilityZone =+ lens _spAvailabilityZone (\s a -> s { _spAvailabilityZone = a })++-- | The instance type.+spInstanceType :: Lens' SpotPrice (Maybe InstanceType)+spInstanceType = lens _spInstanceType (\s a -> s { _spInstanceType = a })++-- | A general description of the AMI.+spProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)+spProductDescription =+ lens _spProductDescription (\s a -> s { _spProductDescription = a })++-- | The maximum price you will pay to launch one or more Spot Instances.+spSpotPrice :: Lens' SpotPrice (Maybe Text)+spSpotPrice = lens _spSpotPrice (\s a -> s { _spSpotPrice = a })++-- | The date and time the request was created.+spTimestamp :: Lens' SpotPrice (Maybe UTCTime)+spTimestamp = lens _spTimestamp (\s a -> s { _spTimestamp = a }) . mapping _Time++instance FromXML SpotPrice where+ parseXML x = SpotPrice+ <$> x .@? "availabilityZone"+ <*> x .@? "instanceType"+ <*> x .@? "productDescription"+ <*> x .@? "spotPrice"+ <*> x .@? "timestamp"++instance ToQuery SpotPrice where+ toQuery SpotPrice{..} = mconcat+ [ "AvailabilityZone" =? _spAvailabilityZone+ , "InstanceType" =? _spInstanceType+ , "ProductDescription" =? _spProductDescription+ , "SpotPrice" =? _spSpotPrice+ , "Timestamp" =? _spTimestamp+ ]++data InstanceMonitoring = InstanceMonitoring+ { _imInstanceId :: Maybe Text+ , _imMonitoring :: Maybe Monitoring+ } deriving (Eq, Read, Show)++-- | 'InstanceMonitoring' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'imInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'imMonitoring' @::@ 'Maybe' 'Monitoring'+--+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 information.+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 ToQuery InstanceMonitoring where+ toQuery InstanceMonitoring{..} = mconcat+ [ "InstanceId" =? _imInstanceId+ , "Monitoring" =? _imMonitoring+ ]++data PriceScheduleSpecification = PriceScheduleSpecification+ { _pssCurrencyCode :: Maybe CurrencyCodeValues+ , _pssPrice :: Maybe Double+ , _pssTerm :: Maybe Integer+ } deriving (Eq, Read, Show)++-- | 'PriceScheduleSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pssCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'+--+-- * 'pssPrice' @::@ 'Maybe' 'Double'+--+-- * 'pssTerm' @::@ 'Maybe' 'Integer'+--+priceScheduleSpecification :: PriceScheduleSpecification+priceScheduleSpecification = PriceScheduleSpecification+ { _pssTerm = Nothing+ , _pssPrice = Nothing+ , _pssCurrencyCode = 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 fixed price for the term.+pssPrice :: Lens' PriceScheduleSpecification (Maybe Double)+pssPrice = lens _pssPrice (\s a -> s { _pssPrice = 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 })++instance FromXML PriceScheduleSpecification where+ parseXML x = PriceScheduleSpecification+ <$> x .@? "currencyCode"+ <*> x .@? "price"+ <*> x .@? "term"++instance ToQuery PriceScheduleSpecification where+ toQuery PriceScheduleSpecification{..} = mconcat+ [ "CurrencyCode" =? _pssCurrencyCode+ , "Price" =? _pssPrice+ , "Term" =? _pssTerm+ ]++data SpotInstanceStatus = SpotInstanceStatus+ { _sisCode :: Maybe Text+ , _sisMessage :: Maybe Text+ , _sisUpdateTime :: Maybe ISO8601+ } deriving (Eq, Ord, Read, Show)++-- | 'SpotInstanceStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sisCode' @::@ 'Maybe' 'Text'+--+-- * 'sisMessage' @::@ 'Maybe' 'Text'+--+-- * 'sisUpdateTime' @::@ 'Maybe' 'UTCTime'+--+spotInstanceStatus :: SpotInstanceStatus+spotInstanceStatus = SpotInstanceStatus+ { _sisCode = Nothing+ , _sisUpdateTime = Nothing+ , _sisMessage = Nothing+ }++-- | The status code of the request.+sisCode :: Lens' SpotInstanceStatus (Maybe Text)+sisCode = lens _sisCode (\s a -> s { _sisCode = a })++-- | The description for the status code for the Spot request.+sisMessage :: Lens' SpotInstanceStatus (Maybe Text)+sisMessage = lens _sisMessage (\s a -> s { _sisMessage = a })++-- | The time of the most recent status update.+sisUpdateTime :: Lens' SpotInstanceStatus (Maybe UTCTime)+sisUpdateTime = lens _sisUpdateTime (\s a -> s { _sisUpdateTime = a }) . mapping _Time++instance FromXML SpotInstanceStatus where+ parseXML x = SpotInstanceStatus+ <$> x .@? "code"+ <*> x .@? "message"+ <*> x .@? "updateTime"++instance ToQuery SpotInstanceStatus where+ toQuery SpotInstanceStatus{..} = mconcat+ [ "Code" =? _sisCode+ , "Message" =? _sisMessage+ , "UpdateTime" =? _sisUpdateTime+ ]++data AvailabilityZoneState+ = AZSAvailable -- ^ available+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable AvailabilityZoneState++instance FromText AvailabilityZoneState where+ parser = takeLowerText >>= \case+ "available" -> pure AZSAvailable+ e -> fail $+ "Failure parsing AvailabilityZoneState from " ++ show e++instance ToText AvailabilityZoneState where+ toText AZSAvailable = "available"++instance ToByteString AvailabilityZoneState+instance ToHeader AvailabilityZoneState+instance ToQuery AvailabilityZoneState++instance FromXML AvailabilityZoneState where+ parseXML = parseXMLText "AvailabilityZoneState"++data SpotInstanceRequest = SpotInstanceRequest+ { _siAvailabilityZoneGroup :: Maybe Text+ , _siCreateTime :: Maybe ISO8601+ , _siFault :: Maybe SpotInstanceStateFault+ , _siInstanceId :: Maybe Text+ , _siLaunchGroup :: Maybe Text+ , _siLaunchSpecification :: Maybe LaunchSpecification+ , _siLaunchedAvailabilityZone :: Maybe Text+ , _siProductDescription :: Maybe RIProductDescription+ , _siSpotInstanceRequestId :: Maybe Text+ , _siSpotPrice :: Maybe Text+ , _siState :: Maybe SpotInstanceState+ , _siStatus :: Maybe SpotInstanceStatus+ , _siTags :: List "item" Tag+ , _siType :: Maybe SpotInstanceType+ , _siValidFrom :: Maybe ISO8601+ , _siValidUntil :: Maybe ISO8601+ } deriving (Eq, Read, Show)++-- | 'SpotInstanceRequest' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'siAvailabilityZoneGroup' @::@ 'Maybe' 'Text'+--+-- * 'siCreateTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'siFault' @::@ 'Maybe' 'SpotInstanceStateFault'+--+-- * 'siInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'siLaunchGroup' @::@ 'Maybe' 'Text'+--+-- * 'siLaunchSpecification' @::@ 'Maybe' 'LaunchSpecification'+--+-- * 'siLaunchedAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'siProductDescription' @::@ 'Maybe' 'RIProductDescription'+--+-- * 'siSpotInstanceRequestId' @::@ 'Maybe' 'Text'+--+-- * 'siSpotPrice' @::@ 'Maybe' 'Text'+--+-- * 'siState' @::@ 'Maybe' 'SpotInstanceState'+--+-- * 'siStatus' @::@ 'Maybe' 'SpotInstanceStatus'+--+-- * 'siTags' @::@ ['Tag']+--+-- * 'siType' @::@ 'Maybe' 'SpotInstanceType'+--+-- * 'siValidFrom' @::@ 'Maybe' 'UTCTime'+--+-- * 'siValidUntil' @::@ 'Maybe' 'UTCTime'+--+spotInstanceRequest :: SpotInstanceRequest+spotInstanceRequest = SpotInstanceRequest+ { _siSpotInstanceRequestId = Nothing+ , _siSpotPrice = Nothing+ , _siType = Nothing+ , _siState = Nothing+ , _siFault = Nothing+ , _siStatus = Nothing+ , _siValidFrom = Nothing+ , _siValidUntil = Nothing+ , _siLaunchGroup = Nothing+ , _siAvailabilityZoneGroup = Nothing+ , _siLaunchSpecification = Nothing+ , _siInstanceId = Nothing+ , _siCreateTime = Nothing+ , _siProductDescription = Nothing+ , _siTags = mempty+ , _siLaunchedAvailabilityZone = Nothing+ }++-- | 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.+siAvailabilityZoneGroup :: Lens' SpotInstanceRequest (Maybe Text)+siAvailabilityZoneGroup =+ lens _siAvailabilityZoneGroup (\s a -> s { _siAvailabilityZoneGroup = a })++-- | The time stamp when the Spot Instance request was created.+siCreateTime :: Lens' SpotInstanceRequest (Maybe UTCTime)+siCreateTime = lens _siCreateTime (\s a -> s { _siCreateTime = a }) . mapping _Time++-- | The fault codes for the Spot Instance request, if any.+siFault :: Lens' SpotInstanceRequest (Maybe SpotInstanceStateFault)+siFault = lens _siFault (\s a -> s { _siFault = a })++-- | The instance ID, if an instance has been launched to fulfill the Spot+-- Instance request.+siInstanceId :: Lens' SpotInstanceRequest (Maybe Text)+siInstanceId = lens _siInstanceId (\s a -> s { _siInstanceId = a })++-- | The instance launch group. Launch groups are Spot Instances that launch+-- together and terminate together.+siLaunchGroup :: Lens' SpotInstanceRequest (Maybe Text)+siLaunchGroup = lens _siLaunchGroup (\s a -> s { _siLaunchGroup = a })++-- | Additional information for launching instances.+siLaunchSpecification :: Lens' SpotInstanceRequest (Maybe LaunchSpecification)+siLaunchSpecification =+ lens _siLaunchSpecification (\s a -> s { _siLaunchSpecification = a })++-- | The Availability Zone in which the bid is launched.+siLaunchedAvailabilityZone :: Lens' SpotInstanceRequest (Maybe Text)+siLaunchedAvailabilityZone =+ lens _siLaunchedAvailabilityZone+ (\s a -> s { _siLaunchedAvailabilityZone = a })++-- | The product description associated with the Spot Instance.+siProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)+siProductDescription =+ lens _siProductDescription (\s a -> s { _siProductDescription = a })++-- | The ID of the Spot Instance request.+siSpotInstanceRequestId :: Lens' SpotInstanceRequest (Maybe Text)+siSpotInstanceRequestId =+ lens _siSpotInstanceRequestId (\s a -> s { _siSpotInstanceRequestId = a })++-- | The maximum hourly price for any Spot Instance launched to fulfill the+-- request.+siSpotPrice :: Lens' SpotInstanceRequest (Maybe Text)+siSpotPrice = lens _siSpotPrice (\s a -> s { _siSpotPrice = 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 BidStatus> in the /Amazon Elastic Compute Cloud User Guide for Linux/.+siState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)+siState = lens _siState (\s a -> s { _siState = a })++-- | The status code and status message describing the Spot Instance request.+siStatus :: Lens' SpotInstanceRequest (Maybe SpotInstanceStatus)+siStatus = lens _siStatus (\s a -> s { _siStatus = a })++-- | Any tags assigned to the resource.+siTags :: Lens' SpotInstanceRequest [Tag]+siTags = lens _siTags (\s a -> s { _siTags = a }) . _List++-- | The Spot Instance request type.+siType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)+siType = lens _siType (\s a -> s { _siType = a })++-- | The start date of the request. If this is a one-time request, the request+-- becomes active at this date and time and remains active until all instances+-- launch, the request expires, or the request is canceled. If the request is+-- persistent, the request becomes active at this date and time and remains+-- active until it expires or is canceled.+siValidFrom :: Lens' SpotInstanceRequest (Maybe UTCTime)+siValidFrom = lens _siValidFrom (\s a -> s { _siValidFrom = a }) . mapping _Time++-- | The end date of the request. If this is a one-time request, the request+-- remains active until all instances launch, the request is canceled, or this+-- date is reached. If the request is persistent, it remains active until it is+-- canceled or this date is reached.+siValidUntil :: Lens' SpotInstanceRequest (Maybe UTCTime)+siValidUntil = lens _siValidUntil (\s a -> s { _siValidUntil = a }) . mapping _Time++instance FromXML SpotInstanceRequest where+ parseXML x = SpotInstanceRequest+ <$> x .@? "availabilityZoneGroup"+ <*> x .@? "createTime"+ <*> x .@? "fault"+ <*> x .@? "instanceId"+ <*> x .@? "launchGroup"+ <*> x .@? "launchSpecification"+ <*> x .@? "launchedAvailabilityZone"+ <*> x .@? "productDescription"+ <*> x .@? "spotInstanceRequestId"+ <*> x .@? "spotPrice"+ <*> x .@? "state"+ <*> x .@? "status"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "type"+ <*> x .@? "validFrom"+ <*> x .@? "validUntil"++instance ToQuery SpotInstanceRequest where+ toQuery SpotInstanceRequest{..} = mconcat+ [ "AvailabilityZoneGroup" =? _siAvailabilityZoneGroup+ , "CreateTime" =? _siCreateTime+ , "Fault" =? _siFault+ , "InstanceId" =? _siInstanceId+ , "LaunchGroup" =? _siLaunchGroup+ , "LaunchSpecification" =? _siLaunchSpecification+ , "LaunchedAvailabilityZone" =? _siLaunchedAvailabilityZone+ , "ProductDescription" =? _siProductDescription+ , "SpotInstanceRequestId" =? _siSpotInstanceRequestId+ , "SpotPrice" =? _siSpotPrice+ , "State" =? _siState+ , "Status" =? _siStatus+ , "TagSet" `toQueryList` _siTags+ , "Type" =? _siType+ , "ValidFrom" =? _siValidFrom+ , "ValidUntil" =? _siValidUntil+ ]++data LaunchSpecification = LaunchSpecification+ { _lsAddressingType :: Maybe Text+ , _lsBlockDeviceMappings :: List "item" BlockDeviceMapping+ , _lsEbsOptimized :: Maybe Bool+ , _lsIamInstanceProfile :: Maybe IamInstanceProfileSpecification+ , _lsImageId :: Maybe Text+ , _lsInstanceType :: Maybe InstanceType+ , _lsKernelId :: Maybe Text+ , _lsKeyName :: Maybe Text+ , _lsMonitoring :: Maybe RunInstancesMonitoringEnabled+ , _lsNetworkInterfaces :: List "item" InstanceNetworkInterfaceSpecification+ , _lsPlacement :: Maybe SpotPlacement+ , _lsRamdiskId :: Maybe Text+ , _lsSecurityGroups :: List "item" GroupIdentifier+ , _lsSubnetId :: Maybe Text+ , _lsUserData :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'LaunchSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lsAddressingType' @::@ 'Maybe' 'Text'+--+-- * 'lsBlockDeviceMappings' @::@ ['BlockDeviceMapping']+--+-- * 'lsEbsOptimized' @::@ 'Maybe' 'Bool'+--+-- * 'lsIamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfileSpecification'+--+-- * 'lsImageId' @::@ 'Maybe' 'Text'+--+-- * 'lsInstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'lsKernelId' @::@ 'Maybe' 'Text'+--+-- * 'lsKeyName' @::@ 'Maybe' 'Text'+--+-- * 'lsMonitoring' @::@ 'Maybe' 'RunInstancesMonitoringEnabled'+--+-- * 'lsNetworkInterfaces' @::@ ['InstanceNetworkInterfaceSpecification']+--+-- * 'lsPlacement' @::@ 'Maybe' 'SpotPlacement'+--+-- * 'lsRamdiskId' @::@ 'Maybe' 'Text'+--+-- * 'lsSecurityGroups' @::@ ['GroupIdentifier']+--+-- * 'lsSubnetId' @::@ 'Maybe' 'Text'+--+-- * 'lsUserData' @::@ 'Maybe' 'Text'+--+launchSpecification :: LaunchSpecification+launchSpecification = LaunchSpecification+ { _lsImageId = Nothing+ , _lsKeyName = Nothing+ , _lsSecurityGroups = mempty+ , _lsUserData = Nothing+ , _lsAddressingType = Nothing+ , _lsInstanceType = Nothing+ , _lsPlacement = Nothing+ , _lsKernelId = Nothing+ , _lsRamdiskId = Nothing+ , _lsBlockDeviceMappings = mempty+ , _lsSubnetId = Nothing+ , _lsNetworkInterfaces = mempty+ , _lsIamInstanceProfile = Nothing+ , _lsEbsOptimized = Nothing+ , _lsMonitoring = Nothing+ }++-- | 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 })+ . _List++-- | 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 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 })++-- | The instance type.+--+-- Default: 'm1.small'+lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)+lsInstanceType = lens _lsInstanceType (\s a -> s { _lsInstanceType = a })++-- | The ID of the kernel.+lsKernelId :: Lens' LaunchSpecification (Maybe Text)+lsKernelId = lens _lsKernelId (\s a -> s { _lsKernelId = a })++-- | The name of the key pair.+lsKeyName :: Lens' LaunchSpecification (Maybe Text)+lsKeyName = lens _lsKeyName (\s a -> s { _lsKeyName = a })++lsMonitoring :: Lens' LaunchSpecification (Maybe RunInstancesMonitoringEnabled)+lsMonitoring = lens _lsMonitoring (\s a -> s { _lsMonitoring = a })++-- | One or more network interfaces.+lsNetworkInterfaces :: Lens' LaunchSpecification [InstanceNetworkInterfaceSpecification]+lsNetworkInterfaces =+ lens _lsNetworkInterfaces (\s a -> s { _lsNetworkInterfaces = a })+ . _List++-- | The placement information for the instance.+lsPlacement :: Lens' LaunchSpecification (Maybe SpotPlacement)+lsPlacement = lens _lsPlacement (\s a -> s { _lsPlacement = a })++-- | The ID of the RAM disk.+lsRamdiskId :: Lens' LaunchSpecification (Maybe Text)+lsRamdiskId = lens _lsRamdiskId (\s a -> s { _lsRamdiskId = a })++-- | One or more security groups. To request an instance in a nondefault VPC, you+-- must specify the ID of the security group. To request an instance in+-- EC2-Classic or a default VPC, you can specify the name or the ID of the+-- security group.+lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]+lsSecurityGroups = lens _lsSecurityGroups (\s a -> s { _lsSecurityGroups = a }) . _List++-- | 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 Base64-encoded MIME user data to make available to the instances.+lsUserData :: Lens' LaunchSpecification (Maybe Text)+lsUserData = lens _lsUserData (\s a -> s { _lsUserData = a })++instance FromXML LaunchSpecification where+ parseXML x = LaunchSpecification+ <$> x .@? "addressingType"+ <*> x .@? "blockDeviceMapping" .!@ mempty+ <*> x .@? "ebsOptimized"+ <*> x .@? "iamInstanceProfile"+ <*> x .@? "imageId"+ <*> x .@? "instanceType"+ <*> x .@? "kernelId"+ <*> x .@? "keyName"+ <*> x .@? "monitoring"+ <*> x .@? "networkInterfaceSet" .!@ mempty+ <*> x .@? "placement"+ <*> x .@? "ramdiskId"+ <*> x .@? "groupSet" .!@ mempty+ <*> x .@? "subnetId"+ <*> x .@? "userData"++instance ToQuery LaunchSpecification where+ toQuery LaunchSpecification{..} = mconcat+ [ "AddressingType" =? _lsAddressingType+ , "BlockDeviceMapping" `toQueryList` _lsBlockDeviceMappings+ , "EbsOptimized" =? _lsEbsOptimized+ , "IamInstanceProfile" =? _lsIamInstanceProfile+ , "ImageId" =? _lsImageId+ , "InstanceType" =? _lsInstanceType+ , "KernelId" =? _lsKernelId+ , "KeyName" =? _lsKeyName+ , "Monitoring" =? _lsMonitoring+ , "NetworkInterfaceSet" `toQueryList` _lsNetworkInterfaces+ , "Placement" =? _lsPlacement+ , "RamdiskId" =? _lsRamdiskId+ , "GroupSet" `toQueryList` _lsSecurityGroups+ , "SubnetId" =? _lsSubnetId+ , "UserData" =? _lsUserData+ ]++data VolumeStatusEvent = VolumeStatusEvent+ { _vseDescription :: Maybe Text+ , _vseEventId :: Maybe Text+ , _vseEventType :: Maybe Text+ , _vseNotAfter :: Maybe ISO8601+ , _vseNotBefore :: Maybe ISO8601+ } deriving (Eq, Ord, Read, Show)++-- | 'VolumeStatusEvent' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vseDescription' @::@ 'Maybe' 'Text'+--+-- * 'vseEventId' @::@ 'Maybe' 'Text'+--+-- * 'vseEventType' @::@ 'Maybe' 'Text'+--+-- * 'vseNotAfter' @::@ 'Maybe' 'UTCTime'+--+-- * 'vseNotBefore' @::@ 'Maybe' 'UTCTime'+--+volumeStatusEvent :: VolumeStatusEvent+volumeStatusEvent = VolumeStatusEvent+ { _vseEventType = Nothing+ , _vseDescription = Nothing+ , _vseNotBefore = Nothing+ , _vseNotAfter = Nothing+ , _vseEventId = Nothing+ }++-- | A description of the event.+vseDescription :: Lens' VolumeStatusEvent (Maybe Text)+vseDescription = lens _vseDescription (\s a -> s { _vseDescription = a })++-- | The ID of this event.+vseEventId :: Lens' VolumeStatusEvent (Maybe Text)+vseEventId = lens _vseEventId (\s a -> s { _vseEventId = a })++-- | The type of this event.+vseEventType :: Lens' VolumeStatusEvent (Maybe Text)+vseEventType = lens _vseEventType (\s a -> s { _vseEventType = a })++-- | The latest end time of the event.+vseNotAfter :: Lens' VolumeStatusEvent (Maybe UTCTime)+vseNotAfter = lens _vseNotAfter (\s a -> s { _vseNotAfter = a }) . mapping _Time++-- | The earliest start time of the event.+vseNotBefore :: Lens' VolumeStatusEvent (Maybe UTCTime)+vseNotBefore = lens _vseNotBefore (\s a -> s { _vseNotBefore = a }) . mapping _Time++instance FromXML VolumeStatusEvent where+ parseXML x = VolumeStatusEvent+ <$> x .@? "description"+ <*> x .@? "eventId"+ <*> x .@? "eventType"+ <*> x .@? "notAfter"+ <*> x .@? "notBefore"++instance ToQuery VolumeStatusEvent where+ toQuery VolumeStatusEvent{..} = mconcat+ [ "Description" =? _vseDescription+ , "EventId" =? _vseEventId+ , "EventType" =? _vseEventType+ , "NotAfter" =? _vseNotAfter+ , "NotBefore" =? _vseNotBefore+ ]++data Volume = Volume+ { _vAttachments :: List "item" VolumeAttachment+ , _vAvailabilityZone :: Text+ , _vCreateTime :: ISO8601+ , _vEncrypted :: Bool+ , _vIops :: Maybe Int+ , _vKmsKeyId :: Maybe Text+ , _vSize :: Int+ , _vSnapshotId :: Text+ , _vState :: VolumeState+ , _vTags :: List "item" Tag+ , _vVolumeId :: Text+ , _vVolumeType :: VolumeType+ } deriving (Eq, Read, Show)++-- | 'Volume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vAttachments' @::@ ['VolumeAttachment']+--+-- * 'vAvailabilityZone' @::@ 'Text'+--+-- * 'vCreateTime' @::@ 'UTCTime'+--+-- * 'vEncrypted' @::@ 'Bool'+--+-- * 'vIops' @::@ 'Maybe' 'Int'+--+-- * 'vKmsKeyId' @::@ 'Maybe' 'Text'+--+-- * 'vSize' @::@ 'Int'+--+-- * 'vSnapshotId' @::@ 'Text'+--+-- * 'vState' @::@ 'VolumeState'+--+-- * 'vTags' @::@ ['Tag']+--+-- * 'vVolumeId' @::@ 'Text'+--+-- * 'vVolumeType' @::@ 'VolumeType'+--+volume :: Text -- ^ 'vVolumeId'+ -> Int -- ^ 'vSize'+ -> Text -- ^ 'vSnapshotId'+ -> Text -- ^ 'vAvailabilityZone'+ -> VolumeState -- ^ 'vState'+ -> UTCTime -- ^ 'vCreateTime'+ -> VolumeType -- ^ 'vVolumeType'+ -> Bool -- ^ 'vEncrypted'+ -> Volume+volume p1 p2 p3 p4 p5 p6 p7 p8 = Volume+ { _vVolumeId = p1+ , _vSize = p2+ , _vSnapshotId = p3+ , _vAvailabilityZone = p4+ , _vState = p5+ , _vCreateTime = withIso _Time (const id) p6+ , _vVolumeType = p7+ , _vEncrypted = p8+ , _vAttachments = mempty+ , _vTags = mempty+ , _vIops = Nothing+ , _vKmsKeyId = Nothing+ }++vAttachments :: Lens' Volume [VolumeAttachment]+vAttachments = lens _vAttachments (\s a -> s { _vAttachments = a }) . _List++-- | 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 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 EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.+--+-- Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to+-- 3072 for General Purpose (SSD) volumes.+--+-- Condition: This parameter is required for requests to create 'io1' volumes; it+-- is not used in requests to create 'standard' or 'gp2' volumes.+vIops :: Lens' Volume (Maybe Int)+vIops = lens _vIops (\s a -> s { _vIops = a })++-- | The full ARN of the AWS Key Management Service (KMS) master key 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 })++-- | 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 })++-- | Any tags assigned to the volume.+vTags :: Lens' Volume [Tag]+vTags = lens _vTags (\s a -> s { _vTags = a }) . _List++-- | 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) volumes, 'io1' for+-- Provisioned IOPS (SSD) volumes, 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+ <*> x .@ "availabilityZone"+ <*> x .@ "createTime"+ <*> x .@ "encrypted"+ <*> x .@? "iops"+ <*> x .@? "kmsKeyId"+ <*> x .@ "size"+ <*> x .@ "snapshotId"+ <*> x .@ "status"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "volumeId"+ <*> x .@ "volumeType"++instance ToQuery Volume where+ toQuery Volume{..} = mconcat+ [ "AttachmentSet" `toQueryList` _vAttachments+ , "AvailabilityZone" =? _vAvailabilityZone+ , "CreateTime" =? _vCreateTime+ , "Encrypted" =? _vEncrypted+ , "Iops" =? _vIops+ , "KmsKeyId" =? _vKmsKeyId+ , "Size" =? _vSize+ , "SnapshotId" =? _vSnapshotId+ , "Status" =? _vState+ , "TagSet" `toQueryList` _vTags+ , "VolumeId" =? _vVolumeId+ , "VolumeType" =? _vVolumeType+ ]++data Reservation = Reservation+ { _rGroups :: List "item" GroupIdentifier+ , _rInstances :: List "item" Instance+ , _rOwnerId :: Text+ , _rRequesterId :: Maybe Text+ , _rReservationId :: Text+ } deriving (Eq, Read, Show)++-- | 'Reservation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rGroups' @::@ ['GroupIdentifier']+--+-- * 'rInstances' @::@ ['Instance']+--+-- * 'rOwnerId' @::@ 'Text'+--+-- * 'rRequesterId' @::@ 'Maybe' 'Text'+--+-- * 'rReservationId' @::@ 'Text'+--+reservation :: Text -- ^ 'rReservationId'+ -> Text -- ^ 'rOwnerId'+ -> Reservation+reservation p1 p2 = Reservation+ { _rReservationId = p1+ , _rOwnerId = p2+ , _rRequesterId = Nothing+ , _rGroups = mempty+ , _rInstances = mempty+ }++-- | One or more security groups.+rGroups :: Lens' Reservation [GroupIdentifier]+rGroups = lens _rGroups (\s a -> s { _rGroups = a }) . _List++-- | One or more instances.+rInstances :: Lens' Reservation [Instance]+rInstances = lens _rInstances (\s a -> s { _rInstances = a }) . _List++-- | The ID of the AWS account that owns the reservation.+rOwnerId :: Lens' Reservation Text+rOwnerId = lens _rOwnerId (\s a -> s { _rOwnerId = a })++-- | 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 })++instance FromXML Reservation where+ parseXML x = Reservation+ <$> x .@? "groupSet" .!@ mempty+ <*> x .@? "instancesSet" .!@ mempty+ <*> x .@ "ownerId"+ <*> x .@? "requesterId"+ <*> x .@ "reservationId"++instance ToQuery Reservation where+ toQuery Reservation{..} = mconcat+ [ "GroupSet" `toQueryList` _rGroups+ , "InstancesSet" `toQueryList` _rInstances+ , "OwnerId" =? _rOwnerId+ , "RequesterId" =? _rRequesterId+ , "ReservationId" =? _rReservationId+ ]++data ImportInstanceVolumeDetailItem = ImportInstanceVolumeDetailItem+ { _iivdiAvailabilityZone :: Text+ , _iivdiBytesConverted :: Integer+ , _iivdiDescription :: Maybe Text+ , _iivdiImage :: DiskImageDescription+ , _iivdiStatus :: Text+ , _iivdiStatusMessage :: Maybe Text+ , _iivdiVolume :: DiskImageVolumeDescription+ } deriving (Eq, Read, Show)++-- | 'ImportInstanceVolumeDetailItem' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iivdiAvailabilityZone' @::@ 'Text'+--+-- * 'iivdiBytesConverted' @::@ 'Integer'+--+-- * 'iivdiDescription' @::@ 'Maybe' 'Text'+--+-- * 'iivdiImage' @::@ 'DiskImageDescription'+--+-- * 'iivdiStatus' @::@ 'Text'+--+-- * 'iivdiStatusMessage' @::@ 'Maybe' 'Text'+--+-- * 'iivdiVolume' @::@ 'DiskImageVolumeDescription'+--+importInstanceVolumeDetailItem :: Integer -- ^ 'iivdiBytesConverted'+ -> Text -- ^ 'iivdiAvailabilityZone'+ -> DiskImageDescription -- ^ 'iivdiImage'+ -> DiskImageVolumeDescription -- ^ 'iivdiVolume'+ -> Text -- ^ 'iivdiStatus'+ -> ImportInstanceVolumeDetailItem+importInstanceVolumeDetailItem p1 p2 p3 p4 p5 = ImportInstanceVolumeDetailItem+ { _iivdiBytesConverted = p1+ , _iivdiAvailabilityZone = p2+ , _iivdiImage = p3+ , _iivdiVolume = p4+ , _iivdiStatus = p5+ , _iivdiStatusMessage = Nothing+ , _iivdiDescription = Nothing+ }++-- | 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 })++iivdiDescription :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)+iivdiDescription = lens _iivdiDescription (\s a -> s { _iivdiDescription = 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 status information or errors related to the disk image.+iivdiStatusMessage :: Lens' ImportInstanceVolumeDetailItem (Maybe Text)+iivdiStatusMessage =+ lens _iivdiStatusMessage (\s a -> s { _iivdiStatusMessage = a })++-- | The volume.+iivdiVolume :: Lens' ImportInstanceVolumeDetailItem DiskImageVolumeDescription+iivdiVolume = lens _iivdiVolume (\s a -> s { _iivdiVolume = a })++instance FromXML ImportInstanceVolumeDetailItem where+ parseXML x = ImportInstanceVolumeDetailItem+ <$> x .@ "availabilityZone"+ <*> x .@ "bytesConverted"+ <*> x .@? "description"+ <*> x .@ "image"+ <*> x .@ "status"+ <*> x .@? "statusMessage"+ <*> x .@ "volume"++instance ToQuery ImportInstanceVolumeDetailItem where+ toQuery ImportInstanceVolumeDetailItem{..} = mconcat+ [ "AvailabilityZone" =? _iivdiAvailabilityZone+ , "BytesConverted" =? _iivdiBytesConverted+ , "Description" =? _iivdiDescription+ , "Image" =? _iivdiImage+ , "Status" =? _iivdiStatus+ , "StatusMessage" =? _iivdiStatusMessage+ , "Volume" =? _iivdiVolume+ ]++data SummaryStatus+ = SSImpaired -- ^ impaired+ | SSInsufficientData -- ^ insufficient-data+ | SSNotApplicable -- ^ not-applicable+ | SSOk -- ^ ok+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable SummaryStatus++instance FromText SummaryStatus where+ parser = takeLowerText >>= \case+ "impaired" -> pure SSImpaired+ "insufficient-data" -> pure SSInsufficientData+ "not-applicable" -> pure SSNotApplicable+ "ok" -> pure SSOk+ e -> fail $+ "Failure parsing SummaryStatus from " ++ show e++instance ToText SummaryStatus where+ toText = \case+ SSImpaired -> "impaired"+ SSInsufficientData -> "insufficient-data"+ SSNotApplicable -> "not-applicable"+ SSOk -> "ok"++instance ToByteString SummaryStatus+instance ToHeader SummaryStatus+instance ToQuery SummaryStatus++instance FromXML SummaryStatus where+ parseXML = parseXMLText "SummaryStatus"++data ReservedInstancesModification = ReservedInstancesModification+ { _rimClientToken :: Maybe Text+ , _rimCreateDate :: Maybe ISO8601+ , _rimEffectiveDate :: Maybe ISO8601+ , _rimModificationResults :: List "item" ReservedInstancesModificationResult+ , _rimReservedInstancesIds :: List "item" ReservedInstancesId+ , _rimReservedInstancesModificationId :: Maybe Text+ , _rimStatus :: Maybe Text+ , _rimStatusMessage :: Maybe Text+ , _rimUpdateDate :: Maybe ISO8601+ } deriving (Eq, Read, Show)++-- | 'ReservedInstancesModification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rimClientToken' @::@ 'Maybe' 'Text'+--+-- * 'rimCreateDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'rimEffectiveDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'rimModificationResults' @::@ ['ReservedInstancesModificationResult']+--+-- * 'rimReservedInstancesIds' @::@ ['ReservedInstancesId']+--+-- * 'rimReservedInstancesModificationId' @::@ 'Maybe' 'Text'+--+-- * 'rimStatus' @::@ 'Maybe' 'Text'+--+-- * 'rimStatusMessage' @::@ 'Maybe' 'Text'+--+-- * 'rimUpdateDate' @::@ 'Maybe' 'UTCTime'+--+reservedInstancesModification :: ReservedInstancesModification+reservedInstancesModification = ReservedInstancesModification+ { _rimReservedInstancesModificationId = Nothing+ , _rimReservedInstancesIds = mempty+ , _rimModificationResults = mempty+ , _rimCreateDate = Nothing+ , _rimUpdateDate = Nothing+ , _rimEffectiveDate = Nothing+ , _rimStatus = Nothing+ , _rimStatusMessage = Nothing+ , _rimClientToken = Nothing+ }++-- | A unique, case-sensitive key supplied by the client to ensure that the+-- modification request is idempotent.+rimClientToken :: Lens' ReservedInstancesModification (Maybe Text)+rimClientToken = lens _rimClientToken (\s a -> s { _rimClientToken = a })++-- | 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++-- | Contains target configurations along with their corresponding new Reserved+-- Instance IDs.+rimModificationResults :: Lens' ReservedInstancesModification [ReservedInstancesModificationResult]+rimModificationResults =+ lens _rimModificationResults (\s a -> s { _rimModificationResults = a })+ . _List++-- | The IDs of one or more Reserved Instances.+rimReservedInstancesIds :: Lens' ReservedInstancesModification [ReservedInstancesId]+rimReservedInstancesIds =+ lens _rimReservedInstancesIds (\s a -> s { _rimReservedInstancesIds = a })+ . _List++-- | A unique ID for the Reserved Instance modification.+rimReservedInstancesModificationId :: Lens' ReservedInstancesModification (Maybe Text)+rimReservedInstancesModificationId =+ lens _rimReservedInstancesModificationId+ (\s a -> s { _rimReservedInstancesModificationId = a })++-- | The status of the Reserved Instances modification request.+rimStatus :: Lens' ReservedInstancesModification (Maybe Text)+rimStatus = lens _rimStatus (\s a -> s { _rimStatus = a })++-- | The reason for the status.+rimStatusMessage :: Lens' ReservedInstancesModification (Maybe Text)+rimStatusMessage = lens _rimStatusMessage (\s a -> s { _rimStatusMessage = 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++instance FromXML ReservedInstancesModification where+ parseXML x = ReservedInstancesModification+ <$> x .@? "clientToken"+ <*> x .@? "createDate"+ <*> x .@? "effectiveDate"+ <*> x .@? "modificationResultSet" .!@ mempty+ <*> x .@? "reservedInstancesSet" .!@ mempty+ <*> x .@? "reservedInstancesModificationId"+ <*> x .@? "status"+ <*> x .@? "statusMessage"+ <*> x .@? "updateDate"++instance ToQuery ReservedInstancesModification where+ toQuery ReservedInstancesModification{..} = mconcat+ [ "ClientToken" =? _rimClientToken+ , "CreateDate" =? _rimCreateDate+ , "EffectiveDate" =? _rimEffectiveDate+ , "ModificationResultSet" `toQueryList` _rimModificationResults+ , "ReservedInstancesSet" `toQueryList` _rimReservedInstancesIds+ , "ReservedInstancesModificationId" =? _rimReservedInstancesModificationId+ , "Status" =? _rimStatus+ , "StatusMessage" =? _rimStatusMessage+ , "UpdateDate" =? _rimUpdateDate+ ]++data RuleAction+ = Allow -- ^ allow+ | Deny -- ^ deny+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable RuleAction++instance FromText RuleAction where+ parser = takeLowerText >>= \case+ "allow" -> pure Allow+ "deny" -> pure Deny+ e -> fail $+ "Failure parsing RuleAction from " ++ show e++instance ToText RuleAction where+ toText = \case+ Allow -> "allow"+ Deny -> "deny"++instance ToByteString RuleAction+instance ToHeader RuleAction+instance ToQuery RuleAction++instance FromXML RuleAction where+ parseXML = parseXMLText "RuleAction"++data NetworkInterface = NetworkInterface+ { _niAssociation :: Maybe NetworkInterfaceAssociation+ , _niAttachment :: Maybe NetworkInterfaceAttachment+ , _niAvailabilityZone :: Maybe Text+ , _niDescription :: Maybe Text+ , _niGroups :: List "item" GroupIdentifier+ , _niMacAddress :: Maybe Text+ , _niNetworkInterfaceId :: Maybe Text+ , _niOwnerId :: Maybe Text+ , _niPrivateDnsName :: Maybe Text+ , _niPrivateIpAddress :: Maybe Text+ , _niPrivateIpAddresses :: List "item" NetworkInterfacePrivateIpAddress+ , _niRequesterId :: Maybe Text+ , _niRequesterManaged :: Maybe Bool+ , _niSourceDestCheck :: Maybe Bool+ , _niStatus :: Maybe NetworkInterfaceStatus+ , _niSubnetId :: Maybe Text+ , _niTagSet :: List "item" Tag+ , _niVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'NetworkInterface' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'niAssociation' @::@ 'Maybe' 'NetworkInterfaceAssociation'+--+-- * 'niAttachment' @::@ 'Maybe' 'NetworkInterfaceAttachment'+--+-- * 'niAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'niDescription' @::@ 'Maybe' 'Text'+--+-- * 'niGroups' @::@ ['GroupIdentifier']+--+-- * 'niMacAddress' @::@ 'Maybe' 'Text'+--+-- * 'niNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'niOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'niPrivateDnsName' @::@ 'Maybe' 'Text'+--+-- * 'niPrivateIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'niPrivateIpAddresses' @::@ ['NetworkInterfacePrivateIpAddress']+--+-- * 'niRequesterId' @::@ 'Maybe' 'Text'+--+-- * 'niRequesterManaged' @::@ 'Maybe' 'Bool'+--+-- * 'niSourceDestCheck' @::@ 'Maybe' 'Bool'+--+-- * 'niStatus' @::@ 'Maybe' 'NetworkInterfaceStatus'+--+-- * 'niSubnetId' @::@ 'Maybe' 'Text'+--+-- * 'niTagSet' @::@ ['Tag']+--+-- * 'niVpcId' @::@ 'Maybe' 'Text'+--+networkInterface :: NetworkInterface+networkInterface = NetworkInterface+ { _niNetworkInterfaceId = Nothing+ , _niSubnetId = Nothing+ , _niVpcId = Nothing+ , _niAvailabilityZone = Nothing+ , _niDescription = Nothing+ , _niOwnerId = Nothing+ , _niRequesterId = Nothing+ , _niRequesterManaged = Nothing+ , _niStatus = Nothing+ , _niMacAddress = Nothing+ , _niPrivateIpAddress = Nothing+ , _niPrivateDnsName = Nothing+ , _niSourceDestCheck = Nothing+ , _niGroups = mempty+ , _niAttachment = Nothing+ , _niAssociation = Nothing+ , _niTagSet = mempty+ , _niPrivateIpAddresses = mempty+ }++-- | The association information for an Elastic IP associated with the network+-- interface.+niAssociation :: Lens' NetworkInterface (Maybe NetworkInterfaceAssociation)+niAssociation = lens _niAssociation (\s a -> s { _niAssociation = a })++-- | The network interface attachment.+niAttachment :: Lens' NetworkInterface (Maybe NetworkInterfaceAttachment)+niAttachment = lens _niAttachment (\s a -> s { _niAttachment = a })++-- | The Availability Zone.+niAvailabilityZone :: Lens' NetworkInterface (Maybe Text)+niAvailabilityZone =+ lens _niAvailabilityZone (\s a -> s { _niAvailabilityZone = a })++-- | A description.+niDescription :: Lens' NetworkInterface (Maybe Text)+niDescription = lens _niDescription (\s a -> s { _niDescription = a })++-- | Any security groups for the network interface.+niGroups :: Lens' NetworkInterface [GroupIdentifier]+niGroups = lens _niGroups (\s a -> s { _niGroups = a }) . _List++-- | The MAC address.+niMacAddress :: Lens' NetworkInterface (Maybe Text)+niMacAddress = lens _niMacAddress (\s a -> s { _niMacAddress = a })++-- | The ID of the network interface.+niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)+niNetworkInterfaceId =+ lens _niNetworkInterfaceId (\s a -> s { _niNetworkInterfaceId = 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 private DNS name.+niPrivateDnsName :: Lens' NetworkInterface (Maybe Text)+niPrivateDnsName = lens _niPrivateDnsName (\s a -> s { _niPrivateDnsName = a })++-- | The IP address of the network interface within the subnet.+niPrivateIpAddress :: Lens' NetworkInterface (Maybe Text)+niPrivateIpAddress =+ lens _niPrivateIpAddress (\s a -> s { _niPrivateIpAddress = a })++-- | The private IP addresses associated with the network interface.+niPrivateIpAddresses :: Lens' NetworkInterface [NetworkInterfacePrivateIpAddress]+niPrivateIpAddresses =+ lens _niPrivateIpAddresses (\s a -> s { _niPrivateIpAddresses = a })+ . _List++-- | 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 })++-- | Indicates whether the network interface is being managed by AWS.+niRequesterManaged :: Lens' NetworkInterface (Maybe Bool)+niRequesterManaged =+ lens _niRequesterManaged (\s a -> s { _niRequesterManaged = a })++-- | Indicates whether traffic to or from the instance is validated.+niSourceDestCheck :: Lens' NetworkInterface (Maybe Bool)+niSourceDestCheck =+ lens _niSourceDestCheck (\s a -> s { _niSourceDestCheck = a })++-- | The status of the network interface.+niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)+niStatus = lens _niStatus (\s a -> s { _niStatus = a })++-- | The ID of the subnet.+niSubnetId :: Lens' NetworkInterface (Maybe Text)+niSubnetId = lens _niSubnetId (\s a -> s { _niSubnetId = a })++-- | Any tags assigned to the network interface.+niTagSet :: Lens' NetworkInterface [Tag]+niTagSet = lens _niTagSet (\s a -> s { _niTagSet = a }) . _List++-- | The ID of the VPC.+niVpcId :: Lens' NetworkInterface (Maybe Text)+niVpcId = lens _niVpcId (\s a -> s { _niVpcId = a })++instance FromXML NetworkInterface where+ parseXML x = NetworkInterface+ <$> x .@? "association"+ <*> x .@? "attachment"+ <*> x .@? "availabilityZone"+ <*> x .@? "description"+ <*> x .@? "groupSet" .!@ mempty+ <*> x .@? "macAddress"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "ownerId"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"+ <*> x .@? "privateIpAddressesSet" .!@ mempty+ <*> x .@? "requesterId"+ <*> x .@? "requesterManaged"+ <*> x .@? "sourceDestCheck"+ <*> x .@? "status"+ <*> x .@? "subnetId"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcId"++instance ToQuery NetworkInterface where+ toQuery NetworkInterface{..} = mconcat+ [ "Association" =? _niAssociation+ , "Attachment" =? _niAttachment+ , "AvailabilityZone" =? _niAvailabilityZone+ , "Description" =? _niDescription+ , "GroupSet" `toQueryList` _niGroups+ , "MacAddress" =? _niMacAddress+ , "NetworkInterfaceId" =? _niNetworkInterfaceId+ , "OwnerId" =? _niOwnerId+ , "PrivateDnsName" =? _niPrivateDnsName+ , "PrivateIpAddress" =? _niPrivateIpAddress+ , "PrivateIpAddressesSet" `toQueryList` _niPrivateIpAddresses+ , "RequesterId" =? _niRequesterId+ , "RequesterManaged" =? _niRequesterManaged+ , "SourceDestCheck" =? _niSourceDestCheck+ , "Status" =? _niStatus+ , "SubnetId" =? _niSubnetId+ , "TagSet" `toQueryList` _niTagSet+ , "VpcId" =? _niVpcId+ ]++data TelemetryStatus+ = Down -- ^ DOWN+ | Up -- ^ UP+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable TelemetryStatus++instance FromText TelemetryStatus where+ parser = takeLowerText >>= \case+ "down" -> pure Down+ "up" -> pure Up+ e -> fail $+ "Failure parsing TelemetryStatus from " ++ show e++instance ToText TelemetryStatus where+ toText = \case+ Down -> "DOWN"+ Up -> "UP"++instance ToByteString TelemetryStatus+instance ToHeader TelemetryStatus+instance ToQuery TelemetryStatus++instance FromXML TelemetryStatus where+ parseXML = parseXMLText "TelemetryStatus"++data Subnet = Subnet+ { _s1AvailabilityZone :: Text+ , _s1AvailableIpAddressCount :: Int+ , _s1CidrBlock :: Text+ , _s1DefaultForAz :: Bool+ , _s1MapPublicIpOnLaunch :: Bool+ , _s1State :: SubnetState+ , _s1SubnetId :: Text+ , _s1Tags :: List "item" Tag+ , _s1VpcId :: Text+ } deriving (Eq, Read, Show)++-- | 'Subnet' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 's1AvailabilityZone' @::@ 'Text'+--+-- * 's1AvailableIpAddressCount' @::@ 'Int'+--+-- * 's1CidrBlock' @::@ 'Text'+--+-- * 's1DefaultForAz' @::@ 'Bool'+--+-- * 's1MapPublicIpOnLaunch' @::@ 'Bool'+--+-- * 's1State' @::@ 'SubnetState'+--+-- * 's1SubnetId' @::@ 'Text'+--+-- * 's1Tags' @::@ ['Tag']+--+-- * 's1VpcId' @::@ 'Text'+--+subnet :: Text -- ^ 's1SubnetId'+ -> SubnetState -- ^ 's1State'+ -> Text -- ^ 's1VpcId'+ -> Text -- ^ 's1CidrBlock'+ -> Int -- ^ 's1AvailableIpAddressCount'+ -> Text -- ^ 's1AvailabilityZone'+ -> Bool -- ^ 's1DefaultForAz'+ -> Bool -- ^ 's1MapPublicIpOnLaunch'+ -> Subnet+subnet p1 p2 p3 p4 p5 p6 p7 p8 = Subnet+ { _s1SubnetId = p1+ , _s1State = p2+ , _s1VpcId = p3+ , _s1CidrBlock = p4+ , _s1AvailableIpAddressCount = p5+ , _s1AvailabilityZone = p6+ , _s1DefaultForAz = p7+ , _s1MapPublicIpOnLaunch = p8+ , _s1Tags = mempty+ }++-- | The Availability Zone of the subnet.+s1AvailabilityZone :: Lens' Subnet Text+s1AvailabilityZone =+ lens _s1AvailabilityZone (\s a -> s { _s1AvailabilityZone = a })++-- | The number of unused IP addresses in the subnet. Note that the IP addresses+-- for any stopped instances are considered unavailable.+s1AvailableIpAddressCount :: Lens' Subnet Int+s1AvailableIpAddressCount =+ lens _s1AvailableIpAddressCount+ (\s a -> s { _s1AvailableIpAddressCount = a })++-- | The CIDR block assigned to the subnet.+s1CidrBlock :: Lens' Subnet Text+s1CidrBlock = lens _s1CidrBlock (\s a -> s { _s1CidrBlock = a })++-- | Indicates whether this is the default subnet for the Availability Zone.+s1DefaultForAz :: Lens' Subnet Bool+s1DefaultForAz = lens _s1DefaultForAz (\s a -> s { _s1DefaultForAz = a })++-- | Indicates whether instances launched in this subnet receive a public IP+-- address.+s1MapPublicIpOnLaunch :: Lens' Subnet Bool+s1MapPublicIpOnLaunch =+ lens _s1MapPublicIpOnLaunch (\s a -> s { _s1MapPublicIpOnLaunch = a })++-- | The current state of the subnet.+s1State :: Lens' Subnet SubnetState+s1State = lens _s1State (\s a -> s { _s1State = a })++-- | The ID of the subnet.+s1SubnetId :: Lens' Subnet Text+s1SubnetId = lens _s1SubnetId (\s a -> s { _s1SubnetId = a })++-- | Any tags assigned to the subnet.+s1Tags :: Lens' Subnet [Tag]+s1Tags = lens _s1Tags (\s a -> s { _s1Tags = a }) . _List++-- | The ID of the VPC the subnet is in.+s1VpcId :: Lens' Subnet Text+s1VpcId = lens _s1VpcId (\s a -> s { _s1VpcId = a })++instance FromXML Subnet where+ parseXML x = Subnet+ <$> x .@ "availabilityZone"+ <*> x .@ "availableIpAddressCount"+ <*> x .@ "cidrBlock"+ <*> x .@ "defaultForAz"+ <*> x .@ "mapPublicIpOnLaunch"+ <*> x .@ "state"+ <*> x .@ "subnetId"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "vpcId"++instance ToQuery Subnet where+ toQuery Subnet{..} = mconcat+ [ "AvailabilityZone" =? _s1AvailabilityZone+ , "AvailableIpAddressCount" =? _s1AvailableIpAddressCount+ , "CidrBlock" =? _s1CidrBlock+ , "DefaultForAz" =? _s1DefaultForAz+ , "MapPublicIpOnLaunch" =? _s1MapPublicIpOnLaunch+ , "State" =? _s1State+ , "SubnetId" =? _s1SubnetId+ , "TagSet" `toQueryList` _s1Tags+ , "VpcId" =? _s1VpcId+ ]++data KeyPairInfo = KeyPairInfo+ { _kpiKeyFingerprint :: Maybe Text+ , _kpiKeyName :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'KeyPairInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'kpiKeyFingerprint' @::@ 'Maybe' 'Text'+--+-- * 'kpiKeyName' @::@ 'Maybe' 'Text'+--+keyPairInfo :: KeyPairInfo+keyPairInfo = KeyPairInfo+ { _kpiKeyName = Nothing+ , _kpiKeyFingerprint = 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 ToQuery KeyPairInfo where+ toQuery KeyPairInfo{..} = mconcat+ [ "KeyFingerprint" =? _kpiKeyFingerprint+ , "KeyName" =? _kpiKeyName+ ]++data LaunchPermissionModifications = LaunchPermissionModifications+ { _lpmAdd :: List "item" LaunchPermission+ , _lpmRemove :: List "item" LaunchPermission+ } deriving (Eq, Read, Show)++-- | 'LaunchPermissionModifications' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lpmAdd' @::@ ['LaunchPermission']+--+-- * 'lpmRemove' @::@ ['LaunchPermission']+--+launchPermissionModifications :: LaunchPermissionModifications+launchPermissionModifications = LaunchPermissionModifications+ { _lpmAdd = mempty+ , _lpmRemove = mempty+ }++-- | 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 }) . _List++-- | 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 }) . _List++instance FromXML LaunchPermissionModifications where+ parseXML x = LaunchPermissionModifications+ <$> x .@? "Add" .!@ mempty+ <*> x .@? "Remove" .!@ mempty++instance ToQuery LaunchPermissionModifications where+ toQuery LaunchPermissionModifications{..} = mconcat+ [ "Add" `toQueryList` _lpmAdd+ , "Remove" `toQueryList` _lpmRemove+ ]++data SnapshotState+ = Completed -- ^ completed+ | Error -- ^ error+ | Pending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable SnapshotState++instance FromText SnapshotState where+ parser = takeLowerText >>= \case+ "completed" -> pure Completed+ "error" -> pure Error+ "pending" -> pure Pending+ e -> fail $+ "Failure parsing SnapshotState from " ++ show e++instance ToText SnapshotState where+ toText = \case+ Completed -> "completed"+ Error -> "error"+ Pending -> "pending"++instance ToByteString SnapshotState+instance ToHeader SnapshotState+instance ToQuery SnapshotState++instance FromXML SnapshotState where+ parseXML = parseXMLText "SnapshotState"++data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation+ { _iniaIpOwnerId :: Maybe Text+ , _iniaPublicDnsName :: Maybe Text+ , _iniaPublicIp :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'InstanceNetworkInterfaceAssociation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iniaIpOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'iniaPublicDnsName' @::@ 'Maybe' 'Text'+--+-- * 'iniaPublicIp' @::@ 'Maybe' 'Text'+--+instanceNetworkInterfaceAssociation :: InstanceNetworkInterfaceAssociation+instanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation+ { _iniaPublicIp = Nothing+ , _iniaPublicDnsName = Nothing+ , _iniaIpOwnerId = Nothing+ }++-- | 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 DNS name.+iniaPublicDnsName :: Lens' InstanceNetworkInterfaceAssociation (Maybe Text)+iniaPublicDnsName =+ lens _iniaPublicDnsName (\s a -> s { _iniaPublicDnsName = 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 .@? "ipOwnerId"+ <*> x .@? "publicDnsName"+ <*> x .@? "publicIp"++instance ToQuery InstanceNetworkInterfaceAssociation where+ toQuery InstanceNetworkInterfaceAssociation{..} = mconcat+ [ "IpOwnerId" =? _iniaIpOwnerId+ , "PublicDnsName" =? _iniaPublicDnsName+ , "PublicIp" =? _iniaPublicIp+ ]++data DiskImageDetail = DiskImageDetail+ { _didBytes :: Integer+ , _didFormat :: DiskImageFormat+ , _didImportManifestUrl :: Text+ } deriving (Eq, Read, Show)++-- | 'DiskImageDetail' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'didBytes' @::@ 'Integer'+--+-- * 'didFormat' @::@ 'DiskImageFormat'+--+-- * 'didImportManifestUrl' @::@ 'Text'+--+diskImageDetail :: DiskImageFormat -- ^ 'didFormat'+ -> Integer -- ^ 'didBytes'+ -> Text -- ^ 'didImportManifestUrl'+ -> DiskImageDetail+diskImageDetail p1 p2 p3 = DiskImageDetail+ { _didFormat = p1+ , _didBytes = p2+ , _didImportManifestUrl = p3+ }++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/.+didImportManifestUrl :: Lens' DiskImageDetail Text+didImportManifestUrl =+ lens _didImportManifestUrl (\s a -> s { _didImportManifestUrl = a })++instance FromXML DiskImageDetail where+ parseXML x = DiskImageDetail+ <$> x .@ "bytes"+ <*> x .@ "format"+ <*> x .@ "importManifestUrl"++instance ToQuery DiskImageDetail where+ toQuery DiskImageDetail{..} = mconcat+ [ "Bytes" =? _didBytes+ , "Format" =? _didFormat+ , "ImportManifestUrl" =? _didImportManifestUrl+ ]++data InstancePrivateIpAddress = InstancePrivateIpAddress+ { _ipiaAssociation :: Maybe InstanceNetworkInterfaceAssociation+ , _ipiaPrimary :: Maybe Bool+ , _ipiaPrivateDnsName :: Maybe Text+ , _ipiaPrivateIpAddress :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'InstancePrivateIpAddress' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ipiaAssociation' @::@ 'Maybe' 'InstanceNetworkInterfaceAssociation'+--+-- * 'ipiaPrimary' @::@ 'Maybe' 'Bool'+--+-- * 'ipiaPrivateDnsName' @::@ 'Maybe' 'Text'+--+-- * 'ipiaPrivateIpAddress' @::@ 'Maybe' 'Text'+--+instancePrivateIpAddress :: InstancePrivateIpAddress+instancePrivateIpAddress = InstancePrivateIpAddress+ { _ipiaPrivateIpAddress = Nothing+ , _ipiaPrivateDnsName = Nothing+ , _ipiaPrimary = Nothing+ , _ipiaAssociation = Nothing+ }++-- | 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 })++-- | Indicates whether this IP 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 DNS name.+ipiaPrivateDnsName :: Lens' InstancePrivateIpAddress (Maybe Text)+ipiaPrivateDnsName =+ lens _ipiaPrivateDnsName (\s a -> s { _ipiaPrivateDnsName = a })++-- | The private IP address of the network interface.+ipiaPrivateIpAddress :: Lens' InstancePrivateIpAddress (Maybe Text)+ipiaPrivateIpAddress =+ lens _ipiaPrivateIpAddress (\s a -> s { _ipiaPrivateIpAddress = a })++instance FromXML InstancePrivateIpAddress where+ parseXML x = InstancePrivateIpAddress+ <$> x .@? "association"+ <*> x .@? "primary"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"++instance ToQuery InstancePrivateIpAddress where+ toQuery InstancePrivateIpAddress{..} = mconcat+ [ "Association" =? _ipiaAssociation+ , "Primary" =? _ipiaPrimary+ , "PrivateDnsName" =? _ipiaPrivateDnsName+ , "PrivateIpAddress" =? _ipiaPrivateIpAddress+ ]++data CancelledSpotInstanceRequest = CancelledSpotInstanceRequest+ { _csiSpotInstanceRequestId :: Maybe Text+ , _csiState :: Maybe CancelSpotInstanceRequestState+ } deriving (Eq, Read, Show)++-- | 'CancelledSpotInstanceRequest' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csiSpotInstanceRequestId' @::@ 'Maybe' 'Text'+--+-- * 'csiState' @::@ 'Maybe' 'CancelSpotInstanceRequestState'+--+cancelledSpotInstanceRequest :: CancelledSpotInstanceRequest+cancelledSpotInstanceRequest = CancelledSpotInstanceRequest+ { _csiSpotInstanceRequestId = Nothing+ , _csiState = Nothing+ }++-- | The ID of the Spot Instance request.+csiSpotInstanceRequestId :: Lens' CancelledSpotInstanceRequest (Maybe Text)+csiSpotInstanceRequestId =+ lens _csiSpotInstanceRequestId+ (\s a -> s { _csiSpotInstanceRequestId = a })++-- | The state of the Spot Instance request.+csiState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)+csiState = lens _csiState (\s a -> s { _csiState = a })++instance FromXML CancelledSpotInstanceRequest where+ parseXML x = CancelledSpotInstanceRequest+ <$> x .@? "spotInstanceRequestId"+ <*> x .@? "state"++instance ToQuery CancelledSpotInstanceRequest where+ toQuery CancelledSpotInstanceRequest{..} = mconcat+ [ "SpotInstanceRequestId" =? _csiSpotInstanceRequestId+ , "State" =? _csiState+ ]++newtype VpnConnectionOptionsSpecification = VpnConnectionOptionsSpecification+ { _vcosStaticRoutesOnly :: Maybe Bool+ } deriving (Eq, Ord, Read, Show)++-- | 'VpnConnectionOptionsSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vcosStaticRoutesOnly' @::@ 'Maybe' 'Bool'+--+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 FromXML VpnConnectionOptionsSpecification where+ parseXML x = VpnConnectionOptionsSpecification+ <$> x .@? "staticRoutesOnly"++instance ToQuery VpnConnectionOptionsSpecification where+ toQuery VpnConnectionOptionsSpecification{..} = mconcat+ [ "StaticRoutesOnly" =? _vcosStaticRoutesOnly+ ]++data Address = Address+ { _aAllocationId :: Maybe Text+ , _aAssociationId :: Maybe Text+ , _aDomain :: Maybe DomainType+ , _aInstanceId :: Maybe Text+ , _aNetworkInterfaceId :: Maybe Text+ , _aNetworkInterfaceOwnerId :: Maybe Text+ , _aPrivateIpAddress :: Maybe Text+ , _aPublicIp :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'Address' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aAllocationId' @::@ 'Maybe' 'Text'+--+-- * 'aAssociationId' @::@ 'Maybe' 'Text'+--+-- * 'aDomain' @::@ 'Maybe' 'DomainType'+--+-- * 'aInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'aNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'aNetworkInterfaceOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'aPrivateIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'aPublicIp' @::@ 'Maybe' 'Text'+--+address :: Address+address = Address+ { _aInstanceId = Nothing+ , _aPublicIp = Nothing+ , _aAllocationId = Nothing+ , _aAssociationId = Nothing+ , _aDomain = Nothing+ , _aNetworkInterfaceId = Nothing+ , _aNetworkInterfaceOwnerId = Nothing+ , _aPrivateIpAddress = Nothing+ }++-- | 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 })++-- | 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 })++-- | 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 instance the address is associated with (if any).+aInstanceId :: Lens' Address (Maybe Text)+aInstanceId = lens _aInstanceId (\s a -> s { _aInstanceId = a })++-- | The ID of the network interface.+aNetworkInterfaceId :: Lens' Address (Maybe Text)+aNetworkInterfaceId =+ lens _aNetworkInterfaceId (\s a -> s { _aNetworkInterfaceId = 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 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 .@? "allocationId"+ <*> x .@? "associationId"+ <*> x .@? "domain"+ <*> x .@? "instanceId"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "networkInterfaceOwnerId"+ <*> x .@? "privateIpAddress"+ <*> x .@? "publicIp"++instance ToQuery Address where+ toQuery Address{..} = mconcat+ [ "AllocationId" =? _aAllocationId+ , "AssociationId" =? _aAssociationId+ , "Domain" =? _aDomain+ , "InstanceId" =? _aInstanceId+ , "NetworkInterfaceId" =? _aNetworkInterfaceId+ , "NetworkInterfaceOwnerId" =? _aNetworkInterfaceOwnerId+ , "PrivateIpAddress" =? _aPrivateIpAddress+ , "PublicIp" =? _aPublicIp+ ]++data VolumeAttachmentState+ = VASAttached -- ^ attached+ | VASAttaching -- ^ attaching+ | VASDetached -- ^ detached+ | VASDetaching -- ^ detaching+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VolumeAttachmentState++instance FromText VolumeAttachmentState where+ parser = takeLowerText >>= \case+ "attached" -> pure VASAttached+ "attaching" -> pure VASAttaching+ "detached" -> pure VASDetached+ "detaching" -> pure VASDetaching+ e -> fail $+ "Failure parsing VolumeAttachmentState from " ++ show e++instance ToText VolumeAttachmentState where+ toText = \case+ VASAttached -> "attached"+ VASAttaching -> "attaching"+ VASDetached -> "detached"+ VASDetaching -> "detaching"++instance ToByteString VolumeAttachmentState+instance ToHeader VolumeAttachmentState+instance ToQuery VolumeAttachmentState++instance FromXML VolumeAttachmentState where+ parseXML = parseXMLText "VolumeAttachmentState"++data LaunchPermission = LaunchPermission+ { _lpGroup :: Maybe PermissionGroup+ , _lpUserId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'LaunchPermission' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lpGroup' @::@ 'Maybe' 'PermissionGroup'+--+-- * 'lpUserId' @::@ 'Maybe' 'Text'+--+launchPermission :: LaunchPermission+launchPermission = LaunchPermission+ { _lpUserId = Nothing+ , _lpGroup = 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 ToQuery LaunchPermission where+ toQuery LaunchPermission{..} = mconcat+ [ "Group" =? _lpGroup+ , "UserId" =? _lpUserId+ ]++data RouteState+ = Active -- ^ active+ | Blackhole -- ^ blackhole+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable RouteState++instance FromText RouteState where+ parser = takeLowerText >>= \case+ "active" -> pure Active+ "blackhole" -> pure Blackhole+ e -> fail $+ "Failure parsing RouteState from " ++ show e++instance ToText RouteState where+ toText = \case+ Active -> "active"+ Blackhole -> "blackhole"++instance ToByteString RouteState+instance ToHeader RouteState+instance ToQuery RouteState++instance FromXML RouteState where+ parseXML = parseXMLText "RouteState"++data RouteTableAssociation = RouteTableAssociation+ { _rtaMain :: Maybe Bool+ , _rtaRouteTableAssociationId :: Maybe Text+ , _rtaRouteTableId :: Maybe Text+ , _rtaSubnetId :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'RouteTableAssociation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtaMain' @::@ 'Maybe' 'Bool'+--+-- * 'rtaRouteTableAssociationId' @::@ 'Maybe' 'Text'+--+-- * 'rtaRouteTableId' @::@ 'Maybe' 'Text'+--+-- * 'rtaSubnetId' @::@ 'Maybe' 'Text'+--+routeTableAssociation :: RouteTableAssociation+routeTableAssociation = RouteTableAssociation+ { _rtaRouteTableAssociationId = Nothing+ , _rtaRouteTableId = Nothing+ , _rtaSubnetId = Nothing+ , _rtaMain = Nothing+ }++-- | 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 association between a route table and a subnet.+rtaRouteTableAssociationId :: Lens' RouteTableAssociation (Maybe Text)+rtaRouteTableAssociationId =+ lens _rtaRouteTableAssociationId+ (\s a -> s { _rtaRouteTableAssociationId = a })++-- | The ID of the route table.+rtaRouteTableId :: Lens' RouteTableAssociation (Maybe Text)+rtaRouteTableId = lens _rtaRouteTableId (\s a -> s { _rtaRouteTableId = a })++-- | The ID of the subnet.+rtaSubnetId :: Lens' RouteTableAssociation (Maybe Text)+rtaSubnetId = lens _rtaSubnetId (\s a -> s { _rtaSubnetId = a })++instance FromXML RouteTableAssociation where+ parseXML x = RouteTableAssociation+ <$> x .@? "main"+ <*> x .@? "routeTableAssociationId"+ <*> x .@? "routeTableId"+ <*> x .@? "subnetId"++instance ToQuery RouteTableAssociation where+ toQuery RouteTableAssociation{..} = mconcat+ [ "Main" =? _rtaMain+ , "RouteTableAssociationId" =? _rtaRouteTableAssociationId+ , "RouteTableId" =? _rtaRouteTableId+ , "SubnetId" =? _rtaSubnetId+ ]++data BundleTaskState+ = BTSBundling -- ^ bundling+ | BTSCancelling -- ^ cancelling+ | BTSComplete -- ^ complete+ | BTSFailed -- ^ failed+ | BTSPending -- ^ pending+ | BTSStoring -- ^ storing+ | BTSWaitingForShutdown -- ^ waiting-for-shutdown+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable BundleTaskState++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 -> fail $+ "Failure parsing BundleTaskState from " ++ show e++instance ToText BundleTaskState where+ toText = \case+ BTSBundling -> "bundling"+ BTSCancelling -> "cancelling"+ BTSComplete -> "complete"+ BTSFailed -> "failed"+ BTSPending -> "pending"+ BTSStoring -> "storing"+ BTSWaitingForShutdown -> "waiting-for-shutdown"++instance ToByteString BundleTaskState+instance ToHeader BundleTaskState+instance ToQuery BundleTaskState++instance FromXML BundleTaskState where+ parseXML = parseXMLText "BundleTaskState"++data PortRange = PortRange+ { _prFrom :: Maybe Int+ , _prTo :: Maybe Int+ } deriving (Eq, Ord, Read, Show)++-- | 'PortRange' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'prFrom' @::@ 'Maybe' 'Int'+--+-- * 'prTo' @::@ 'Maybe' 'Int'+--+portRange :: PortRange+portRange = PortRange+ { _prFrom = Nothing+ , _prTo = Nothing+ }++-- | The first port in the range.+prFrom :: Lens' PortRange (Maybe Int)+prFrom = lens _prFrom (\s a -> s { _prFrom = a })++-- | The last port in the range.+prTo :: Lens' PortRange (Maybe Int)+prTo = lens _prTo (\s a -> s { _prTo = a })++instance FromXML PortRange where+ parseXML x = PortRange+ <$> x .@? "from"+ <*> x .@? "to"++instance ToQuery PortRange where+ toQuery PortRange{..} = mconcat+ [ "From" =? _prFrom+ , "To" =? _prTo+ ]++data VpcAttributeName+ = EnableDnsHostnames -- ^ enableDnsHostnames+ | EnableDnsSupport -- ^ enableDnsSupport+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VpcAttributeName++instance FromText VpcAttributeName where+ parser = takeLowerText >>= \case+ "enablednshostnames" -> pure EnableDnsHostnames+ "enablednssupport" -> pure EnableDnsSupport+ e -> fail $+ "Failure parsing VpcAttributeName from " ++ show e++instance ToText VpcAttributeName where+ toText = \case+ EnableDnsHostnames -> "enableDnsHostnames"+ EnableDnsSupport -> "enableDnsSupport"++instance ToByteString VpcAttributeName+instance ToHeader VpcAttributeName+instance ToQuery VpcAttributeName++instance FromXML VpcAttributeName where+ parseXML = parseXMLText "VpcAttributeName"++data ReservedInstancesConfiguration = ReservedInstancesConfiguration+ { _ricAvailabilityZone :: Maybe Text+ , _ricInstanceCount :: Maybe Int+ , _ricInstanceType :: Maybe InstanceType+ , _ricPlatform :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'ReservedInstancesConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ricAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'ricInstanceCount' @::@ 'Maybe' 'Int'+--+-- * 'ricInstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'ricPlatform' @::@ 'Maybe' 'Text'+--+reservedInstancesConfiguration :: ReservedInstancesConfiguration+reservedInstancesConfiguration = ReservedInstancesConfiguration+ { _ricAvailabilityZone = Nothing+ , _ricPlatform = Nothing+ , _ricInstanceCount = Nothing+ , _ricInstanceType = Nothing+ }++-- | The Availability Zone for the modified Reserved Instances.+ricAvailabilityZone :: Lens' ReservedInstancesConfiguration (Maybe Text)+ricAvailabilityZone =+ lens _ricAvailabilityZone (\s a -> s { _ricAvailabilityZone = 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 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 })++instance FromXML ReservedInstancesConfiguration where+ parseXML x = ReservedInstancesConfiguration+ <$> x .@? "availabilityZone"+ <*> x .@? "instanceCount"+ <*> x .@? "instanceType"+ <*> x .@? "platform"++instance ToQuery ReservedInstancesConfiguration where+ toQuery ReservedInstancesConfiguration{..} = mconcat+ [ "AvailabilityZone" =? _ricAvailabilityZone+ , "InstanceCount" =? _ricInstanceCount+ , "InstanceType" =? _ricInstanceType+ , "Platform" =? _ricPlatform+ ]++data VolumeStatusDetails = VolumeStatusDetails+ { _vsdName :: Maybe VolumeStatusName+ , _vsdStatus :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VolumeStatusDetails' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vsdName' @::@ 'Maybe' 'VolumeStatusName'+--+-- * 'vsdStatus' @::@ 'Maybe' 'Text'+--+volumeStatusDetails :: VolumeStatusDetails+volumeStatusDetails = VolumeStatusDetails+ { _vsdName = Nothing+ , _vsdStatus = Nothing+ }++-- | The name of the volume status.+vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)+vsdName = lens _vsdName (\s a -> s { _vsdName = a })++-- | The intended status of the volume status.+vsdStatus :: Lens' VolumeStatusDetails (Maybe Text)+vsdStatus = lens _vsdStatus (\s a -> s { _vsdStatus = a })++instance FromXML VolumeStatusDetails where+ parseXML x = VolumeStatusDetails+ <$> x .@? "name"+ <*> x .@? "status"++instance ToQuery VolumeStatusDetails where+ toQuery VolumeStatusDetails{..} = mconcat+ [ "Name" =? _vsdName+ , "Status" =? _vsdStatus+ ]++data SpotInstanceState+ = SISActive -- ^ active+ | SISCancelled -- ^ cancelled+ | SISClosed -- ^ closed+ | SISFailed -- ^ failed+ | SISOpen -- ^ open+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable SpotInstanceState++instance FromText SpotInstanceState where+ parser = takeLowerText >>= \case+ "active" -> pure SISActive+ "cancelled" -> pure SISCancelled+ "closed" -> pure SISClosed+ "failed" -> pure SISFailed+ "open" -> pure SISOpen+ e -> fail $+ "Failure parsing SpotInstanceState from " ++ show e++instance ToText SpotInstanceState where+ toText = \case+ SISActive -> "active"+ SISCancelled -> "cancelled"+ SISClosed -> "closed"+ SISFailed -> "failed"+ SISOpen -> "open"++instance ToByteString SpotInstanceState+instance ToHeader SpotInstanceState+instance ToQuery SpotInstanceState++instance FromXML SpotInstanceState where+ parseXML = parseXMLText "SpotInstanceState"++newtype VpnConnectionOptions = VpnConnectionOptions+ { _vcoStaticRoutesOnly :: Maybe Bool+ } deriving (Eq, Ord, Read, Show)++-- | 'VpnConnectionOptions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vcoStaticRoutesOnly' @::@ 'Maybe' 'Bool'+--+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 ToQuery VpnConnectionOptions where+ toQuery VpnConnectionOptions{..} = mconcat+ [ "StaticRoutesOnly" =? _vcoStaticRoutesOnly+ ]++data UserIdGroupPair = UserIdGroupPair+ { _uigpGroupId :: Maybe Text+ , _uigpGroupName :: Maybe Text+ , _uigpUserId :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'UserIdGroupPair' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'uigpGroupId' @::@ 'Maybe' 'Text'+--+-- * 'uigpGroupName' @::@ 'Maybe' 'Text'+--+-- * 'uigpUserId' @::@ 'Maybe' 'Text'+--+userIdGroupPair :: UserIdGroupPair+userIdGroupPair = UserIdGroupPair+ { _uigpUserId = Nothing+ , _uigpGroupName = Nothing+ , _uigpGroupId = Nothing+ }++-- | The name of the security group in the specified AWS account.+uigpGroupId :: Lens' UserIdGroupPair (Maybe Text)+uigpGroupId = lens _uigpGroupId (\s a -> s { _uigpGroupId = a })++-- | The ID of the security group owned by the specified AWS account.+uigpGroupName :: Lens' UserIdGroupPair (Maybe Text)+uigpGroupName = lens _uigpGroupName (\s a -> s { _uigpGroupName = a })++-- | The ID of an AWS account.+uigpUserId :: Lens' UserIdGroupPair (Maybe Text)+uigpUserId = lens _uigpUserId (\s a -> s { _uigpUserId = a })++instance FromXML UserIdGroupPair where+ parseXML x = UserIdGroupPair+ <$> x .@? "groupId"+ <*> x .@? "groupName"+ <*> x .@? "userId"++instance ToQuery UserIdGroupPair where+ toQuery UserIdGroupPair{..} = mconcat+ [ "GroupId" =? _uigpGroupId+ , "GroupName" =? _uigpGroupName+ , "UserId" =? _uigpUserId+ ]++data InstanceStatusSummary = InstanceStatusSummary+ { _issDetails :: List "item" InstanceStatusDetails+ , _issStatus :: Maybe SummaryStatus+ } deriving (Eq, Read, Show)++-- | 'InstanceStatusSummary' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'issDetails' @::@ ['InstanceStatusDetails']+--+-- * 'issStatus' @::@ 'Maybe' 'SummaryStatus'+--+instanceStatusSummary :: InstanceStatusSummary+instanceStatusSummary = InstanceStatusSummary+ { _issStatus = Nothing+ , _issDetails = mempty+ }++-- | The system instance health or application instance health.+issDetails :: Lens' InstanceStatusSummary [InstanceStatusDetails]+issDetails = lens _issDetails (\s a -> s { _issDetails = a }) . _List++-- | The status.+issStatus :: Lens' InstanceStatusSummary (Maybe SummaryStatus)+issStatus = lens _issStatus (\s a -> s { _issStatus = a })++instance FromXML InstanceStatusSummary where+ parseXML x = InstanceStatusSummary+ <$> x .@? "details" .!@ mempty+ <*> x .@? "status"++instance ToQuery InstanceStatusSummary where+ toQuery InstanceStatusSummary{..} = mconcat+ [ "Details" `toQueryList` _issDetails+ , "Status" =? _issStatus+ ]++data SpotPlacement = SpotPlacement+ { _sp1AvailabilityZone :: Maybe Text+ , _sp1GroupName :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'SpotPlacement' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sp1AvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'sp1GroupName' @::@ 'Maybe' 'Text'+--+spotPlacement :: SpotPlacement+spotPlacement = SpotPlacement+ { _sp1AvailabilityZone = Nothing+ , _sp1GroupName = Nothing+ }++-- | The Availability Zone.+sp1AvailabilityZone :: Lens' SpotPlacement (Maybe Text)+sp1AvailabilityZone =+ lens _sp1AvailabilityZone (\s a -> s { _sp1AvailabilityZone = a })++-- | The name of the placement group (for cluster instances).+sp1GroupName :: Lens' SpotPlacement (Maybe Text)+sp1GroupName = lens _sp1GroupName (\s a -> s { _sp1GroupName = a })++instance FromXML SpotPlacement where+ parseXML x = SpotPlacement+ <$> x .@? "availabilityZone"+ <*> x .@? "groupName"++instance ToQuery SpotPlacement where+ toQuery SpotPlacement{..} = mconcat+ [ "AvailabilityZone" =? _sp1AvailabilityZone+ , "GroupName" =? _sp1GroupName+ ]++data EbsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification+ { _eibdsDeleteOnTermination :: Maybe Bool+ , _eibdsVolumeId :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'EbsInstanceBlockDeviceSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eibdsDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'eibdsVolumeId' @::@ 'Maybe' 'Text'+--+ebsInstanceBlockDeviceSpecification :: EbsInstanceBlockDeviceSpecification+ebsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification+ { _eibdsVolumeId = Nothing+ , _eibdsDeleteOnTermination = 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 Amazon EBS volume.+eibdsVolumeId :: Lens' EbsInstanceBlockDeviceSpecification (Maybe Text)+eibdsVolumeId = lens _eibdsVolumeId (\s a -> s { _eibdsVolumeId = a })++instance FromXML EbsInstanceBlockDeviceSpecification where+ parseXML x = EbsInstanceBlockDeviceSpecification+ <$> x .@? "deleteOnTermination"+ <*> x .@? "volumeId"++instance ToQuery EbsInstanceBlockDeviceSpecification where+ toQuery EbsInstanceBlockDeviceSpecification{..} = mconcat+ [ "DeleteOnTermination" =? _eibdsDeleteOnTermination+ , "VolumeId" =? _eibdsVolumeId+ ]++data NetworkAclAssociation = NetworkAclAssociation+ { _naaNetworkAclAssociationId :: Maybe Text+ , _naaNetworkAclId :: Maybe Text+ , _naaSubnetId :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'NetworkAclAssociation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'naaNetworkAclAssociationId' @::@ 'Maybe' 'Text'+--+-- * 'naaNetworkAclId' @::@ 'Maybe' 'Text'+--+-- * 'naaSubnetId' @::@ 'Maybe' 'Text'+--+networkAclAssociation :: NetworkAclAssociation+networkAclAssociation = NetworkAclAssociation+ { _naaNetworkAclAssociationId = Nothing+ , _naaNetworkAclId = Nothing+ , _naaSubnetId = Nothing+ }++-- | 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 })++-- | 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 })++instance FromXML NetworkAclAssociation where+ parseXML x = NetworkAclAssociation+ <$> x .@? "networkAclAssociationId"+ <*> x .@? "networkAclId"+ <*> x .@? "subnetId"++instance ToQuery NetworkAclAssociation where+ toQuery NetworkAclAssociation{..} = mconcat+ [ "NetworkAclAssociationId" =? _naaNetworkAclAssociationId+ , "NetworkAclId" =? _naaNetworkAclId+ , "SubnetId" =? _naaSubnetId+ ]++data BundleTask = BundleTask+ { _btBundleId :: Text+ , _btBundleTaskError :: Maybe BundleTaskError+ , _btInstanceId :: Text+ , _btProgress :: Text+ , _btStartTime :: ISO8601+ , _btState :: BundleTaskState+ , _btStorage :: Storage+ , _btUpdateTime :: ISO8601+ } deriving (Eq, Read, Show)++-- | 'BundleTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'btBundleId' @::@ 'Text'+--+-- * 'btBundleTaskError' @::@ 'Maybe' 'BundleTaskError'+--+-- * 'btInstanceId' @::@ 'Text'+--+-- * 'btProgress' @::@ 'Text'+--+-- * 'btStartTime' @::@ 'UTCTime'+--+-- * 'btState' @::@ 'BundleTaskState'+--+-- * 'btStorage' @::@ 'Storage'+--+-- * 'btUpdateTime' @::@ 'UTCTime'+--+bundleTask :: Text -- ^ 'btInstanceId'+ -> Text -- ^ 'btBundleId'+ -> BundleTaskState -- ^ 'btState'+ -> UTCTime -- ^ 'btStartTime'+ -> UTCTime -- ^ 'btUpdateTime'+ -> Storage -- ^ 'btStorage'+ -> Text -- ^ 'btProgress'+ -> BundleTask+bundleTask p1 p2 p3 p4 p5 p6 p7 = BundleTask+ { _btInstanceId = p1+ , _btBundleId = p2+ , _btState = p3+ , _btStartTime = withIso _Time (const id) p4+ , _btUpdateTime = withIso _Time (const id) p5+ , _btStorage = p6+ , _btProgress = p7+ , _btBundleTaskError = Nothing+ }++-- | The ID of the bundle task.+btBundleId :: Lens' BundleTask Text+btBundleId = lens _btBundleId (\s a -> s { _btBundleId = a })++-- | 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 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 .@ "bundleId"+ <*> x .@? "error"+ <*> x .@ "instanceId"+ <*> x .@ "progress"+ <*> x .@ "startTime"+ <*> x .@ "state"+ <*> x .@ "storage"+ <*> x .@ "updateTime"++instance ToQuery BundleTask where+ toQuery BundleTask{..} = mconcat+ [ "BundleId" =? _btBundleId+ , "Error" =? _btBundleTaskError+ , "InstanceId" =? _btInstanceId+ , "Progress" =? _btProgress+ , "StartTime" =? _btStartTime+ , "State" =? _btState+ , "Storage" =? _btStorage+ , "UpdateTime" =? _btUpdateTime+ ]++data InstanceStatusEvent = InstanceStatusEvent+ { _iseCode :: Maybe EventCode+ , _iseDescription :: Maybe Text+ , _iseNotAfter :: Maybe ISO8601+ , _iseNotBefore :: Maybe ISO8601+ } deriving (Eq, Read, Show)++-- | 'InstanceStatusEvent' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iseCode' @::@ 'Maybe' 'EventCode'+--+-- * 'iseDescription' @::@ 'Maybe' 'Text'+--+-- * 'iseNotAfter' @::@ 'Maybe' 'UTCTime'+--+-- * 'iseNotBefore' @::@ 'Maybe' 'UTCTime'+--+instanceStatusEvent :: InstanceStatusEvent+instanceStatusEvent = InstanceStatusEvent+ { _iseCode = Nothing+ , _iseDescription = Nothing+ , _iseNotBefore = Nothing+ , _iseNotAfter = Nothing+ }++-- | The associated code of the event.+iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)+iseCode = lens _iseCode (\s a -> s { _iseCode = a })++-- | A description of the event.+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++-- | The earliest scheduled start time for the event.+iseNotBefore :: Lens' InstanceStatusEvent (Maybe UTCTime)+iseNotBefore = lens _iseNotBefore (\s a -> s { _iseNotBefore = a }) . mapping _Time++instance FromXML InstanceStatusEvent where+ parseXML x = InstanceStatusEvent+ <$> x .@? "code"+ <*> x .@? "description"+ <*> x .@? "notAfter"+ <*> x .@? "notBefore"++instance ToQuery InstanceStatusEvent where+ toQuery InstanceStatusEvent{..} = mconcat+ [ "Code" =? _iseCode+ , "Description" =? _iseDescription+ , "NotAfter" =? _iseNotAfter+ , "NotBefore" =? _iseNotBefore+ ]++data InstanceType+ = 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+ | G2_2XLarge -- ^ g2.2xlarge+ | 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+ | 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_Medium -- ^ t2.medium+ | T2_Micro -- ^ t2.micro+ | T2_Small -- ^ t2.small+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable InstanceType++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+ "g2.2xlarge" -> pure G2_2XLarge+ "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+ "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.medium" -> pure T2_Medium+ "t2.micro" -> pure T2_Micro+ "t2.small" -> pure T2_Small+ e -> fail $+ "Failure parsing InstanceType from " ++ show e++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"+ G2_2XLarge -> "g2.2xlarge"+ 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"+ 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_Medium -> "t2.medium"+ T2_Micro -> "t2.micro"+ T2_Small -> "t2.small"++instance ToByteString InstanceType+instance ToHeader InstanceType+instance ToQuery InstanceType++instance FromXML InstanceType where+ parseXML = parseXMLText "InstanceType"++data Route = Route+ { _rDestinationCidrBlock :: Maybe Text+ , _rGatewayId :: Maybe Text+ , _rInstanceId :: Maybe Text+ , _rInstanceOwnerId :: Maybe Text+ , _rNetworkInterfaceId :: Maybe Text+ , _rOrigin :: Maybe RouteOrigin+ , _rState :: Maybe RouteState+ , _rVpcPeeringConnectionId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'Route' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rDestinationCidrBlock' @::@ 'Maybe' 'Text'+--+-- * 'rGatewayId' @::@ 'Maybe' 'Text'+--+-- * 'rInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'rInstanceOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'rNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'rOrigin' @::@ 'Maybe' 'RouteOrigin'+--+-- * 'rState' @::@ 'Maybe' 'RouteState'+--+-- * 'rVpcPeeringConnectionId' @::@ 'Maybe' 'Text'+--+route :: Route+route = Route+ { _rDestinationCidrBlock = Nothing+ , _rGatewayId = Nothing+ , _rInstanceId = Nothing+ , _rInstanceOwnerId = Nothing+ , _rNetworkInterfaceId = Nothing+ , _rVpcPeeringConnectionId = Nothing+ , _rState = Nothing+ , _rOrigin = Nothing+ }++-- | The CIDR block used for the destination match.+rDestinationCidrBlock :: Lens' Route (Maybe Text)+rDestinationCidrBlock =+ lens _rDestinationCidrBlock (\s a -> s { _rDestinationCidrBlock = a })++-- | The ID of a gateway attached to your VPC.+rGatewayId :: Lens' Route (Maybe Text)+rGatewayId = lens _rGatewayId (\s a -> s { _rGatewayId = a })++-- | The ID of a NAT instance in your VPC.+rInstanceId :: Lens' Route (Maybe Text)+rInstanceId = lens _rInstanceId (\s a -> s { _rInstanceId = 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 ID of the network interface.+rNetworkInterfaceId :: Lens' Route (Maybe Text)+rNetworkInterfaceId =+ lens _rNetworkInterfaceId (\s a -> s { _rNetworkInterfaceId = a })++-- | Describes how the route was created.+--+-- 'CreateRouteTable' indicates that 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.+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 VPC peering connection.+rVpcPeeringConnectionId :: Lens' Route (Maybe Text)+rVpcPeeringConnectionId =+ lens _rVpcPeeringConnectionId (\s a -> s { _rVpcPeeringConnectionId = a })++instance FromXML Route where+ parseXML x = Route+ <$> x .@? "destinationCidrBlock"+ <*> x .@? "gatewayId"+ <*> x .@? "instanceId"+ <*> x .@? "instanceOwnerId"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "origin"+ <*> x .@? "state"+ <*> x .@? "vpcPeeringConnectionId"++instance ToQuery Route where+ toQuery Route{..} = mconcat+ [ "DestinationCidrBlock" =? _rDestinationCidrBlock+ , "GatewayId" =? _rGatewayId+ , "InstanceId" =? _rInstanceId+ , "InstanceOwnerId" =? _rInstanceOwnerId+ , "NetworkInterfaceId" =? _rNetworkInterfaceId+ , "Origin" =? _rOrigin+ , "State" =? _rState+ , "VpcPeeringConnectionId" =? _rVpcPeeringConnectionId+ ]++data SpotDatafeedSubscription = SpotDatafeedSubscription+ { _sdsBucket :: Maybe Text+ , _sdsFault :: Maybe SpotInstanceStateFault+ , _sdsOwnerId :: Maybe Text+ , _sdsPrefix :: Maybe Text+ , _sdsState :: Maybe DatafeedSubscriptionState+ } deriving (Eq, Read, Show)++-- | 'SpotDatafeedSubscription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sdsBucket' @::@ 'Maybe' 'Text'+--+-- * 'sdsFault' @::@ 'Maybe' 'SpotInstanceStateFault'+--+-- * 'sdsOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'sdsPrefix' @::@ 'Maybe' 'Text'+--+-- * 'sdsState' @::@ 'Maybe' 'DatafeedSubscriptionState'+--+spotDatafeedSubscription :: SpotDatafeedSubscription+spotDatafeedSubscription = SpotDatafeedSubscription+ { _sdsOwnerId = Nothing+ , _sdsBucket = Nothing+ , _sdsPrefix = Nothing+ , _sdsState = Nothing+ , _sdsFault = Nothing+ }++-- | 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 fault codes for the Spot Instance request, if any.+sdsFault :: Lens' SpotDatafeedSubscription (Maybe SpotInstanceStateFault)+sdsFault = lens _sdsFault (\s a -> s { _sdsFault = a })++-- | The AWS account ID of the account.+sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsOwnerId = lens _sdsOwnerId (\s a -> s { _sdsOwnerId = a })++-- | The prefix that is prepended to data feed files.+sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsPrefix = lens _sdsPrefix (\s a -> s { _sdsPrefix = a })++-- | The state of the Spot Instance data feed subscription.+sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)+sdsState = lens _sdsState (\s a -> s { _sdsState = a })++instance FromXML SpotDatafeedSubscription where+ parseXML x = SpotDatafeedSubscription+ <$> x .@? "bucket"+ <*> x .@? "fault"+ <*> x .@? "ownerId"+ <*> x .@? "prefix"+ <*> x .@? "state"++instance ToQuery SpotDatafeedSubscription where+ toQuery SpotDatafeedSubscription{..} = mconcat+ [ "Bucket" =? _sdsBucket+ , "Fault" =? _sdsFault+ , "OwnerId" =? _sdsOwnerId+ , "Prefix" =? _sdsPrefix+ , "State" =? _sdsState+ ]++newtype Storage = Storage+ { _sS3 :: Maybe S3Storage+ } deriving (Eq, Read, Show)++-- | 'Storage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sS3' @::@ 'Maybe' 'S3Storage'+--+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 ToQuery Storage where+ toQuery Storage{..} = mconcat+ [ "S3" =? _sS3+ ]++data SecurityGroup = SecurityGroup+ { _sgDescription :: Text+ , _sgGroupId :: Text+ , _sgGroupName :: Text+ , _sgIpPermissions :: List "item" IpPermission+ , _sgIpPermissionsEgress :: List "item" IpPermission+ , _sgOwnerId :: Text+ , _sgTags :: List "item" Tag+ , _sgVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'SecurityGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sgDescription' @::@ 'Text'+--+-- * 'sgGroupId' @::@ 'Text'+--+-- * 'sgGroupName' @::@ 'Text'+--+-- * 'sgIpPermissions' @::@ ['IpPermission']+--+-- * 'sgIpPermissionsEgress' @::@ ['IpPermission']+--+-- * 'sgOwnerId' @::@ 'Text'+--+-- * 'sgTags' @::@ ['Tag']+--+-- * 'sgVpcId' @::@ 'Maybe' 'Text'+--+securityGroup :: Text -- ^ 'sgOwnerId'+ -> Text -- ^ 'sgGroupName'+ -> Text -- ^ 'sgGroupId'+ -> Text -- ^ 'sgDescription'+ -> SecurityGroup+securityGroup p1 p2 p3 p4 = SecurityGroup+ { _sgOwnerId = p1+ , _sgGroupName = p2+ , _sgGroupId = p3+ , _sgDescription = p4+ , _sgIpPermissions = mempty+ , _sgIpPermissionsEgress = mempty+ , _sgVpcId = Nothing+ , _sgTags = mempty+ }++-- | A description of the security group.+sgDescription :: Lens' SecurityGroup Text+sgDescription = lens _sgDescription (\s a -> s { _sgDescription = 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 })++-- | One or more inbound rules associated with the security group.+sgIpPermissions :: Lens' SecurityGroup [IpPermission]+sgIpPermissions = lens _sgIpPermissions (\s a -> s { _sgIpPermissions = a }) . _List++-- | [EC2-VPC] One or more outbound rules associated with the security group.+sgIpPermissionsEgress :: Lens' SecurityGroup [IpPermission]+sgIpPermissionsEgress =+ lens _sgIpPermissionsEgress (\s a -> s { _sgIpPermissionsEgress = a })+ . _List++-- | The AWS account ID of the owner of the security group.+sgOwnerId :: Lens' SecurityGroup Text+sgOwnerId = lens _sgOwnerId (\s a -> s { _sgOwnerId = a })++-- | Any tags assigned to the security group.+sgTags :: Lens' SecurityGroup [Tag]+sgTags = lens _sgTags (\s a -> s { _sgTags = a }) . _List++-- | [EC2-VPC] The ID of the VPC for the security group.+sgVpcId :: Lens' SecurityGroup (Maybe Text)+sgVpcId = lens _sgVpcId (\s a -> s { _sgVpcId = a })++instance FromXML SecurityGroup where+ parseXML x = SecurityGroup+ <$> x .@ "groupDescription"+ <*> x .@ "groupId"+ <*> x .@ "groupName"+ <*> x .@? "ipPermissions" .!@ mempty+ <*> x .@? "ipPermissionsEgress" .!@ mempty+ <*> x .@ "ownerId"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcId"++instance ToQuery SecurityGroup where+ toQuery SecurityGroup{..} = mconcat+ [ "GroupDescription" =? _sgDescription+ , "GroupId" =? _sgGroupId+ , "GroupName" =? _sgGroupName+ , "IpPermissions" `toQueryList` _sgIpPermissions+ , "IpPermissionsEgress" `toQueryList` _sgIpPermissionsEgress+ , "OwnerId" =? _sgOwnerId+ , "TagSet" `toQueryList` _sgTags+ , "VpcId" =? _sgVpcId+ ]++data CancelSpotInstanceRequestState+ = CSIRSActive -- ^ active+ | CSIRSCancelled -- ^ cancelled+ | CSIRSClosed -- ^ closed+ | CSIRSCompleted -- ^ completed+ | CSIRSOpen -- ^ open+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable CancelSpotInstanceRequestState++instance FromText CancelSpotInstanceRequestState where+ parser = takeLowerText >>= \case+ "active" -> pure CSIRSActive+ "cancelled" -> pure CSIRSCancelled+ "closed" -> pure CSIRSClosed+ "completed" -> pure CSIRSCompleted+ "open" -> pure CSIRSOpen+ e -> fail $+ "Failure parsing CancelSpotInstanceRequestState from " ++ show e++instance ToText CancelSpotInstanceRequestState where+ toText = \case+ CSIRSActive -> "active"+ CSIRSCancelled -> "cancelled"+ CSIRSClosed -> "closed"+ CSIRSCompleted -> "completed"+ CSIRSOpen -> "open"++instance ToByteString CancelSpotInstanceRequestState+instance ToHeader CancelSpotInstanceRequestState+instance ToQuery CancelSpotInstanceRequestState++instance FromXML CancelSpotInstanceRequestState where+ parseXML = parseXMLText "CancelSpotInstanceRequestState"++data PlacementGroupState+ = PGSAvailable -- ^ available+ | PGSDeleted -- ^ deleted+ | PGSDeleting -- ^ deleting+ | PGSPending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable PlacementGroupState++instance FromText PlacementGroupState where+ parser = takeLowerText >>= \case+ "available" -> pure PGSAvailable+ "deleted" -> pure PGSDeleted+ "deleting" -> pure PGSDeleting+ "pending" -> pure PGSPending+ e -> fail $+ "Failure parsing PlacementGroupState from " ++ show e++instance ToText PlacementGroupState where+ toText = \case+ PGSAvailable -> "available"+ PGSDeleted -> "deleted"+ PGSDeleting -> "deleting"+ PGSPending -> "pending"++instance ToByteString PlacementGroupState+instance ToHeader PlacementGroupState+instance ToQuery PlacementGroupState++instance FromXML PlacementGroupState where+ parseXML = parseXMLText "PlacementGroupState"++data ReservedInstancesModificationResult = ReservedInstancesModificationResult+ { _rimrReservedInstancesId :: Maybe Text+ , _rimrTargetConfiguration :: Maybe ReservedInstancesConfiguration+ } deriving (Eq, Read, Show)++-- | 'ReservedInstancesModificationResult' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rimrReservedInstancesId' @::@ 'Maybe' 'Text'+--+-- * 'rimrTargetConfiguration' @::@ 'Maybe' 'ReservedInstancesConfiguration'+--+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 ToQuery ReservedInstancesModificationResult where+ toQuery ReservedInstancesModificationResult{..} = mconcat+ [ "ReservedInstancesId" =? _rimrReservedInstancesId+ , "TargetConfiguration" =? _rimrTargetConfiguration+ ]++data InstanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification+ { _ibdmsDeviceName :: Maybe Text+ , _ibdmsEbs :: Maybe EbsInstanceBlockDeviceSpecification+ , _ibdmsNoDevice :: Maybe Text+ , _ibdmsVirtualName :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'InstanceBlockDeviceMappingSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ibdmsDeviceName' @::@ 'Maybe' 'Text'+--+-- * 'ibdmsEbs' @::@ 'Maybe' 'EbsInstanceBlockDeviceSpecification'+--+-- * 'ibdmsNoDevice' @::@ 'Maybe' 'Text'+--+-- * 'ibdmsVirtualName' @::@ 'Maybe' 'Text'+--+instanceBlockDeviceMappingSpecification :: InstanceBlockDeviceMappingSpecification+instanceBlockDeviceMappingSpecification = InstanceBlockDeviceMappingSpecification+ { _ibdmsDeviceName = Nothing+ , _ibdmsEbs = Nothing+ , _ibdmsVirtualName = Nothing+ , _ibdmsNoDevice = Nothing+ }++-- | The device name exposed to the instance (for example, /dev/sdh).+ibdmsDeviceName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsDeviceName = lens _ibdmsDeviceName (\s a -> s { _ibdmsDeviceName = a })++-- | Parameters used to automatically set up Amazon EBS volumes when the instance+-- is launched.+ibdmsEbs :: Lens' InstanceBlockDeviceMappingSpecification (Maybe EbsInstanceBlockDeviceSpecification)+ibdmsEbs = lens _ibdmsEbs (\s a -> s { _ibdmsEbs = a })++-- | suppress the specified device included in the block device mapping.+ibdmsNoDevice :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsNoDevice = lens _ibdmsNoDevice (\s a -> s { _ibdmsNoDevice = a })++-- | The virtual device name.+ibdmsVirtualName :: Lens' InstanceBlockDeviceMappingSpecification (Maybe Text)+ibdmsVirtualName = lens _ibdmsVirtualName (\s a -> s { _ibdmsVirtualName = a })++instance FromXML InstanceBlockDeviceMappingSpecification where+ parseXML x = InstanceBlockDeviceMappingSpecification+ <$> x .@? "deviceName"+ <*> x .@? "ebs"+ <*> x .@? "noDevice"+ <*> x .@? "virtualName"++instance ToQuery InstanceBlockDeviceMappingSpecification where+ toQuery InstanceBlockDeviceMappingSpecification{..} = mconcat+ [ "DeviceName" =? _ibdmsDeviceName+ , "Ebs" =? _ibdmsEbs+ , "NoDevice" =? _ibdmsNoDevice+ , "VirtualName" =? _ibdmsVirtualName+ ]++data ExportEnvironment+ = Citrix -- ^ citrix+ | Microsoft -- ^ microsoft+ | Vmware -- ^ vmware+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ExportEnvironment++instance FromText ExportEnvironment where+ parser = takeLowerText >>= \case+ "citrix" -> pure Citrix+ "microsoft" -> pure Microsoft+ "vmware" -> pure Vmware+ e -> fail $+ "Failure parsing ExportEnvironment from " ++ show e++instance ToText ExportEnvironment where+ toText = \case+ Citrix -> "citrix"+ Microsoft -> "microsoft"+ Vmware -> "vmware"++instance ToByteString ExportEnvironment+instance ToHeader ExportEnvironment+instance ToQuery ExportEnvironment++instance FromXML ExportEnvironment where+ parseXML = parseXMLText "ExportEnvironment"++newtype UserData = UserData+ { _udData :: Maybe Text+ } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'UserData' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udData' @::@ 'Maybe' 'Text'+--+userData :: UserData+userData = UserData+ { _udData = Nothing+ }++udData :: Lens' UserData (Maybe Text)+udData = lens _udData (\s a -> s { _udData = a })++instance FromXML UserData where+ parseXML x = UserData+ <$> x .@? "data"++instance ToQuery UserData where+ toQuery UserData{..} = mconcat+ [ "Data" =? _udData+ ]++data VolumeAttachment = VolumeAttachment+ { _vaAttachTime :: Maybe ISO8601+ , _vaDeleteOnTermination :: Maybe Bool+ , _vaDevice :: Maybe Text+ , _vaInstanceId :: Maybe Text+ , _vaState :: Maybe VolumeAttachmentState+ , _vaVolumeId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VolumeAttachment' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vaAttachTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'vaDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'vaDevice' @::@ 'Maybe' 'Text'+--+-- * 'vaInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'vaState' @::@ 'Maybe' 'VolumeAttachmentState'+--+-- * 'vaVolumeId' @::@ 'Maybe' 'Text'+--+volumeAttachment :: VolumeAttachment+volumeAttachment = VolumeAttachment+ { _vaVolumeId = Nothing+ , _vaInstanceId = Nothing+ , _vaDevice = Nothing+ , _vaState = Nothing+ , _vaAttachTime = Nothing+ , _vaDeleteOnTermination = Nothing+ }++-- | The time stamp when the attachment initiated.+vaAttachTime :: Lens' VolumeAttachment (Maybe UTCTime)+vaAttachTime = lens _vaAttachTime (\s a -> s { _vaAttachTime = a }) . mapping _Time++-- | Indicates whether the Amazon EBS volume is deleted on instance termination.+vaDeleteOnTermination :: Lens' VolumeAttachment (Maybe Bool)+vaDeleteOnTermination =+ lens _vaDeleteOnTermination (\s a -> s { _vaDeleteOnTermination = a })++-- | The device name.+vaDevice :: Lens' VolumeAttachment (Maybe Text)+vaDevice = lens _vaDevice (\s a -> s { _vaDevice = a })++-- | The ID of the instance.+vaInstanceId :: Lens' VolumeAttachment (Maybe Text)+vaInstanceId = lens _vaInstanceId (\s a -> s { _vaInstanceId = a })++-- | The attachment state of the volume.+vaState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)+vaState = lens _vaState (\s a -> s { _vaState = a })++-- | The ID of the volume.+vaVolumeId :: Lens' VolumeAttachment (Maybe Text)+vaVolumeId = lens _vaVolumeId (\s a -> s { _vaVolumeId = a })++instance FromXML VolumeAttachment where+ parseXML x = VolumeAttachment+ <$> x .@? "attachTime"+ <*> x .@? "deleteOnTermination"+ <*> x .@? "device"+ <*> x .@? "instanceId"+ <*> x .@? "status"+ <*> x .@? "volumeId"++instance ToQuery VolumeAttachment where+ toQuery VolumeAttachment{..} = mconcat+ [ "AttachTime" =? _vaAttachTime+ , "DeleteOnTermination" =? _vaDeleteOnTermination+ , "Device" =? _vaDevice+ , "InstanceId" =? _vaInstanceId+ , "Status" =? _vaState+ , "VolumeId" =? _vaVolumeId+ ]++data CustomerGateway = CustomerGateway+ { _cgBgpAsn :: Text+ , _cgCustomerGatewayId :: Text+ , _cgIpAddress :: Text+ , _cgState :: Text+ , _cgTags :: List "item" Tag+ , _cgType :: Text+ } deriving (Eq, Read, Show)++-- | 'CustomerGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cgBgpAsn' @::@ 'Text'+--+-- * 'cgCustomerGatewayId' @::@ 'Text'+--+-- * 'cgIpAddress' @::@ 'Text'+--+-- * 'cgState' @::@ 'Text'+--+-- * 'cgTags' @::@ ['Tag']+--+-- * 'cgType' @::@ 'Text'+--+customerGateway :: Text -- ^ 'cgCustomerGatewayId'+ -> Text -- ^ 'cgState'+ -> Text -- ^ 'cgType'+ -> Text -- ^ 'cgIpAddress'+ -> Text -- ^ 'cgBgpAsn'+ -> CustomerGateway+customerGateway p1 p2 p3 p4 p5 = CustomerGateway+ { _cgCustomerGatewayId = p1+ , _cgState = p2+ , _cgType = p3+ , _cgIpAddress = p4+ , _cgBgpAsn = p5+ , _cgTags = mempty+ }++-- | 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 })++-- | Any tags assigned to the customer gateway.+cgTags :: Lens' CustomerGateway [Tag]+cgTags = lens _cgTags (\s a -> s { _cgTags = a }) . _List++-- | 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 .@ "bgpAsn"+ <*> x .@ "customerGatewayId"+ <*> x .@ "ipAddress"+ <*> x .@ "state"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "type"++instance ToQuery CustomerGateway where+ toQuery CustomerGateway{..} = mconcat+ [ "BgpAsn" =? _cgBgpAsn+ , "CustomerGatewayId" =? _cgCustomerGatewayId+ , "IpAddress" =? _cgIpAddress+ , "State" =? _cgState+ , "TagSet" `toQueryList` _cgTags+ , "Type" =? _cgType+ ]++data EbsInstanceBlockDevice = EbsInstanceBlockDevice+ { _eibdAttachTime :: Maybe ISO8601+ , _eibdDeleteOnTermination :: Maybe Bool+ , _eibdStatus :: Maybe AttachmentStatus+ , _eibdVolumeId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'EbsInstanceBlockDevice' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eibdAttachTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'eibdDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'eibdStatus' @::@ 'Maybe' 'AttachmentStatus'+--+-- * 'eibdVolumeId' @::@ 'Maybe' 'Text'+--+ebsInstanceBlockDevice :: EbsInstanceBlockDevice+ebsInstanceBlockDevice = EbsInstanceBlockDevice+ { _eibdVolumeId = Nothing+ , _eibdStatus = Nothing+ , _eibdAttachTime = Nothing+ , _eibdDeleteOnTermination = Nothing+ }++-- | The time stamp when the attachment initiated.+eibdAttachTime :: Lens' EbsInstanceBlockDevice (Maybe UTCTime)+eibdAttachTime = lens _eibdAttachTime (\s a -> s { _eibdAttachTime = a }) . mapping _Time++-- | Indicates whether the volume is deleted on instance termination.+eibdDeleteOnTermination :: Lens' EbsInstanceBlockDevice (Maybe Bool)+eibdDeleteOnTermination =+ lens _eibdDeleteOnTermination (\s a -> s { _eibdDeleteOnTermination = a })++-- | The attachment state.+eibdStatus :: Lens' EbsInstanceBlockDevice (Maybe AttachmentStatus)+eibdStatus = lens _eibdStatus (\s a -> s { _eibdStatus = a })++-- | The ID of the Amazon EBS volume.+eibdVolumeId :: Lens' EbsInstanceBlockDevice (Maybe Text)+eibdVolumeId = lens _eibdVolumeId (\s a -> s { _eibdVolumeId = a })++instance FromXML EbsInstanceBlockDevice where+ parseXML x = EbsInstanceBlockDevice+ <$> x .@? "attachTime"+ <*> x .@? "deleteOnTermination"+ <*> x .@? "status"+ <*> x .@? "volumeId"++instance ToQuery EbsInstanceBlockDevice where+ toQuery EbsInstanceBlockDevice{..} = mconcat+ [ "AttachTime" =? _eibdAttachTime+ , "DeleteOnTermination" =? _eibdDeleteOnTermination+ , "Status" =? _eibdStatus+ , "VolumeId" =? _eibdVolumeId+ ]++data ShutdownBehavior+ = Stop -- ^ stop+ | Terminate -- ^ terminate+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ShutdownBehavior++instance FromText ShutdownBehavior where+ parser = takeLowerText >>= \case+ "stop" -> pure Stop+ "terminate" -> pure Terminate+ e -> fail $+ "Failure parsing ShutdownBehavior from " ++ show e++instance ToText ShutdownBehavior where+ toText = \case+ Stop -> "stop"+ Terminate -> "terminate"++instance ToByteString ShutdownBehavior+instance ToHeader ShutdownBehavior+instance ToQuery ShutdownBehavior++instance FromXML ShutdownBehavior where+ parseXML = parseXMLText "ShutdownBehavior"++data DiskImageDescription = DiskImageDescription+ { _did1Checksum :: Maybe Text+ , _did1Format :: DiskImageFormat+ , _did1ImportManifestUrl :: Text+ , _did1Size :: Integer+ } deriving (Eq, Read, Show)++-- | 'DiskImageDescription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'did1Checksum' @::@ 'Maybe' 'Text'+--+-- * 'did1Format' @::@ 'DiskImageFormat'+--+-- * 'did1ImportManifestUrl' @::@ 'Text'+--+-- * 'did1Size' @::@ 'Integer'+--+diskImageDescription :: DiskImageFormat -- ^ 'did1Format'+ -> Integer -- ^ 'did1Size'+ -> Text -- ^ 'did1ImportManifestUrl'+ -> DiskImageDescription+diskImageDescription p1 p2 p3 = DiskImageDescription+ { _did1Format = p1+ , _did1Size = p2+ , _did1ImportManifestUrl = p3+ , _did1Checksum = Nothing+ }++-- | The checksum computed for the disk image.+did1Checksum :: Lens' DiskImageDescription (Maybe Text)+did1Checksum = lens _did1Checksum (\s a -> s { _did1Checksum = a })++-- | The disk image format.+did1Format :: Lens' DiskImageDescription DiskImageFormat+did1Format = lens _did1Format (\s a -> s { _did1Format = 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 RESTRequests> topic in the /Amazon Simple Storage Service Developer Guide/.+did1ImportManifestUrl :: Lens' DiskImageDescription Text+did1ImportManifestUrl =+ lens _did1ImportManifestUrl (\s a -> s { _did1ImportManifestUrl = a })++-- | The size of the disk image.+did1Size :: Lens' DiskImageDescription Integer+did1Size = lens _did1Size (\s a -> s { _did1Size = a })++instance FromXML DiskImageDescription where+ parseXML x = DiskImageDescription+ <$> x .@? "checksum"+ <*> x .@ "format"+ <*> x .@ "importManifestUrl"+ <*> x .@ "size"++instance ToQuery DiskImageDescription where+ toQuery DiskImageDescription{..} = mconcat+ [ "Checksum" =? _did1Checksum+ , "Format" =? _did1Format+ , "ImportManifestUrl" =? _did1ImportManifestUrl+ , "Size" =? _did1Size+ ]++data DiskImageVolumeDescription = DiskImageVolumeDescription+ { _divdId :: Text+ , _divdSize :: Maybe Integer+ } deriving (Eq, Ord, Read, Show)++-- | 'DiskImageVolumeDescription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'divdId' @::@ 'Text'+--+-- * 'divdSize' @::@ 'Maybe' 'Integer'+--+diskImageVolumeDescription :: Text -- ^ 'divdId'+ -> DiskImageVolumeDescription+diskImageVolumeDescription p1 = DiskImageVolumeDescription+ { _divdId = p1+ , _divdSize = Nothing+ }++-- | The volume identifier.+divdId :: Lens' DiskImageVolumeDescription Text+divdId = lens _divdId (\s a -> s { _divdId = a })++-- | The size of the volume.+divdSize :: Lens' DiskImageVolumeDescription (Maybe Integer)+divdSize = lens _divdSize (\s a -> s { _divdSize = a })++instance FromXML DiskImageVolumeDescription where+ parseXML x = DiskImageVolumeDescription+ <$> x .@ "id"+ <*> x .@? "size"++instance ToQuery DiskImageVolumeDescription where+ toQuery DiskImageVolumeDescription{..} = mconcat+ [ "Id" =? _divdId+ , "Size" =? _divdSize+ ]++newtype Monitoring = Monitoring+ { _mState :: Maybe MonitoringState+ } deriving (Eq, Read, Show)++-- | 'Monitoring' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mState' @::@ 'Maybe' 'MonitoringState'+--+monitoring :: Monitoring+monitoring = Monitoring+ { _mState = Nothing+ }++-- | Indicates whether monitoring is enabled for the instance.+mState :: Lens' Monitoring (Maybe MonitoringState)+mState = lens _mState (\s a -> s { _mState = a })++instance FromXML Monitoring where+ parseXML x = Monitoring+ <$> x .@? "state"++instance ToQuery Monitoring where+ toQuery Monitoring{..} = mconcat+ [ "State" =? _mState+ ]++data SubnetState+ = SSAvailable -- ^ available+ | SSPending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable SubnetState++instance FromText SubnetState where+ parser = takeLowerText >>= \case+ "available" -> pure SSAvailable+ "pending" -> pure SSPending+ e -> fail $+ "Failure parsing SubnetState from " ++ show e++instance ToText SubnetState where+ toText = \case+ SSAvailable -> "available"+ SSPending -> "pending"++instance ToByteString SubnetState+instance ToHeader SubnetState+instance ToQuery SubnetState++instance FromXML SubnetState where+ parseXML = parseXMLText "SubnetState"++data ContainerFormat+ = Ova -- ^ ova+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ContainerFormat++instance FromText ContainerFormat where+ parser = takeLowerText >>= \case+ "ova" -> pure Ova+ e -> fail $+ "Failure parsing ContainerFormat from " ++ show e++instance ToText ContainerFormat where+ toText Ova = "ova"++instance ToByteString ContainerFormat+instance ToHeader ContainerFormat+instance ToQuery ContainerFormat++instance FromXML ContainerFormat where+ parseXML = parseXMLText "ContainerFormat"++newtype AvailabilityZoneMessage = AvailabilityZoneMessage+ { _azmMessage :: Maybe Text+ } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'AvailabilityZoneMessage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'azmMessage' @::@ 'Maybe' 'Text'+--+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 ToQuery AvailabilityZoneMessage where+ toQuery AvailabilityZoneMessage{..} = mconcat+ [ "Message" =? _azmMessage+ ]++data VpcAttachment = VpcAttachment+ { _va1State :: Maybe AttachmentStatus+ , _va1VpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VpcAttachment' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'va1State' @::@ 'Maybe' 'AttachmentStatus'+--+-- * 'va1VpcId' @::@ 'Maybe' 'Text'+--+vpcAttachment :: VpcAttachment+vpcAttachment = VpcAttachment+ { _va1VpcId = Nothing+ , _va1State = Nothing+ }++-- | The current state of the attachment.+va1State :: Lens' VpcAttachment (Maybe AttachmentStatus)+va1State = lens _va1State (\s a -> s { _va1State = a })++-- | The ID of the VPC.+va1VpcId :: Lens' VpcAttachment (Maybe Text)+va1VpcId = lens _va1VpcId (\s a -> s { _va1VpcId = a })++instance FromXML VpcAttachment where+ parseXML x = VpcAttachment+ <$> x .@? "state"+ <*> x .@? "vpcId"++instance ToQuery VpcAttachment where+ toQuery VpcAttachment{..} = mconcat+ [ "State" =? _va1State+ , "VpcId" =? _va1VpcId+ ]++data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping+ { _ibdmDeviceName :: Maybe Text+ , _ibdmEbs :: Maybe EbsInstanceBlockDevice+ } deriving (Eq, Read, Show)++-- | 'InstanceBlockDeviceMapping' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ibdmDeviceName' @::@ 'Maybe' 'Text'+--+-- * 'ibdmEbs' @::@ 'Maybe' 'EbsInstanceBlockDevice'+--+instanceBlockDeviceMapping :: InstanceBlockDeviceMapping+instanceBlockDeviceMapping = InstanceBlockDeviceMapping+ { _ibdmDeviceName = Nothing+ , _ibdmEbs = Nothing+ }++-- | The device name exposed to the instance (for example, /dev/sdh).+ibdmDeviceName :: Lens' InstanceBlockDeviceMapping (Maybe Text)+ibdmDeviceName = lens _ibdmDeviceName (\s a -> s { _ibdmDeviceName = a })++-- | Parameters used to automatically set up Amazon EBS volumes when the instance+-- is launched.+ibdmEbs :: Lens' InstanceBlockDeviceMapping (Maybe EbsInstanceBlockDevice)+ibdmEbs = lens _ibdmEbs (\s a -> s { _ibdmEbs = a })++instance FromXML InstanceBlockDeviceMapping where+ parseXML x = InstanceBlockDeviceMapping+ <$> x .@? "deviceName"+ <*> x .@? "ebs"++instance ToQuery InstanceBlockDeviceMapping where+ toQuery InstanceBlockDeviceMapping{..} = mconcat+ [ "DeviceName" =? _ibdmDeviceName+ , "Ebs" =? _ibdmEbs+ ]++data StatusType+ = Failed -- ^ failed+ | InsufficientData -- ^ insufficient-data+ | Passed -- ^ passed+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable StatusType++instance FromText StatusType where+ parser = takeLowerText >>= \case+ "failed" -> pure Failed+ "insufficient-data" -> pure InsufficientData+ "passed" -> pure Passed+ e -> fail $+ "Failure parsing StatusType from " ++ show e++instance ToText StatusType where+ toText = \case+ Failed -> "failed"+ InsufficientData -> "insufficient-data"+ Passed -> "passed"++instance ToByteString StatusType+instance ToHeader StatusType+instance ToQuery StatusType++instance FromXML StatusType where+ parseXML = parseXMLText "StatusType"++data ExportToS3TaskSpecification = ExportToS3TaskSpecification+ { _etstsContainerFormat :: Maybe ContainerFormat+ , _etstsDiskImageFormat :: Maybe DiskImageFormat+ , _etstsS3Bucket :: Maybe Text+ , _etstsS3Prefix :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'ExportToS3TaskSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'etstsContainerFormat' @::@ 'Maybe' 'ContainerFormat'+--+-- * 'etstsDiskImageFormat' @::@ 'Maybe' 'DiskImageFormat'+--+-- * 'etstsS3Bucket' @::@ 'Maybe' 'Text'+--+-- * 'etstsS3Prefix' @::@ 'Maybe' 'Text'+--+exportToS3TaskSpecification :: ExportToS3TaskSpecification+exportToS3TaskSpecification = ExportToS3TaskSpecification+ { _etstsDiskImageFormat = Nothing+ , _etstsContainerFormat = Nothing+ , _etstsS3Bucket = Nothing+ , _etstsS3Prefix = Nothing+ }++etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)+etstsContainerFormat =+ lens _etstsContainerFormat (\s a -> s { _etstsContainerFormat = a })++etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)+etstsDiskImageFormat =+ lens _etstsDiskImageFormat (\s a -> s { _etstsDiskImageFormat = a })++etstsS3Bucket :: Lens' ExportToS3TaskSpecification (Maybe Text)+etstsS3Bucket = lens _etstsS3Bucket (\s a -> s { _etstsS3Bucket = a })++-- | The image is written to a single object in the Amazon S3 bucket at the S3 key+-- s3prefix + exportTaskId + '.' + diskImageFormat.+etstsS3Prefix :: Lens' ExportToS3TaskSpecification (Maybe Text)+etstsS3Prefix = lens _etstsS3Prefix (\s a -> s { _etstsS3Prefix = a })++instance FromXML ExportToS3TaskSpecification where+ parseXML x = ExportToS3TaskSpecification+ <$> x .@? "containerFormat"+ <*> x .@? "diskImageFormat"+ <*> x .@? "s3Bucket"+ <*> x .@? "s3Prefix"++instance ToQuery ExportToS3TaskSpecification where+ toQuery ExportToS3TaskSpecification{..} = mconcat+ [ "ContainerFormat" =? _etstsContainerFormat+ , "DiskImageFormat" =? _etstsDiskImageFormat+ , "S3Bucket" =? _etstsS3Bucket+ , "S3Prefix" =? _etstsS3Prefix+ ]++data NetworkInterfaceAttribute+ = Attachment -- ^ attachment+ | Description -- ^ description+ | GroupSet -- ^ groupSet+ | SourceDestCheck -- ^ sourceDestCheck+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable NetworkInterfaceAttribute++instance FromText NetworkInterfaceAttribute where+ parser = takeLowerText >>= \case+ "attachment" -> pure Attachment+ "description" -> pure Description+ "groupset" -> pure GroupSet+ "sourcedestcheck" -> pure SourceDestCheck+ e -> fail $+ "Failure parsing NetworkInterfaceAttribute from " ++ show e++instance ToText NetworkInterfaceAttribute where+ toText = \case+ Attachment -> "attachment"+ Description -> "description"+ GroupSet -> "groupSet"+ SourceDestCheck -> "sourceDestCheck"++instance ToByteString NetworkInterfaceAttribute+instance ToHeader NetworkInterfaceAttribute+instance ToQuery NetworkInterfaceAttribute++instance FromXML NetworkInterfaceAttribute where+ parseXML = parseXMLText "NetworkInterfaceAttribute"++data ImageTypeValues+ = Kernel -- ^ kernel+ | Machine -- ^ machine+ | Ramdisk -- ^ ramdisk+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ImageTypeValues++instance FromText ImageTypeValues where+ parser = takeLowerText >>= \case+ "kernel" -> pure Kernel+ "machine" -> pure Machine+ "ramdisk" -> pure Ramdisk+ e -> fail $+ "Failure parsing ImageTypeValues from " ++ show e++instance ToText ImageTypeValues where+ toText = \case+ Kernel -> "kernel"+ Machine -> "machine"+ Ramdisk -> "ramdisk"++instance ToByteString ImageTypeValues+instance ToHeader ImageTypeValues+instance ToQuery ImageTypeValues++instance FromXML ImageTypeValues where+ parseXML = parseXMLText "ImageTypeValues"++data InstanceExportDetails = InstanceExportDetails+ { _iedInstanceId :: Maybe Text+ , _iedTargetEnvironment :: Maybe ExportEnvironment+ } deriving (Eq, Read, Show)++-- | 'InstanceExportDetails' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iedInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'iedTargetEnvironment' @::@ 'Maybe' 'ExportEnvironment'+--+instanceExportDetails :: InstanceExportDetails+instanceExportDetails = InstanceExportDetails+ { _iedInstanceId = Nothing+ , _iedTargetEnvironment = Nothing+ }++-- | The ID of the resource being exported.+iedInstanceId :: Lens' InstanceExportDetails (Maybe Text)+iedInstanceId = lens _iedInstanceId (\s a -> s { _iedInstanceId = a })++-- | The target virtualization environment.+iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)+iedTargetEnvironment =+ lens _iedTargetEnvironment (\s a -> s { _iedTargetEnvironment = a })++instance FromXML InstanceExportDetails where+ parseXML x = InstanceExportDetails+ <$> x .@? "instanceId"+ <*> x .@? "targetEnvironment"++instance ToQuery InstanceExportDetails where+ toQuery InstanceExportDetails{..} = mconcat+ [ "InstanceId" =? _iedInstanceId+ , "TargetEnvironment" =? _iedTargetEnvironment+ ]++data SnapshotAttributeName+ = SANCreateVolumePermission -- ^ createVolumePermission+ | SANProductCodes -- ^ productCodes+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable SnapshotAttributeName++instance FromText SnapshotAttributeName where+ parser = takeLowerText >>= \case+ "createvolumepermission" -> pure SANCreateVolumePermission+ "productcodes" -> pure SANProductCodes+ e -> fail $+ "Failure parsing SnapshotAttributeName from " ++ show e++instance ToText SnapshotAttributeName where+ toText = \case+ SANCreateVolumePermission -> "createVolumePermission"+ SANProductCodes -> "productCodes"++instance ToByteString SnapshotAttributeName+instance ToHeader SnapshotAttributeName+instance ToQuery SnapshotAttributeName++instance FromXML SnapshotAttributeName where+ parseXML = parseXMLText "SnapshotAttributeName"++data AvailabilityZone = AvailabilityZone+ { _azMessages :: List "item" AvailabilityZoneMessage+ , _azRegionName :: Maybe Text+ , _azState :: Maybe AvailabilityZoneState+ , _azZoneName :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'AvailabilityZone' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'azMessages' @::@ ['AvailabilityZoneMessage']+--+-- * 'azRegionName' @::@ 'Maybe' 'Text'+--+-- * 'azState' @::@ 'Maybe' 'AvailabilityZoneState'+--+-- * 'azZoneName' @::@ 'Maybe' 'Text'+--+availabilityZone :: AvailabilityZone+availabilityZone = AvailabilityZone+ { _azZoneName = Nothing+ , _azState = Nothing+ , _azRegionName = Nothing+ , _azMessages = mempty+ }++-- | Any messages about the Availability Zone.+azMessages :: Lens' AvailabilityZone [AvailabilityZoneMessage]+azMessages = lens _azMessages (\s a -> s { _azMessages = a }) . _List++-- | The name of the region.+azRegionName :: Lens' AvailabilityZone (Maybe Text)+azRegionName = lens _azRegionName (\s a -> s { _azRegionName = a })++-- | The state of the Availability Zone ('available' | 'impaired' | 'unavailable').+azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)+azState = lens _azState (\s a -> s { _azState = a })++-- | The name of the Availability Zone.+azZoneName :: Lens' AvailabilityZone (Maybe Text)+azZoneName = lens _azZoneName (\s a -> s { _azZoneName = a })++instance FromXML AvailabilityZone where+ parseXML x = AvailabilityZone+ <$> x .@? "messageSet" .!@ mempty+ <*> x .@? "regionName"+ <*> x .@? "zoneState"+ <*> x .@? "zoneName"++instance ToQuery AvailabilityZone where+ toQuery AvailabilityZone{..} = mconcat+ [ "MessageSet" `toQueryList` _azMessages+ , "RegionName" =? _azRegionName+ , "ZoneState" =? _azState+ , "ZoneName" =? _azZoneName+ ]++data VpnState+ = VpnStateAvailable -- ^ available+ | VpnStateDeleted -- ^ deleted+ | VpnStateDeleting -- ^ deleting+ | VpnStatePending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VpnState++instance FromText VpnState where+ parser = takeLowerText >>= \case+ "available" -> pure VpnStateAvailable+ "deleted" -> pure VpnStateDeleted+ "deleting" -> pure VpnStateDeleting+ "pending" -> pure VpnStatePending+ e -> fail $+ "Failure parsing VpnState from " ++ show e++instance ToText VpnState where+ toText = \case+ VpnStateAvailable -> "available"+ VpnStateDeleted -> "deleted"+ VpnStateDeleting -> "deleting"+ VpnStatePending -> "pending"++instance ToByteString VpnState+instance ToHeader VpnState+instance ToQuery VpnState++instance FromXML VpnState where+ parseXML = parseXMLText "VpnState"++data RouteTable = RouteTable+ { _rtAssociations :: List "item" RouteTableAssociation+ , _rtPropagatingVgws :: List "item" PropagatingVgw+ , _rtRouteTableId :: Maybe Text+ , _rtRoutes :: List "item" Route+ , _rtTags :: List "item" Tag+ , _rtVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'RouteTable' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtAssociations' @::@ ['RouteTableAssociation']+--+-- * 'rtPropagatingVgws' @::@ ['PropagatingVgw']+--+-- * 'rtRouteTableId' @::@ 'Maybe' 'Text'+--+-- * 'rtRoutes' @::@ ['Route']+--+-- * 'rtTags' @::@ ['Tag']+--+-- * 'rtVpcId' @::@ 'Maybe' 'Text'+--+routeTable :: RouteTable+routeTable = RouteTable+ { _rtRouteTableId = Nothing+ , _rtVpcId = Nothing+ , _rtRoutes = mempty+ , _rtAssociations = mempty+ , _rtTags = mempty+ , _rtPropagatingVgws = mempty+ }++-- | The associations between the route table and one or more subnets.+rtAssociations :: Lens' RouteTable [RouteTableAssociation]+rtAssociations = lens _rtAssociations (\s a -> s { _rtAssociations = a }) . _List++-- | Any virtual private gateway (VGW) propagating routes.+rtPropagatingVgws :: Lens' RouteTable [PropagatingVgw]+rtPropagatingVgws =+ lens _rtPropagatingVgws (\s a -> s { _rtPropagatingVgws = a })+ . _List++-- | 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 }) . _List++-- | Any tags assigned to the route table.+rtTags :: Lens' RouteTable [Tag]+rtTags = lens _rtTags (\s a -> s { _rtTags = a }) . _List++-- | The ID of the VPC.+rtVpcId :: Lens' RouteTable (Maybe Text)+rtVpcId = lens _rtVpcId (\s a -> s { _rtVpcId = a })++instance FromXML RouteTable where+ parseXML x = RouteTable+ <$> x .@? "associationSet" .!@ mempty+ <*> x .@? "propagatingVgwSet" .!@ mempty+ <*> x .@? "routeTableId"+ <*> x .@? "routeSet" .!@ mempty+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcId"++instance ToQuery RouteTable where+ toQuery RouteTable{..} = mconcat+ [ "AssociationSet" `toQueryList` _rtAssociations+ , "PropagatingVgwSet" `toQueryList` _rtPropagatingVgws+ , "RouteTableId" =? _rtRouteTableId+ , "RouteSet" `toQueryList` _rtRoutes+ , "TagSet" `toQueryList` _rtTags+ , "VpcId" =? _rtVpcId+ ]++data HypervisorType+ = Ovm -- ^ ovm+ | Xen -- ^ xen+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable HypervisorType++instance FromText HypervisorType where+ parser = takeLowerText >>= \case+ "ovm" -> pure Ovm+ "xen" -> pure Xen+ e -> fail $+ "Failure parsing HypervisorType from " ++ show e++instance ToText HypervisorType where+ toText = \case+ Ovm -> "ovm"+ Xen -> "xen"++instance ToByteString HypervisorType+instance ToHeader HypervisorType+instance ToQuery HypervisorType++instance FromXML HypervisorType where+ parseXML = parseXMLText "HypervisorType"++data InstanceStatusDetails = InstanceStatusDetails+ { _isdImpairedSince :: Maybe ISO8601+ , _isdName :: Maybe StatusName+ , _isdStatus :: Maybe StatusType+ } deriving (Eq, Read, Show)++-- | 'InstanceStatusDetails' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'isdImpairedSince' @::@ 'Maybe' 'UTCTime'+--+-- * 'isdName' @::@ 'Maybe' 'StatusName'+--+-- * 'isdStatus' @::@ 'Maybe' 'StatusType'+--+instanceStatusDetails :: InstanceStatusDetails+instanceStatusDetails = InstanceStatusDetails+ { _isdName = Nothing+ , _isdStatus = Nothing+ , _isdImpairedSince = Nothing+ }++-- | 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 })++-- | The status.+isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)+isdStatus = lens _isdStatus (\s a -> s { _isdStatus = a })++instance FromXML InstanceStatusDetails where+ parseXML x = InstanceStatusDetails+ <$> x .@? "impairedSince"+ <*> x .@? "name"+ <*> x .@? "status"++instance ToQuery InstanceStatusDetails where+ toQuery InstanceStatusDetails{..} = mconcat+ [ "ImpairedSince" =? _isdImpairedSince+ , "Name" =? _isdName+ , "Status" =? _isdStatus+ ]++data IamInstanceProfile = IamInstanceProfile+ { _iipArn :: Maybe Text+ , _iipId :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'IamInstanceProfile' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iipArn' @::@ 'Maybe' 'Text'+--+-- * 'iipId' @::@ 'Maybe' 'Text'+--+iamInstanceProfile :: IamInstanceProfile+iamInstanceProfile = IamInstanceProfile+ { _iipArn = Nothing+ , _iipId = Nothing+ }++-- | The Amazon Resource Name (ARN) of the instance profile.+iipArn :: Lens' IamInstanceProfile (Maybe Text)+iipArn = lens _iipArn (\s a -> s { _iipArn = a })++-- | The ID of the instance profile.+iipId :: Lens' IamInstanceProfile (Maybe Text)+iipId = lens _iipId (\s a -> s { _iipId = a })++instance FromXML IamInstanceProfile where+ parseXML x = IamInstanceProfile+ <$> x .@? "arn"+ <*> x .@? "id"++instance ToQuery IamInstanceProfile where+ toQuery IamInstanceProfile{..} = mconcat+ [ "Arn" =? _iipArn+ , "Id" =? _iipId+ ]++data InternetGatewayAttachment = InternetGatewayAttachment+ { _igaState :: AttachmentStatus+ , _igaVpcId :: Text+ } deriving (Eq, Read, Show)++-- | 'InternetGatewayAttachment' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'igaState' @::@ 'AttachmentStatus'+--+-- * 'igaVpcId' @::@ 'Text'+--+internetGatewayAttachment :: Text -- ^ 'igaVpcId'+ -> AttachmentStatus -- ^ 'igaState'+ -> InternetGatewayAttachment+internetGatewayAttachment p1 p2 = InternetGatewayAttachment+ { _igaVpcId = p1+ , _igaState = p2+ }++-- | 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 ToQuery InternetGatewayAttachment where+ toQuery InternetGatewayAttachment{..} = mconcat+ [ "State" =? _igaState+ , "VpcId" =? _igaVpcId+ ]++data ReservedInstanceState+ = RISActive -- ^ active+ | RISPaymentFailed -- ^ payment-failed+ | RISPaymentPending -- ^ payment-pending+ | RISRetired -- ^ retired+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ReservedInstanceState++instance FromText ReservedInstanceState where+ parser = takeLowerText >>= \case+ "active" -> pure RISActive+ "payment-failed" -> pure RISPaymentFailed+ "payment-pending" -> pure RISPaymentPending+ "retired" -> pure RISRetired+ e -> fail $+ "Failure parsing ReservedInstanceState from " ++ show e++instance ToText ReservedInstanceState where+ toText = \case+ RISActive -> "active"+ RISPaymentFailed -> "payment-failed"+ RISPaymentPending -> "payment-pending"+ RISRetired -> "retired"++instance ToByteString ReservedInstanceState+instance ToHeader ReservedInstanceState+instance ToQuery ReservedInstanceState++instance FromXML ReservedInstanceState where+ parseXML = parseXMLText "ReservedInstanceState"++data InstanceAttributeName+ = IANInstanceBlockDeviceMapping -- ^ blockDeviceMapping+ | IANInstanceDisableApiTermination -- ^ disableApiTermination+ | IANInstanceEbsOptimized -- ^ ebsOptimized+ | IANInstanceGroupSet -- ^ groupSet+ | IANInstanceInstanceInitiatedShutdownBehavior -- ^ instanceInitiatedShutdownBehavior+ | IANInstanceInstanceType -- ^ instanceType+ | IANInstanceKernel -- ^ kernel+ | IANInstanceProductCodes -- ^ productCodes+ | IANInstanceRamdisk -- ^ ramdisk+ | IANInstanceRootDeviceName -- ^ rootDeviceName+ | IANInstanceSourceDestCheck -- ^ sourceDestCheck+ | IANInstanceSriovNetSupport -- ^ sriovNetSupport+ | IANInstanceUserData -- ^ userData+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable InstanceAttributeName++instance FromText InstanceAttributeName where+ parser = takeLowerText >>= \case+ "blockdevicemapping" -> pure IANInstanceBlockDeviceMapping+ "disableapitermination" -> pure IANInstanceDisableApiTermination+ "ebsoptimized" -> pure IANInstanceEbsOptimized+ "groupset" -> pure IANInstanceGroupSet+ "instanceinitiatedshutdownbehavior" -> pure IANInstanceInstanceInitiatedShutdownBehavior+ "instancetype" -> pure IANInstanceInstanceType+ "kernel" -> pure IANInstanceKernel+ "productcodes" -> pure IANInstanceProductCodes+ "ramdisk" -> pure IANInstanceRamdisk+ "rootdevicename" -> pure IANInstanceRootDeviceName+ "sourcedestcheck" -> pure IANInstanceSourceDestCheck+ "sriovnetsupport" -> pure IANInstanceSriovNetSupport+ "userdata" -> pure IANInstanceUserData+ e -> fail $+ "Failure parsing InstanceAttributeName from " ++ show e++instance ToText InstanceAttributeName where+ toText = \case+ IANInstanceBlockDeviceMapping -> "blockDeviceMapping"+ IANInstanceDisableApiTermination -> "disableApiTermination"+ IANInstanceEbsOptimized -> "ebsOptimized"+ IANInstanceGroupSet -> "groupSet"+ IANInstanceInstanceInitiatedShutdownBehavior -> "instanceInitiatedShutdownBehavior"+ IANInstanceInstanceType -> "instanceType"+ IANInstanceKernel -> "kernel"+ IANInstanceProductCodes -> "productCodes"+ IANInstanceRamdisk -> "ramdisk"+ IANInstanceRootDeviceName -> "rootDeviceName"+ IANInstanceSourceDestCheck -> "sourceDestCheck"+ IANInstanceSriovNetSupport -> "sriovNetSupport"+ IANInstanceUserData -> "userData"++instance ToByteString InstanceAttributeName+instance ToHeader InstanceAttributeName+instance ToQuery InstanceAttributeName++instance FromXML InstanceAttributeName where+ parseXML = parseXMLText "InstanceAttributeName"++data IpPermission = IpPermission+ { _ipFromPort :: Int+ , _ipIpProtocol :: Text+ , _ipIpRanges :: List "item" IpRange+ , _ipToPort :: Int+ , _ipUserIdGroupPairs :: List "item" UserIdGroupPair+ } deriving (Eq, Read, Show)++-- | 'IpPermission' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ipFromPort' @::@ 'Int'+--+-- * 'ipIpProtocol' @::@ 'Text'+--+-- * 'ipIpRanges' @::@ ['IpRange']+--+-- * 'ipToPort' @::@ 'Int'+--+-- * 'ipUserIdGroupPairs' @::@ ['UserIdGroupPair']+--+ipPermission :: Text -- ^ 'ipIpProtocol'+ -> Int -- ^ 'ipFromPort'+ -> Int -- ^ 'ipToPort'+ -> IpPermission+ipPermission p1 p2 p3 = IpPermission+ { _ipIpProtocol = p1+ , _ipFromPort = p2+ , _ipToPort = p3+ , _ipUserIdGroupPairs = mempty+ , _ipIpRanges = mempty+ }++-- | The start of port range for the TCP and UDP protocols, or an ICMP type+-- number. A value of '-1' indicates all ICMP types.+ipFromPort :: Lens' IpPermission Int+ipFromPort = lens _ipFromPort (\s a -> s { _ipFromPort = a })++-- | The protocol.+--+-- When you call 'DescribeSecurityGroups', the protocol value returned is the+-- number. Exception: For TCP, UDP, and ICMP, the value returned is the name+-- (for example, 'tcp', 'udp', or 'icmp'). For a list of protocol numbers, see <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Protocol Numbers>.+ipIpProtocol :: Lens' IpPermission Text+ipIpProtocol = lens _ipIpProtocol (\s a -> s { _ipIpProtocol = a })++-- | One or more IP ranges.+ipIpRanges :: Lens' IpPermission [IpRange]+ipIpRanges = lens _ipIpRanges (\s a -> s { _ipIpRanges = a }) . _List++-- | The end of port range for the TCP and UDP protocols, or an ICMP code. A value+-- of '-1' indicates all ICMP codes for the specified ICMP type.+ipToPort :: Lens' IpPermission Int+ipToPort = lens _ipToPort (\s a -> s { _ipToPort = a })++-- | One or more security group and AWS account ID pairs.+ipUserIdGroupPairs :: Lens' IpPermission [UserIdGroupPair]+ipUserIdGroupPairs =+ lens _ipUserIdGroupPairs (\s a -> s { _ipUserIdGroupPairs = a })+ . _List++instance FromXML IpPermission where+ parseXML x = IpPermission+ <$> x .@ "fromPort"+ <*> x .@ "ipProtocol"+ <*> x .@? "ipRanges" .!@ mempty+ <*> x .@ "toPort"+ <*> x .@? "groups" .!@ mempty++instance ToQuery IpPermission where+ toQuery IpPermission{..} = mconcat+ [ "FromPort" =? _ipFromPort+ , "IpProtocol" =? _ipIpProtocol+ , "IpRanges" `toQueryList` _ipIpRanges+ , "ToPort" =? _ipToPort+ , "Groups" `toQueryList` _ipUserIdGroupPairs+ ]++data ConversionTaskState+ = CTSActive -- ^ active+ | CTSCancelled -- ^ cancelled+ | CTSCancelling -- ^ cancelling+ | CTSCompleted -- ^ completed+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ConversionTaskState++instance FromText ConversionTaskState where+ parser = takeLowerText >>= \case+ "active" -> pure CTSActive+ "cancelled" -> pure CTSCancelled+ "cancelling" -> pure CTSCancelling+ "completed" -> pure CTSCompleted+ e -> fail $+ "Failure parsing ConversionTaskState from " ++ show e++instance ToText ConversionTaskState where+ toText = \case+ CTSActive -> "active"+ CTSCancelled -> "cancelled"+ CTSCancelling -> "cancelling"+ CTSCompleted -> "completed"++instance ToByteString ConversionTaskState+instance ToHeader ConversionTaskState+instance ToQuery ConversionTaskState++instance FromXML ConversionTaskState where+ parseXML = parseXMLText "ConversionTaskState"++data DiskImage = DiskImage+ { _diDescription :: Maybe Text+ , _diImage :: Maybe DiskImageDetail+ , _diVolume :: Maybe VolumeDetail+ } deriving (Eq, Read, Show)++-- | 'DiskImage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'diDescription' @::@ 'Maybe' 'Text'+--+-- * 'diImage' @::@ 'Maybe' 'DiskImageDetail'+--+-- * 'diVolume' @::@ 'Maybe' 'VolumeDetail'+--+diskImage :: DiskImage+diskImage = DiskImage+ { _diImage = Nothing+ , _diDescription = Nothing+ , _diVolume = Nothing+ }++diDescription :: Lens' DiskImage (Maybe Text)+diDescription = lens _diDescription (\s a -> s { _diDescription = a })++diImage :: Lens' DiskImage (Maybe DiskImageDetail)+diImage = lens _diImage (\s a -> s { _diImage = a })++diVolume :: Lens' DiskImage (Maybe VolumeDetail)+diVolume = lens _diVolume (\s a -> s { _diVolume = a })++instance FromXML DiskImage where+ parseXML x = DiskImage+ <$> x .@? "Description"+ <*> x .@? "Image"+ <*> x .@? "Volume"++instance ToQuery DiskImage where+ toQuery DiskImage{..} = mconcat+ [ "Description" =? _diDescription+ , "Image" =? _diImage+ , "Volume" =? _diVolume+ ]++data Tenancy+ = Dedicated -- ^ dedicated+ | Default' -- ^ default+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable Tenancy++instance FromText Tenancy where+ parser = takeLowerText >>= \case+ "dedicated" -> pure Dedicated+ "default" -> pure Default'+ e -> fail $+ "Failure parsing Tenancy from " ++ show e++instance ToText Tenancy where+ toText = \case+ Dedicated -> "dedicated"+ Default' -> "default"++instance ToByteString Tenancy+instance ToHeader Tenancy+instance ToQuery Tenancy++instance FromXML Tenancy where+ parseXML = parseXMLText "Tenancy"++data VpcPeeringConnectionStateReason = VpcPeeringConnectionStateReason+ { _vpcsrCode :: Maybe Text+ , _vpcsrMessage :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'VpcPeeringConnectionStateReason' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vpcsrCode' @::@ 'Maybe' 'Text'+--+-- * 'vpcsrMessage' @::@ 'Maybe' 'Text'+--+vpcPeeringConnectionStateReason :: VpcPeeringConnectionStateReason+vpcPeeringConnectionStateReason = VpcPeeringConnectionStateReason+ { _vpcsrCode = Nothing+ , _vpcsrMessage = Nothing+ }++-- | The status of the VPC peering connection.+vpcsrCode :: Lens' VpcPeeringConnectionStateReason (Maybe Text)+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 ToQuery VpcPeeringConnectionStateReason where+ toQuery VpcPeeringConnectionStateReason{..} = mconcat+ [ "Code" =? _vpcsrCode+ , "Message" =? _vpcsrMessage+ ]++data IamInstanceProfileSpecification = IamInstanceProfileSpecification+ { _iipsArn :: Maybe Text+ , _iipsName :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'IamInstanceProfileSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iipsArn' @::@ 'Maybe' 'Text'+--+-- * 'iipsName' @::@ 'Maybe' 'Text'+--+iamInstanceProfileSpecification :: IamInstanceProfileSpecification+iamInstanceProfileSpecification = IamInstanceProfileSpecification+ { _iipsArn = Nothing+ , _iipsName = Nothing+ }++-- | The Amazon Resource Name (ARN) of the instance profile.+iipsArn :: Lens' IamInstanceProfileSpecification (Maybe Text)+iipsArn = lens _iipsArn (\s a -> s { _iipsArn = a })++-- | The name of the instance profile.+iipsName :: Lens' IamInstanceProfileSpecification (Maybe Text)+iipsName = lens _iipsName (\s a -> s { _iipsName = a })++instance FromXML IamInstanceProfileSpecification where+ parseXML x = IamInstanceProfileSpecification+ <$> x .@? "arn"+ <*> x .@? "name"++instance ToQuery IamInstanceProfileSpecification where+ toQuery IamInstanceProfileSpecification{..} = mconcat+ [ "Arn" =? _iipsArn+ , "Name" =? _iipsName+ ]++data ImportVolumeTaskDetails = ImportVolumeTaskDetails+ { _ivtdAvailabilityZone :: Text+ , _ivtdBytesConverted :: Integer+ , _ivtdDescription :: Maybe Text+ , _ivtdImage :: DiskImageDescription+ , _ivtdVolume :: DiskImageVolumeDescription+ } deriving (Eq, Read, Show)++-- | 'ImportVolumeTaskDetails' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ivtdAvailabilityZone' @::@ 'Text'+--+-- * 'ivtdBytesConverted' @::@ 'Integer'+--+-- * 'ivtdDescription' @::@ 'Maybe' 'Text'+--+-- * 'ivtdImage' @::@ 'DiskImageDescription'+--+-- * 'ivtdVolume' @::@ 'DiskImageVolumeDescription'+--+importVolumeTaskDetails :: Integer -- ^ 'ivtdBytesConverted'+ -> Text -- ^ 'ivtdAvailabilityZone'+ -> DiskImageDescription -- ^ 'ivtdImage'+ -> DiskImageVolumeDescription -- ^ 'ivtdVolume'+ -> ImportVolumeTaskDetails+importVolumeTaskDetails p1 p2 p3 p4 = ImportVolumeTaskDetails+ { _ivtdBytesConverted = p1+ , _ivtdAvailabilityZone = p2+ , _ivtdImage = p3+ , _ivtdVolume = p4+ , _ivtdDescription = Nothing+ }++-- | 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 description you provided when starting the import volume task.+ivtdDescription :: Lens' ImportVolumeTaskDetails (Maybe Text)+ivtdDescription = lens _ivtdDescription (\s a -> s { _ivtdDescription = 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 .@ "availabilityZone"+ <*> x .@ "bytesConverted"+ <*> x .@? "description"+ <*> x .@ "image"+ <*> x .@ "volume"++instance ToQuery ImportVolumeTaskDetails where+ toQuery ImportVolumeTaskDetails{..} = mconcat+ [ "AvailabilityZone" =? _ivtdAvailabilityZone+ , "BytesConverted" =? _ivtdBytesConverted+ , "Description" =? _ivtdDescription+ , "Image" =? _ivtdImage+ , "Volume" =? _ivtdVolume+ ]++data PlacementStrategy+ = Cluster -- ^ cluster+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable PlacementStrategy++instance FromText PlacementStrategy where+ parser = takeLowerText >>= \case+ "cluster" -> pure Cluster+ e -> fail $+ "Failure parsing PlacementStrategy from " ++ show e++instance ToText PlacementStrategy where+ toText Cluster = "cluster"++instance ToByteString PlacementStrategy+instance ToHeader PlacementStrategy+instance ToQuery PlacementStrategy++instance FromXML PlacementStrategy where+ parseXML = parseXMLText "PlacementStrategy"++data InstanceNetworkInterface = InstanceNetworkInterface+ { _iniAssociation :: Maybe InstanceNetworkInterfaceAssociation+ , _iniAttachment :: Maybe InstanceNetworkInterfaceAttachment+ , _iniDescription :: Maybe Text+ , _iniGroups :: List "item" GroupIdentifier+ , _iniMacAddress :: Maybe Text+ , _iniNetworkInterfaceId :: Maybe Text+ , _iniOwnerId :: Maybe Text+ , _iniPrivateDnsName :: Maybe Text+ , _iniPrivateIpAddress :: Maybe Text+ , _iniPrivateIpAddresses :: List "item" InstancePrivateIpAddress+ , _iniSourceDestCheck :: Maybe Bool+ , _iniStatus :: Maybe NetworkInterfaceStatus+ , _iniSubnetId :: Maybe Text+ , _iniVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'InstanceNetworkInterface' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iniAssociation' @::@ 'Maybe' 'InstanceNetworkInterfaceAssociation'+--+-- * 'iniAttachment' @::@ 'Maybe' 'InstanceNetworkInterfaceAttachment'+--+-- * 'iniDescription' @::@ 'Maybe' 'Text'+--+-- * 'iniGroups' @::@ ['GroupIdentifier']+--+-- * 'iniMacAddress' @::@ 'Maybe' 'Text'+--+-- * 'iniNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'iniOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'iniPrivateDnsName' @::@ 'Maybe' 'Text'+--+-- * 'iniPrivateIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'iniPrivateIpAddresses' @::@ ['InstancePrivateIpAddress']+--+-- * 'iniSourceDestCheck' @::@ 'Maybe' 'Bool'+--+-- * 'iniStatus' @::@ 'Maybe' 'NetworkInterfaceStatus'+--+-- * 'iniSubnetId' @::@ 'Maybe' 'Text'+--+-- * 'iniVpcId' @::@ 'Maybe' 'Text'+--+instanceNetworkInterface :: InstanceNetworkInterface+instanceNetworkInterface = InstanceNetworkInterface+ { _iniNetworkInterfaceId = Nothing+ , _iniSubnetId = Nothing+ , _iniVpcId = Nothing+ , _iniDescription = Nothing+ , _iniOwnerId = Nothing+ , _iniStatus = Nothing+ , _iniMacAddress = Nothing+ , _iniPrivateIpAddress = Nothing+ , _iniPrivateDnsName = Nothing+ , _iniSourceDestCheck = Nothing+ , _iniGroups = mempty+ , _iniAttachment = Nothing+ , _iniAssociation = Nothing+ , _iniPrivateIpAddresses = mempty+ }++-- | The association information for an Elastic IP associated with the network+-- interface.+iniAssociation :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAssociation)+iniAssociation = lens _iniAssociation (\s a -> s { _iniAssociation = a })++-- | The network interface attachment.+iniAttachment :: Lens' InstanceNetworkInterface (Maybe InstanceNetworkInterfaceAttachment)+iniAttachment = lens _iniAttachment (\s a -> s { _iniAttachment = a })++-- | The description.+iniDescription :: Lens' InstanceNetworkInterface (Maybe Text)+iniDescription = lens _iniDescription (\s a -> s { _iniDescription = a })++-- | One or more security groups.+iniGroups :: Lens' InstanceNetworkInterface [GroupIdentifier]+iniGroups = lens _iniGroups (\s a -> s { _iniGroups = a }) . _List++-- | The MAC address.+iniMacAddress :: Lens' InstanceNetworkInterface (Maybe Text)+iniMacAddress = lens _iniMacAddress (\s a -> s { _iniMacAddress = a })++-- | The ID of the network interface.+iniNetworkInterfaceId :: Lens' InstanceNetworkInterface (Maybe Text)+iniNetworkInterfaceId =+ lens _iniNetworkInterfaceId (\s a -> s { _iniNetworkInterfaceId = 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 private DNS name.+iniPrivateDnsName :: Lens' InstanceNetworkInterface (Maybe Text)+iniPrivateDnsName =+ lens _iniPrivateDnsName (\s a -> s { _iniPrivateDnsName = a })++-- | The IP address of the network interface within the subnet.+iniPrivateIpAddress :: Lens' InstanceNetworkInterface (Maybe Text)+iniPrivateIpAddress =+ lens _iniPrivateIpAddress (\s a -> s { _iniPrivateIpAddress = a })++-- | The private IP addresses associated with the network interface.+iniPrivateIpAddresses :: Lens' InstanceNetworkInterface [InstancePrivateIpAddress]+iniPrivateIpAddresses =+ lens _iniPrivateIpAddresses (\s a -> s { _iniPrivateIpAddresses = a })+ . _List++-- | 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 status of the network interface.+iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)+iniStatus = lens _iniStatus (\s a -> s { _iniStatus = a })++-- | The ID of the subnet.+iniSubnetId :: Lens' InstanceNetworkInterface (Maybe Text)+iniSubnetId = lens _iniSubnetId (\s a -> s { _iniSubnetId = a })++-- | The ID of the VPC.+iniVpcId :: Lens' InstanceNetworkInterface (Maybe Text)+iniVpcId = lens _iniVpcId (\s a -> s { _iniVpcId = a })++instance FromXML InstanceNetworkInterface where+ parseXML x = InstanceNetworkInterface+ <$> x .@? "association"+ <*> x .@? "attachment"+ <*> x .@? "description"+ <*> x .@? "groupSet" .!@ mempty+ <*> x .@? "macAddress"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "ownerId"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"+ <*> x .@? "privateIpAddressesSet" .!@ mempty+ <*> x .@? "sourceDestCheck"+ <*> x .@? "status"+ <*> x .@? "subnetId"+ <*> x .@? "vpcId"++instance ToQuery InstanceNetworkInterface where+ toQuery InstanceNetworkInterface{..} = mconcat+ [ "Association" =? _iniAssociation+ , "Attachment" =? _iniAttachment+ , "Description" =? _iniDescription+ , "GroupSet" `toQueryList` _iniGroups+ , "MacAddress" =? _iniMacAddress+ , "NetworkInterfaceId" =? _iniNetworkInterfaceId+ , "OwnerId" =? _iniOwnerId+ , "PrivateDnsName" =? _iniPrivateDnsName+ , "PrivateIpAddress" =? _iniPrivateIpAddress+ , "PrivateIpAddressesSet" `toQueryList` _iniPrivateIpAddresses+ , "SourceDestCheck" =? _iniSourceDestCheck+ , "Status" =? _iniStatus+ , "SubnetId" =? _iniSubnetId+ , "VpcId" =? _iniVpcId+ ]++data VolumeStatusAction = VolumeStatusAction+ { _vsaCode :: Maybe Text+ , _vsaDescription :: Maybe Text+ , _vsaEventId :: Maybe Text+ , _vsaEventType :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'VolumeStatusAction' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vsaCode' @::@ 'Maybe' 'Text'+--+-- * 'vsaDescription' @::@ 'Maybe' 'Text'+--+-- * 'vsaEventId' @::@ 'Maybe' 'Text'+--+-- * 'vsaEventType' @::@ 'Maybe' 'Text'+--+volumeStatusAction :: VolumeStatusAction+volumeStatusAction = VolumeStatusAction+ { _vsaCode = Nothing+ , _vsaDescription = Nothing+ , _vsaEventType = Nothing+ , _vsaEventId = Nothing+ }++-- | 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 })++-- | The event type associated with this operation.+vsaEventType :: Lens' VolumeStatusAction (Maybe Text)+vsaEventType = lens _vsaEventType (\s a -> s { _vsaEventType = a })++instance FromXML VolumeStatusAction where+ parseXML x = VolumeStatusAction+ <$> x .@? "code"+ <*> x .@? "description"+ <*> x .@? "eventId"+ <*> x .@? "eventType"++instance ToQuery VolumeStatusAction where+ toQuery VolumeStatusAction{..} = mconcat+ [ "Code" =? _vsaCode+ , "Description" =? _vsaDescription+ , "EventId" =? _vsaEventId+ , "EventType" =? _vsaEventType+ ]++data VpcPeeringConnectionVpcInfo = VpcPeeringConnectionVpcInfo+ { _vpcviCidrBlock :: Maybe Text+ , _vpcviOwnerId :: Maybe Text+ , _vpcviVpcId :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'VpcPeeringConnectionVpcInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vpcviCidrBlock' @::@ 'Maybe' 'Text'+--+-- * 'vpcviOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'vpcviVpcId' @::@ 'Maybe' 'Text'+--+vpcPeeringConnectionVpcInfo :: VpcPeeringConnectionVpcInfo+vpcPeeringConnectionVpcInfo = VpcPeeringConnectionVpcInfo+ { _vpcviCidrBlock = Nothing+ , _vpcviOwnerId = Nothing+ , _vpcviVpcId = Nothing+ }++-- | The CIDR block for the VPC.+vpcviCidrBlock :: Lens' VpcPeeringConnectionVpcInfo (Maybe Text)+vpcviCidrBlock = lens _vpcviCidrBlock (\s a -> s { _vpcviCidrBlock = a })++-- | The AWS account ID of the VPC owner.+vpcviOwnerId :: Lens' VpcPeeringConnectionVpcInfo (Maybe Text)+vpcviOwnerId = lens _vpcviOwnerId (\s a -> s { _vpcviOwnerId = a })++-- | The ID of the VPC.+vpcviVpcId :: Lens' VpcPeeringConnectionVpcInfo (Maybe Text)+vpcviVpcId = lens _vpcviVpcId (\s a -> s { _vpcviVpcId = a })++instance FromXML VpcPeeringConnectionVpcInfo where+ parseXML x = VpcPeeringConnectionVpcInfo+ <$> x .@? "cidrBlock"+ <*> x .@? "ownerId"+ <*> x .@? "vpcId"++instance ToQuery VpcPeeringConnectionVpcInfo where+ toQuery VpcPeeringConnectionVpcInfo{..} = mconcat+ [ "CidrBlock" =? _vpcviCidrBlock+ , "OwnerId" =? _vpcviOwnerId+ , "VpcId" =? _vpcviVpcId+ ]++data ReservedInstanceLimitPrice = ReservedInstanceLimitPrice+ { _rilpAmount :: Maybe Double+ , _rilpCurrencyCode :: Maybe CurrencyCodeValues+ } deriving (Eq, Read, Show)++-- | 'ReservedInstanceLimitPrice' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rilpAmount' @::@ 'Maybe' 'Double'+--+-- * 'rilpCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'+--+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 FromXML ReservedInstanceLimitPrice where+ parseXML x = ReservedInstanceLimitPrice+ <$> x .@? "amount"+ <*> x .@? "currencyCode"++instance ToQuery ReservedInstanceLimitPrice where+ toQuery ReservedInstanceLimitPrice{..} = mconcat+ [ "Amount" =? _rilpAmount+ , "CurrencyCode" =? _rilpCurrencyCode+ ]++data Vpc = Vpc+ { _vpcCidrBlock :: Text+ , _vpcDhcpOptionsId :: Text+ , _vpcInstanceTenancy :: Tenancy+ , _vpcIsDefault :: Bool+ , _vpcState :: VpcState+ , _vpcTags :: List "item" Tag+ , _vpcVpcId :: Text+ } deriving (Eq, Read, Show)++-- | 'Vpc' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vpcCidrBlock' @::@ 'Text'+--+-- * 'vpcDhcpOptionsId' @::@ 'Text'+--+-- * 'vpcInstanceTenancy' @::@ 'Tenancy'+--+-- * 'vpcIsDefault' @::@ 'Bool'+--+-- * 'vpcState' @::@ 'VpcState'+--+-- * 'vpcTags' @::@ ['Tag']+--+-- * 'vpcVpcId' @::@ 'Text'+--+vpc :: Text -- ^ 'vpcVpcId'+ -> VpcState -- ^ 'vpcState'+ -> Text -- ^ 'vpcCidrBlock'+ -> Text -- ^ 'vpcDhcpOptionsId'+ -> Tenancy -- ^ 'vpcInstanceTenancy'+ -> Bool -- ^ 'vpcIsDefault'+ -> Vpc+vpc p1 p2 p3 p4 p5 p6 = Vpc+ { _vpcVpcId = p1+ , _vpcState = p2+ , _vpcCidrBlock = p3+ , _vpcDhcpOptionsId = p4+ , _vpcInstanceTenancy = p5+ , _vpcIsDefault = p6+ , _vpcTags = mempty+ }++-- | The 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 })++-- | Indicates whether the VPC is the default VPC.+vpcIsDefault :: Lens' Vpc Bool+vpcIsDefault = lens _vpcIsDefault (\s a -> s { _vpcIsDefault = a })++-- | The current state of the VPC.+vpcState :: Lens' Vpc VpcState+vpcState = lens _vpcState (\s a -> s { _vpcState = a })++-- | Any tags assigned to the VPC.+vpcTags :: Lens' Vpc [Tag]+vpcTags = lens _vpcTags (\s a -> s { _vpcTags = a }) . _List++-- | 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 .@ "cidrBlock"+ <*> x .@ "dhcpOptionsId"+ <*> x .@ "instanceTenancy"+ <*> x .@ "isDefault"+ <*> x .@ "state"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "vpcId"++instance ToQuery Vpc where+ toQuery Vpc{..} = mconcat+ [ "CidrBlock" =? _vpcCidrBlock+ , "DhcpOptionsId" =? _vpcDhcpOptionsId+ , "InstanceTenancy" =? _vpcInstanceTenancy+ , "IsDefault" =? _vpcIsDefault+ , "State" =? _vpcState+ , "TagSet" `toQueryList` _vpcTags+ , "VpcId" =? _vpcVpcId+ ]++data InstanceStatus = InstanceStatus+ { _isAvailabilityZone :: Maybe Text+ , _isEvents :: List "item" InstanceStatusEvent+ , _isInstanceId :: Maybe Text+ , _isInstanceState :: Maybe InstanceState+ , _isInstanceStatus :: Maybe InstanceStatusSummary+ , _isSystemStatus :: Maybe InstanceStatusSummary+ } deriving (Eq, Read, Show)++-- | 'InstanceStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'isAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'isEvents' @::@ ['InstanceStatusEvent']+--+-- * 'isInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'isInstanceState' @::@ 'Maybe' 'InstanceState'+--+-- * 'isInstanceStatus' @::@ 'Maybe' 'InstanceStatusSummary'+--+-- * 'isSystemStatus' @::@ 'Maybe' 'InstanceStatusSummary'+--+instanceStatus :: InstanceStatus+instanceStatus = InstanceStatus+ { _isInstanceId = Nothing+ , _isAvailabilityZone = Nothing+ , _isEvents = mempty+ , _isInstanceState = Nothing+ , _isSystemStatus = Nothing+ , _isInstanceStatus = Nothing+ }++-- | The Availability Zone of the instance.+isAvailabilityZone :: Lens' InstanceStatus (Maybe Text)+isAvailabilityZone =+ lens _isAvailabilityZone (\s a -> s { _isAvailabilityZone = a })++-- | Extra information regarding events associated with the instance.+isEvents :: Lens' InstanceStatus [InstanceStatusEvent]+isEvents = lens _isEvents (\s a -> s { _isEvents = a }) . _List++-- | The ID of the instance.+isInstanceId :: Lens' InstanceStatus (Maybe Text)+isInstanceId = lens _isInstanceId (\s a -> s { _isInstanceId = 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 })++-- | 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 })++-- | 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 })++instance FromXML InstanceStatus where+ parseXML x = InstanceStatus+ <$> x .@? "availabilityZone"+ <*> x .@? "eventsSet" .!@ mempty+ <*> x .@? "instanceId"+ <*> x .@? "instanceState"+ <*> x .@? "instanceStatus"+ <*> x .@? "systemStatus"++instance ToQuery InstanceStatus where+ toQuery InstanceStatus{..} = mconcat+ [ "AvailabilityZone" =? _isAvailabilityZone+ , "EventsSet" `toQueryList` _isEvents+ , "InstanceId" =? _isInstanceId+ , "InstanceState" =? _isInstanceState+ , "InstanceStatus" =? _isInstanceStatus+ , "SystemStatus" =? _isSystemStatus+ ]++data ArchitectureValues+ = I386 -- ^ i386+ | X8664 -- ^ x86_64+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ArchitectureValues++instance FromText ArchitectureValues where+ parser = takeLowerText >>= \case+ "i386" -> pure I386+ "x86_64" -> pure X8664+ e -> fail $+ "Failure parsing ArchitectureValues from " ++ show e++instance ToText ArchitectureValues where+ toText = \case+ I386 -> "i386"+ X8664 -> "x86_64"++instance ToByteString ArchitectureValues+instance ToHeader ArchitectureValues+instance ToQuery ArchitectureValues++instance FromXML ArchitectureValues where+ parseXML = parseXMLText "ArchitectureValues"++data ReportInstanceReasonCodes+ = 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+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ReportInstanceReasonCodes++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 -> fail $+ "Failure parsing ReportInstanceReasonCodes from " ++ show e++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 ToByteString ReportInstanceReasonCodes+instance ToHeader ReportInstanceReasonCodes+instance ToQuery ReportInstanceReasonCodes++instance FromXML ReportInstanceReasonCodes where+ parseXML = parseXMLText "ReportInstanceReasonCodes"++data EbsBlockDevice = EbsBlockDevice+ { _ebdDeleteOnTermination :: Maybe Bool+ , _ebdEncrypted :: Maybe Bool+ , _ebdIops :: Maybe Int+ , _ebdSnapshotId :: Maybe Text+ , _ebdVolumeSize :: Maybe Int+ , _ebdVolumeType :: Maybe VolumeType+ } deriving (Eq, Read, Show)++-- | 'EbsBlockDevice' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ebdDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'ebdEncrypted' @::@ 'Maybe' 'Bool'+--+-- * 'ebdIops' @::@ 'Maybe' 'Int'+--+-- * 'ebdSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'ebdVolumeSize' @::@ 'Maybe' 'Int'+--+-- * 'ebdVolumeType' @::@ 'Maybe' 'VolumeType'+--+ebsBlockDevice :: EbsBlockDevice+ebsBlockDevice = EbsBlockDevice+ { _ebdSnapshotId = Nothing+ , _ebdVolumeSize = Nothing+ , _ebdDeleteOnTermination = Nothing+ , _ebdVolumeType = Nothing+ , _ebdIops = Nothing+ , _ebdEncrypted = Nothing+ }++-- | Indicates whether the Amazon EBS volume is deleted on instance termination.+ebdDeleteOnTermination :: Lens' EbsBlockDevice (Maybe Bool)+ebdDeleteOnTermination =+ lens _ebdDeleteOnTermination (\s a -> s { _ebdDeleteOnTermination = a })++-- | Indicates whether the Amazon 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 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 EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.+--+-- Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to+-- 3072 for General Purpose (SSD) volumes.+--+-- Condition: This parameter is required for requests to create 'io1' volumes; it+-- is not used in requests to create 'standard' or 'gp2' volumes.+ebdIops :: Lens' EbsBlockDevice (Maybe Int)+ebdIops = lens _ebdIops (\s a -> s { _ebdIops = a })++-- | The ID of the snapshot.+ebdSnapshotId :: Lens' EbsBlockDevice (Maybe Text)+ebdSnapshotId = lens _ebdSnapshotId (\s a -> s { _ebdSnapshotId = a })++-- | The size of the volume, in GiB.+--+-- Constraints: If the volume type is 'io1', the minimum size of the volume is 10+-- GiB; otherwise, the minimum size is 1 GiB. The maximum volume size is 1024+-- GiB. 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 volume type. 'gp2' for General Purpose (SSD) volumes, 'io1' for Provisioned+-- IOPS (SSD) volumes, and 'standard' for Magnetic volumes.+--+-- Default: 'standard'+ebdVolumeType :: Lens' EbsBlockDevice (Maybe VolumeType)+ebdVolumeType = lens _ebdVolumeType (\s a -> s { _ebdVolumeType = a })++instance FromXML EbsBlockDevice where+ parseXML x = EbsBlockDevice+ <$> x .@? "deleteOnTermination"+ <*> x .@? "encrypted"+ <*> x .@? "iops"+ <*> x .@? "snapshotId"+ <*> x .@? "volumeSize"+ <*> x .@? "volumeType"++instance ToQuery EbsBlockDevice where+ toQuery EbsBlockDevice{..} = mconcat+ [ "DeleteOnTermination" =? _ebdDeleteOnTermination+ , "Encrypted" =? _ebdEncrypted+ , "Iops" =? _ebdIops+ , "SnapshotId" =? _ebdSnapshotId+ , "VolumeSize" =? _ebdVolumeSize+ , "VolumeType" =? _ebdVolumeType+ ]++data AccountAttribute = AccountAttribute+ { _aaAttributeName :: Maybe Text+ , _aaAttributeValues :: List "item" AccountAttributeValue+ } deriving (Eq, Read, Show)++-- | 'AccountAttribute' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aaAttributeName' @::@ 'Maybe' 'Text'+--+-- * 'aaAttributeValues' @::@ ['AccountAttributeValue']+--+accountAttribute :: AccountAttribute+accountAttribute = AccountAttribute+ { _aaAttributeName = Nothing+ , _aaAttributeValues = mempty+ }++-- | The name of the account attribute.+aaAttributeName :: Lens' AccountAttribute (Maybe Text)+aaAttributeName = lens _aaAttributeName (\s a -> s { _aaAttributeName = a })++-- | One or more values for the account attribute.+aaAttributeValues :: Lens' AccountAttribute [AccountAttributeValue]+aaAttributeValues =+ lens _aaAttributeValues (\s a -> s { _aaAttributeValues = a })+ . _List++instance FromXML AccountAttribute where+ parseXML x = AccountAttribute+ <$> x .@? "attributeName"+ <*> x .@? "attributeValueSet" .!@ mempty++instance ToQuery AccountAttribute where+ toQuery AccountAttribute{..} = mconcat+ [ "AttributeName" =? _aaAttributeName+ , "AttributeValueSet" `toQueryList` _aaAttributeValues+ ]++data PriceSchedule = PriceSchedule+ { _psActive :: Maybe Bool+ , _psCurrencyCode :: Maybe CurrencyCodeValues+ , _psPrice :: Maybe Double+ , _psTerm :: Maybe Integer+ } deriving (Eq, Read, Show)++-- | 'PriceSchedule' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'psActive' @::@ 'Maybe' 'Bool'+--+-- * 'psCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'+--+-- * 'psPrice' @::@ 'Maybe' 'Double'+--+-- * 'psTerm' @::@ 'Maybe' 'Integer'+--+priceSchedule :: PriceSchedule+priceSchedule = PriceSchedule+ { _psTerm = Nothing+ , _psPrice = Nothing+ , _psCurrencyCode = Nothing+ , _psActive = Nothing+ }++-- | 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 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 fixed price for the term.+psPrice :: Lens' PriceSchedule (Maybe Double)+psPrice = lens _psPrice (\s a -> s { _psPrice = 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 })++instance FromXML PriceSchedule where+ parseXML x = PriceSchedule+ <$> x .@? "active"+ <*> x .@? "currencyCode"+ <*> x .@? "price"+ <*> x .@? "term"++instance ToQuery PriceSchedule where+ toQuery PriceSchedule{..} = mconcat+ [ "Active" =? _psActive+ , "CurrencyCode" =? _psCurrencyCode+ , "Price" =? _psPrice+ , "Term" =? _psTerm+ ]++data DeviceType+ = Ebs -- ^ ebs+ | InstanceStore -- ^ instance-store+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable DeviceType++instance FromText DeviceType where+ parser = takeLowerText >>= \case+ "ebs" -> pure Ebs+ "instance-store" -> pure InstanceStore+ e -> fail $+ "Failure parsing DeviceType from " ++ show e++instance ToText DeviceType where+ toText = \case+ Ebs -> "ebs"+ InstanceStore -> "instance-store"++instance ToByteString DeviceType+instance ToHeader DeviceType+instance ToQuery DeviceType++instance FromXML DeviceType where+ parseXML = parseXMLText "DeviceType"++data DomainType+ = DTStandard -- ^ standard+ | DTVpc -- ^ vpc+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable DomainType++instance FromText DomainType where+ parser = takeLowerText >>= \case+ "standard" -> pure DTStandard+ "vpc" -> pure DTVpc+ e -> fail $+ "Failure parsing DomainType from " ++ show e++instance ToText DomainType where+ toText = \case+ DTStandard -> "standard"+ DTVpc -> "vpc"++instance ToByteString DomainType+instance ToHeader DomainType+instance ToQuery DomainType++instance FromXML DomainType where+ parseXML = parseXMLText "DomainType"++data Region = Region+ { _rEndpoint :: Maybe Text+ , _rRegionName :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'Region' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rEndpoint' @::@ 'Maybe' 'Text'+--+-- * 'rRegionName' @::@ 'Maybe' 'Text'+--+region :: Region+region = Region+ { _rRegionName = Nothing+ , _rEndpoint = Nothing+ }++-- | The region service endpoint.+rEndpoint :: Lens' Region (Maybe Text)+rEndpoint = lens _rEndpoint (\s a -> s { _rEndpoint = a })++-- | The name of the region.+rRegionName :: Lens' Region (Maybe Text)+rRegionName = lens _rRegionName (\s a -> s { _rRegionName = a })++instance FromXML Region where+ parseXML x = Region+ <$> x .@? "regionEndpoint"+ <*> x .@? "regionName"++instance ToQuery Region where+ toQuery Region{..} = mconcat+ [ "RegionEndpoint" =? _rEndpoint+ , "RegionName" =? _rRegionName+ ]++newtype PropagatingVgw = PropagatingVgw+ { _pvGatewayId :: Maybe Text+ } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'PropagatingVgw' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pvGatewayId' @::@ 'Maybe' 'Text'+--+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 ToQuery PropagatingVgw where+ toQuery PropagatingVgw{..} = mconcat+ [ "GatewayId" =? _pvGatewayId+ ]++data OfferingTypeValues+ = AllUpfront -- ^ All Upfront+ | HeavyUtilization -- ^ Heavy Utilization+ | LightUtilization -- ^ Light Utilization+ | MediumUtilization -- ^ Medium Utilization+ | NoUpfront -- ^ No Upfront+ | PartialUpfront -- ^ Partial Upfront+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable OfferingTypeValues++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 -> fail $+ "Failure parsing OfferingTypeValues from " ++ show e++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 ToByteString OfferingTypeValues+instance ToHeader OfferingTypeValues+instance ToQuery OfferingTypeValues++instance FromXML OfferingTypeValues where+ parseXML = parseXMLText "OfferingTypeValues"++data VpnGateway = VpnGateway+ { _vgAvailabilityZone :: Maybe Text+ , _vgState :: Maybe VpnState+ , _vgTags :: List "item" Tag+ , _vgType :: Maybe GatewayType+ , _vgVpcAttachments :: List "item" VpcAttachment+ , _vgVpnGatewayId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VpnGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vgAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'vgState' @::@ 'Maybe' 'VpnState'+--+-- * 'vgTags' @::@ ['Tag']+--+-- * 'vgType' @::@ 'Maybe' 'GatewayType'+--+-- * 'vgVpcAttachments' @::@ ['VpcAttachment']+--+-- * 'vgVpnGatewayId' @::@ 'Maybe' 'Text'+--+vpnGateway :: VpnGateway+vpnGateway = VpnGateway+ { _vgVpnGatewayId = Nothing+ , _vgState = Nothing+ , _vgType = Nothing+ , _vgAvailabilityZone = Nothing+ , _vgVpcAttachments = mempty+ , _vgTags = mempty+ }++-- | The Availability Zone where the virtual private gateway was created.+vgAvailabilityZone :: Lens' VpnGateway (Maybe Text)+vgAvailabilityZone =+ lens _vgAvailabilityZone (\s a -> s { _vgAvailabilityZone = a })++-- | The current state of the virtual private gateway.+vgState :: Lens' VpnGateway (Maybe VpnState)+vgState = lens _vgState (\s a -> s { _vgState = a })++-- | Any tags assigned to the virtual private gateway.+vgTags :: Lens' VpnGateway [Tag]+vgTags = lens _vgTags (\s a -> s { _vgTags = a }) . _List++-- | The type of VPN connection the virtual private gateway supports.+vgType :: Lens' VpnGateway (Maybe GatewayType)+vgType = lens _vgType (\s a -> s { _vgType = a })++-- | Any VPCs attached to the virtual private gateway.+vgVpcAttachments :: Lens' VpnGateway [VpcAttachment]+vgVpcAttachments = lens _vgVpcAttachments (\s a -> s { _vgVpcAttachments = a }) . _List++-- | The ID of the virtual private gateway.+vgVpnGatewayId :: Lens' VpnGateway (Maybe Text)+vgVpnGatewayId = lens _vgVpnGatewayId (\s a -> s { _vgVpnGatewayId = a })++instance FromXML VpnGateway where+ parseXML x = VpnGateway+ <$> x .@? "availabilityZone"+ <*> x .@? "state"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "type"+ <*> x .@? "attachments" .!@ mempty+ <*> x .@? "vpnGatewayId"++instance ToQuery VpnGateway where+ toQuery VpnGateway{..} = mconcat+ [ "AvailabilityZone" =? _vgAvailabilityZone+ , "State" =? _vgState+ , "TagSet" `toQueryList` _vgTags+ , "Type" =? _vgType+ , "Attachments" `toQueryList` _vgVpcAttachments+ , "VpnGatewayId" =? _vgVpnGatewayId+ ]++data Filter = Filter+ { _fName :: Text+ , _fValues :: List "item" Text+ } deriving (Eq, Ord, Read, Show)++-- | 'Filter' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'fName' @::@ 'Text'+--+-- * 'fValues' @::@ ['Text']+--+filter' :: Text -- ^ 'fName'+ -> Filter+filter' p1 = Filter+ { _fName = p1+ , _fValues = mempty+ }++-- | The name of the filter. Filter names are case-sensitive.+fName :: Lens' Filter Text+fName = lens _fName (\s a -> s { _fName = a })++-- | One or more filter values. Filter values are case-sensitive.+fValues :: Lens' Filter [Text]+fValues = lens _fValues (\s a -> s { _fValues = a }) . _List++instance FromXML Filter where+ parseXML x = Filter+ <$> x .@ "Name"+ <*> x .@? "Value" .!@ mempty++instance ToQuery Filter where+ toQuery Filter{..} = mconcat+ [ "Name" =? _fName+ , "Value" `toQueryList` _fValues+ ]++data VolumeType+ = Gp2 -- ^ gp2+ | Io1 -- ^ io1+ | Standard -- ^ standard+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VolumeType++instance FromText VolumeType where+ parser = takeLowerText >>= \case+ "gp2" -> pure Gp2+ "io1" -> pure Io1+ "standard" -> pure Standard+ e -> fail $+ "Failure parsing VolumeType from " ++ show e++instance ToText VolumeType where+ toText = \case+ Gp2 -> "gp2"+ Io1 -> "io1"+ Standard -> "standard"++instance ToByteString VolumeType+instance ToHeader VolumeType+instance ToQuery VolumeType++instance FromXML VolumeType where+ parseXML = parseXMLText "VolumeType"++data InstanceStateChange = InstanceStateChange+ { _iscCurrentState :: Maybe InstanceState+ , _iscInstanceId :: Maybe Text+ , _iscPreviousState :: Maybe InstanceState+ } deriving (Eq, Read, Show)++-- | 'InstanceStateChange' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iscCurrentState' @::@ 'Maybe' 'InstanceState'+--+-- * 'iscInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'iscPreviousState' @::@ 'Maybe' 'InstanceState'+--+instanceStateChange :: InstanceStateChange+instanceStateChange = InstanceStateChange+ { _iscInstanceId = Nothing+ , _iscCurrentState = Nothing+ , _iscPreviousState = Nothing+ }++-- | The current state of the instance.+iscCurrentState :: Lens' InstanceStateChange (Maybe InstanceState)+iscCurrentState = lens _iscCurrentState (\s a -> s { _iscCurrentState = a })++-- | The ID of the instance.+iscInstanceId :: Lens' InstanceStateChange (Maybe Text)+iscInstanceId = lens _iscInstanceId (\s a -> s { _iscInstanceId = 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 .@? "currentState"+ <*> x .@? "instanceId"+ <*> x .@? "previousState"++instance ToQuery InstanceStateChange where+ toQuery InstanceStateChange{..} = mconcat+ [ "CurrentState" =? _iscCurrentState+ , "InstanceId" =? _iscInstanceId+ , "PreviousState" =? _iscPreviousState+ ]++data NetworkAcl = NetworkAcl+ { _naAssociations :: List "item" NetworkAclAssociation+ , _naEntries :: List "item" NetworkAclEntry+ , _naIsDefault :: Maybe Bool+ , _naNetworkAclId :: Maybe Text+ , _naTags :: List "item" Tag+ , _naVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'NetworkAcl' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'naAssociations' @::@ ['NetworkAclAssociation']+--+-- * 'naEntries' @::@ ['NetworkAclEntry']+--+-- * 'naIsDefault' @::@ 'Maybe' 'Bool'+--+-- * 'naNetworkAclId' @::@ 'Maybe' 'Text'+--+-- * 'naTags' @::@ ['Tag']+--+-- * 'naVpcId' @::@ 'Maybe' 'Text'+--+networkAcl :: NetworkAcl+networkAcl = NetworkAcl+ { _naNetworkAclId = Nothing+ , _naVpcId = Nothing+ , _naIsDefault = Nothing+ , _naEntries = mempty+ , _naAssociations = mempty+ , _naTags = mempty+ }++-- | Any associations between the network ACL and one or more subnets+naAssociations :: Lens' NetworkAcl [NetworkAclAssociation]+naAssociations = lens _naAssociations (\s a -> s { _naAssociations = a }) . _List++-- | One or more entries (rules) in the network ACL.+naEntries :: Lens' NetworkAcl [NetworkAclEntry]+naEntries = lens _naEntries (\s a -> s { _naEntries = a }) . _List++-- | Indicates whether this is the default network ACL for the VPC.+naIsDefault :: Lens' NetworkAcl (Maybe Bool)+naIsDefault = lens _naIsDefault (\s a -> s { _naIsDefault = a })++-- | The ID of the network ACL.+naNetworkAclId :: Lens' NetworkAcl (Maybe Text)+naNetworkAclId = lens _naNetworkAclId (\s a -> s { _naNetworkAclId = a })++-- | Any tags assigned to the network ACL.+naTags :: Lens' NetworkAcl [Tag]+naTags = lens _naTags (\s a -> s { _naTags = a }) . _List++-- | The ID of the VPC for the network ACL.+naVpcId :: Lens' NetworkAcl (Maybe Text)+naVpcId = lens _naVpcId (\s a -> s { _naVpcId = a })++instance FromXML NetworkAcl where+ parseXML x = NetworkAcl+ <$> x .@? "associationSet" .!@ mempty+ <*> x .@? "entrySet" .!@ mempty+ <*> x .@? "default"+ <*> x .@? "networkAclId"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcId"++instance ToQuery NetworkAcl where+ toQuery NetworkAcl{..} = mconcat+ [ "AssociationSet" `toQueryList` _naAssociations+ , "EntrySet" `toQueryList` _naEntries+ , "Default" =? _naIsDefault+ , "NetworkAclId" =? _naNetworkAclId+ , "TagSet" `toQueryList` _naTags+ , "VpcId" =? _naVpcId+ ]++data ImageState+ = ISAvailable -- ^ available+ | ISDeregistered -- ^ deregistered+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ImageState++instance FromText ImageState where+ parser = takeLowerText >>= \case+ "available" -> pure ISAvailable+ "deregistered" -> pure ISDeregistered+ e -> fail $+ "Failure parsing ImageState from " ++ show e++instance ToText ImageState where+ toText = \case+ ISAvailable -> "available"+ ISDeregistered -> "deregistered"++instance ToByteString ImageState+instance ToHeader ImageState+instance ToQuery ImageState++instance FromXML ImageState where+ parseXML = parseXMLText "ImageState"++data GatewayType+ = Ipsec1 -- ^ ipsec.1+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable GatewayType++instance FromText GatewayType where+ parser = takeLowerText >>= \case+ "ipsec.1" -> pure Ipsec1+ e -> fail $+ "Failure parsing GatewayType from " ++ show e++instance ToText GatewayType where+ toText Ipsec1 = "ipsec.1"++instance ToByteString GatewayType+instance ToHeader GatewayType+instance ToQuery GatewayType++instance FromXML GatewayType where+ parseXML = parseXMLText "GatewayType"++data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment+ { _iniaAttachTime :: Maybe ISO8601+ , _iniaAttachmentId :: Maybe Text+ , _iniaDeleteOnTermination :: Maybe Bool+ , _iniaDeviceIndex :: Maybe Int+ , _iniaStatus :: Maybe AttachmentStatus+ } deriving (Eq, Read, Show)++-- | 'InstanceNetworkInterfaceAttachment' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iniaAttachTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'iniaAttachmentId' @::@ 'Maybe' 'Text'+--+-- * 'iniaDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'iniaDeviceIndex' @::@ 'Maybe' 'Int'+--+-- * 'iniaStatus' @::@ 'Maybe' 'AttachmentStatus'+--+instanceNetworkInterfaceAttachment :: InstanceNetworkInterfaceAttachment+instanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment+ { _iniaAttachmentId = Nothing+ , _iniaDeviceIndex = Nothing+ , _iniaStatus = Nothing+ , _iniaAttachTime = Nothing+ , _iniaDeleteOnTermination = Nothing+ }++-- | The time stamp when the attachment initiated.+iniaAttachTime :: Lens' InstanceNetworkInterfaceAttachment (Maybe UTCTime)+iniaAttachTime = lens _iniaAttachTime (\s a -> s { _iniaAttachTime = a }) . mapping _Time++-- | The ID of the network interface attachment.+iniaAttachmentId :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)+iniaAttachmentId = lens _iniaAttachmentId (\s a -> s { _iniaAttachmentId = 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 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 })++-- | The attachment state.+iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)+iniaStatus = lens _iniaStatus (\s a -> s { _iniaStatus = a })++instance FromXML InstanceNetworkInterfaceAttachment where+ parseXML x = InstanceNetworkInterfaceAttachment+ <$> x .@? "attachTime"+ <*> x .@? "attachmentId"+ <*> x .@? "deleteOnTermination"+ <*> x .@? "deviceIndex"+ <*> x .@? "status"++instance ToQuery InstanceNetworkInterfaceAttachment where+ toQuery InstanceNetworkInterfaceAttachment{..} = mconcat+ [ "AttachTime" =? _iniaAttachTime+ , "AttachmentId" =? _iniaAttachmentId+ , "DeleteOnTermination" =? _iniaDeleteOnTermination+ , "DeviceIndex" =? _iniaDeviceIndex+ , "Status" =? _iniaStatus+ ]++newtype AttributeBooleanValue = AttributeBooleanValue+ { _abvValue :: Maybe Bool+ } deriving (Eq, Ord, Read, Show)++-- | 'AttributeBooleanValue' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'abvValue' @::@ 'Maybe' 'Bool'+--+attributeBooleanValue :: AttributeBooleanValue+attributeBooleanValue = AttributeBooleanValue+ { _abvValue = Nothing+ }++-- | 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 ToQuery AttributeBooleanValue where+ toQuery AttributeBooleanValue{..} = mconcat+ [ "Value" =? _abvValue+ ]++data RecurringCharge = RecurringCharge+ { _rcAmount :: Maybe Double+ , _rcFrequency :: Maybe RecurringChargeFrequency+ } deriving (Eq, Read, Show)++-- | 'RecurringCharge' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcAmount' @::@ 'Maybe' 'Double'+--+-- * 'rcFrequency' @::@ 'Maybe' 'RecurringChargeFrequency'+--+recurringCharge :: RecurringCharge+recurringCharge = RecurringCharge+ { _rcFrequency = Nothing+ , _rcAmount = 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 ToQuery RecurringCharge where+ toQuery RecurringCharge{..} = mconcat+ [ "Amount" =? _rcAmount+ , "Frequency" =? _rcFrequency+ ]++data NewDhcpConfiguration = NewDhcpConfiguration+ { _ndcKey :: Maybe Text+ , _ndcValues :: List "item" Text+ } deriving (Eq, Ord, Read, Show)++-- | 'NewDhcpConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ndcKey' @::@ 'Maybe' 'Text'+--+-- * 'ndcValues' @::@ ['Text']+--+newDhcpConfiguration :: NewDhcpConfiguration+newDhcpConfiguration = NewDhcpConfiguration+ { _ndcKey = Nothing+ , _ndcValues = mempty+ }++ndcKey :: Lens' NewDhcpConfiguration (Maybe Text)+ndcKey = lens _ndcKey (\s a -> s { _ndcKey = a })++ndcValues :: Lens' NewDhcpConfiguration [Text]+ndcValues = lens _ndcValues (\s a -> s { _ndcValues = a }) . _List++instance FromXML NewDhcpConfiguration where+ parseXML x = NewDhcpConfiguration+ <$> x .@? "key"+ <*> x .@? "Value" .!@ mempty++instance ToQuery NewDhcpConfiguration where+ toQuery NewDhcpConfiguration{..} = mconcat+ [ "Key" =? _ndcKey+ , "Value" `toQueryList` _ndcValues+ ]++data StateReason = StateReason+ { _srCode :: Maybe Text+ , _srMessage :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'StateReason' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'srCode' @::@ 'Maybe' 'Text'+--+-- * 'srMessage' @::@ 'Maybe' 'Text'+--+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 volume limit was exceeded.+--+-- '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 ToQuery StateReason where+ toQuery StateReason{..} = mconcat+ [ "Code" =? _srCode+ , "Message" =? _srMessage+ ]++data MonitoringState+ = MSDisabled -- ^ disabled+ | MSEnabled -- ^ enabled+ | MSPending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable MonitoringState++instance FromText MonitoringState where+ parser = takeLowerText >>= \case+ "disabled" -> pure MSDisabled+ "enabled" -> pure MSEnabled+ "pending" -> pure MSPending+ e -> fail $+ "Failure parsing MonitoringState from " ++ show e++instance ToText MonitoringState where+ toText = \case+ MSDisabled -> "disabled"+ MSEnabled -> "enabled"+ MSPending -> "pending"++instance ToByteString MonitoringState+instance ToHeader MonitoringState+instance ToQuery MonitoringState++instance FromXML MonitoringState where+ parseXML = parseXMLText "MonitoringState"++newtype ReservedInstancesId = ReservedInstancesId+ { _riiReservedInstancesId :: Maybe Text+ } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'ReservedInstancesId' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'riiReservedInstancesId' @::@ 'Maybe' 'Text'+--+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 ToQuery ReservedInstancesId where+ toQuery ReservedInstancesId{..} = mconcat+ [ "ReservedInstancesId" =? _riiReservedInstancesId+ ]++data StatusName+ = Reachability -- ^ reachability+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable StatusName++instance FromText StatusName where+ parser = takeLowerText >>= \case+ "reachability" -> pure Reachability+ e -> fail $+ "Failure parsing StatusName from " ++ show e++instance ToText StatusName where+ toText Reachability = "reachability"++instance ToByteString StatusName+instance ToHeader StatusName+instance ToQuery StatusName++instance FromXML StatusName where+ parseXML = parseXMLText "StatusName"++data InternetGateway = InternetGateway+ { _igAttachments :: List "item" InternetGatewayAttachment+ , _igInternetGatewayId :: Text+ , _igTags :: List "item" Tag+ } deriving (Eq, Read, Show)++-- | 'InternetGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'igAttachments' @::@ ['InternetGatewayAttachment']+--+-- * 'igInternetGatewayId' @::@ 'Text'+--+-- * 'igTags' @::@ ['Tag']+--+internetGateway :: Text -- ^ 'igInternetGatewayId'+ -> InternetGateway+internetGateway p1 = InternetGateway+ { _igInternetGatewayId = p1+ , _igAttachments = mempty+ , _igTags = mempty+ }++-- | Any VPCs attached to the Internet gateway.+igAttachments :: Lens' InternetGateway [InternetGatewayAttachment]+igAttachments = lens _igAttachments (\s a -> s { _igAttachments = a }) . _List++-- | The ID of the Internet gateway.+igInternetGatewayId :: Lens' InternetGateway Text+igInternetGatewayId =+ lens _igInternetGatewayId (\s a -> s { _igInternetGatewayId = a })++-- | Any tags assigned to the Internet gateway.+igTags :: Lens' InternetGateway [Tag]+igTags = lens _igTags (\s a -> s { _igTags = a }) . _List++instance FromXML InternetGateway where+ parseXML x = InternetGateway+ <$> x .@? "attachmentSet" .!@ mempty+ <*> x .@ "internetGatewayId"+ <*> x .@? "tagSet" .!@ mempty++instance ToQuery InternetGateway where+ toQuery InternetGateway{..} = mconcat+ [ "AttachmentSet" `toQueryList` _igAttachments+ , "InternetGatewayId" =? _igInternetGatewayId+ , "TagSet" `toQueryList` _igTags+ ]++data VolumeStatusName+ = IoEnabled -- ^ io-enabled+ | IoPerformance -- ^ io-performance+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VolumeStatusName++instance FromText VolumeStatusName where+ parser = takeLowerText >>= \case+ "io-enabled" -> pure IoEnabled+ "io-performance" -> pure IoPerformance+ e -> fail $+ "Failure parsing VolumeStatusName from " ++ show e++instance ToText VolumeStatusName where+ toText = \case+ IoEnabled -> "io-enabled"+ IoPerformance -> "io-performance"++instance ToByteString VolumeStatusName+instance ToHeader VolumeStatusName+instance ToQuery VolumeStatusName++instance FromXML VolumeStatusName where+ parseXML = parseXMLText "VolumeStatusName"++data VolumeAttributeName+ = AutoEnableIO -- ^ autoEnableIO+ | ProductCodes -- ^ productCodes+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VolumeAttributeName++instance FromText VolumeAttributeName where+ parser = takeLowerText >>= \case+ "autoenableio" -> pure AutoEnableIO+ "productcodes" -> pure ProductCodes+ e -> fail $+ "Failure parsing VolumeAttributeName from " ++ show e++instance ToText VolumeAttributeName where+ toText = \case+ AutoEnableIO -> "autoEnableIO"+ ProductCodes -> "productCodes"++instance ToByteString VolumeAttributeName+instance ToHeader VolumeAttributeName+instance ToQuery VolumeAttributeName++instance FromXML VolumeAttributeName where+ parseXML = parseXMLText "VolumeAttributeName"++data ImportInstanceTaskDetails = ImportInstanceTaskDetails+ { _iitdDescription :: Maybe Text+ , _iitdInstanceId :: Maybe Text+ , _iitdPlatform :: Maybe PlatformValues+ , _iitdVolumes :: List "item" ImportInstanceVolumeDetailItem+ } deriving (Eq, Read, Show)++-- | 'ImportInstanceTaskDetails' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iitdDescription' @::@ 'Maybe' 'Text'+--+-- * 'iitdInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'iitdPlatform' @::@ 'Maybe' 'PlatformValues'+--+-- * 'iitdVolumes' @::@ ['ImportInstanceVolumeDetailItem']+--+importInstanceTaskDetails :: ImportInstanceTaskDetails+importInstanceTaskDetails = ImportInstanceTaskDetails+ { _iitdVolumes = mempty+ , _iitdInstanceId = Nothing+ , _iitdPlatform = Nothing+ , _iitdDescription = Nothing+ }++iitdDescription :: Lens' ImportInstanceTaskDetails (Maybe Text)+iitdDescription = lens _iitdDescription (\s a -> s { _iitdDescription = a })++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 })++iitdVolumes :: Lens' ImportInstanceTaskDetails [ImportInstanceVolumeDetailItem]+iitdVolumes = lens _iitdVolumes (\s a -> s { _iitdVolumes = a }) . _List++instance FromXML ImportInstanceTaskDetails where+ parseXML x = ImportInstanceTaskDetails+ <$> x .@? "description"+ <*> x .@? "instanceId"+ <*> x .@? "platform"+ <*> x .@? "volumes" .!@ mempty++instance ToQuery ImportInstanceTaskDetails where+ toQuery ImportInstanceTaskDetails{..} = mconcat+ [ "Description" =? _iitdDescription+ , "InstanceId" =? _iitdInstanceId+ , "Platform" =? _iitdPlatform+ , "Volumes" `toQueryList` _iitdVolumes+ ]++data PlacementGroup = PlacementGroup+ { _pgGroupName :: Maybe Text+ , _pgState :: Maybe PlacementGroupState+ , _pgStrategy :: Maybe PlacementStrategy+ } deriving (Eq, Read, Show)++-- | 'PlacementGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pgGroupName' @::@ 'Maybe' 'Text'+--+-- * 'pgState' @::@ 'Maybe' 'PlacementGroupState'+--+-- * 'pgStrategy' @::@ 'Maybe' 'PlacementStrategy'+--+placementGroup :: PlacementGroup+placementGroup = PlacementGroup+ { _pgGroupName = Nothing+ , _pgStrategy = Nothing+ , _pgState = Nothing+ }++-- | The name of the placement group.+pgGroupName :: Lens' PlacementGroup (Maybe Text)+pgGroupName = lens _pgGroupName (\s a -> s { _pgGroupName = a })++-- | 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 })++instance FromXML PlacementGroup where+ parseXML x = PlacementGroup+ <$> x .@? "groupName"+ <*> x .@? "state"+ <*> x .@? "strategy"++instance ToQuery PlacementGroup where+ toQuery PlacementGroup{..} = mconcat+ [ "GroupName" =? _pgGroupName+ , "State" =? _pgState+ , "Strategy" =? _pgStrategy+ ]++data ProductCode = ProductCode+ { _pcProductCodeId :: Maybe Text+ , _pcProductCodeType :: Maybe ProductCodeValues+ } deriving (Eq, Read, Show)++-- | 'ProductCode' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pcProductCodeId' @::@ 'Maybe' 'Text'+--+-- * 'pcProductCodeType' @::@ 'Maybe' 'ProductCodeValues'+--+productCode :: ProductCode+productCode = ProductCode+ { _pcProductCodeId = Nothing+ , _pcProductCodeType = Nothing+ }++-- | The product code.+pcProductCodeId :: Lens' ProductCode (Maybe Text)+pcProductCodeId = lens _pcProductCodeId (\s a -> s { _pcProductCodeId = a })++-- | The type of product code.+pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)+pcProductCodeType =+ lens _pcProductCodeType (\s a -> s { _pcProductCodeType = a })++instance FromXML ProductCode where+ parseXML x = ProductCode+ <$> x .@? "productCode"+ <*> x .@? "type"++instance ToQuery ProductCode where+ toQuery ProductCode{..} = mconcat+ [ "ProductCode" =? _pcProductCodeId+ , "Type" =? _pcProductCodeType+ ]++data ListingStatus+ = ListingStatusActive -- ^ active+ | ListingStatusCancelled -- ^ cancelled+ | ListingStatusClosed -- ^ closed+ | ListingStatusPending -- ^ pending+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ListingStatus++instance FromText ListingStatus where+ parser = takeLowerText >>= \case+ "active" -> pure ListingStatusActive+ "cancelled" -> pure ListingStatusCancelled+ "closed" -> pure ListingStatusClosed+ "pending" -> pure ListingStatusPending+ e -> fail $+ "Failure parsing ListingStatus from " ++ show e++instance ToText ListingStatus where+ toText = \case+ ListingStatusActive -> "active"+ ListingStatusCancelled -> "cancelled"+ ListingStatusClosed -> "closed"+ ListingStatusPending -> "pending"++instance ToByteString ListingStatus+instance ToHeader ListingStatus+instance ToQuery ListingStatus++instance FromXML ListingStatus where+ parseXML = parseXMLText "ListingStatus"++newtype IpRange = IpRange+ { _irCidrIp :: Text+ } deriving (Eq, Ord, Read, Show, Monoid, IsString)++-- | 'IpRange' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'irCidrIp' @::@ 'Text'+--+ipRange :: Text -- ^ 'irCidrIp'+ -> IpRange+ipRange p1 = IpRange+ { _irCidrIp = p1+ }++-- | The CIDR range. You can either specify a CIDR range or a source security+-- group, not both.+irCidrIp :: Lens' IpRange Text+irCidrIp = lens _irCidrIp (\s a -> s { _irCidrIp = a })++instance FromXML IpRange where+ parseXML x = IpRange+ <$> x .@ "cidrIp"++instance ToQuery IpRange where+ toQuery IpRange{..} = mconcat+ [ "CidrIp" =? _irCidrIp+ ]++data VolumeStatusInfoStatus+ = VSISImpaired -- ^ impaired+ | VSISInsufficientData -- ^ insufficient-data+ | VSISOk -- ^ ok+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable VolumeStatusInfoStatus++instance FromText VolumeStatusInfoStatus where+ parser = takeLowerText >>= \case+ "impaired" -> pure VSISImpaired+ "insufficient-data" -> pure VSISInsufficientData+ "ok" -> pure VSISOk+ e -> fail $+ "Failure parsing VolumeStatusInfoStatus from " ++ show e++instance ToText VolumeStatusInfoStatus where+ toText = \case+ VSISImpaired -> "impaired"+ VSISInsufficientData -> "insufficient-data"+ VSISOk -> "ok"++instance ToByteString VolumeStatusInfoStatus+instance ToHeader VolumeStatusInfoStatus+instance ToQuery VolumeStatusInfoStatus++instance FromXML VolumeStatusInfoStatus where+ parseXML = parseXMLText "VolumeStatusInfoStatus"++newtype AccountAttributeValue = AccountAttributeValue+ { _aavAttributeValue :: Maybe Text+ } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'AccountAttributeValue' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aavAttributeValue' @::@ 'Maybe' 'Text'+--+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 ToQuery AccountAttributeValue where+ toQuery AccountAttributeValue{..} = mconcat+ [ "AttributeValue" =? _aavAttributeValue+ ]++data RIProductDescription+ = RIPDLinuxUNIX -- ^ Linux/UNIX+ | RIPDLinuxUNIXAmazonVPC -- ^ Linux/UNIX (Amazon VPC)+ | RIPDWindows -- ^ Windows+ | RIPDWindowsAmazonVPC -- ^ Windows (Amazon VPC)+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable RIProductDescription++instance FromText RIProductDescription where+ parser = takeLowerText >>= \case+ "linux/unix" -> pure RIPDLinuxUNIX+ "linux/unix (amazon vpc)" -> pure RIPDLinuxUNIXAmazonVPC+ "windows" -> pure RIPDWindows+ "windows (amazon vpc)" -> pure RIPDWindowsAmazonVPC+ e -> fail $+ "Failure parsing RIProductDescription from " ++ show e++instance ToText RIProductDescription where+ toText = \case+ RIPDLinuxUNIX -> "Linux/UNIX"+ RIPDLinuxUNIXAmazonVPC -> "Linux/UNIX (Amazon VPC)"+ RIPDWindows -> "Windows"+ RIPDWindowsAmazonVPC -> "Windows (Amazon VPC)"++instance ToByteString RIProductDescription+instance ToHeader RIProductDescription+instance ToQuery RIProductDescription++instance FromXML RIProductDescription where+ parseXML = parseXMLText "RIProductDescription"++data ReservedInstancesOffering = ReservedInstancesOffering+ { _rioAvailabilityZone :: Maybe Text+ , _rioCurrencyCode :: Maybe CurrencyCodeValues+ , _rioDuration :: Maybe Integer+ , _rioFixedPrice :: Maybe Double+ , _rioInstanceTenancy :: Maybe Tenancy+ , _rioInstanceType :: Maybe InstanceType+ , _rioMarketplace :: Maybe Bool+ , _rioOfferingType :: Maybe OfferingTypeValues+ , _rioPricingDetails :: List "item" PricingDetail+ , _rioProductDescription :: Maybe RIProductDescription+ , _rioRecurringCharges :: List "item" RecurringCharge+ , _rioReservedInstancesOfferingId :: Maybe Text+ , _rioUsagePrice :: Maybe Double+ } deriving (Eq, Read, Show)++-- | 'ReservedInstancesOffering' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rioAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'rioCurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'+--+-- * 'rioDuration' @::@ 'Maybe' 'Integer'+--+-- * 'rioFixedPrice' @::@ 'Maybe' 'Double'+--+-- * 'rioInstanceTenancy' @::@ 'Maybe' 'Tenancy'+--+-- * 'rioInstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'rioMarketplace' @::@ 'Maybe' 'Bool'+--+-- * 'rioOfferingType' @::@ 'Maybe' 'OfferingTypeValues'+--+-- * 'rioPricingDetails' @::@ ['PricingDetail']+--+-- * 'rioProductDescription' @::@ 'Maybe' 'RIProductDescription'+--+-- * 'rioRecurringCharges' @::@ ['RecurringCharge']+--+-- * 'rioReservedInstancesOfferingId' @::@ 'Maybe' 'Text'+--+-- * 'rioUsagePrice' @::@ 'Maybe' 'Double'+--+reservedInstancesOffering :: ReservedInstancesOffering+reservedInstancesOffering = ReservedInstancesOffering+ { _rioReservedInstancesOfferingId = Nothing+ , _rioInstanceType = Nothing+ , _rioAvailabilityZone = Nothing+ , _rioDuration = Nothing+ , _rioUsagePrice = Nothing+ , _rioFixedPrice = Nothing+ , _rioProductDescription = Nothing+ , _rioInstanceTenancy = Nothing+ , _rioCurrencyCode = Nothing+ , _rioOfferingType = Nothing+ , _rioRecurringCharges = mempty+ , _rioMarketplace = Nothing+ , _rioPricingDetails = mempty+ }++-- | 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 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 duration of the Reserved Instance, in seconds.+rioDuration :: Lens' ReservedInstancesOffering (Maybe Integer)+rioDuration = lens _rioDuration (\s a -> s { _rioDuration = 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 reserved instance.+rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)+rioInstanceTenancy =+ lens _rioInstanceTenancy (\s a -> s { _rioInstanceTenancy = 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 })++-- | 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 Reserved Instance offering type.+rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)+rioOfferingType = lens _rioOfferingType (\s a -> s { _rioOfferingType = a })++-- | The pricing details of the Reserved Instance offering.+rioPricingDetails :: Lens' ReservedInstancesOffering [PricingDetail]+rioPricingDetails =+ lens _rioPricingDetails (\s a -> s { _rioPricingDetails = a })+ . _List++-- | The Reserved Instance description.+rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)+rioProductDescription =+ lens _rioProductDescription (\s a -> s { _rioProductDescription = a })++-- | The recurring charge tag assigned to the resource.+rioRecurringCharges :: Lens' ReservedInstancesOffering [RecurringCharge]+rioRecurringCharges =+ lens _rioRecurringCharges (\s a -> s { _rioRecurringCharges = a })+ . _List++-- | The ID of the Reserved Instance offering.+rioReservedInstancesOfferingId :: Lens' ReservedInstancesOffering (Maybe Text)+rioReservedInstancesOfferingId =+ lens _rioReservedInstancesOfferingId+ (\s a -> s { _rioReservedInstancesOfferingId = a })++-- | The usage price of the Reserved Instance, per hour.+rioUsagePrice :: Lens' ReservedInstancesOffering (Maybe Double)+rioUsagePrice = lens _rioUsagePrice (\s a -> s { _rioUsagePrice = a })++instance FromXML ReservedInstancesOffering where+ parseXML x = ReservedInstancesOffering+ <$> x .@? "availabilityZone"+ <*> x .@? "currencyCode"+ <*> x .@? "duration"+ <*> x .@? "fixedPrice"+ <*> x .@? "instanceTenancy"+ <*> x .@? "instanceType"+ <*> x .@? "marketplace"+ <*> x .@? "offeringType"+ <*> x .@? "pricingDetailsSet" .!@ mempty+ <*> x .@? "productDescription"+ <*> x .@? "recurringCharges" .!@ mempty+ <*> x .@? "reservedInstancesOfferingId"+ <*> x .@? "usagePrice"++instance ToQuery ReservedInstancesOffering where+ toQuery ReservedInstancesOffering{..} = mconcat+ [ "AvailabilityZone" =? _rioAvailabilityZone+ , "CurrencyCode" =? _rioCurrencyCode+ , "Duration" =? _rioDuration+ , "FixedPrice" =? _rioFixedPrice+ , "InstanceTenancy" =? _rioInstanceTenancy+ , "InstanceType" =? _rioInstanceType+ , "Marketplace" =? _rioMarketplace+ , "OfferingType" =? _rioOfferingType+ , "PricingDetailsSet" `toQueryList` _rioPricingDetails+ , "ProductDescription" =? _rioProductDescription+ , "RecurringCharges" `toQueryList` _rioRecurringCharges+ , "ReservedInstancesOfferingId" =? _rioReservedInstancesOfferingId+ , "UsagePrice" =? _rioUsagePrice+ ]++data ReservedInstances = ReservedInstances+ { _ri1AvailabilityZone :: Maybe Text+ , _ri1CurrencyCode :: Maybe CurrencyCodeValues+ , _ri1Duration :: Maybe Integer+ , _ri1End :: Maybe ISO8601+ , _ri1FixedPrice :: Maybe Double+ , _ri1InstanceCount :: Maybe Int+ , _ri1InstanceTenancy :: Maybe Tenancy+ , _ri1InstanceType :: Maybe InstanceType+ , _ri1OfferingType :: Maybe OfferingTypeValues+ , _ri1ProductDescription :: Maybe RIProductDescription+ , _ri1RecurringCharges :: List "item" RecurringCharge+ , _ri1ReservedInstancesId :: Maybe Text+ , _ri1Start :: Maybe ISO8601+ , _ri1State :: Maybe ReservedInstanceState+ , _ri1Tags :: List "item" Tag+ , _ri1UsagePrice :: Maybe Double+ } deriving (Eq, Read, Show)++-- | 'ReservedInstances' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ri1AvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'ri1CurrencyCode' @::@ 'Maybe' 'CurrencyCodeValues'+--+-- * 'ri1Duration' @::@ 'Maybe' 'Integer'+--+-- * 'ri1End' @::@ 'Maybe' 'UTCTime'+--+-- * 'ri1FixedPrice' @::@ 'Maybe' 'Double'+--+-- * 'ri1InstanceCount' @::@ 'Maybe' 'Int'+--+-- * 'ri1InstanceTenancy' @::@ 'Maybe' 'Tenancy'+--+-- * 'ri1InstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'ri1OfferingType' @::@ 'Maybe' 'OfferingTypeValues'+--+-- * 'ri1ProductDescription' @::@ 'Maybe' 'RIProductDescription'+--+-- * 'ri1RecurringCharges' @::@ ['RecurringCharge']+--+-- * 'ri1ReservedInstancesId' @::@ 'Maybe' 'Text'+--+-- * 'ri1Start' @::@ 'Maybe' 'UTCTime'+--+-- * 'ri1State' @::@ 'Maybe' 'ReservedInstanceState'+--+-- * 'ri1Tags' @::@ ['Tag']+--+-- * 'ri1UsagePrice' @::@ 'Maybe' 'Double'+--+reservedInstances :: ReservedInstances+reservedInstances = ReservedInstances+ { _ri1ReservedInstancesId = Nothing+ , _ri1InstanceType = Nothing+ , _ri1AvailabilityZone = Nothing+ , _ri1Start = Nothing+ , _ri1End = Nothing+ , _ri1Duration = Nothing+ , _ri1UsagePrice = Nothing+ , _ri1FixedPrice = Nothing+ , _ri1InstanceCount = Nothing+ , _ri1ProductDescription = Nothing+ , _ri1State = Nothing+ , _ri1Tags = mempty+ , _ri1InstanceTenancy = Nothing+ , _ri1CurrencyCode = Nothing+ , _ri1OfferingType = Nothing+ , _ri1RecurringCharges = mempty+ }++-- | The Availability Zone in which the Reserved Instance can be used.+ri1AvailabilityZone :: Lens' ReservedInstances (Maybe Text)+ri1AvailabilityZone =+ lens _ri1AvailabilityZone (\s a -> s { _ri1AvailabilityZone = 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'.+ri1CurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)+ri1CurrencyCode = lens _ri1CurrencyCode (\s a -> s { _ri1CurrencyCode = a })++-- | The duration of the Reserved Instance, in seconds.+ri1Duration :: Lens' ReservedInstances (Maybe Integer)+ri1Duration = lens _ri1Duration (\s a -> s { _ri1Duration = a })++-- | The time when the Reserved Instance expires.+ri1End :: Lens' ReservedInstances (Maybe UTCTime)+ri1End = lens _ri1End (\s a -> s { _ri1End = a }) . mapping _Time++-- | The purchase price of the Reserved Instance.+ri1FixedPrice :: Lens' ReservedInstances (Maybe Double)+ri1FixedPrice = lens _ri1FixedPrice (\s a -> s { _ri1FixedPrice = a })++-- | The number of Reserved Instances purchased.+ri1InstanceCount :: Lens' ReservedInstances (Maybe Int)+ri1InstanceCount = lens _ri1InstanceCount (\s a -> s { _ri1InstanceCount = a })++-- | The tenancy of the reserved instance.+ri1InstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)+ri1InstanceTenancy =+ lens _ri1InstanceTenancy (\s a -> s { _ri1InstanceTenancy = a })++-- | The instance type on which the Reserved Instance can be used.+ri1InstanceType :: Lens' ReservedInstances (Maybe InstanceType)+ri1InstanceType = lens _ri1InstanceType (\s a -> s { _ri1InstanceType = a })++-- | The Reserved Instance offering type.+ri1OfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)+ri1OfferingType = lens _ri1OfferingType (\s a -> s { _ri1OfferingType = a })++-- | The Reserved Instance description.+ri1ProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)+ri1ProductDescription =+ lens _ri1ProductDescription (\s a -> s { _ri1ProductDescription = a })++-- | The recurring charge tag assigned to the resource.+ri1RecurringCharges :: Lens' ReservedInstances [RecurringCharge]+ri1RecurringCharges =+ lens _ri1RecurringCharges (\s a -> s { _ri1RecurringCharges = a })+ . _List++-- | The ID of the Reserved Instance.+ri1ReservedInstancesId :: Lens' ReservedInstances (Maybe Text)+ri1ReservedInstancesId =+ lens _ri1ReservedInstancesId (\s a -> s { _ri1ReservedInstancesId = a })++-- | The date and time the Reserved Instance started.+ri1Start :: Lens' ReservedInstances (Maybe UTCTime)+ri1Start = lens _ri1Start (\s a -> s { _ri1Start = a }) . mapping _Time++-- | The state of the Reserved Instance purchase.+ri1State :: Lens' ReservedInstances (Maybe ReservedInstanceState)+ri1State = lens _ri1State (\s a -> s { _ri1State = a })++-- | Any tags assigned to the resource.+ri1Tags :: Lens' ReservedInstances [Tag]+ri1Tags = lens _ri1Tags (\s a -> s { _ri1Tags = a }) . _List++-- | The usage price of the Reserved Instance, per hour.+ri1UsagePrice :: Lens' ReservedInstances (Maybe Double)+ri1UsagePrice = lens _ri1UsagePrice (\s a -> s { _ri1UsagePrice = a })++instance FromXML ReservedInstances where+ parseXML x = ReservedInstances+ <$> x .@? "availabilityZone"+ <*> x .@? "currencyCode"+ <*> x .@? "duration"+ <*> x .@? "end"+ <*> x .@? "fixedPrice"+ <*> x .@? "instanceCount"+ <*> x .@? "instanceTenancy"+ <*> x .@? "instanceType"+ <*> x .@? "offeringType"+ <*> x .@? "productDescription"+ <*> x .@? "recurringCharges" .!@ mempty+ <*> x .@? "reservedInstancesId"+ <*> x .@? "start"+ <*> x .@? "state"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "usagePrice"++instance ToQuery ReservedInstances where+ toQuery ReservedInstances{..} = mconcat+ [ "AvailabilityZone" =? _ri1AvailabilityZone+ , "CurrencyCode" =? _ri1CurrencyCode+ , "Duration" =? _ri1Duration+ , "End" =? _ri1End+ , "FixedPrice" =? _ri1FixedPrice+ , "InstanceCount" =? _ri1InstanceCount+ , "InstanceTenancy" =? _ri1InstanceTenancy+ , "InstanceType" =? _ri1InstanceType+ , "OfferingType" =? _ri1OfferingType+ , "ProductDescription" =? _ri1ProductDescription+ , "RecurringCharges" `toQueryList` _ri1RecurringCharges+ , "ReservedInstancesId" =? _ri1ReservedInstancesId+ , "Start" =? _ri1Start+ , "State" =? _ri1State+ , "TagSet" `toQueryList` _ri1Tags+ , "UsagePrice" =? _ri1UsagePrice+ ]++data DatafeedSubscriptionState+ = DSSActive -- ^ Active+ | DSSInactive -- ^ Inactive+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable DatafeedSubscriptionState++instance FromText DatafeedSubscriptionState where+ parser = takeLowerText >>= \case+ "active" -> pure DSSActive+ "inactive" -> pure DSSInactive+ e -> fail $+ "Failure parsing DatafeedSubscriptionState from " ++ show e++instance ToText DatafeedSubscriptionState where+ toText = \case+ DSSActive -> "Active"+ DSSInactive -> "Inactive"++instance ToByteString DatafeedSubscriptionState+instance ToHeader DatafeedSubscriptionState+instance ToQuery DatafeedSubscriptionState++instance FromXML DatafeedSubscriptionState where+ parseXML = parseXMLText "DatafeedSubscriptionState"++data ExportTaskState+ = ETSActive -- ^ active+ | ETSCancelled -- ^ cancelled+ | ETSCancelling -- ^ cancelling+ | ETSCompleted -- ^ completed+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ExportTaskState++instance FromText ExportTaskState where+ parser = takeLowerText >>= \case+ "active" -> pure ETSActive+ "cancelled" -> pure ETSCancelled+ "cancelling" -> pure ETSCancelling+ "completed" -> pure ETSCompleted+ e -> fail $+ "Failure parsing ExportTaskState from " ++ show e++instance ToText ExportTaskState where+ toText = \case+ ETSActive -> "active"+ ETSCancelled -> "cancelled"+ ETSCancelling -> "cancelling"+ ETSCompleted -> "completed"++instance ToByteString ExportTaskState+instance ToHeader ExportTaskState+instance ToQuery ExportTaskState++instance FromXML ExportTaskState where+ parseXML = parseXMLText "ExportTaskState"++data ProductCodeValues+ = Devpay -- ^ devpay+ | Marketplace -- ^ marketplace+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ProductCodeValues++instance FromText ProductCodeValues where+ parser = takeLowerText >>= \case+ "devpay" -> pure Devpay+ "marketplace" -> pure Marketplace+ e -> fail $+ "Failure parsing ProductCodeValues from " ++ show e++instance ToText ProductCodeValues where+ toText = \case+ Devpay -> "devpay"+ Marketplace -> "marketplace"++instance ToByteString ProductCodeValues+instance ToHeader ProductCodeValues+instance ToQuery ProductCodeValues++instance FromXML ProductCodeValues where+ parseXML = parseXMLText "ProductCodeValues"++data VpnConnection = VpnConnection+ { _vcCustomerGatewayConfiguration :: Text+ , _vcCustomerGatewayId :: Text+ , _vcOptions :: Maybe VpnConnectionOptions+ , _vcRoutes :: List "item" VpnStaticRoute+ , _vcState :: VpnState+ , _vcTags :: List "item" Tag+ , _vcType :: GatewayType+ , _vcVgwTelemetry :: List "item" VgwTelemetry+ , _vcVpnConnectionId :: Text+ , _vcVpnGatewayId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VpnConnection' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vcCustomerGatewayConfiguration' @::@ 'Text'+--+-- * 'vcCustomerGatewayId' @::@ 'Text'+--+-- * 'vcOptions' @::@ 'Maybe' 'VpnConnectionOptions'+--+-- * 'vcRoutes' @::@ ['VpnStaticRoute']+--+-- * 'vcState' @::@ 'VpnState'+--+-- * 'vcTags' @::@ ['Tag']+--+-- * 'vcType' @::@ 'GatewayType'+--+-- * 'vcVgwTelemetry' @::@ ['VgwTelemetry']+--+-- * 'vcVpnConnectionId' @::@ 'Text'+--+-- * 'vcVpnGatewayId' @::@ 'Maybe' 'Text'+--+vpnConnection :: Text -- ^ 'vcVpnConnectionId'+ -> VpnState -- ^ 'vcState'+ -> Text -- ^ 'vcCustomerGatewayConfiguration'+ -> GatewayType -- ^ 'vcType'+ -> Text -- ^ 'vcCustomerGatewayId'+ -> VpnConnection+vpnConnection p1 p2 p3 p4 p5 = VpnConnection+ { _vcVpnConnectionId = p1+ , _vcState = p2+ , _vcCustomerGatewayConfiguration = p3+ , _vcType = p4+ , _vcCustomerGatewayId = p5+ , _vcVpnGatewayId = Nothing+ , _vcTags = mempty+ , _vcVgwTelemetry = mempty+ , _vcOptions = Nothing+ , _vcRoutes = mempty+ }++-- | 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 Text+vcCustomerGatewayConfiguration =+ lens _vcCustomerGatewayConfiguration+ (\s a -> s { _vcCustomerGatewayConfiguration = 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 VPN connection options.+vcOptions :: Lens' VpnConnection (Maybe VpnConnectionOptions)+vcOptions = lens _vcOptions (\s a -> s { _vcOptions = a })++-- | The static routes associated with the VPN connection.+vcRoutes :: Lens' VpnConnection [VpnStaticRoute]+vcRoutes = lens _vcRoutes (\s a -> s { _vcRoutes = a }) . _List++-- | The current state of the VPN connection.+vcState :: Lens' VpnConnection VpnState+vcState = lens _vcState (\s a -> s { _vcState = a })++-- | Any tags assigned to the VPN connection.+vcTags :: Lens' VpnConnection [Tag]+vcTags = lens _vcTags (\s a -> s { _vcTags = a }) . _List++-- | The type of VPN connection.+vcType :: Lens' VpnConnection GatewayType+vcType = lens _vcType (\s a -> s { _vcType = a })++-- | Information about the VPN tunnel.+vcVgwTelemetry :: Lens' VpnConnection [VgwTelemetry]+vcVgwTelemetry = lens _vcVgwTelemetry (\s a -> s { _vcVgwTelemetry = a }) . _List++-- | The ID of the VPN connection.+vcVpnConnectionId :: Lens' VpnConnection Text+vcVpnConnectionId =+ lens _vcVpnConnectionId (\s a -> s { _vcVpnConnectionId = a })++-- | 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 })++instance FromXML VpnConnection where+ parseXML x = VpnConnection+ <$> x .@ "customerGatewayConfiguration"+ <*> x .@ "customerGatewayId"+ <*> x .@? "options"+ <*> x .@? "routes" .!@ mempty+ <*> x .@ "state"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "type"+ <*> x .@? "vgwTelemetry" .!@ mempty+ <*> x .@ "vpnConnectionId"+ <*> x .@? "vpnGatewayId"++instance ToQuery VpnConnection where+ toQuery VpnConnection{..} = mconcat+ [ "CustomerGatewayConfiguration" =? _vcCustomerGatewayConfiguration+ , "CustomerGatewayId" =? _vcCustomerGatewayId+ , "Options" =? _vcOptions+ , "Routes" `toQueryList` _vcRoutes+ , "State" =? _vcState+ , "TagSet" `toQueryList` _vcTags+ , "Type" =? _vcType+ , "VgwTelemetry" `toQueryList` _vcVgwTelemetry+ , "VpnConnectionId" =? _vcVpnConnectionId+ , "VpnGatewayId" =? _vcVpnGatewayId+ ]++data InstanceState = InstanceState+ { _isCode :: Int+ , _isName :: InstanceStateName+ } deriving (Eq, Read, Show)++-- | 'InstanceState' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'isCode' @::@ 'Int'+--+-- * 'isName' @::@ 'InstanceStateName'+--+instanceState :: Int -- ^ 'isCode'+ -> InstanceStateName -- ^ 'isName'+ -> InstanceState+instanceState p1 p2 = InstanceState+ { _isCode = p1+ , _isName = p2+ }++-- | 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 })++-- | The current state of the instance.+isName :: Lens' InstanceState InstanceStateName+isName = lens _isName (\s a -> s { _isName = a })++instance FromXML InstanceState where+ parseXML x = InstanceState+ <$> x .@ "code"+ <*> x .@ "name"++instance ToQuery InstanceState where+ toQuery InstanceState{..} = mconcat+ [ "Code" =? _isCode+ , "Name" =? _isName+ ]++data Placement = Placement+ { _pAvailabilityZone :: Maybe Text+ , _pGroupName :: Maybe Text+ , _pTenancy :: Maybe Tenancy+ } deriving (Eq, Read, Show)++-- | 'Placement' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'pGroupName' @::@ 'Maybe' 'Text'+--+-- * 'pTenancy' @::@ 'Maybe' 'Tenancy'+--+placement :: Placement+placement = Placement+ { _pAvailabilityZone = Nothing+ , _pGroupName = Nothing+ , _pTenancy = Nothing+ }++-- | The Availability Zone of the instance.+pAvailabilityZone :: Lens' Placement (Maybe Text)+pAvailabilityZone =+ lens _pAvailabilityZone (\s a -> s { _pAvailabilityZone = 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 })++-- | 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.+pTenancy :: Lens' Placement (Maybe Tenancy)+pTenancy = lens _pTenancy (\s a -> s { _pTenancy = a })++instance FromXML Placement where+ parseXML x = Placement+ <$> x .@? "availabilityZone"+ <*> x .@? "groupName"+ <*> x .@? "tenancy"++instance ToQuery Placement where+ toQuery Placement{..} = mconcat+ [ "AvailabilityZone" =? _pAvailabilityZone+ , "GroupName" =? _pGroupName+ , "Tenancy" =? _pTenancy+ ]++data EventCode+ = InstanceReboot -- ^ instance-reboot+ | InstanceRetirement -- ^ instance-retirement+ | InstanceStop -- ^ instance-stop+ | SystemMaintenance -- ^ system-maintenance+ | SystemReboot -- ^ system-reboot+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable EventCode++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 -> fail $+ "Failure parsing EventCode from " ++ show e++instance ToText EventCode where+ toText = \case+ InstanceReboot -> "instance-reboot"+ InstanceRetirement -> "instance-retirement"+ InstanceStop -> "instance-stop"+ SystemMaintenance -> "system-maintenance"+ SystemReboot -> "system-reboot"++instance ToByteString EventCode+instance ToHeader EventCode+instance ToQuery EventCode++instance FromXML EventCode where+ parseXML = parseXMLText "EventCode"++data SpotInstanceType+ = OneTime -- ^ one-time+ | Persistent -- ^ persistent+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable SpotInstanceType++instance FromText SpotInstanceType where+ parser = takeLowerText >>= \case+ "one-time" -> pure OneTime+ "persistent" -> pure Persistent+ e -> fail $+ "Failure parsing SpotInstanceType from " ++ show e++instance ToText SpotInstanceType where+ toText = \case+ OneTime -> "one-time"+ Persistent -> "persistent"++instance ToByteString SpotInstanceType+instance ToHeader SpotInstanceType+instance ToQuery SpotInstanceType++instance FromXML SpotInstanceType where+ parseXML = parseXMLText "SpotInstanceType"++data VpcPeeringConnection = VpcPeeringConnection+ { _vpc1AccepterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo+ , _vpc1ExpirationTime :: Maybe ISO8601+ , _vpc1RequesterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo+ , _vpc1Status :: Maybe VpcPeeringConnectionStateReason+ , _vpc1Tags :: List "item" Tag+ , _vpc1VpcPeeringConnectionId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VpcPeeringConnection' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vpc1AccepterVpcInfo' @::@ 'Maybe' 'VpcPeeringConnectionVpcInfo'+--+-- * 'vpc1ExpirationTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'vpc1RequesterVpcInfo' @::@ 'Maybe' 'VpcPeeringConnectionVpcInfo'+--+-- * 'vpc1Status' @::@ 'Maybe' 'VpcPeeringConnectionStateReason'+--+-- * 'vpc1Tags' @::@ ['Tag']+--+-- * 'vpc1VpcPeeringConnectionId' @::@ 'Maybe' 'Text'+--+vpcPeeringConnection :: VpcPeeringConnection+vpcPeeringConnection = VpcPeeringConnection+ { _vpc1AccepterVpcInfo = Nothing+ , _vpc1ExpirationTime = Nothing+ , _vpc1RequesterVpcInfo = Nothing+ , _vpc1Status = Nothing+ , _vpc1Tags = mempty+ , _vpc1VpcPeeringConnectionId = Nothing+ }++-- | The information of the peer VPC.+vpc1AccepterVpcInfo :: Lens' VpcPeeringConnection (Maybe VpcPeeringConnectionVpcInfo)+vpc1AccepterVpcInfo =+ lens _vpc1AccepterVpcInfo (\s a -> s { _vpc1AccepterVpcInfo = a })++-- | The time that an unaccepted VPC peering connection will expire.+vpc1ExpirationTime :: Lens' VpcPeeringConnection (Maybe UTCTime)+vpc1ExpirationTime =+ lens _vpc1ExpirationTime (\s a -> s { _vpc1ExpirationTime = a })+ . mapping _Time++-- | The information of the requester VPC.+vpc1RequesterVpcInfo :: Lens' VpcPeeringConnection (Maybe VpcPeeringConnectionVpcInfo)+vpc1RequesterVpcInfo =+ lens _vpc1RequesterVpcInfo (\s a -> s { _vpc1RequesterVpcInfo = a })++-- | The status of the VPC peering connection.+vpc1Status :: Lens' VpcPeeringConnection (Maybe VpcPeeringConnectionStateReason)+vpc1Status = lens _vpc1Status (\s a -> s { _vpc1Status = a })++-- | Any tags assigned to the resource.+vpc1Tags :: Lens' VpcPeeringConnection [Tag]+vpc1Tags = lens _vpc1Tags (\s a -> s { _vpc1Tags = a }) . _List++-- | The ID of the VPC peering connection.+vpc1VpcPeeringConnectionId :: Lens' VpcPeeringConnection (Maybe Text)+vpc1VpcPeeringConnectionId =+ lens _vpc1VpcPeeringConnectionId+ (\s a -> s { _vpc1VpcPeeringConnectionId = a })++instance FromXML VpcPeeringConnection where+ parseXML x = VpcPeeringConnection+ <$> x .@? "accepterVpcInfo"+ <*> x .@? "expirationTime"+ <*> x .@? "requesterVpcInfo"+ <*> x .@? "status"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcPeeringConnectionId"++instance ToQuery VpcPeeringConnection where+ toQuery VpcPeeringConnection{..} = mconcat+ [ "AccepterVpcInfo" =? _vpc1AccepterVpcInfo+ , "ExpirationTime" =? _vpc1ExpirationTime+ , "RequesterVpcInfo" =? _vpc1RequesterVpcInfo+ , "Status" =? _vpc1Status+ , "TagSet" `toQueryList` _vpc1Tags+ , "VpcPeeringConnectionId" =? _vpc1VpcPeeringConnectionId+ ]++data S3Storage = S3Storage+ { _ssAWSAccessKeyId :: Maybe Text+ , _ssBucket :: Maybe Text+ , _ssPrefix :: Maybe Text+ , _ssUploadPolicy :: Maybe Base64+ , _ssUploadPolicySignature :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'S3Storage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ssAWSAccessKeyId' @::@ 'Maybe' 'Text'+--+-- * 'ssBucket' @::@ 'Maybe' 'Text'+--+-- * 'ssPrefix' @::@ 'Maybe' 'Text'+--+-- * 'ssUploadPolicy' @::@ 'Maybe' 'Base64'+--+-- * 'ssUploadPolicySignature' @::@ 'Maybe' 'Text'+--+s3Storage :: S3Storage+s3Storage = S3Storage+ { _ssBucket = Nothing+ , _ssPrefix = Nothing+ , _ssAWSAccessKeyId = Nothing+ , _ssUploadPolicy = Nothing+ , _ssUploadPolicySignature = Nothing+ }++-- | 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 forManaging AWS Access Keys>.+ssAWSAccessKeyId :: Lens' S3Storage (Maybe Text)+ssAWSAccessKeyId = lens _ssAWSAccessKeyId (\s a -> s { _ssAWSAccessKeyId = a })++-- | The bucket in which to store the AMI. You can specify a bucket that you+-- already own or a new bucket that Amazon EC2 creates on your behalf. If you+-- specify a bucket that belongs to someone else, Amazon EC2 returns an error.+ssBucket :: Lens' S3Storage (Maybe Text)+ssBucket = lens _ssBucket (\s a -> s { _ssBucket = a })++-- | The beginning of the file name of the AMI.+ssPrefix :: Lens' S3Storage (Maybe Text)+ssPrefix = lens _ssPrefix (\s a -> s { _ssPrefix = a })++-- | A Base64-encoded Amazon S3 upload policy that gives Amazon EC2 permission to+-- upload items into Amazon S3 on your behalf.+ssUploadPolicy :: Lens' S3Storage (Maybe Base64)+ssUploadPolicy = lens _ssUploadPolicy (\s a -> s { _ssUploadPolicy = a })++-- | The signature of the Base64 encoded JSON document.+ssUploadPolicySignature :: Lens' S3Storage (Maybe Text)+ssUploadPolicySignature =+ lens _ssUploadPolicySignature (\s a -> s { _ssUploadPolicySignature = a })++instance FromXML S3Storage where+ parseXML x = S3Storage+ <$> x .@? "AWSAccessKeyId"+ <*> x .@? "bucket"+ <*> x .@? "prefix"+ <*> x .@? "uploadPolicy"+ <*> x .@? "uploadPolicySignature"++instance ToQuery S3Storage where+ toQuery S3Storage{..} = mconcat+ [ "AWSAccessKeyId" =? _ssAWSAccessKeyId+ , "Bucket" =? _ssBucket+ , "Prefix" =? _ssPrefix+ , "UploadPolicy" =? _ssUploadPolicy+ , "UploadPolicySignature" =? _ssUploadPolicySignature+ ]++data VgwTelemetry = VgwTelemetry+ { _vtAcceptedRouteCount :: Maybe Int+ , _vtLastStatusChange :: Maybe ISO8601+ , _vtOutsideIpAddress :: Maybe Text+ , _vtStatus :: Maybe TelemetryStatus+ , _vtStatusMessage :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VgwTelemetry' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vtAcceptedRouteCount' @::@ 'Maybe' 'Int'+--+-- * 'vtLastStatusChange' @::@ 'Maybe' 'UTCTime'+--+-- * 'vtOutsideIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'vtStatus' @::@ 'Maybe' 'TelemetryStatus'+--+-- * 'vtStatusMessage' @::@ 'Maybe' 'Text'+--+vgwTelemetry :: VgwTelemetry+vgwTelemetry = VgwTelemetry+ { _vtOutsideIpAddress = Nothing+ , _vtStatus = Nothing+ , _vtLastStatusChange = Nothing+ , _vtStatusMessage = Nothing+ , _vtAcceptedRouteCount = Nothing+ }++-- | The number of accepted routes.+vtAcceptedRouteCount :: Lens' VgwTelemetry (Maybe Int)+vtAcceptedRouteCount =+ lens _vtAcceptedRouteCount (\s a -> s { _vtAcceptedRouteCount = 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 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 status of the VPN tunnel.+vtStatus :: Lens' VgwTelemetry (Maybe TelemetryStatus)+vtStatus = lens _vtStatus (\s a -> s { _vtStatus = 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 .@? "acceptedRouteCount"+ <*> x .@? "lastStatusChange"+ <*> x .@? "outsideIpAddress"+ <*> x .@? "status"+ <*> x .@? "statusMessage"++instance ToQuery VgwTelemetry where+ toQuery VgwTelemetry{..} = mconcat+ [ "AcceptedRouteCount" =? _vtAcceptedRouteCount+ , "LastStatusChange" =? _vtLastStatusChange+ , "OutsideIpAddress" =? _vtOutsideIpAddress+ , "Status" =? _vtStatus+ , "StatusMessage" =? _vtStatusMessage+ ]++data VpnStaticRoute = VpnStaticRoute+ { _vsrDestinationCidrBlock :: Maybe Text+ , _vsrSource :: Maybe VpnStaticRouteSource+ , _vsrState :: Maybe VpnState+ } deriving (Eq, Read, Show)++-- | 'VpnStaticRoute' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vsrDestinationCidrBlock' @::@ 'Maybe' 'Text'+--+-- * 'vsrSource' @::@ 'Maybe' 'VpnStaticRouteSource'+--+-- * 'vsrState' @::@ 'Maybe' 'VpnState'+--+vpnStaticRoute :: VpnStaticRoute+vpnStaticRoute = VpnStaticRoute+ { _vsrDestinationCidrBlock = Nothing+ , _vsrSource = Nothing+ , _vsrState = Nothing+ }++-- | 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 })++-- | Indicates how the routes were provided.+vsrSource :: Lens' VpnStaticRoute (Maybe VpnStaticRouteSource)+vsrSource = lens _vsrSource (\s a -> s { _vsrSource = a })++-- | The current state of the static route.+vsrState :: Lens' VpnStaticRoute (Maybe VpnState)+vsrState = lens _vsrState (\s a -> s { _vsrState = a })++instance FromXML VpnStaticRoute where+ parseXML x = VpnStaticRoute+ <$> x .@? "destinationCidrBlock"+ <*> x .@? "source"+ <*> x .@? "state"++instance ToQuery VpnStaticRoute where+ toQuery VpnStaticRoute{..} = mconcat+ [ "DestinationCidrBlock" =? _vsrDestinationCidrBlock+ , "Source" =? _vsrSource+ , "State" =? _vsrState+ ]++data InstanceStateName+ = ISNPending -- ^ pending+ | ISNRunning -- ^ running+ | ISNShuttingDown -- ^ shutting-down+ | ISNStopped -- ^ stopped+ | ISNStopping -- ^ stopping+ | ISNTerminated -- ^ terminated+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable InstanceStateName++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 -> fail $+ "Failure parsing InstanceStateName from " ++ show e++instance ToText InstanceStateName where+ toText = \case+ ISNPending -> "pending"+ ISNRunning -> "running"+ ISNShuttingDown -> "shutting-down"+ ISNStopped -> "stopped"+ ISNStopping -> "stopping"+ ISNTerminated -> "terminated"++instance ToByteString InstanceStateName+instance ToHeader InstanceStateName+instance ToQuery InstanceStateName++instance FromXML InstanceStateName where+ parseXML = parseXMLText "InstanceStateName"++data Instance = Instance+ { _i1AmiLaunchIndex :: Int+ , _i1Architecture :: ArchitectureValues+ , _i1BlockDeviceMappings :: List "item" InstanceBlockDeviceMapping+ , _i1ClientToken :: Maybe Text+ , _i1EbsOptimized :: Bool+ , _i1Hypervisor :: HypervisorType+ , _i1IamInstanceProfile :: Maybe IamInstanceProfile+ , _i1ImageId :: Text+ , _i1InstanceId :: Text+ , _i1InstanceLifecycle :: Maybe InstanceLifecycleType+ , _i1InstanceType :: InstanceType+ , _i1KernelId :: Maybe Text+ , _i1KeyName :: Maybe Text+ , _i1LaunchTime :: ISO8601+ , _i1Monitoring :: Monitoring+ , _i1NetworkInterfaces :: List "item" InstanceNetworkInterface+ , _i1Placement :: Placement+ , _i1Platform :: Maybe PlatformValues+ , _i1PrivateDnsName :: Maybe Text+ , _i1PrivateIpAddress :: Maybe Text+ , _i1ProductCodes :: List "item" ProductCode+ , _i1PublicDnsName :: Maybe Text+ , _i1PublicIpAddress :: Maybe Text+ , _i1RamdiskId :: Maybe Text+ , _i1RootDeviceName :: Maybe Text+ , _i1RootDeviceType :: DeviceType+ , _i1SecurityGroups :: List "item" GroupIdentifier+ , _i1SourceDestCheck :: Maybe Bool+ , _i1SpotInstanceRequestId :: Maybe Text+ , _i1SriovNetSupport :: Maybe Text+ , _i1State :: InstanceState+ , _i1StateReason :: Maybe StateReason+ , _i1StateTransitionReason :: Maybe Text+ , _i1SubnetId :: Maybe Text+ , _i1Tags :: List "item" Tag+ , _i1VirtualizationType :: VirtualizationType+ , _i1VpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'Instance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'i1AmiLaunchIndex' @::@ 'Int'+--+-- * 'i1Architecture' @::@ 'ArchitectureValues'+--+-- * 'i1BlockDeviceMappings' @::@ ['InstanceBlockDeviceMapping']+--+-- * 'i1ClientToken' @::@ 'Maybe' 'Text'+--+-- * 'i1EbsOptimized' @::@ 'Bool'+--+-- * 'i1Hypervisor' @::@ 'HypervisorType'+--+-- * 'i1IamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfile'+--+-- * 'i1ImageId' @::@ 'Text'+--+-- * 'i1InstanceId' @::@ 'Text'+--+-- * 'i1InstanceLifecycle' @::@ 'Maybe' 'InstanceLifecycleType'+--+-- * 'i1InstanceType' @::@ 'InstanceType'+--+-- * 'i1KernelId' @::@ 'Maybe' 'Text'+--+-- * 'i1KeyName' @::@ 'Maybe' 'Text'+--+-- * 'i1LaunchTime' @::@ 'UTCTime'+--+-- * 'i1Monitoring' @::@ 'Monitoring'+--+-- * 'i1NetworkInterfaces' @::@ ['InstanceNetworkInterface']+--+-- * 'i1Placement' @::@ 'Placement'+--+-- * 'i1Platform' @::@ 'Maybe' 'PlatformValues'+--+-- * 'i1PrivateDnsName' @::@ 'Maybe' 'Text'+--+-- * 'i1PrivateIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'i1ProductCodes' @::@ ['ProductCode']+--+-- * 'i1PublicDnsName' @::@ 'Maybe' 'Text'+--+-- * 'i1PublicIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'i1RamdiskId' @::@ 'Maybe' 'Text'+--+-- * 'i1RootDeviceName' @::@ 'Maybe' 'Text'+--+-- * 'i1RootDeviceType' @::@ 'DeviceType'+--+-- * 'i1SecurityGroups' @::@ ['GroupIdentifier']+--+-- * 'i1SourceDestCheck' @::@ 'Maybe' 'Bool'+--+-- * 'i1SpotInstanceRequestId' @::@ 'Maybe' 'Text'+--+-- * 'i1SriovNetSupport' @::@ 'Maybe' 'Text'+--+-- * 'i1State' @::@ 'InstanceState'+--+-- * 'i1StateReason' @::@ 'Maybe' 'StateReason'+--+-- * 'i1StateTransitionReason' @::@ 'Maybe' 'Text'+--+-- * 'i1SubnetId' @::@ 'Maybe' 'Text'+--+-- * 'i1Tags' @::@ ['Tag']+--+-- * 'i1VirtualizationType' @::@ 'VirtualizationType'+--+-- * 'i1VpcId' @::@ 'Maybe' 'Text'+--+instance' :: Text -- ^ 'i1InstanceId'+ -> Text -- ^ 'i1ImageId'+ -> InstanceState -- ^ 'i1State'+ -> Int -- ^ 'i1AmiLaunchIndex'+ -> InstanceType -- ^ 'i1InstanceType'+ -> UTCTime -- ^ 'i1LaunchTime'+ -> Placement -- ^ 'i1Placement'+ -> Monitoring -- ^ 'i1Monitoring'+ -> ArchitectureValues -- ^ 'i1Architecture'+ -> DeviceType -- ^ 'i1RootDeviceType'+ -> VirtualizationType -- ^ 'i1VirtualizationType'+ -> HypervisorType -- ^ 'i1Hypervisor'+ -> Bool -- ^ 'i1EbsOptimized'+ -> Instance+instance' p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 = Instance+ { _i1InstanceId = p1+ , _i1ImageId = p2+ , _i1State = p3+ , _i1AmiLaunchIndex = p4+ , _i1InstanceType = p5+ , _i1LaunchTime = withIso _Time (const id) p6+ , _i1Placement = p7+ , _i1Monitoring = p8+ , _i1Architecture = p9+ , _i1RootDeviceType = p10+ , _i1VirtualizationType = p11+ , _i1Hypervisor = p12+ , _i1EbsOptimized = p13+ , _i1PrivateDnsName = Nothing+ , _i1PublicDnsName = Nothing+ , _i1StateTransitionReason = Nothing+ , _i1KeyName = Nothing+ , _i1ProductCodes = mempty+ , _i1KernelId = Nothing+ , _i1RamdiskId = Nothing+ , _i1Platform = Nothing+ , _i1SubnetId = Nothing+ , _i1VpcId = Nothing+ , _i1PrivateIpAddress = Nothing+ , _i1PublicIpAddress = Nothing+ , _i1StateReason = Nothing+ , _i1RootDeviceName = Nothing+ , _i1BlockDeviceMappings = mempty+ , _i1InstanceLifecycle = Nothing+ , _i1SpotInstanceRequestId = Nothing+ , _i1ClientToken = Nothing+ , _i1Tags = mempty+ , _i1SecurityGroups = mempty+ , _i1SourceDestCheck = Nothing+ , _i1NetworkInterfaces = mempty+ , _i1IamInstanceProfile = Nothing+ , _i1SriovNetSupport = Nothing+ }++-- | The AMI launch index, which can be used to find this instance in the launch+-- group.+i1AmiLaunchIndex :: Lens' Instance Int+i1AmiLaunchIndex = lens _i1AmiLaunchIndex (\s a -> s { _i1AmiLaunchIndex = a })++-- | The architecture of the image.+i1Architecture :: Lens' Instance ArchitectureValues+i1Architecture = lens _i1Architecture (\s a -> s { _i1Architecture = a })++-- | Any block device mapping entries for the instance.+i1BlockDeviceMappings :: Lens' Instance [InstanceBlockDeviceMapping]+i1BlockDeviceMappings =+ lens _i1BlockDeviceMappings (\s a -> s { _i1BlockDeviceMappings = a })+ . _List++-- | The idempotency token you provided when you launched the instance.+i1ClientToken :: Lens' Instance (Maybe Text)+i1ClientToken = lens _i1ClientToken (\s a -> s { _i1ClientToken = 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.+i1EbsOptimized :: Lens' Instance Bool+i1EbsOptimized = lens _i1EbsOptimized (\s a -> s { _i1EbsOptimized = a })++-- | The hypervisor type of the instance.+i1Hypervisor :: Lens' Instance HypervisorType+i1Hypervisor = lens _i1Hypervisor (\s a -> s { _i1Hypervisor = a })++-- | The IAM instance profile associated with the instance.+i1IamInstanceProfile :: Lens' Instance (Maybe IamInstanceProfile)+i1IamInstanceProfile =+ lens _i1IamInstanceProfile (\s a -> s { _i1IamInstanceProfile = a })++-- | The ID of the AMI used to launch the instance.+i1ImageId :: Lens' Instance Text+i1ImageId = lens _i1ImageId (\s a -> s { _i1ImageId = a })++-- | The ID of the instance.+i1InstanceId :: Lens' Instance Text+i1InstanceId = lens _i1InstanceId (\s a -> s { _i1InstanceId = a })++-- | Indicates whether this is a Spot Instance.+i1InstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)+i1InstanceLifecycle =+ lens _i1InstanceLifecycle (\s a -> s { _i1InstanceLifecycle = a })++-- | The instance type.+i1InstanceType :: Lens' Instance InstanceType+i1InstanceType = lens _i1InstanceType (\s a -> s { _i1InstanceType = a })++-- | The kernel associated with this instance.+i1KernelId :: Lens' Instance (Maybe Text)+i1KernelId = lens _i1KernelId (\s a -> s { _i1KernelId = a })++-- | The name of the key pair, if this instance was launched with an associated+-- key pair.+i1KeyName :: Lens' Instance (Maybe Text)+i1KeyName = lens _i1KeyName (\s a -> s { _i1KeyName = a })++-- | The time the instance was launched.+i1LaunchTime :: Lens' Instance UTCTime+i1LaunchTime = lens _i1LaunchTime (\s a -> s { _i1LaunchTime = a }) . _Time++-- | The monitoring information for the instance.+i1Monitoring :: Lens' Instance Monitoring+i1Monitoring = lens _i1Monitoring (\s a -> s { _i1Monitoring = a })++-- | [EC2-VPC] One or more network interfaces for the instance.+i1NetworkInterfaces :: Lens' Instance [InstanceNetworkInterface]+i1NetworkInterfaces =+ lens _i1NetworkInterfaces (\s a -> s { _i1NetworkInterfaces = a })+ . _List++-- | The location where the instance launched.+i1Placement :: Lens' Instance Placement+i1Placement = lens _i1Placement (\s a -> s { _i1Placement = a })++-- | The value is 'Windows' for Windows instances; otherwise blank.+i1Platform :: Lens' Instance (Maybe PlatformValues)+i1Platform = lens _i1Platform (\s a -> s { _i1Platform = a })++-- | The private DNS name assigned to the instance. This DNS name can only be used+-- inside the Amazon EC2 network. This name is not available until the instance+-- enters the 'running' state.+i1PrivateDnsName :: Lens' Instance (Maybe Text)+i1PrivateDnsName = lens _i1PrivateDnsName (\s a -> s { _i1PrivateDnsName = a })++-- | The private IP address assigned to the instance.+i1PrivateIpAddress :: Lens' Instance (Maybe Text)+i1PrivateIpAddress =+ lens _i1PrivateIpAddress (\s a -> s { _i1PrivateIpAddress = a })++-- | The product codes attached to this instance.+i1ProductCodes :: Lens' Instance [ProductCode]+i1ProductCodes = lens _i1ProductCodes (\s a -> s { _i1ProductCodes = a }) . _List++-- | The public DNS name assigned to the instance. This name is not available+-- until the instance enters the 'running' state.+i1PublicDnsName :: Lens' Instance (Maybe Text)+i1PublicDnsName = lens _i1PublicDnsName (\s a -> s { _i1PublicDnsName = a })++-- | The public IP address assigned to the instance.+i1PublicIpAddress :: Lens' Instance (Maybe Text)+i1PublicIpAddress =+ lens _i1PublicIpAddress (\s a -> s { _i1PublicIpAddress = a })++-- | The RAM disk associated with this instance.+i1RamdiskId :: Lens' Instance (Maybe Text)+i1RamdiskId = lens _i1RamdiskId (\s a -> s { _i1RamdiskId = a })++-- | The root device name (for example, '/dev/sda1').+i1RootDeviceName :: Lens' Instance (Maybe Text)+i1RootDeviceName = lens _i1RootDeviceName (\s a -> s { _i1RootDeviceName = a })++-- | The root device type used by the AMI. The AMI can use an Amazon EBS volume or+-- an instance store volume.+i1RootDeviceType :: Lens' Instance DeviceType+i1RootDeviceType = lens _i1RootDeviceType (\s a -> s { _i1RootDeviceType = a })++-- | One or more security groups for the instance.+i1SecurityGroups :: Lens' Instance [GroupIdentifier]+i1SecurityGroups = lens _i1SecurityGroups (\s a -> s { _i1SecurityGroups = a }) . _List++-- | 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/.+i1SourceDestCheck :: Lens' Instance (Maybe Bool)+i1SourceDestCheck =+ lens _i1SourceDestCheck (\s a -> s { _i1SourceDestCheck = a })++-- | The ID of the Spot Instance request.+i1SpotInstanceRequestId :: Lens' Instance (Maybe Text)+i1SpotInstanceRequestId =+ lens _i1SpotInstanceRequestId (\s a -> s { _i1SpotInstanceRequestId = a })++-- | Specifies whether enhanced networking is enabled.+i1SriovNetSupport :: Lens' Instance (Maybe Text)+i1SriovNetSupport =+ lens _i1SriovNetSupport (\s a -> s { _i1SriovNetSupport = a })++-- | The current state of the instance.+i1State :: Lens' Instance InstanceState+i1State = lens _i1State (\s a -> s { _i1State = a })++-- | The reason for the most recent state transition.+i1StateReason :: Lens' Instance (Maybe StateReason)+i1StateReason = lens _i1StateReason (\s a -> s { _i1StateReason = a })++-- | The reason for the most recent state transition. This might be an empty+-- string.+i1StateTransitionReason :: Lens' Instance (Maybe Text)+i1StateTransitionReason =+ lens _i1StateTransitionReason (\s a -> s { _i1StateTransitionReason = a })++-- | The ID of the subnet in which the instance is running.+i1SubnetId :: Lens' Instance (Maybe Text)+i1SubnetId = lens _i1SubnetId (\s a -> s { _i1SubnetId = a })++-- | Any tags assigned to the instance.+i1Tags :: Lens' Instance [Tag]+i1Tags = lens _i1Tags (\s a -> s { _i1Tags = a }) . _List++-- | The virtualization type of the instance.+i1VirtualizationType :: Lens' Instance VirtualizationType+i1VirtualizationType =+ lens _i1VirtualizationType (\s a -> s { _i1VirtualizationType = a })++-- | The ID of the VPC in which the instance is running.+i1VpcId :: Lens' Instance (Maybe Text)+i1VpcId = lens _i1VpcId (\s a -> s { _i1VpcId = a })++instance FromXML Instance where+ parseXML x = Instance+ <$> x .@ "amiLaunchIndex"+ <*> x .@ "architecture"+ <*> x .@? "blockDeviceMapping" .!@ mempty+ <*> x .@? "clientToken"+ <*> x .@ "ebsOptimized"+ <*> x .@ "hypervisor"+ <*> x .@? "iamInstanceProfile"+ <*> x .@ "imageId"+ <*> x .@ "instanceId"+ <*> x .@? "instanceLifecycle"+ <*> x .@ "instanceType"+ <*> x .@? "kernelId"+ <*> x .@? "keyName"+ <*> x .@ "launchTime"+ <*> x .@ "monitoring"+ <*> x .@? "networkInterfaceSet" .!@ mempty+ <*> x .@ "placement"+ <*> x .@? "platform"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"+ <*> x .@? "productCodes" .!@ mempty+ <*> x .@? "dnsName"+ <*> x .@? "ipAddress"+ <*> x .@? "ramdiskId"+ <*> x .@? "rootDeviceName"+ <*> x .@ "rootDeviceType"+ <*> x .@? "groupSet" .!@ mempty+ <*> x .@? "sourceDestCheck"+ <*> x .@? "spotInstanceRequestId"+ <*> x .@? "sriovNetSupport"+ <*> x .@ "instanceState"+ <*> x .@? "stateReason"+ <*> x .@? "reason"+ <*> x .@? "subnetId"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@ "virtualizationType"+ <*> x .@? "vpcId"++instance ToQuery Instance where+ toQuery Instance{..} = mconcat+ [ "AmiLaunchIndex" =? _i1AmiLaunchIndex+ , "Architecture" =? _i1Architecture+ , "BlockDeviceMapping" `toQueryList` _i1BlockDeviceMappings+ , "ClientToken" =? _i1ClientToken+ , "EbsOptimized" =? _i1EbsOptimized+ , "Hypervisor" =? _i1Hypervisor+ , "IamInstanceProfile" =? _i1IamInstanceProfile+ , "ImageId" =? _i1ImageId+ , "InstanceId" =? _i1InstanceId+ , "InstanceLifecycle" =? _i1InstanceLifecycle+ , "InstanceType" =? _i1InstanceType+ , "KernelId" =? _i1KernelId+ , "KeyName" =? _i1KeyName+ , "LaunchTime" =? _i1LaunchTime+ , "Monitoring" =? _i1Monitoring+ , "NetworkInterfaceSet" `toQueryList` _i1NetworkInterfaces+ , "Placement" =? _i1Placement+ , "Platform" =? _i1Platform+ , "PrivateDnsName" =? _i1PrivateDnsName+ , "PrivateIpAddress" =? _i1PrivateIpAddress+ , "ProductCodes" `toQueryList` _i1ProductCodes+ , "DnsName" =? _i1PublicDnsName+ , "IpAddress" =? _i1PublicIpAddress+ , "RamdiskId" =? _i1RamdiskId+ , "RootDeviceName" =? _i1RootDeviceName+ , "RootDeviceType" =? _i1RootDeviceType+ , "GroupSet" `toQueryList` _i1SecurityGroups+ , "SourceDestCheck" =? _i1SourceDestCheck+ , "SpotInstanceRequestId" =? _i1SpotInstanceRequestId+ , "SriovNetSupport" =? _i1SriovNetSupport+ , "InstanceState" =? _i1State+ , "StateReason" =? _i1StateReason+ , "Reason" =? _i1StateTransitionReason+ , "SubnetId" =? _i1SubnetId+ , "TagSet" `toQueryList` _i1Tags+ , "VirtualizationType" =? _i1VirtualizationType+ , "VpcId" =? _i1VpcId+ ]++data ExportTask = ExportTask+ { _etDescription :: Text+ , _etExportTaskId :: Text+ , _etExportToS3Task :: ExportToS3Task+ , _etInstanceExportDetails :: InstanceExportDetails+ , _etState :: ExportTaskState+ , _etStatusMessage :: Text+ } deriving (Eq, Read, Show)++-- | 'ExportTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'etDescription' @::@ 'Text'+--+-- * 'etExportTaskId' @::@ 'Text'+--+-- * 'etExportToS3Task' @::@ 'ExportToS3Task'+--+-- * 'etInstanceExportDetails' @::@ 'InstanceExportDetails'+--+-- * 'etState' @::@ 'ExportTaskState'+--+-- * 'etStatusMessage' @::@ 'Text'+--+exportTask :: Text -- ^ 'etExportTaskId'+ -> Text -- ^ 'etDescription'+ -> ExportTaskState -- ^ 'etState'+ -> Text -- ^ 'etStatusMessage'+ -> InstanceExportDetails -- ^ 'etInstanceExportDetails'+ -> ExportToS3Task -- ^ 'etExportToS3Task'+ -> ExportTask+exportTask p1 p2 p3 p4 p5 p6 = ExportTask+ { _etExportTaskId = p1+ , _etDescription = p2+ , _etState = p3+ , _etStatusMessage = p4+ , _etInstanceExportDetails = p5+ , _etExportToS3Task = p6+ }++-- | 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 })++etExportToS3Task :: Lens' ExportTask ExportToS3Task+etExportToS3Task = lens _etExportToS3Task (\s a -> s { _etExportToS3Task = a })++-- | The instance being exported.+etInstanceExportDetails :: Lens' ExportTask InstanceExportDetails+etInstanceExportDetails =+ lens _etInstanceExportDetails (\s a -> s { _etInstanceExportDetails = a })++-- | The state of the conversion 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 ToQuery ExportTask where+ toQuery ExportTask{..} = mconcat+ [ "Description" =? _etDescription+ , "ExportTaskId" =? _etExportTaskId+ , "ExportToS3" =? _etExportToS3Task+ , "InstanceExport" =? _etInstanceExportDetails+ , "State" =? _etState+ , "StatusMessage" =? _etStatusMessage+ ]++data ResetImageAttributeName+ = RIANLaunchPermission -- ^ launchPermission+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable ResetImageAttributeName++instance FromText ResetImageAttributeName where+ parser = takeLowerText >>= \case+ "launchpermission" -> pure RIANLaunchPermission+ e -> fail $+ "Failure parsing ResetImageAttributeName from " ++ show e++instance ToText ResetImageAttributeName where+ toText RIANLaunchPermission = "launchPermission"++instance ToByteString ResetImageAttributeName+instance ToHeader ResetImageAttributeName+instance ToQuery ResetImageAttributeName++instance FromXML ResetImageAttributeName where+ parseXML = parseXMLText "ResetImageAttributeName"++data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification+ { _rslsAddressingType :: Maybe Text+ , _rslsBlockDeviceMappings :: List "item" BlockDeviceMapping+ , _rslsEbsOptimized :: Maybe Bool+ , _rslsIamInstanceProfile :: Maybe IamInstanceProfileSpecification+ , _rslsImageId :: Maybe Text+ , _rslsInstanceType :: Maybe InstanceType+ , _rslsKernelId :: Maybe Text+ , _rslsKeyName :: Maybe Text+ , _rslsMonitoring :: Maybe RunInstancesMonitoringEnabled+ , _rslsNetworkInterfaces :: List "item" InstanceNetworkInterfaceSpecification+ , _rslsPlacement :: Maybe SpotPlacement+ , _rslsRamdiskId :: Maybe Text+ , _rslsSecurityGroupIds :: List "item" Text+ , _rslsSecurityGroups :: List "item" Text+ , _rslsSubnetId :: Maybe Text+ , _rslsUserData :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'RequestSpotLaunchSpecification' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rslsAddressingType' @::@ 'Maybe' 'Text'+--+-- * 'rslsBlockDeviceMappings' @::@ ['BlockDeviceMapping']+--+-- * 'rslsEbsOptimized' @::@ 'Maybe' 'Bool'+--+-- * 'rslsIamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfileSpecification'+--+-- * 'rslsImageId' @::@ 'Maybe' 'Text'+--+-- * 'rslsInstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'rslsKernelId' @::@ 'Maybe' 'Text'+--+-- * 'rslsKeyName' @::@ 'Maybe' 'Text'+--+-- * 'rslsMonitoring' @::@ 'Maybe' 'RunInstancesMonitoringEnabled'+--+-- * 'rslsNetworkInterfaces' @::@ ['InstanceNetworkInterfaceSpecification']+--+-- * 'rslsPlacement' @::@ 'Maybe' 'SpotPlacement'+--+-- * 'rslsRamdiskId' @::@ 'Maybe' 'Text'+--+-- * 'rslsSecurityGroupIds' @::@ ['Text']+--+-- * 'rslsSecurityGroups' @::@ ['Text']+--+-- * 'rslsSubnetId' @::@ 'Maybe' 'Text'+--+-- * 'rslsUserData' @::@ 'Maybe' 'Text'+--+requestSpotLaunchSpecification :: RequestSpotLaunchSpecification+requestSpotLaunchSpecification = RequestSpotLaunchSpecification+ { _rslsImageId = Nothing+ , _rslsKeyName = Nothing+ , _rslsSecurityGroups = mempty+ , _rslsUserData = Nothing+ , _rslsAddressingType = Nothing+ , _rslsInstanceType = Nothing+ , _rslsPlacement = Nothing+ , _rslsKernelId = Nothing+ , _rslsRamdiskId = Nothing+ , _rslsBlockDeviceMappings = mempty+ , _rslsSubnetId = Nothing+ , _rslsNetworkInterfaces = mempty+ , _rslsIamInstanceProfile = Nothing+ , _rslsEbsOptimized = Nothing+ , _rslsMonitoring = Nothing+ , _rslsSecurityGroupIds = mempty+ }++-- | Deprecated.+rslsAddressingType :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsAddressingType =+ lens _rslsAddressingType (\s a -> s { _rslsAddressingType = a })++-- | One or more block device mapping entries.+rslsBlockDeviceMappings :: Lens' RequestSpotLaunchSpecification [BlockDeviceMapping]+rslsBlockDeviceMappings =+ lens _rslsBlockDeviceMappings (\s a -> s { _rslsBlockDeviceMappings = a })+ . _List++-- | 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 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 })++-- | The instance type.+--+-- Default: 'm1.small'+rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)+rslsInstanceType = lens _rslsInstanceType (\s a -> s { _rslsInstanceType = a })++-- | The ID of the kernel.+rslsKernelId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsKernelId = lens _rslsKernelId (\s a -> s { _rslsKernelId = a })++-- | The name of the key pair.+rslsKeyName :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsKeyName = lens _rslsKeyName (\s a -> s { _rslsKeyName = a })++rslsMonitoring :: Lens' RequestSpotLaunchSpecification (Maybe RunInstancesMonitoringEnabled)+rslsMonitoring = lens _rslsMonitoring (\s a -> s { _rslsMonitoring = a })++-- | One or more network interfaces.+rslsNetworkInterfaces :: Lens' RequestSpotLaunchSpecification [InstanceNetworkInterfaceSpecification]+rslsNetworkInterfaces =+ lens _rslsNetworkInterfaces (\s a -> s { _rslsNetworkInterfaces = a })+ . _List++-- | The placement information for the instance.+rslsPlacement :: Lens' RequestSpotLaunchSpecification (Maybe SpotPlacement)+rslsPlacement = lens _rslsPlacement (\s a -> s { _rslsPlacement = a })++-- | The ID of the RAM disk.+rslsRamdiskId :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsRamdiskId = lens _rslsRamdiskId (\s a -> s { _rslsRamdiskId = a })++rslsSecurityGroupIds :: Lens' RequestSpotLaunchSpecification [Text]+rslsSecurityGroupIds =+ lens _rslsSecurityGroupIds (\s a -> s { _rslsSecurityGroupIds = a })+ . _List++rslsSecurityGroups :: Lens' RequestSpotLaunchSpecification [Text]+rslsSecurityGroups =+ lens _rslsSecurityGroups (\s a -> s { _rslsSecurityGroups = a })+ . _List++-- | 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 Base64-encoded MIME user data to make available to the instances.+rslsUserData :: Lens' RequestSpotLaunchSpecification (Maybe Text)+rslsUserData = lens _rslsUserData (\s a -> s { _rslsUserData = a })++instance FromXML RequestSpotLaunchSpecification where+ parseXML x = RequestSpotLaunchSpecification+ <$> x .@? "addressingType"+ <*> x .@? "blockDeviceMapping" .!@ mempty+ <*> x .@? "ebsOptimized"+ <*> x .@? "iamInstanceProfile"+ <*> x .@? "imageId"+ <*> x .@? "instanceType"+ <*> x .@? "kernelId"+ <*> x .@? "keyName"+ <*> x .@? "monitoring"+ <*> x .@? "NetworkInterface" .!@ mempty+ <*> x .@? "placement"+ <*> x .@? "ramdiskId"+ <*> x .@? "SecurityGroupId" .!@ mempty+ <*> x .@? "SecurityGroup" .!@ mempty+ <*> x .@? "subnetId"+ <*> x .@? "userData"++instance ToQuery RequestSpotLaunchSpecification where+ toQuery RequestSpotLaunchSpecification{..} = mconcat+ [ "AddressingType" =? _rslsAddressingType+ , "BlockDeviceMapping" `toQueryList` _rslsBlockDeviceMappings+ , "EbsOptimized" =? _rslsEbsOptimized+ , "IamInstanceProfile" =? _rslsIamInstanceProfile+ , "ImageId" =? _rslsImageId+ , "InstanceType" =? _rslsInstanceType+ , "KernelId" =? _rslsKernelId+ , "KeyName" =? _rslsKeyName+ , "Monitoring" =? _rslsMonitoring+ , "NetworkInterface" `toQueryList` _rslsNetworkInterfaces+ , "Placement" =? _rslsPlacement+ , "RamdiskId" =? _rslsRamdiskId+ , "SecurityGroupId" `toQueryList` _rslsSecurityGroupIds+ , "SecurityGroup" `toQueryList` _rslsSecurityGroups+ , "SubnetId" =? _rslsSubnetId+ , "UserData" =? _rslsUserData+ ]++newtype VolumeDetail = VolumeDetail+ { _vdSize :: Integer+ } deriving (Eq, Ord, Read, Show, Enum, Num, Integral, Real)++-- | 'VolumeDetail' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vdSize' @::@ 'Integer'+--+volumeDetail :: Integer -- ^ 'vdSize'+ -> VolumeDetail+volumeDetail p1 = VolumeDetail+ { _vdSize = p1+ }++-- | The size of the volume, in GiB.+vdSize :: Lens' VolumeDetail Integer+vdSize = lens _vdSize (\s a -> s { _vdSize = a })++instance FromXML VolumeDetail where+ parseXML x = VolumeDetail+ <$> x .@ "size"++instance ToQuery VolumeDetail where+ toQuery VolumeDetail{..} = mconcat+ [ "Size" =? _vdSize+ ]++data PricingDetail = PricingDetail+ { _pdCount :: Maybe Int+ , _pdPrice :: Maybe Double+ } deriving (Eq, Ord, Read, Show)++-- | 'PricingDetail' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pdCount' @::@ 'Maybe' 'Int'+--+-- * 'pdPrice' @::@ 'Maybe' 'Double'+--+pricingDetail :: PricingDetail+pricingDetail = PricingDetail+ { _pdPrice = Nothing+ , _pdCount = Nothing+ }++-- | The number of instances 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 ToQuery PricingDetail where+ toQuery PricingDetail{..} = mconcat+ [ "Count" =? _pdCount+ , "Price" =? _pdPrice+ ]++data NetworkInterfacePrivateIpAddress = NetworkInterfacePrivateIpAddress+ { _nipiaAssociation :: Maybe NetworkInterfaceAssociation+ , _nipiaPrimary :: Maybe Bool+ , _nipiaPrivateDnsName :: Maybe Text+ , _nipiaPrivateIpAddress :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'NetworkInterfacePrivateIpAddress' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'nipiaAssociation' @::@ 'Maybe' 'NetworkInterfaceAssociation'+--+-- * 'nipiaPrimary' @::@ 'Maybe' 'Bool'+--+-- * 'nipiaPrivateDnsName' @::@ 'Maybe' 'Text'+--+-- * 'nipiaPrivateIpAddress' @::@ 'Maybe' 'Text'+--+networkInterfacePrivateIpAddress :: NetworkInterfacePrivateIpAddress+networkInterfacePrivateIpAddress = NetworkInterfacePrivateIpAddress+ { _nipiaPrivateIpAddress = Nothing+ , _nipiaPrivateDnsName = Nothing+ , _nipiaPrimary = Nothing+ , _nipiaAssociation = Nothing+ }++-- | The association information for an Elastic IP address associated with the+-- network interface.+nipiaAssociation :: Lens' NetworkInterfacePrivateIpAddress (Maybe NetworkInterfaceAssociation)+nipiaAssociation = lens _nipiaAssociation (\s a -> s { _nipiaAssociation = a })++-- | Indicates whether this IP address is the primary private IP address of the+-- network interface.+nipiaPrimary :: Lens' NetworkInterfacePrivateIpAddress (Maybe Bool)+nipiaPrimary = lens _nipiaPrimary (\s a -> s { _nipiaPrimary = a })++-- | The private DNS name.+nipiaPrivateDnsName :: Lens' NetworkInterfacePrivateIpAddress (Maybe Text)+nipiaPrivateDnsName =+ lens _nipiaPrivateDnsName (\s a -> s { _nipiaPrivateDnsName = a })++-- | The private IP address.+nipiaPrivateIpAddress :: Lens' NetworkInterfacePrivateIpAddress (Maybe Text)+nipiaPrivateIpAddress =+ lens _nipiaPrivateIpAddress (\s a -> s { _nipiaPrivateIpAddress = a })++instance FromXML NetworkInterfacePrivateIpAddress where+ parseXML x = NetworkInterfacePrivateIpAddress+ <$> x .@? "association"+ <*> x .@? "primary"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"++instance ToQuery NetworkInterfacePrivateIpAddress where+ toQuery NetworkInterfacePrivateIpAddress{..} = mconcat+ [ "Association" =? _nipiaAssociation+ , "Primary" =? _nipiaPrimary+ , "PrivateDnsName" =? _nipiaPrivateDnsName+ , "PrivateIpAddress" =? _nipiaPrivateIpAddress+ ]++data DiskImageFormat+ = Raw -- ^ RAW+ | Vhd -- ^ VHD+ | Vmdk -- ^ VMDK+ deriving (Eq, Ord, Read, Show, Generic, Enum)++instance Hashable DiskImageFormat++instance FromText DiskImageFormat where+ parser = takeLowerText >>= \case+ "raw" -> pure Raw+ "vhd" -> pure Vhd+ "vmdk" -> pure Vmdk+ e -> fail $+ "Failure parsing DiskImageFormat from " ++ show e++instance ToText DiskImageFormat where+ toText = \case+ Raw -> "RAW"+ Vhd -> "VHD"+ Vmdk -> "VMDK"++instance ToByteString DiskImageFormat+instance ToHeader DiskImageFormat+instance ToQuery DiskImageFormat++instance FromXML DiskImageFormat where+ parseXML = parseXMLText "DiskImageFormat"++data BundleTaskError = BundleTaskError+ { _bteCode :: Maybe Text+ , _bteMessage :: Maybe Text+ } deriving (Eq, Ord, Read, Show)++-- | 'BundleTaskError' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'bteCode' @::@ 'Maybe' 'Text'+--+-- * 'bteMessage' @::@ 'Maybe' 'Text'+--+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 ToQuery BundleTaskError where+ toQuery BundleTaskError{..} = mconcat+ [ "Code" =? _bteCode+ , "Message" =? _bteMessage+ ]++data VpcClassicLink = VpcClassicLink+ { _vclClassicLinkEnabled :: Maybe Bool+ , _vclTags :: List "item" Tag+ , _vclVpcId :: Maybe Text+ } deriving (Eq, Read, Show)++-- | 'VpcClassicLink' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vclClassicLinkEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'vclTags' @::@ ['Tag']+--+-- * 'vclVpcId' @::@ 'Maybe' 'Text'+--+vpcClassicLink :: VpcClassicLink+vpcClassicLink = VpcClassicLink+ { _vclVpcId = Nothing+ , _vclClassicLinkEnabled = Nothing+ , _vclTags = mempty+ }++-- | Indicates whether the VPC is enabled for ClassicLink.+vclClassicLinkEnabled :: Lens' VpcClassicLink (Maybe Bool)+vclClassicLinkEnabled =+ lens _vclClassicLinkEnabled (\s a -> s { _vclClassicLinkEnabled = a })++-- | Any tags assigned to the VPC.+vclTags :: Lens' VpcClassicLink [Tag]+vclTags = lens _vclTags (\s a -> s { _vclTags = a }) . _List++-- | The ID of the VPC.+vclVpcId :: Lens' VpcClassicLink (Maybe Text)+vclVpcId = lens _vclVpcId (\s a -> s { _vclVpcId = a })++instance FromXML VpcClassicLink where+ parseXML x = VpcClassicLink+ <$> x .@? "classicLinkEnabled"+ <*> x .@? "tagSet" .!@ mempty+ <*> x .@? "vpcId"++instance ToQuery VpcClassicLink where+ toQuery VpcClassicLink{..} = mconcat+ [ "ClassicLinkEnabled" =? _vclClassicLinkEnabled+ , "TagSet" `toQueryList` _vclTags+ , "VpcId" =? _vclVpcId+ ]++data VolumeStatusItem = VolumeStatusItem+ { _vsiActions :: List "item" VolumeStatusAction+ , _vsiAvailabilityZone :: Maybe Text+ , _vsiEvents :: List "item" VolumeStatusEvent+ , _vsiVolumeId :: Maybe Text+ , _vsiVolumeStatus :: Maybe VolumeStatusInfo+ } deriving (Eq, Read, Show)++-- | 'VolumeStatusItem' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vsiActions' @::@ ['VolumeStatusAction']+--+-- * 'vsiAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'vsiEvents' @::@ ['VolumeStatusEvent']+--+-- * 'vsiVolumeId' @::@ 'Maybe' 'Text'+--+-- * 'vsiVolumeStatus' @::@ 'Maybe' 'VolumeStatusInfo'+--+volumeStatusItem :: VolumeStatusItem+volumeStatusItem = VolumeStatusItem+ { _vsiVolumeId = Nothing+ , _vsiAvailabilityZone = Nothing+ , _vsiVolumeStatus = Nothing+ , _vsiEvents = mempty+ , _vsiActions = mempty+ }++-- | The details of the operation.+vsiActions :: Lens' VolumeStatusItem [VolumeStatusAction]+vsiActions = lens _vsiActions (\s a -> s { _vsiActions = a }) . _List++-- | The Availability Zone of the volume.+vsiAvailabilityZone :: Lens' VolumeStatusItem (Maybe Text)+vsiAvailabilityZone =+ lens _vsiAvailabilityZone (\s a -> s { _vsiAvailabilityZone = a })++-- | A list of events associated with the volume.+vsiEvents :: Lens' VolumeStatusItem [VolumeStatusEvent]+vsiEvents = lens _vsiEvents (\s a -> s { _vsiEvents = a }) . _List++-- | The volume ID.+vsiVolumeId :: Lens' VolumeStatusItem (Maybe Text)+vsiVolumeId = lens _vsiVolumeId (\s a -> s { _vsiVolumeId = a })++-- | The volume status.+vsiVolumeStatus :: Lens' VolumeStatusItem (Maybe VolumeStatusInfo)+vsiVolumeStatus = lens _vsiVolumeStatus (\s a -> s { _vsiVolumeStatus = a })++instance FromXML VolumeStatusItem where+ parseXML x = VolumeStatusItem+ <$> x .@? "actionsSet" .!@ mempty+ <*> x .@? "availabilityZone"+ <*> x .@? "eventsSet" .!@ mempty+ <*> x .@? "volumeId"+ <*> x .@? "volumeStatus"++instance ToQuery VolumeStatusItem where+ toQuery VolumeStatusItem{..} = mconcat+ [ "ActionsSet" `toQueryList` _vsiActions+ , "AvailabilityZone" =? _vsiAvailabilityZone+ , "EventsSet" `toQueryList` _vsiEvents+ , "VolumeId" =? _vsiVolumeId+ , "VolumeStatus" =? _vsiVolumeStatus ]
gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs view
@@ -91,8 +91,8 @@ instance ToQuery UnassignPrivateIpAddresses where toQuery UnassignPrivateIpAddresses{..} = mconcat- [ "networkInterfaceId" =? _upiaNetworkInterfaceId- , "privateIpAddress" `toQueryList` _upiaPrivateIpAddresses+ [ "NetworkInterfaceId" =? _upiaNetworkInterfaceId+ , "PrivateIpAddress" `toQueryList` _upiaPrivateIpAddresses ] instance ToHeaders UnassignPrivateIpAddresses
gen/Network/AWS/EC2/UnmonitorInstances.hs view
@@ -101,7 +101,7 @@ instance ToQuery UnmonitorInstances where toQuery UnmonitorInstances{..} = mconcat- [ "dryRun" =? _uiDryRun+ [ "DryRun" =? _uiDryRun , "InstanceId" `toQueryList` _uiInstanceIds ]
src/Network/AWS/EC2/Internal.hs view
@@ -4,7 +4,7 @@ {-# LANGUAGE OverloadedStrings #-} -- Module : Network.AWS.EC2.Internal--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com> -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or