amazonka-ec2 0.0.0 → 0.0.1
raw patch · 37 files changed
+12575/−12426 lines, 37 filesdep ~amazonka-corePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: amazonka-core
API changes (from Hackage documentation)
- Network.AWS.EC2.AllocateAddress: instance Ord AllocateAddress
- Network.AWS.EC2.AllocateAddress: instance Ord AllocateAddressResponse
- Network.AWS.EC2.AttachVolume: instance Ord AttachVolumeResponse
- Network.AWS.EC2.CreateCustomerGateway: instance Ord CreateCustomerGateway
- Network.AWS.EC2.CreatePlacementGroup: instance Ord CreatePlacementGroup
- Network.AWS.EC2.CreateVolume: instance Ord CreateVolume
- Network.AWS.EC2.CreateVpc: instance Ord CreateVpc
- Network.AWS.EC2.CreateVpnGateway: instance Ord CreateVpnGateway
- Network.AWS.EC2.DescribeAccountAttributes: instance Ord DescribeAccountAttributes
- Network.AWS.EC2.DescribeImageAttribute: instance Ord DescribeImageAttribute
- Network.AWS.EC2.DescribeInstanceAttribute: instance Ord DescribeInstanceAttribute
- Network.AWS.EC2.DescribeNetworkInterfaceAttribute: instance Ord DescribeNetworkInterfaceAttribute
- Network.AWS.EC2.DescribeSnapshotAttribute: instance Ord DescribeSnapshotAttribute
- Network.AWS.EC2.DescribeVolumeAttribute: instance Ord DescribeVolumeAttribute
- Network.AWS.EC2.DescribeVpcAttribute: instance Ord DescribeVpcAttribute
- Network.AWS.EC2.DetachVolume: instance Ord DetachVolumeResponse
- Network.AWS.EC2.ReportInstanceStatus: instance Ord ReportInstanceStatus
- Network.AWS.EC2.ResetImageAttribute: instance Ord ResetImageAttribute
- Network.AWS.EC2.ResetInstanceAttribute: instance Ord ResetInstanceAttribute
- Network.AWS.EC2.ResetSnapshotAttribute: instance Ord ResetSnapshotAttribute
- Network.AWS.EC2.Types: data RESTError :: *
- Network.AWS.EC2.Types: instance Monoid Monitoring
- Network.AWS.EC2.Types: instance Ord Address
- Network.AWS.EC2.Types: instance Ord CancelledSpotInstanceRequest
- Network.AWS.EC2.Types: instance Ord CreateVolumePermission
- Network.AWS.EC2.Types: instance Ord DiskImageDescription
- Network.AWS.EC2.Types: instance Ord DiskImageDetail
- Network.AWS.EC2.Types: instance Ord EbsBlockDevice
- Network.AWS.EC2.Types: instance Ord EbsInstanceBlockDevice
- Network.AWS.EC2.Types: instance Ord ExportToS3Task
- Network.AWS.EC2.Types: instance Ord ExportToS3TaskSpecification
- Network.AWS.EC2.Types: instance Ord InstanceCount
- Network.AWS.EC2.Types: instance Ord InstanceExportDetails
- Network.AWS.EC2.Types: instance Ord InstanceNetworkInterfaceAttachment
- Network.AWS.EC2.Types: instance Ord InstanceState
- Network.AWS.EC2.Types: instance Ord InstanceStatusDetails
- Network.AWS.EC2.Types: instance Ord InstanceStatusEvent
- Network.AWS.EC2.Types: instance Ord InternetGatewayAttachment
- Network.AWS.EC2.Types: instance Ord LaunchPermission
- Network.AWS.EC2.Types: instance Ord Monitoring
- Network.AWS.EC2.Types: instance Ord NetworkInterfaceAttachment
- Network.AWS.EC2.Types: instance Ord Placement
- Network.AWS.EC2.Types: instance Ord PlacementGroup
- Network.AWS.EC2.Types: instance Ord PriceSchedule
- Network.AWS.EC2.Types: instance Ord PriceScheduleSpecification
- Network.AWS.EC2.Types: instance Ord ProductCode
- Network.AWS.EC2.Types: instance Ord RecurringCharge
- Network.AWS.EC2.Types: instance Ord ReservedInstanceLimitPrice
- Network.AWS.EC2.Types: instance Ord ReservedInstancesConfiguration
- Network.AWS.EC2.Types: instance Ord Route
- Network.AWS.EC2.Types: instance Ord SpotPrice
- Network.AWS.EC2.Types: instance Ord TagDescription
- Network.AWS.EC2.Types: instance Ord VgwTelemetry
- Network.AWS.EC2.Types: instance Ord VolumeAttachment
- Network.AWS.EC2.Types: instance Ord VolumeStatusDetails
- Network.AWS.EC2.Types: instance Ord VpcAttachment
- Network.AWS.EC2.Types: instance Ord VpnStaticRoute
+ Network.AWS.EC2.CreateSecurityGroup: instance IsString CreateSecurityGroupResponse
+ Network.AWS.EC2.Types: errErrors :: Lens' EC2Error [Message]
+ Network.AWS.EC2.Types: errRequestID :: Lens' EC2Error Text
+ Network.AWS.EC2.Types: instance ToByteString AccountAttributeName
+ Network.AWS.EC2.Types: instance ToByteString ArchitectureValues
+ Network.AWS.EC2.Types: instance ToByteString AttachmentStatus
+ Network.AWS.EC2.Types: instance ToByteString AvailabilityZoneState
+ Network.AWS.EC2.Types: instance ToByteString BundleTaskState
+ Network.AWS.EC2.Types: instance ToByteString CancelSpotInstanceRequestState
+ Network.AWS.EC2.Types: instance ToByteString ContainerFormat
+ Network.AWS.EC2.Types: instance ToByteString ConversionTaskState
+ Network.AWS.EC2.Types: instance ToByteString CurrencyCodeValues
+ Network.AWS.EC2.Types: instance ToByteString DatafeedSubscriptionState
+ Network.AWS.EC2.Types: instance ToByteString DeviceType
+ Network.AWS.EC2.Types: instance ToByteString DiskImageFormat
+ Network.AWS.EC2.Types: instance ToByteString DomainType
+ Network.AWS.EC2.Types: instance ToByteString EventCode
+ Network.AWS.EC2.Types: instance ToByteString ExportEnvironment
+ Network.AWS.EC2.Types: instance ToByteString ExportTaskState
+ Network.AWS.EC2.Types: instance ToByteString GatewayType
+ Network.AWS.EC2.Types: instance ToByteString HypervisorType
+ Network.AWS.EC2.Types: instance ToByteString ImageAttributeName
+ Network.AWS.EC2.Types: instance ToByteString ImageState
+ Network.AWS.EC2.Types: instance ToByteString ImageTypeValues
+ Network.AWS.EC2.Types: instance ToByteString InstanceAttributeName
+ Network.AWS.EC2.Types: instance ToByteString InstanceLifecycleType
+ Network.AWS.EC2.Types: instance ToByteString InstanceStateName
+ Network.AWS.EC2.Types: instance ToByteString InstanceType
+ Network.AWS.EC2.Types: instance ToByteString ListingState
+ Network.AWS.EC2.Types: instance ToByteString ListingStatus
+ Network.AWS.EC2.Types: instance ToByteString MonitoringState
+ Network.AWS.EC2.Types: instance ToByteString NetworkInterfaceAttribute
+ Network.AWS.EC2.Types: instance ToByteString NetworkInterfaceStatus
+ Network.AWS.EC2.Types: instance ToByteString OfferingTypeValues
+ Network.AWS.EC2.Types: instance ToByteString PermissionGroup
+ Network.AWS.EC2.Types: instance ToByteString PlacementGroupState
+ Network.AWS.EC2.Types: instance ToByteString PlacementStrategy
+ Network.AWS.EC2.Types: instance ToByteString PlatformValues
+ Network.AWS.EC2.Types: instance ToByteString ProductCodeValues
+ Network.AWS.EC2.Types: instance ToByteString RIProductDescription
+ Network.AWS.EC2.Types: instance ToByteString RecurringChargeFrequency
+ Network.AWS.EC2.Types: instance ToByteString ReportInstanceReasonCodes
+ Network.AWS.EC2.Types: instance ToByteString ReportStatusType
+ Network.AWS.EC2.Types: instance ToByteString ReservedInstanceState
+ Network.AWS.EC2.Types: instance ToByteString ResetImageAttributeName
+ Network.AWS.EC2.Types: instance ToByteString ResourceType
+ Network.AWS.EC2.Types: instance ToByteString RouteOrigin
+ Network.AWS.EC2.Types: instance ToByteString RouteState
+ Network.AWS.EC2.Types: instance ToByteString RuleAction
+ Network.AWS.EC2.Types: instance ToByteString ShutdownBehavior
+ Network.AWS.EC2.Types: instance ToByteString SnapshotAttributeName
+ Network.AWS.EC2.Types: instance ToByteString SnapshotState
+ Network.AWS.EC2.Types: instance ToByteString SpotInstanceState
+ Network.AWS.EC2.Types: instance ToByteString SpotInstanceType
+ Network.AWS.EC2.Types: instance ToByteString StatusName
+ Network.AWS.EC2.Types: instance ToByteString StatusType
+ Network.AWS.EC2.Types: instance ToByteString SubnetState
+ Network.AWS.EC2.Types: instance ToByteString SummaryStatus
+ Network.AWS.EC2.Types: instance ToByteString TelemetryStatus
+ Network.AWS.EC2.Types: instance ToByteString Tenancy
+ Network.AWS.EC2.Types: instance ToByteString VirtualizationType
+ Network.AWS.EC2.Types: instance ToByteString VolumeAttachmentState
+ Network.AWS.EC2.Types: instance ToByteString VolumeAttributeName
+ Network.AWS.EC2.Types: instance ToByteString VolumeState
+ Network.AWS.EC2.Types: instance ToByteString VolumeStatusInfoStatus
+ Network.AWS.EC2.Types: instance ToByteString VolumeStatusName
+ Network.AWS.EC2.Types: instance ToByteString VolumeType
+ Network.AWS.EC2.Types: instance ToByteString VpcAttributeName
+ Network.AWS.EC2.Types: instance ToByteString VpcState
+ Network.AWS.EC2.Types: instance ToByteString VpnState
+ Network.AWS.EC2.Types: instance ToByteString VpnStaticRouteSource
+ Network.AWS.EC2.Types: instance ToHeader AccountAttributeName
+ Network.AWS.EC2.Types: instance ToHeader ArchitectureValues
+ Network.AWS.EC2.Types: instance ToHeader AttachmentStatus
+ Network.AWS.EC2.Types: instance ToHeader AvailabilityZoneState
+ Network.AWS.EC2.Types: instance ToHeader BundleTaskState
+ Network.AWS.EC2.Types: instance ToHeader CancelSpotInstanceRequestState
+ Network.AWS.EC2.Types: instance ToHeader ContainerFormat
+ Network.AWS.EC2.Types: instance ToHeader ConversionTaskState
+ Network.AWS.EC2.Types: instance ToHeader CurrencyCodeValues
+ Network.AWS.EC2.Types: instance ToHeader DatafeedSubscriptionState
+ Network.AWS.EC2.Types: instance ToHeader DeviceType
+ Network.AWS.EC2.Types: instance ToHeader DiskImageFormat
+ Network.AWS.EC2.Types: instance ToHeader DomainType
+ Network.AWS.EC2.Types: instance ToHeader EventCode
+ Network.AWS.EC2.Types: instance ToHeader ExportEnvironment
+ Network.AWS.EC2.Types: instance ToHeader ExportTaskState
+ Network.AWS.EC2.Types: instance ToHeader GatewayType
+ Network.AWS.EC2.Types: instance ToHeader HypervisorType
+ Network.AWS.EC2.Types: instance ToHeader ImageAttributeName
+ Network.AWS.EC2.Types: instance ToHeader ImageState
+ Network.AWS.EC2.Types: instance ToHeader ImageTypeValues
+ Network.AWS.EC2.Types: instance ToHeader InstanceAttributeName
+ Network.AWS.EC2.Types: instance ToHeader InstanceLifecycleType
+ Network.AWS.EC2.Types: instance ToHeader InstanceStateName
+ Network.AWS.EC2.Types: instance ToHeader InstanceType
+ Network.AWS.EC2.Types: instance ToHeader ListingState
+ Network.AWS.EC2.Types: instance ToHeader ListingStatus
+ Network.AWS.EC2.Types: instance ToHeader MonitoringState
+ Network.AWS.EC2.Types: instance ToHeader NetworkInterfaceAttribute
+ Network.AWS.EC2.Types: instance ToHeader NetworkInterfaceStatus
+ Network.AWS.EC2.Types: instance ToHeader OfferingTypeValues
+ Network.AWS.EC2.Types: instance ToHeader PermissionGroup
+ Network.AWS.EC2.Types: instance ToHeader PlacementGroupState
+ Network.AWS.EC2.Types: instance ToHeader PlacementStrategy
+ Network.AWS.EC2.Types: instance ToHeader PlatformValues
+ Network.AWS.EC2.Types: instance ToHeader ProductCodeValues
+ Network.AWS.EC2.Types: instance ToHeader RIProductDescription
+ Network.AWS.EC2.Types: instance ToHeader RecurringChargeFrequency
+ Network.AWS.EC2.Types: instance ToHeader ReportInstanceReasonCodes
+ Network.AWS.EC2.Types: instance ToHeader ReportStatusType
+ Network.AWS.EC2.Types: instance ToHeader ReservedInstanceState
+ Network.AWS.EC2.Types: instance ToHeader ResetImageAttributeName
+ Network.AWS.EC2.Types: instance ToHeader ResourceType
+ Network.AWS.EC2.Types: instance ToHeader RouteOrigin
+ Network.AWS.EC2.Types: instance ToHeader RouteState
+ Network.AWS.EC2.Types: instance ToHeader RuleAction
+ Network.AWS.EC2.Types: instance ToHeader ShutdownBehavior
+ Network.AWS.EC2.Types: instance ToHeader SnapshotAttributeName
+ Network.AWS.EC2.Types: instance ToHeader SnapshotState
+ Network.AWS.EC2.Types: instance ToHeader SpotInstanceState
+ Network.AWS.EC2.Types: instance ToHeader SpotInstanceType
+ Network.AWS.EC2.Types: instance ToHeader StatusName
+ Network.AWS.EC2.Types: instance ToHeader StatusType
+ Network.AWS.EC2.Types: instance ToHeader SubnetState
+ Network.AWS.EC2.Types: instance ToHeader SummaryStatus
+ Network.AWS.EC2.Types: instance ToHeader TelemetryStatus
+ Network.AWS.EC2.Types: instance ToHeader Tenancy
+ Network.AWS.EC2.Types: instance ToHeader VirtualizationType
+ Network.AWS.EC2.Types: instance ToHeader VolumeAttachmentState
+ Network.AWS.EC2.Types: instance ToHeader VolumeAttributeName
+ Network.AWS.EC2.Types: instance ToHeader VolumeState
+ Network.AWS.EC2.Types: instance ToHeader VolumeStatusInfoStatus
+ Network.AWS.EC2.Types: instance ToHeader VolumeStatusName
+ Network.AWS.EC2.Types: instance ToHeader VolumeType
+ Network.AWS.EC2.Types: instance ToHeader VpcAttributeName
+ Network.AWS.EC2.Types: instance ToHeader VpcState
+ Network.AWS.EC2.Types: instance ToHeader VpnState
+ Network.AWS.EC2.Types: instance ToHeader VpnStaticRouteSource
+ Network.AWS.EC2.Types: msgCode :: Lens' Message Text
+ Network.AWS.EC2.Types: msgMessage :: Lens' Message Text
- Network.AWS.EC2.AllocateAddress: aaDomain :: Lens' AllocateAddress (Maybe Text)
+ Network.AWS.EC2.AllocateAddress: aaDomain :: Lens' AllocateAddress (Maybe DomainType)
- Network.AWS.EC2.AllocateAddress: aarDomain :: Lens' AllocateAddressResponse (Maybe Text)
+ Network.AWS.EC2.AllocateAddress: aarDomain :: Lens' AllocateAddressResponse (Maybe DomainType)
- Network.AWS.EC2.AttachVolume: avrState :: Lens' AttachVolumeResponse (Maybe Text)
+ Network.AWS.EC2.AttachVolume: avrState :: Lens' AttachVolumeResponse (Maybe VolumeAttachmentState)
- Network.AWS.EC2.CreateCustomerGateway: ccgType :: Lens' CreateCustomerGateway Text
+ Network.AWS.EC2.CreateCustomerGateway: ccgType :: Lens' CreateCustomerGateway GatewayType
- Network.AWS.EC2.CreateCustomerGateway: createCustomerGateway :: Text -> Text -> Int -> CreateCustomerGateway
+ Network.AWS.EC2.CreateCustomerGateway: createCustomerGateway :: GatewayType -> Text -> Int -> CreateCustomerGateway
- Network.AWS.EC2.CreateInstanceExportTask: cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe Text)
+ Network.AWS.EC2.CreateInstanceExportTask: cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe ExportEnvironment)
- Network.AWS.EC2.CreateKeyPair: ckprKeyFingerprint :: Lens' CreateKeyPairResponse (Maybe Text)
+ Network.AWS.EC2.CreateKeyPair: ckprKeyFingerprint :: Lens' CreateKeyPairResponse Text
- Network.AWS.EC2.CreateKeyPair: ckprKeyMaterial :: Lens' CreateKeyPairResponse (Maybe Text)
+ Network.AWS.EC2.CreateKeyPair: ckprKeyMaterial :: Lens' CreateKeyPairResponse Text
- Network.AWS.EC2.CreateKeyPair: ckprKeyName :: Lens' CreateKeyPairResponse (Maybe Text)
+ Network.AWS.EC2.CreateKeyPair: ckprKeyName :: Lens' CreateKeyPairResponse Text
- Network.AWS.EC2.CreateKeyPair: createKeyPairResponse :: CreateKeyPairResponse
+ Network.AWS.EC2.CreateKeyPair: createKeyPairResponse :: Text -> Text -> Text -> CreateKeyPairResponse
- Network.AWS.EC2.CreateNetworkAclEntry: cnaeRuleAction :: Lens' CreateNetworkAclEntry Text
+ Network.AWS.EC2.CreateNetworkAclEntry: cnaeRuleAction :: Lens' CreateNetworkAclEntry RuleAction
- Network.AWS.EC2.CreateNetworkAclEntry: createNetworkAclEntry :: Text -> Int -> Text -> Text -> Bool -> Text -> CreateNetworkAclEntry
+ Network.AWS.EC2.CreateNetworkAclEntry: createNetworkAclEntry :: Text -> Int -> Text -> RuleAction -> Bool -> Text -> CreateNetworkAclEntry
- Network.AWS.EC2.CreatePlacementGroup: cpgStrategy :: Lens' CreatePlacementGroup Text
+ Network.AWS.EC2.CreatePlacementGroup: cpgStrategy :: Lens' CreatePlacementGroup PlacementStrategy
- Network.AWS.EC2.CreatePlacementGroup: createPlacementGroup :: Text -> Text -> CreatePlacementGroup
+ Network.AWS.EC2.CreatePlacementGroup: createPlacementGroup :: Text -> PlacementStrategy -> CreatePlacementGroup
- Network.AWS.EC2.CreateSecurityGroup: createSecurityGroupResponse :: CreateSecurityGroupResponse
+ Network.AWS.EC2.CreateSecurityGroup: createSecurityGroupResponse :: Text -> CreateSecurityGroupResponse
- Network.AWS.EC2.CreateSecurityGroup: csgrGroupId :: Lens' CreateSecurityGroupResponse (Maybe Text)
+ Network.AWS.EC2.CreateSecurityGroup: csgrGroupId :: Lens' CreateSecurityGroupResponse Text
- Network.AWS.EC2.CreateSnapshot: csr1State :: Lens' CreateSnapshotResponse (Maybe Text)
+ Network.AWS.EC2.CreateSnapshot: csr1State :: Lens' CreateSnapshotResponse (Maybe SnapshotState)
- Network.AWS.EC2.CreateVolume: cv1VolumeType :: Lens' CreateVolume (Maybe Text)
+ Network.AWS.EC2.CreateVolume: cv1VolumeType :: Lens' CreateVolume (Maybe VolumeType)
- Network.AWS.EC2.CreateVolume: cvrState :: Lens' CreateVolumeResponse (Maybe Text)
+ Network.AWS.EC2.CreateVolume: cvrState :: Lens' CreateVolumeResponse (Maybe VolumeState)
- Network.AWS.EC2.CreateVolume: cvrVolumeType :: Lens' CreateVolumeResponse (Maybe Text)
+ Network.AWS.EC2.CreateVolume: cvrVolumeType :: Lens' CreateVolumeResponse (Maybe VolumeType)
- Network.AWS.EC2.CreateVpc: cvInstanceTenancy :: Lens' CreateVpc (Maybe Text)
+ Network.AWS.EC2.CreateVpc: cvInstanceTenancy :: Lens' CreateVpc (Maybe Tenancy)
- Network.AWS.EC2.CreateVpnGateway: createVpnGateway :: Text -> CreateVpnGateway
+ Network.AWS.EC2.CreateVpnGateway: createVpnGateway :: GatewayType -> CreateVpnGateway
- Network.AWS.EC2.CreateVpnGateway: cvgType :: Lens' CreateVpnGateway Text
+ Network.AWS.EC2.CreateVpnGateway: cvgType :: Lens' CreateVpnGateway GatewayType
- Network.AWS.EC2.DescribeAccountAttributes: daaAttributeNames :: Lens' DescribeAccountAttributes [Text]
+ Network.AWS.EC2.DescribeAccountAttributes: daaAttributeNames :: Lens' DescribeAccountAttributes [AccountAttributeName]
- Network.AWS.EC2.DescribeImageAttribute: describeImageAttribute :: Text -> Text -> DescribeImageAttribute
+ Network.AWS.EC2.DescribeImageAttribute: describeImageAttribute :: Text -> ImageAttributeName -> DescribeImageAttribute
- Network.AWS.EC2.DescribeImageAttribute: dia1Attribute :: Lens' DescribeImageAttribute Text
+ Network.AWS.EC2.DescribeImageAttribute: dia1Attribute :: Lens' DescribeImageAttribute ImageAttributeName
- Network.AWS.EC2.DescribeInstanceAttribute: describeInstanceAttribute :: Text -> Text -> DescribeInstanceAttribute
+ Network.AWS.EC2.DescribeInstanceAttribute: describeInstanceAttribute :: Text -> InstanceAttributeName -> DescribeInstanceAttribute
- Network.AWS.EC2.DescribeInstanceAttribute: diaAttribute :: Lens' DescribeInstanceAttribute Text
+ Network.AWS.EC2.DescribeInstanceAttribute: diaAttribute :: Lens' DescribeInstanceAttribute InstanceAttributeName
- Network.AWS.EC2.DescribeNetworkInterfaceAttribute: dniaAttribute :: Lens' DescribeNetworkInterfaceAttribute (Maybe Text)
+ Network.AWS.EC2.DescribeNetworkInterfaceAttribute: dniaAttribute :: Lens' DescribeNetworkInterfaceAttribute (Maybe NetworkInterfaceAttribute)
- Network.AWS.EC2.DescribeReservedInstances: driOfferingType :: Lens' DescribeReservedInstances (Maybe Text)
+ Network.AWS.EC2.DescribeReservedInstances: driOfferingType :: Lens' DescribeReservedInstances (Maybe OfferingTypeValues)
- Network.AWS.EC2.DescribeReservedInstancesOfferings: drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Text)
+ Network.AWS.EC2.DescribeReservedInstancesOfferings: drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Tenancy)
- Network.AWS.EC2.DescribeReservedInstancesOfferings: drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe Text)
+ Network.AWS.EC2.DescribeReservedInstancesOfferings: drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe InstanceType)
- Network.AWS.EC2.DescribeReservedInstancesOfferings: drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe Text)
+ Network.AWS.EC2.DescribeReservedInstancesOfferings: drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe OfferingTypeValues)
- Network.AWS.EC2.DescribeReservedInstancesOfferings: drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe Text)
+ Network.AWS.EC2.DescribeReservedInstancesOfferings: drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe RIProductDescription)
- Network.AWS.EC2.DescribeSnapshotAttribute: describeSnapshotAttribute :: Text -> Text -> DescribeSnapshotAttribute
+ Network.AWS.EC2.DescribeSnapshotAttribute: describeSnapshotAttribute :: Text -> SnapshotAttributeName -> DescribeSnapshotAttribute
- Network.AWS.EC2.DescribeSnapshotAttribute: dsaAttribute :: Lens' DescribeSnapshotAttribute Text
+ Network.AWS.EC2.DescribeSnapshotAttribute: dsaAttribute :: Lens' DescribeSnapshotAttribute SnapshotAttributeName
- Network.AWS.EC2.DescribeSpotPriceHistory: dsphInstanceTypes :: Lens' DescribeSpotPriceHistory [Text]
+ Network.AWS.EC2.DescribeSpotPriceHistory: dsphInstanceTypes :: Lens' DescribeSpotPriceHistory [InstanceType]
- Network.AWS.EC2.DescribeVolumeAttribute: dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe Text)
+ Network.AWS.EC2.DescribeVolumeAttribute: dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe VolumeAttributeName)
- Network.AWS.EC2.DescribeVpcAttribute: dva1Attribute :: Lens' DescribeVpcAttribute (Maybe Text)
+ Network.AWS.EC2.DescribeVpcAttribute: dva1Attribute :: Lens' DescribeVpcAttribute (Maybe VpcAttributeName)
- Network.AWS.EC2.DetachVolume: dvrState :: Lens' DetachVolumeResponse (Maybe Text)
+ Network.AWS.EC2.DetachVolume: dvrState :: Lens' DetachVolumeResponse (Maybe VolumeAttachmentState)
- Network.AWS.EC2.ImportInstance: iiPlatform :: Lens' ImportInstance Text
+ Network.AWS.EC2.ImportInstance: iiPlatform :: Lens' ImportInstance PlatformValues
- Network.AWS.EC2.ImportInstance: importInstance :: Text -> ImportInstance
+ Network.AWS.EC2.ImportInstance: importInstance :: PlatformValues -> ImportInstance
- Network.AWS.EC2.ModifyInstanceAttribute: mia1Attribute :: Lens' ModifyInstanceAttribute (Maybe Text)
+ Network.AWS.EC2.ModifyInstanceAttribute: mia1Attribute :: Lens' ModifyInstanceAttribute (Maybe InstanceAttributeName)
- Network.AWS.EC2.ModifySnapshotAttribute: msaAttribute :: Lens' ModifySnapshotAttribute (Maybe Text)
+ Network.AWS.EC2.ModifySnapshotAttribute: msaAttribute :: Lens' ModifySnapshotAttribute (Maybe SnapshotAttributeName)
- Network.AWS.EC2.RegisterImage: ri1Architecture :: Lens' RegisterImage (Maybe Text)
+ Network.AWS.EC2.RegisterImage: ri1Architecture :: Lens' RegisterImage (Maybe ArchitectureValues)
- Network.AWS.EC2.ReplaceNetworkAclEntry: replaceNetworkAclEntry :: Text -> Int -> Text -> Text -> Bool -> Text -> ReplaceNetworkAclEntry
+ Network.AWS.EC2.ReplaceNetworkAclEntry: replaceNetworkAclEntry :: Text -> Int -> Text -> RuleAction -> Bool -> Text -> ReplaceNetworkAclEntry
- Network.AWS.EC2.ReplaceNetworkAclEntry: rnaeRuleAction :: Lens' ReplaceNetworkAclEntry Text
+ Network.AWS.EC2.ReplaceNetworkAclEntry: rnaeRuleAction :: Lens' ReplaceNetworkAclEntry RuleAction
- Network.AWS.EC2.ReportInstanceStatus: reportInstanceStatus :: Text -> ReportInstanceStatus
+ Network.AWS.EC2.ReportInstanceStatus: reportInstanceStatus :: ReportStatusType -> ReportInstanceStatus
- Network.AWS.EC2.ReportInstanceStatus: risReasonCodes :: Lens' ReportInstanceStatus [Text]
+ Network.AWS.EC2.ReportInstanceStatus: risReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes]
- Network.AWS.EC2.ReportInstanceStatus: risStatus :: Lens' ReportInstanceStatus Text
+ Network.AWS.EC2.ReportInstanceStatus: risStatus :: Lens' ReportInstanceStatus ReportStatusType
- Network.AWS.EC2.RequestSpotInstances: rsiType :: Lens' RequestSpotInstances (Maybe Text)
+ Network.AWS.EC2.RequestSpotInstances: rsiType :: Lens' RequestSpotInstances (Maybe SpotInstanceType)
- Network.AWS.EC2.ResetImageAttribute: resetImageAttribute :: Text -> Text -> ResetImageAttribute
+ Network.AWS.EC2.ResetImageAttribute: resetImageAttribute :: Text -> ResetImageAttributeName -> ResetImageAttribute
- Network.AWS.EC2.ResetImageAttribute: ria1Attribute :: Lens' ResetImageAttribute Text
+ Network.AWS.EC2.ResetImageAttribute: ria1Attribute :: Lens' ResetImageAttribute ResetImageAttributeName
- Network.AWS.EC2.ResetInstanceAttribute: resetInstanceAttribute :: Text -> Text -> ResetInstanceAttribute
+ Network.AWS.EC2.ResetInstanceAttribute: resetInstanceAttribute :: Text -> InstanceAttributeName -> ResetInstanceAttribute
- Network.AWS.EC2.ResetInstanceAttribute: riaAttribute :: Lens' ResetInstanceAttribute Text
+ Network.AWS.EC2.ResetInstanceAttribute: riaAttribute :: Lens' ResetInstanceAttribute InstanceAttributeName
- Network.AWS.EC2.ResetSnapshotAttribute: resetSnapshotAttribute :: Text -> Text -> ResetSnapshotAttribute
+ Network.AWS.EC2.ResetSnapshotAttribute: resetSnapshotAttribute :: Text -> SnapshotAttributeName -> ResetSnapshotAttribute
- Network.AWS.EC2.ResetSnapshotAttribute: rsaAttribute :: Lens' ResetSnapshotAttribute Text
+ Network.AWS.EC2.ResetSnapshotAttribute: rsaAttribute :: Lens' ResetSnapshotAttribute SnapshotAttributeName
- Network.AWS.EC2.RunInstances: riInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe Text)
+ Network.AWS.EC2.RunInstances: riInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe ShutdownBehavior)
- Network.AWS.EC2.RunInstances: riInstanceType :: Lens' RunInstances (Maybe Text)
+ Network.AWS.EC2.RunInstances: riInstanceType :: Lens' RunInstances (Maybe InstanceType)
- Network.AWS.EC2.Types: EC2Error :: Text -> [Message] -> EC2Error
+ Network.AWS.EC2.Types: EC2Error :: Text -> List "Error" Message -> EC2Error
- Network.AWS.EC2.Types: _errErrors :: EC2Error -> [Message]
+ Network.AWS.EC2.Types: _errErrors :: EC2Error -> List "Error" Message
- Network.AWS.EC2.Types: aDomain :: Lens' Address (Maybe Text)
+ Network.AWS.EC2.Types: aDomain :: Lens' Address (Maybe DomainType)
- Network.AWS.EC2.Types: azState :: Lens' AvailabilityZone (Maybe Text)
+ Network.AWS.EC2.Types: azState :: Lens' AvailabilityZone (Maybe AvailabilityZoneState)
- Network.AWS.EC2.Types: btState :: Lens' BundleTask (Maybe Text)
+ Network.AWS.EC2.Types: btState :: Lens' BundleTask (Maybe BundleTaskState)
- Network.AWS.EC2.Types: conversionTask :: Text -> Text -> ConversionTask
+ Network.AWS.EC2.Types: conversionTask :: Text -> ConversionTaskState -> ConversionTask
- Network.AWS.EC2.Types: csiState :: Lens' CancelledSpotInstanceRequest (Maybe Text)
+ Network.AWS.EC2.Types: csiState :: Lens' CancelledSpotInstanceRequest (Maybe CancelSpotInstanceRequestState)
- Network.AWS.EC2.Types: ctState :: Lens' ConversionTask Text
+ Network.AWS.EC2.Types: ctState :: Lens' ConversionTask ConversionTaskState
- Network.AWS.EC2.Types: cvpGroup :: Lens' CreateVolumePermission (Maybe Text)
+ Network.AWS.EC2.Types: cvpGroup :: Lens' CreateVolumePermission (Maybe PermissionGroup)
- Network.AWS.EC2.Types: did1Format :: Lens' DiskImageDescription Text
+ Network.AWS.EC2.Types: did1Format :: Lens' DiskImageDescription DiskImageFormat
- Network.AWS.EC2.Types: didFormat :: Lens' DiskImageDetail Text
+ Network.AWS.EC2.Types: didFormat :: Lens' DiskImageDetail DiskImageFormat
- Network.AWS.EC2.Types: diskImageDescription :: Text -> Integer -> Text -> DiskImageDescription
+ Network.AWS.EC2.Types: diskImageDescription :: DiskImageFormat -> Integer -> Text -> DiskImageDescription
- Network.AWS.EC2.Types: diskImageDetail :: Text -> Integer -> Text -> DiskImageDetail
+ Network.AWS.EC2.Types: diskImageDetail :: DiskImageFormat -> Integer -> Text -> DiskImageDetail
- Network.AWS.EC2.Types: ebdVolumeType :: Lens' EbsBlockDevice (Maybe Text)
+ Network.AWS.EC2.Types: ebdVolumeType :: Lens' EbsBlockDevice (Maybe VolumeType)
- Network.AWS.EC2.Types: eibdStatus :: Lens' EbsInstanceBlockDevice (Maybe Text)
+ Network.AWS.EC2.Types: eibdStatus :: Lens' EbsInstanceBlockDevice (Maybe AttachmentStatus)
- Network.AWS.EC2.Types: etState :: Lens' ExportTask (Maybe Text)
+ Network.AWS.EC2.Types: etState :: Lens' ExportTask (Maybe ExportTaskState)
- Network.AWS.EC2.Types: etstContainerFormat :: Lens' ExportToS3Task (Maybe Text)
+ Network.AWS.EC2.Types: etstContainerFormat :: Lens' ExportToS3Task (Maybe ContainerFormat)
- Network.AWS.EC2.Types: etstDiskImageFormat :: Lens' ExportToS3Task (Maybe Text)
+ Network.AWS.EC2.Types: etstDiskImageFormat :: Lens' ExportToS3Task (Maybe DiskImageFormat)
- Network.AWS.EC2.Types: etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe Text)
+ Network.AWS.EC2.Types: etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe ContainerFormat)
- Network.AWS.EC2.Types: etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe Text)
+ Network.AWS.EC2.Types: etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe DiskImageFormat)
- Network.AWS.EC2.Types: i1Architecture :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1Architecture :: Lens' Instance (Maybe ArchitectureValues)
- Network.AWS.EC2.Types: i1Hypervisor :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1Hypervisor :: Lens' Instance (Maybe HypervisorType)
- Network.AWS.EC2.Types: i1InstanceLifecycle :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1InstanceLifecycle :: Lens' Instance (Maybe InstanceLifecycleType)
- Network.AWS.EC2.Types: i1InstanceType :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1InstanceType :: Lens' Instance (Maybe InstanceType)
- Network.AWS.EC2.Types: i1Platform :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1Platform :: Lens' Instance (Maybe PlatformValues)
- Network.AWS.EC2.Types: i1RootDeviceType :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1RootDeviceType :: Lens' Instance (Maybe DeviceType)
- Network.AWS.EC2.Types: i1VirtualizationType :: Lens' Instance (Maybe Text)
+ Network.AWS.EC2.Types: i1VirtualizationType :: Lens' Instance (Maybe VirtualizationType)
- Network.AWS.EC2.Types: iArchitecture :: Lens' Image Text
+ Network.AWS.EC2.Types: iArchitecture :: Lens' Image ArchitectureValues
- Network.AWS.EC2.Types: iHypervisor :: Lens' Image Text
+ Network.AWS.EC2.Types: iHypervisor :: Lens' Image HypervisorType
- Network.AWS.EC2.Types: iImageType :: Lens' Image Text
+ Network.AWS.EC2.Types: iImageType :: Lens' Image ImageTypeValues
- Network.AWS.EC2.Types: iPlatform :: Lens' Image (Maybe Text)
+ Network.AWS.EC2.Types: iPlatform :: Lens' Image (Maybe PlatformValues)
- Network.AWS.EC2.Types: iRootDeviceType :: Lens' Image Text
+ Network.AWS.EC2.Types: iRootDeviceType :: Lens' Image DeviceType
- Network.AWS.EC2.Types: iState :: Lens' Image Text
+ Network.AWS.EC2.Types: iState :: Lens' Image ImageState
- Network.AWS.EC2.Types: iVirtualizationType :: Lens' Image Text
+ Network.AWS.EC2.Types: iVirtualizationType :: Lens' Image VirtualizationType
- Network.AWS.EC2.Types: icState :: Lens' InstanceCount (Maybe Text)
+ Network.AWS.EC2.Types: icState :: Lens' InstanceCount (Maybe ListingState)
- Network.AWS.EC2.Types: iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe Text)
+ Network.AWS.EC2.Types: iedTargetEnvironment :: Lens' InstanceExportDetails (Maybe ExportEnvironment)
- Network.AWS.EC2.Types: igaState :: Lens' InternetGatewayAttachment Text
+ Network.AWS.EC2.Types: igaState :: Lens' InternetGatewayAttachment AttachmentStatus
- Network.AWS.EC2.Types: iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)
- Network.AWS.EC2.Types: iilsInstanceInitiatedShutdownBehavior :: Lens' ImportInstanceLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: iilsInstanceInitiatedShutdownBehavior :: Lens' ImportInstanceLaunchSpecification (Maybe ShutdownBehavior)
- Network.AWS.EC2.Types: iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)
- Network.AWS.EC2.Types: iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe Text)
+ Network.AWS.EC2.Types: iitdPlatform :: Lens' ImportInstanceTaskDetails (Maybe PlatformValues)
- Network.AWS.EC2.Types: image :: Text -> Text -> Text -> Text -> Bool -> Text -> Text -> Text -> Text -> Text -> Text -> Image
+ Network.AWS.EC2.Types: image :: Text -> Text -> ImageState -> Text -> Bool -> ArchitectureValues -> ImageTypeValues -> Text -> DeviceType -> VirtualizationType -> HypervisorType -> Image
- Network.AWS.EC2.Types: iniStatus :: Lens' InstanceNetworkInterface (Maybe Text)
+ Network.AWS.EC2.Types: iniStatus :: Lens' InstanceNetworkInterface (Maybe NetworkInterfaceStatus)
- Network.AWS.EC2.Types: iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe Text)
+ Network.AWS.EC2.Types: iniaStatus :: Lens' InstanceNetworkInterfaceAttachment (Maybe AttachmentStatus)
- Network.AWS.EC2.Types: instanceState :: Int -> Text -> InstanceState
+ Network.AWS.EC2.Types: instanceState :: Int -> InstanceStateName -> InstanceState
- Network.AWS.EC2.Types: internetGatewayAttachment :: Text -> Text -> InternetGatewayAttachment
+ Network.AWS.EC2.Types: internetGatewayAttachment :: Text -> AttachmentStatus -> InternetGatewayAttachment
- Network.AWS.EC2.Types: isName :: Lens' InstanceState Text
+ Network.AWS.EC2.Types: isName :: Lens' InstanceState InstanceStateName
- Network.AWS.EC2.Types: isdName :: Lens' InstanceStatusDetails (Maybe Text)
+ Network.AWS.EC2.Types: isdName :: Lens' InstanceStatusDetails (Maybe StatusName)
- Network.AWS.EC2.Types: isdStatus :: Lens' InstanceStatusDetails (Maybe Text)
+ Network.AWS.EC2.Types: isdStatus :: Lens' InstanceStatusDetails (Maybe StatusType)
- Network.AWS.EC2.Types: iseCode :: Lens' InstanceStatusEvent (Maybe Text)
+ Network.AWS.EC2.Types: iseCode :: Lens' InstanceStatusEvent (Maybe EventCode)
- Network.AWS.EC2.Types: issStatus :: Lens' InstanceStatusSummary (Maybe Text)
+ Network.AWS.EC2.Types: issStatus :: Lens' InstanceStatusSummary (Maybe SummaryStatus)
- Network.AWS.EC2.Types: lpGroup :: Lens' LaunchPermission (Maybe Text)
+ Network.AWS.EC2.Types: lpGroup :: Lens' LaunchPermission (Maybe PermissionGroup)
- Network.AWS.EC2.Types: lsInstanceType :: Lens' LaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: lsInstanceType :: Lens' LaunchSpecification (Maybe InstanceType)
- Network.AWS.EC2.Types: mState :: Lens' Monitoring (Maybe Text)
+ Network.AWS.EC2.Types: mState :: Lens' Monitoring (Maybe MonitoringState)
- Network.AWS.EC2.Types: naeRuleAction :: Lens' NetworkAclEntry (Maybe Text)
+ Network.AWS.EC2.Types: naeRuleAction :: Lens' NetworkAclEntry (Maybe RuleAction)
- Network.AWS.EC2.Types: niStatus :: Lens' NetworkInterface (Maybe Text)
+ Network.AWS.EC2.Types: niStatus :: Lens' NetworkInterface (Maybe NetworkInterfaceStatus)
- Network.AWS.EC2.Types: niaStatus :: Lens' NetworkInterfaceAttachment (Maybe Text)
+ Network.AWS.EC2.Types: niaStatus :: Lens' NetworkInterfaceAttachment (Maybe AttachmentStatus)
- Network.AWS.EC2.Types: pTenancy :: Lens' Placement (Maybe Text)
+ Network.AWS.EC2.Types: pTenancy :: Lens' Placement (Maybe Tenancy)
- Network.AWS.EC2.Types: pcProductCodeType :: Lens' ProductCode (Maybe Text)
+ Network.AWS.EC2.Types: pcProductCodeType :: Lens' ProductCode (Maybe ProductCodeValues)
- Network.AWS.EC2.Types: pgState :: Lens' PlacementGroup (Maybe Text)
+ Network.AWS.EC2.Types: pgState :: Lens' PlacementGroup (Maybe PlacementGroupState)
- Network.AWS.EC2.Types: pgStrategy :: Lens' PlacementGroup (Maybe Text)
+ Network.AWS.EC2.Types: pgStrategy :: Lens' PlacementGroup (Maybe PlacementStrategy)
- Network.AWS.EC2.Types: psCurrencyCode :: Lens' PriceSchedule (Maybe Text)
+ Network.AWS.EC2.Types: psCurrencyCode :: Lens' PriceSchedule (Maybe CurrencyCodeValues)
- Network.AWS.EC2.Types: pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe Text)
+ Network.AWS.EC2.Types: pssCurrencyCode :: Lens' PriceScheduleSpecification (Maybe CurrencyCodeValues)
- Network.AWS.EC2.Types: rOrigin :: Lens' Route (Maybe Text)
+ Network.AWS.EC2.Types: rOrigin :: Lens' Route (Maybe RouteOrigin)
- Network.AWS.EC2.Types: rState :: Lens' Route (Maybe Text)
+ Network.AWS.EC2.Types: rState :: Lens' Route (Maybe RouteState)
- Network.AWS.EC2.Types: rcFrequency :: Lens' RecurringCharge (Maybe Text)
+ Network.AWS.EC2.Types: rcFrequency :: Lens' RecurringCharge (Maybe RecurringChargeFrequency)
- Network.AWS.EC2.Types: ri1CurrencyCode :: Lens' ReservedInstances (Maybe Text)
+ Network.AWS.EC2.Types: ri1CurrencyCode :: Lens' ReservedInstances (Maybe CurrencyCodeValues)
- Network.AWS.EC2.Types: ri1InstanceTenancy :: Lens' ReservedInstances (Maybe Text)
+ Network.AWS.EC2.Types: ri1InstanceTenancy :: Lens' ReservedInstances (Maybe Tenancy)
- Network.AWS.EC2.Types: ri1InstanceType :: Lens' ReservedInstances (Maybe Text)
+ Network.AWS.EC2.Types: ri1InstanceType :: Lens' ReservedInstances (Maybe InstanceType)
- Network.AWS.EC2.Types: ri1OfferingType :: Lens' ReservedInstances (Maybe Text)
+ Network.AWS.EC2.Types: ri1OfferingType :: Lens' ReservedInstances (Maybe OfferingTypeValues)
- Network.AWS.EC2.Types: ri1ProductDescription :: Lens' ReservedInstances (Maybe Text)
+ Network.AWS.EC2.Types: ri1ProductDescription :: Lens' ReservedInstances (Maybe RIProductDescription)
- Network.AWS.EC2.Types: ri1State :: Lens' ReservedInstances (Maybe Text)
+ Network.AWS.EC2.Types: ri1State :: Lens' ReservedInstances (Maybe ReservedInstanceState)
- Network.AWS.EC2.Types: ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe Text)
+ Network.AWS.EC2.Types: ricInstanceType :: Lens' ReservedInstancesConfiguration (Maybe InstanceType)
- Network.AWS.EC2.Types: rilStatus :: Lens' ReservedInstancesListing (Maybe Text)
+ Network.AWS.EC2.Types: rilStatus :: Lens' ReservedInstancesListing (Maybe ListingStatus)
- Network.AWS.EC2.Types: rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe Text)
+ Network.AWS.EC2.Types: rilpCurrencyCode :: Lens' ReservedInstanceLimitPrice (Maybe CurrencyCodeValues)
- Network.AWS.EC2.Types: rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe Text)
+ Network.AWS.EC2.Types: rioCurrencyCode :: Lens' ReservedInstancesOffering (Maybe CurrencyCodeValues)
- Network.AWS.EC2.Types: rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Text)
+ Network.AWS.EC2.Types: rioInstanceTenancy :: Lens' ReservedInstancesOffering (Maybe Tenancy)
- Network.AWS.EC2.Types: rioInstanceType :: Lens' ReservedInstancesOffering (Maybe Text)
+ Network.AWS.EC2.Types: rioInstanceType :: Lens' ReservedInstancesOffering (Maybe InstanceType)
- Network.AWS.EC2.Types: rioOfferingType :: Lens' ReservedInstancesOffering (Maybe Text)
+ Network.AWS.EC2.Types: rioOfferingType :: Lens' ReservedInstancesOffering (Maybe OfferingTypeValues)
- Network.AWS.EC2.Types: rioProductDescription :: Lens' ReservedInstancesOffering (Maybe Text)
+ Network.AWS.EC2.Types: rioProductDescription :: Lens' ReservedInstancesOffering (Maybe RIProductDescription)
- Network.AWS.EC2.Types: rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe Text)
+ Network.AWS.EC2.Types: rslsInstanceType :: Lens' RequestSpotLaunchSpecification (Maybe InstanceType)
- Network.AWS.EC2.Types: s1State :: Lens' Subnet (Maybe Text)
+ Network.AWS.EC2.Types: s1State :: Lens' Subnet (Maybe SubnetState)
- Network.AWS.EC2.Types: sState :: Lens' Snapshot (Maybe Text)
+ Network.AWS.EC2.Types: sState :: Lens' Snapshot (Maybe SnapshotState)
- Network.AWS.EC2.Types: sdsState :: Lens' SpotDatafeedSubscription (Maybe Text)
+ Network.AWS.EC2.Types: sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)
- Network.AWS.EC2.Types: siProductDescription :: Lens' SpotInstanceRequest (Maybe Text)
+ Network.AWS.EC2.Types: siProductDescription :: Lens' SpotInstanceRequest (Maybe RIProductDescription)
- Network.AWS.EC2.Types: siState :: Lens' SpotInstanceRequest (Maybe Text)
+ Network.AWS.EC2.Types: siState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)
- Network.AWS.EC2.Types: siType :: Lens' SpotInstanceRequest (Maybe Text)
+ Network.AWS.EC2.Types: siType :: Lens' SpotInstanceRequest (Maybe SpotInstanceType)
- Network.AWS.EC2.Types: spInstanceType :: Lens' SpotPrice (Maybe Text)
+ Network.AWS.EC2.Types: spInstanceType :: Lens' SpotPrice (Maybe InstanceType)
- Network.AWS.EC2.Types: spProductDescription :: Lens' SpotPrice (Maybe Text)
+ Network.AWS.EC2.Types: spProductDescription :: Lens' SpotPrice (Maybe RIProductDescription)
- Network.AWS.EC2.Types: tagDescription :: Text -> Text -> Text -> Text -> TagDescription
+ Network.AWS.EC2.Types: tagDescription :: Text -> ResourceType -> Text -> Text -> TagDescription
- Network.AWS.EC2.Types: tdResourceType :: Lens' TagDescription Text
+ Network.AWS.EC2.Types: tdResourceType :: Lens' TagDescription ResourceType
- Network.AWS.EC2.Types: vState :: Lens' Volume (Maybe Text)
+ Network.AWS.EC2.Types: vState :: Lens' Volume (Maybe VolumeState)
- Network.AWS.EC2.Types: vVolumeType :: Lens' Volume (Maybe Text)
+ Network.AWS.EC2.Types: vVolumeType :: Lens' Volume (Maybe VolumeType)
- Network.AWS.EC2.Types: va1State :: Lens' VpcAttachment (Maybe Text)
+ Network.AWS.EC2.Types: va1State :: Lens' VpcAttachment (Maybe AttachmentStatus)
- Network.AWS.EC2.Types: vaState :: Lens' VolumeAttachment (Maybe Text)
+ Network.AWS.EC2.Types: vaState :: Lens' VolumeAttachment (Maybe VolumeAttachmentState)
- Network.AWS.EC2.Types: vcState :: Lens' VpnConnection (Maybe Text)
+ Network.AWS.EC2.Types: vcState :: Lens' VpnConnection (Maybe VpnState)
- Network.AWS.EC2.Types: vcType :: Lens' VpnConnection (Maybe Text)
+ Network.AWS.EC2.Types: vcType :: Lens' VpnConnection (Maybe GatewayType)
- Network.AWS.EC2.Types: vgState :: Lens' VpnGateway (Maybe Text)
+ Network.AWS.EC2.Types: vgState :: Lens' VpnGateway (Maybe VpnState)
- Network.AWS.EC2.Types: vgType :: Lens' VpnGateway (Maybe Text)
+ Network.AWS.EC2.Types: vgType :: Lens' VpnGateway (Maybe GatewayType)
- Network.AWS.EC2.Types: vpcInstanceTenancy :: Lens' Vpc (Maybe Text)
+ Network.AWS.EC2.Types: vpcInstanceTenancy :: Lens' Vpc (Maybe Tenancy)
- Network.AWS.EC2.Types: vpcState :: Lens' Vpc (Maybe Text)
+ Network.AWS.EC2.Types: vpcState :: Lens' Vpc (Maybe VpcState)
- Network.AWS.EC2.Types: vsdName :: Lens' VolumeStatusDetails (Maybe Text)
+ Network.AWS.EC2.Types: vsdName :: Lens' VolumeStatusDetails (Maybe VolumeStatusName)
- Network.AWS.EC2.Types: vsiStatus :: Lens' VolumeStatusInfo (Maybe Text)
+ Network.AWS.EC2.Types: vsiStatus :: Lens' VolumeStatusInfo (Maybe VolumeStatusInfoStatus)
- Network.AWS.EC2.Types: vsrSource :: Lens' VpnStaticRoute (Maybe Text)
+ Network.AWS.EC2.Types: vsrSource :: Lens' VpnStaticRoute (Maybe VpnStaticRouteSource)
- Network.AWS.EC2.Types: vsrState :: Lens' VpnStaticRoute (Maybe Text)
+ Network.AWS.EC2.Types: vsrState :: Lens' VpnStaticRoute (Maybe VpnState)
- Network.AWS.EC2.Types: vtStatus :: Lens' VgwTelemetry (Maybe Text)
+ Network.AWS.EC2.Types: vtStatus :: Lens' VgwTelemetry (Maybe TelemetryStatus)
Files
- amazonka-ec2.cabal +3/−3
- gen/Network/AWS/EC2/AllocateAddress.hs +8/−8
- gen/Network/AWS/EC2/AttachVolume.hs +4/−4
- gen/Network/AWS/EC2/CreateCustomerGateway.hs +5/−5
- gen/Network/AWS/EC2/CreateInstanceExportTask.hs +3/−3
- gen/Network/AWS/EC2/CreateKeyPair.hs +20/−17
- gen/Network/AWS/EC2/CreateNetworkAclEntry.hs +4/−4
- gen/Network/AWS/EC2/CreatePlacementGroup.hs +5/−5
- gen/Network/AWS/EC2/CreateSecurityGroup.hs +9/−8
- gen/Network/AWS/EC2/CreateSnapshot.hs +3/−3
- gen/Network/AWS/EC2/CreateVolume.hs +10/−10
- gen/Network/AWS/EC2/CreateVpc.hs +4/−4
- gen/Network/AWS/EC2/CreateVpnGateway.hs +5/−5
- gen/Network/AWS/EC2/DescribeAccountAttributes.hs +4/−4
- gen/Network/AWS/EC2/DescribeImageAttribute.hs +5/−5
- gen/Network/AWS/EC2/DescribeInstanceAttribute.hs +5/−5
- gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs +4/−4
- gen/Network/AWS/EC2/DescribeReservedInstances.hs +3/−3
- gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs +12/−12
- gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs +5/−5
- gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs +3/−3
- gen/Network/AWS/EC2/DescribeVolumeAttribute.hs +4/−4
- gen/Network/AWS/EC2/DescribeVpcAttribute.hs +4/−4
- gen/Network/AWS/EC2/DetachVolume.hs +4/−4
- gen/Network/AWS/EC2/ImportInstance.hs +4/−4
- gen/Network/AWS/EC2/ModifyInstanceAttribute.hs +3/−3
- gen/Network/AWS/EC2/ModifySnapshotAttribute.hs +3/−3
- gen/Network/AWS/EC2/RegisterImage.hs +3/−3
- gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs +4/−4
- gen/Network/AWS/EC2/ReportInstanceStatus.hs +8/−8
- gen/Network/AWS/EC2/RequestSpotInstances.hs +3/−3
- gen/Network/AWS/EC2/ResetImageAttribute.hs +5/−5
- gen/Network/AWS/EC2/ResetInstanceAttribute.hs +5/−5
- gen/Network/AWS/EC2/ResetSnapshotAttribute.hs +5/−5
- gen/Network/AWS/EC2/RunInstances.hs +6/−6
- gen/Network/AWS/EC2/Types.hs +12375/−12239
- src/Network/AWS/EC2/Internal.hs +15/−6
amazonka-ec2.cabal view
@@ -1,5 +1,5 @@ name: amazonka-ec2-version: 0.0.0+version: 0.0.1 synopsis: Amazon Elastic Compute Cloud SDK. homepage: https://github.com/brendanhay/amazonka license: OtherLicense@@ -204,5 +204,5 @@ Network.AWS.EC2.Internal build-depends:- amazonka-core- , base >= 4.7 && < 5+ amazonka-core == 0.0.1.*+ , base >= 4.7 && < 5
gen/Network/AWS/EC2/AllocateAddress.hs view
@@ -51,15 +51,15 @@ import qualified GHC.Exts data AllocateAddress = AllocateAddress- { _aaDomain :: Maybe Text+ { _aaDomain :: Maybe DomainType , _aaDryRun :: Maybe Bool- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'AllocateAddress' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'aaDomain' @::@ 'Maybe' 'Text'+-- * 'aaDomain' @::@ 'Maybe' 'DomainType' -- -- * 'aaDryRun' @::@ 'Maybe' 'Bool' --@@ -71,7 +71,7 @@ -- | Set to vpc to allocate the address for use with instances in a VPC. -- Default: The address is for use with instances in EC2-Classic.-aaDomain :: Lens' AllocateAddress (Maybe Text)+aaDomain :: Lens' AllocateAddress (Maybe DomainType) aaDomain = lens _aaDomain (\s a -> s { _aaDomain = a }) aaDryRun :: Lens' AllocateAddress (Maybe Bool)@@ -79,9 +79,9 @@ data AllocateAddressResponse = AllocateAddressResponse { _aarAllocationId :: Maybe Text- , _aarDomain :: Maybe Text+ , _aarDomain :: Maybe DomainType , _aarPublicIp :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'AllocateAddressResponse' constructor. --@@ -89,7 +89,7 @@ -- -- * 'aarAllocationId' @::@ 'Maybe' 'Text' ----- * 'aarDomain' @::@ 'Maybe' 'Text'+-- * 'aarDomain' @::@ 'Maybe' 'DomainType' -- -- * 'aarPublicIp' @::@ 'Maybe' 'Text' --@@ -107,7 +107,7 @@ -- | Indicates whether this Elastic IP address is for use with instances in -- EC2-Classic (standard) or instances in a VPC (vpc).-aarDomain :: Lens' AllocateAddressResponse (Maybe Text)+aarDomain :: Lens' AllocateAddressResponse (Maybe DomainType) aarDomain = lens _aarDomain (\s a -> s { _aarDomain = a }) -- | The Elastic IP address.
gen/Network/AWS/EC2/AttachVolume.hs view
@@ -124,9 +124,9 @@ , _avrDeleteOnTermination :: Maybe Bool , _avrDevice :: Maybe Text , _avrInstanceId :: Maybe Text- , _avrState :: Maybe Text+ , _avrState :: Maybe VolumeAttachmentState , _avrVolumeId :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'AttachVolumeResponse' constructor. --@@ -140,7 +140,7 @@ -- -- * 'avrInstanceId' @::@ 'Maybe' 'Text' ----- * 'avrState' @::@ 'Maybe' 'Text'+-- * 'avrState' @::@ 'Maybe' 'VolumeAttachmentState' -- -- * 'avrVolumeId' @::@ 'Maybe' 'Text' --@@ -173,7 +173,7 @@ avrInstanceId = lens _avrInstanceId (\s a -> s { _avrInstanceId = a }) -- | The attachment state of the volume.-avrState :: Lens' AttachVolumeResponse (Maybe Text)+avrState :: Lens' AttachVolumeResponse (Maybe VolumeAttachmentState) avrState = lens _avrState (\s a -> s { _avrState = a }) -- | The ID of the volume.
gen/Network/AWS/EC2/CreateCustomerGateway.hs view
@@ -63,8 +63,8 @@ { _ccgBgpAsn :: Int , _ccgDryRun :: Maybe Bool , _ccgPublicIp :: Text- , _ccgType :: Text- } deriving (Eq, Ord, Show)+ , _ccgType :: GatewayType+ } deriving (Eq, Show) -- | 'CreateCustomerGateway' constructor. --@@ -76,9 +76,9 @@ -- -- * 'ccgPublicIp' @::@ 'Text' ----- * 'ccgType' @::@ 'Text'+-- * 'ccgType' @::@ 'GatewayType' ---createCustomerGateway :: Text -- ^ 'ccgType'+createCustomerGateway :: GatewayType -- ^ 'ccgType' -> Text -- ^ 'ccgPublicIp' -> Int -- ^ 'ccgBgpAsn' -> CreateCustomerGateway@@ -103,7 +103,7 @@ ccgPublicIp = lens _ccgPublicIp (\s a -> s { _ccgPublicIp = a }) -- | The type of VPN connection that this customer gateway supports (ipsec.1).-ccgType :: Lens' CreateCustomerGateway Text+ccgType :: Lens' CreateCustomerGateway GatewayType ccgType = lens _ccgType (\s a -> s { _ccgType = a }) newtype CreateCustomerGatewayResponse = CreateCustomerGatewayResponse
gen/Network/AWS/EC2/CreateInstanceExportTask.hs view
@@ -55,7 +55,7 @@ { _cietDescription :: Maybe Text , _cietExportToS3Task :: Maybe ExportToS3TaskSpecification , _cietInstanceId :: Text- , _cietTargetEnvironment :: Maybe Text+ , _cietTargetEnvironment :: Maybe ExportEnvironment } deriving (Eq, Show) -- | 'CreateInstanceExportTask' constructor.@@ -68,7 +68,7 @@ -- -- * 'cietInstanceId' @::@ 'Text' ----- * 'cietTargetEnvironment' @::@ 'Maybe' 'Text'+-- * 'cietTargetEnvironment' @::@ 'Maybe' 'ExportEnvironment' -- createInstanceExportTask :: Text -- ^ 'cietInstanceId' -> CreateInstanceExportTask@@ -93,7 +93,7 @@ cietInstanceId = lens _cietInstanceId (\s a -> s { _cietInstanceId = a }) -- | The target virtualization environment.-cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe Text)+cietTargetEnvironment :: Lens' CreateInstanceExportTask (Maybe ExportEnvironment) cietTargetEnvironment = lens _cietTargetEnvironment (\s a -> s { _cietTargetEnvironment = a })
gen/Network/AWS/EC2/CreateKeyPair.hs view
@@ -84,39 +84,42 @@ ckpKeyName = lens _ckpKeyName (\s a -> s { _ckpKeyName = a }) data CreateKeyPairResponse = CreateKeyPairResponse- { _ckprKeyFingerprint :: Maybe Text- , _ckprKeyMaterial :: Maybe Text- , _ckprKeyName :: Maybe Text+ { _ckprKeyFingerprint :: Text+ , _ckprKeyMaterial :: Text+ , _ckprKeyName :: Text } deriving (Eq, Ord, Show) -- | 'CreateKeyPairResponse' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'ckprKeyFingerprint' @::@ 'Maybe' 'Text'+-- * 'ckprKeyFingerprint' @::@ 'Text' ----- * 'ckprKeyMaterial' @::@ 'Maybe' 'Text'+-- * 'ckprKeyMaterial' @::@ 'Text' ----- * 'ckprKeyName' @::@ 'Maybe' 'Text'+-- * 'ckprKeyName' @::@ 'Text' ---createKeyPairResponse :: CreateKeyPairResponse-createKeyPairResponse = CreateKeyPairResponse- { _ckprKeyName = Nothing- , _ckprKeyFingerprint = Nothing- , _ckprKeyMaterial = Nothing+createKeyPairResponse :: Text -- ^ 'ckprKeyName'+ -> Text -- ^ 'ckprKeyFingerprint'+ -> Text -- ^ 'ckprKeyMaterial'+ -> CreateKeyPairResponse+createKeyPairResponse p1 p2 p3 = CreateKeyPairResponse+ { _ckprKeyName = p1+ , _ckprKeyFingerprint = p2+ , _ckprKeyMaterial = p3 } -- | The SHA-1 digest of the DER encoded private key.-ckprKeyFingerprint :: Lens' CreateKeyPairResponse (Maybe Text)+ckprKeyFingerprint :: Lens' CreateKeyPairResponse Text ckprKeyFingerprint = lens _ckprKeyFingerprint (\s a -> s { _ckprKeyFingerprint = a }) -- | An unencrypted PEM encoded RSA private key.-ckprKeyMaterial :: Lens' CreateKeyPairResponse (Maybe Text)+ckprKeyMaterial :: Lens' CreateKeyPairResponse Text ckprKeyMaterial = lens _ckprKeyMaterial (\s a -> s { _ckprKeyMaterial = a }) -- | The name of the key pair.-ckprKeyName :: Lens' CreateKeyPairResponse (Maybe Text)+ckprKeyName :: Lens' CreateKeyPairResponse Text ckprKeyName = lens _ckprKeyName (\s a -> s { _ckprKeyName = a }) instance ToPath CreateKeyPair where@@ -139,6 +142,6 @@ instance FromXML CreateKeyPairResponse where parseXML x = CreateKeyPairResponse- <$> x .@? "keyFingerprint"- <*> x .@? "keyMaterial"- <*> x .@? "keyName"+ <$> x .@ "keyFingerprint"+ <*> x .@ "keyMaterial"+ <*> x .@ "keyName"
gen/Network/AWS/EC2/CreateNetworkAclEntry.hs view
@@ -71,7 +71,7 @@ , _cnaeNetworkAclId :: Text , _cnaePortRange :: Maybe PortRange , _cnaeProtocol :: Text- , _cnaeRuleAction :: Text+ , _cnaeRuleAction :: RuleAction , _cnaeRuleNumber :: Int } deriving (Eq, Show) @@ -93,14 +93,14 @@ -- -- * 'cnaeProtocol' @::@ 'Text' ----- * 'cnaeRuleAction' @::@ 'Text'+-- * 'cnaeRuleAction' @::@ 'RuleAction' -- -- * 'cnaeRuleNumber' @::@ 'Int' -- createNetworkAclEntry :: Text -- ^ 'cnaeNetworkAclId' -> Int -- ^ 'cnaeRuleNumber' -> Text -- ^ 'cnaeProtocol'- -> Text -- ^ 'cnaeRuleAction'+ -> RuleAction -- ^ 'cnaeRuleAction' -> Bool -- ^ 'cnaeEgress' -> Text -- ^ 'cnaeCidrBlock' -> CreateNetworkAclEntry@@ -147,7 +147,7 @@ cnaeProtocol = lens _cnaeProtocol (\s a -> s { _cnaeProtocol = a }) -- | Indicates whether to allow or deny the traffic that matches the rule.-cnaeRuleAction :: Lens' CreateNetworkAclEntry Text+cnaeRuleAction :: Lens' CreateNetworkAclEntry RuleAction cnaeRuleAction = lens _cnaeRuleAction (\s a -> s { _cnaeRuleAction = a }) -- | The rule number for the entry (for example, 100). ACL entries are
gen/Network/AWS/EC2/CreatePlacementGroup.hs view
@@ -51,8 +51,8 @@ data CreatePlacementGroup = CreatePlacementGroup { _cpgDryRun :: Maybe Bool , _cpgGroupName :: Text- , _cpgStrategy :: Text- } deriving (Eq, Ord, Show)+ , _cpgStrategy :: PlacementStrategy+ } deriving (Eq, Show) -- | 'CreatePlacementGroup' constructor. --@@ -62,10 +62,10 @@ -- -- * 'cpgGroupName' @::@ 'Text' ----- * 'cpgStrategy' @::@ 'Text'+-- * 'cpgStrategy' @::@ 'PlacementStrategy' -- createPlacementGroup :: Text -- ^ 'cpgGroupName'- -> Text -- ^ 'cpgStrategy'+ -> PlacementStrategy -- ^ 'cpgStrategy' -> CreatePlacementGroup createPlacementGroup p1 p2 = CreatePlacementGroup { _cpgGroupName = p1@@ -81,7 +81,7 @@ cpgGroupName = lens _cpgGroupName (\s a -> s { _cpgGroupName = a }) -- | The placement strategy.-cpgStrategy :: Lens' CreatePlacementGroup Text+cpgStrategy :: Lens' CreatePlacementGroup PlacementStrategy cpgStrategy = lens _cpgStrategy (\s a -> s { _cpgStrategy = a }) data CreatePlacementGroupResponse = CreatePlacementGroupResponse
gen/Network/AWS/EC2/CreateSecurityGroup.hs view
@@ -115,22 +115,23 @@ csgVpcId = lens _csgVpcId (\s a -> s { _csgVpcId = a }) newtype CreateSecurityGroupResponse = CreateSecurityGroupResponse- { _csgrGroupId :: Maybe Text- } deriving (Eq, Ord, Show, Monoid)+ { _csgrGroupId :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString) -- | 'CreateSecurityGroupResponse' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'csgrGroupId' @::@ 'Maybe' 'Text'+-- * 'csgrGroupId' @::@ 'Text' ---createSecurityGroupResponse :: CreateSecurityGroupResponse-createSecurityGroupResponse = CreateSecurityGroupResponse- { _csgrGroupId = Nothing+createSecurityGroupResponse :: Text -- ^ 'csgrGroupId'+ -> CreateSecurityGroupResponse+createSecurityGroupResponse p1 = CreateSecurityGroupResponse+ { _csgrGroupId = p1 } -- | The ID of the security group.-csgrGroupId :: Lens' CreateSecurityGroupResponse (Maybe Text)+csgrGroupId :: Lens' CreateSecurityGroupResponse Text csgrGroupId = lens _csgrGroupId (\s a -> s { _csgrGroupId = a }) instance ToPath CreateSecurityGroup where@@ -155,4 +156,4 @@ instance FromXML CreateSecurityGroupResponse where parseXML x = CreateSecurityGroupResponse- <$> x .@? "groupId"+ <$> x .@ "groupId"
gen/Network/AWS/EC2/CreateSnapshot.hs view
@@ -120,7 +120,7 @@ , _csr1Progress :: Maybe Text , _csr1SnapshotId :: Maybe Text , _csr1StartTime :: Maybe RFC822- , _csr1State :: Maybe Text+ , _csr1State :: Maybe SnapshotState , _csr1Tags :: List "item" Tag , _csr1VolumeId :: Maybe Text , _csr1VolumeSize :: Maybe Int@@ -144,7 +144,7 @@ -- -- * 'csr1StartTime' @::@ 'Maybe' 'UTCTime' ----- * 'csr1State' @::@ 'Maybe' 'Text'+-- * 'csr1State' @::@ 'Maybe' 'SnapshotState' -- -- * 'csr1Tags' @::@ ['Tag'] --@@ -197,7 +197,7 @@ csr1StartTime = lens _csr1StartTime (\s a -> s { _csr1StartTime = a }) . mapping _Time -- | The snapshot state.-csr1State :: Lens' CreateSnapshotResponse (Maybe Text)+csr1State :: Lens' CreateSnapshotResponse (Maybe SnapshotState) csr1State = lens _csr1State (\s a -> s { _csr1State = a }) -- | Any tags assigned to the snapshot.
gen/Network/AWS/EC2/CreateVolume.hs view
@@ -78,8 +78,8 @@ , _cv1Iops :: Maybe Int , _cv1Size :: Maybe Int , _cv1SnapshotId :: Maybe Text- , _cv1VolumeType :: Maybe Text- } deriving (Eq, Ord, Show)+ , _cv1VolumeType :: Maybe VolumeType+ } deriving (Eq, Show) -- | 'CreateVolume' constructor. --@@ -97,7 +97,7 @@ -- -- * 'cv1SnapshotId' @::@ 'Maybe' 'Text' ----- * 'cv1VolumeType' @::@ 'Maybe' 'Text'+-- * 'cv1VolumeType' @::@ 'Maybe' 'VolumeType' -- createVolume :: Text -- ^ 'cv1AvailabilityZone' -> CreateVolume@@ -144,7 +144,7 @@ -- | The volume type. This can be gp2 for General Purpose (SSD) volumes, io1 -- for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes. -- Default: standard.-cv1VolumeType :: Lens' CreateVolume (Maybe Text)+cv1VolumeType :: Lens' CreateVolume (Maybe VolumeType) cv1VolumeType = lens _cv1VolumeType (\s a -> s { _cv1VolumeType = a }) data CreateVolumeResponse = CreateVolumeResponse@@ -155,10 +155,10 @@ , _cvrIops :: Maybe Int , _cvrSize :: Maybe Int , _cvrSnapshotId :: Maybe Text- , _cvrState :: Maybe Text+ , _cvrState :: Maybe VolumeState , _cvrTags :: List "item" Tag , _cvrVolumeId :: Maybe Text- , _cvrVolumeType :: Maybe Text+ , _cvrVolumeType :: Maybe VolumeType } deriving (Eq, Show) -- | 'CreateVolumeResponse' constructor.@@ -179,13 +179,13 @@ -- -- * 'cvrSnapshotId' @::@ 'Maybe' 'Text' ----- * 'cvrState' @::@ 'Maybe' 'Text'+-- * 'cvrState' @::@ 'Maybe' 'VolumeState' -- -- * 'cvrTags' @::@ ['Tag'] -- -- * 'cvrVolumeId' @::@ 'Maybe' 'Text' ----- * 'cvrVolumeType' @::@ 'Maybe' 'Text'+-- * 'cvrVolumeType' @::@ 'Maybe' 'VolumeType' -- createVolumeResponse :: CreateVolumeResponse createVolumeResponse = CreateVolumeResponse@@ -241,7 +241,7 @@ cvrSnapshotId = lens _cvrSnapshotId (\s a -> s { _cvrSnapshotId = a }) -- | The volume state.-cvrState :: Lens' CreateVolumeResponse (Maybe Text)+cvrState :: Lens' CreateVolumeResponse (Maybe VolumeState) cvrState = lens _cvrState (\s a -> s { _cvrState = a }) -- | Any tags assigned to the volume.@@ -254,7 +254,7 @@ -- | The volume type. This can be gp2 for General Purpose (SSD) volumes, io1 -- for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.-cvrVolumeType :: Lens' CreateVolumeResponse (Maybe Text)+cvrVolumeType :: Lens' CreateVolumeResponse (Maybe VolumeType) cvrVolumeType = lens _cvrVolumeType (\s a -> s { _cvrVolumeType = a }) instance ToPath CreateVolume where
gen/Network/AWS/EC2/CreateVpc.hs view
@@ -57,8 +57,8 @@ data CreateVpc = CreateVpc { _cvCidrBlock :: Text , _cvDryRun :: Maybe Bool- , _cvInstanceTenancy :: Maybe Text- } deriving (Eq, Ord, Show)+ , _cvInstanceTenancy :: Maybe Tenancy+ } deriving (Eq, Show) -- | 'CreateVpc' constructor. --@@ -68,7 +68,7 @@ -- -- * 'cvDryRun' @::@ 'Maybe' 'Bool' ----- * 'cvInstanceTenancy' @::@ 'Maybe' 'Text'+-- * 'cvInstanceTenancy' @::@ 'Maybe' 'Tenancy' -- createVpc :: Text -- ^ 'cvCidrBlock' -> CreateVpc@@ -92,7 +92,7 @@ -- as dedicated tenancy instances regardless of the tenancy assigned to the -- instance at launch. Dedicated tenancy instances run on single-tenant -- hardware. Default: default.-cvInstanceTenancy :: Lens' CreateVpc (Maybe Text)+cvInstanceTenancy :: Lens' CreateVpc (Maybe Tenancy) cvInstanceTenancy = lens _cvInstanceTenancy (\s a -> s { _cvInstanceTenancy = a })
gen/Network/AWS/EC2/CreateVpnGateway.hs view
@@ -54,8 +54,8 @@ data CreateVpnGateway = CreateVpnGateway { _cvgAvailabilityZone :: Maybe Text , _cvgDryRun :: Maybe Bool- , _cvgType :: Text- } deriving (Eq, Ord, Show)+ , _cvgType :: GatewayType+ } deriving (Eq, Show) -- | 'CreateVpnGateway' constructor. --@@ -65,9 +65,9 @@ -- -- * 'cvgDryRun' @::@ 'Maybe' 'Bool' ----- * 'cvgType' @::@ 'Text'+-- * 'cvgType' @::@ 'GatewayType' ---createVpnGateway :: Text -- ^ 'cvgType'+createVpnGateway :: GatewayType -- ^ 'cvgType' -> CreateVpnGateway createVpnGateway p1 = CreateVpnGateway { _cvgType = p1@@ -84,7 +84,7 @@ cvgDryRun = lens _cvgDryRun (\s a -> s { _cvgDryRun = a }) -- | The type of VPN connection this virtual private gateway supports.-cvgType :: Lens' CreateVpnGateway Text+cvgType :: Lens' CreateVpnGateway GatewayType cvgType = lens _cvgType (\s a -> s { _cvgType = a }) newtype CreateVpnGatewayResponse = CreateVpnGatewayResponse
gen/Network/AWS/EC2/DescribeAccountAttributes.hs view
@@ -47,15 +47,15 @@ import qualified GHC.Exts data DescribeAccountAttributes = DescribeAccountAttributes- { _daaAttributeNames :: List "attributeName" Text+ { _daaAttributeNames :: List "attributeName" AccountAttributeName , _daaDryRun :: Maybe Bool- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeAccountAttributes' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'daaAttributeNames' @::@ ['Text']+-- * 'daaAttributeNames' @::@ ['AccountAttributeName'] -- -- * 'daaDryRun' @::@ 'Maybe' 'Bool' --@@ -66,7 +66,7 @@ } -- | One or more account attribute names.-daaAttributeNames :: Lens' DescribeAccountAttributes [Text]+daaAttributeNames :: Lens' DescribeAccountAttributes [AccountAttributeName] daaAttributeNames = lens _daaAttributeNames (\s a -> s { _daaAttributeNames = a }) . _List
gen/Network/AWS/EC2/DescribeImageAttribute.hs view
@@ -56,23 +56,23 @@ import qualified GHC.Exts data DescribeImageAttribute = DescribeImageAttribute- { _dia1Attribute :: Text+ { _dia1Attribute :: ImageAttributeName , _dia1DryRun :: Maybe Bool , _dia1ImageId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeImageAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'dia1Attribute' @::@ 'Text'+-- * 'dia1Attribute' @::@ 'ImageAttributeName' -- -- * 'dia1DryRun' @::@ 'Maybe' 'Bool' -- -- * 'dia1ImageId' @::@ 'Text' -- describeImageAttribute :: Text -- ^ 'dia1ImageId'- -> Text -- ^ 'dia1Attribute'+ -> ImageAttributeName -- ^ 'dia1Attribute' -> DescribeImageAttribute describeImageAttribute p1 p2 = DescribeImageAttribute { _dia1ImageId = p1@@ -81,7 +81,7 @@ } -- | The AMI attribute.-dia1Attribute :: Lens' DescribeImageAttribute Text+dia1Attribute :: Lens' DescribeImageAttribute ImageAttributeName dia1Attribute = lens _dia1Attribute (\s a -> s { _dia1Attribute = a }) dia1DryRun :: Lens' DescribeImageAttribute (Maybe Bool)
gen/Network/AWS/EC2/DescribeInstanceAttribute.hs view
@@ -65,23 +65,23 @@ import qualified GHC.Exts data DescribeInstanceAttribute = DescribeInstanceAttribute- { _diaAttribute :: Text+ { _diaAttribute :: InstanceAttributeName , _diaDryRun :: Maybe Bool , _diaInstanceId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeInstanceAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'diaAttribute' @::@ 'Text'+-- * 'diaAttribute' @::@ 'InstanceAttributeName' -- -- * 'diaDryRun' @::@ 'Maybe' 'Bool' -- -- * 'diaInstanceId' @::@ 'Text' -- describeInstanceAttribute :: Text -- ^ 'diaInstanceId'- -> Text -- ^ 'diaAttribute'+ -> InstanceAttributeName -- ^ 'diaAttribute' -> DescribeInstanceAttribute describeInstanceAttribute p1 p2 = DescribeInstanceAttribute { _diaInstanceId = p1@@ -90,7 +90,7 @@ } -- | The instance attribute.-diaAttribute :: Lens' DescribeInstanceAttribute Text+diaAttribute :: Lens' DescribeInstanceAttribute InstanceAttributeName diaAttribute = lens _diaAttribute (\s a -> s { _diaAttribute = a }) diaDryRun :: Lens' DescribeInstanceAttribute (Maybe Bool)
gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs view
@@ -53,16 +53,16 @@ import qualified GHC.Exts data DescribeNetworkInterfaceAttribute = DescribeNetworkInterfaceAttribute- { _dniaAttribute :: Maybe Text+ { _dniaAttribute :: Maybe NetworkInterfaceAttribute , _dniaDryRun :: Maybe Bool , _dniaNetworkInterfaceId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeNetworkInterfaceAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'dniaAttribute' @::@ 'Maybe' 'Text'+-- * 'dniaAttribute' @::@ 'Maybe' 'NetworkInterfaceAttribute' -- -- * 'dniaDryRun' @::@ 'Maybe' 'Bool' --@@ -77,7 +77,7 @@ } -- | The attribute of the network interface.-dniaAttribute :: Lens' DescribeNetworkInterfaceAttribute (Maybe Text)+dniaAttribute :: Lens' DescribeNetworkInterfaceAttribute (Maybe NetworkInterfaceAttribute) dniaAttribute = lens _dniaAttribute (\s a -> s { _dniaAttribute = a }) dniaDryRun :: Lens' DescribeNetworkInterfaceAttribute (Maybe Bool)
gen/Network/AWS/EC2/DescribeReservedInstances.hs view
@@ -53,7 +53,7 @@ data DescribeReservedInstances = DescribeReservedInstances { _driDryRun :: Maybe Bool , _driFilters :: List "Filter" Filter- , _driOfferingType :: Maybe Text+ , _driOfferingType :: Maybe OfferingTypeValues , _driReservedInstancesIds :: List "ReservedInstancesId" Text } deriving (Eq, Show) @@ -65,7 +65,7 @@ -- -- * 'driFilters' @::@ ['Filter'] ----- * 'driOfferingType' @::@ 'Maybe' 'Text'+-- * 'driOfferingType' @::@ 'Maybe' 'OfferingTypeValues' -- -- * 'driReservedInstancesIds' @::@ ['Text'] --@@ -109,7 +109,7 @@ -- | The Reserved Instance offering type. If you are using tools that predate -- the 2011-11-01 API version, you only have access to the Medium -- Utilization Reserved Instance offering type.-driOfferingType :: Lens' DescribeReservedInstances (Maybe Text)+driOfferingType :: Lens' DescribeReservedInstances (Maybe OfferingTypeValues) driOfferingType = lens _driOfferingType (\s a -> s { _driOfferingType = a }) -- | One or more Reserved Instance IDs. Default: Describes all your Reserved
gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs view
@@ -69,15 +69,15 @@ , _drioDryRun :: Maybe Bool , _drioFilters :: List "Filter" Filter , _drioIncludeMarketplace :: Maybe Bool- , _drioInstanceTenancy :: Maybe Text- , _drioInstanceType :: Maybe Text+ , _drioInstanceTenancy :: Maybe Tenancy+ , _drioInstanceType :: Maybe InstanceType , _drioMaxDuration :: Maybe Integer , _drioMaxInstanceCount :: Maybe Int , _drioMaxResults :: Maybe Int , _drioMinDuration :: Maybe Integer , _drioNextToken :: Maybe Text- , _drioOfferingType :: Maybe Text- , _drioProductDescription :: Maybe Text+ , _drioOfferingType :: Maybe OfferingTypeValues+ , _drioProductDescription :: Maybe RIProductDescription , _drioReservedInstancesOfferingIds :: List "ReservedInstancesOfferingId" Text } deriving (Eq, Show) @@ -93,9 +93,9 @@ -- -- * 'drioIncludeMarketplace' @::@ 'Maybe' 'Bool' ----- * 'drioInstanceTenancy' @::@ 'Maybe' 'Text'+-- * 'drioInstanceTenancy' @::@ 'Maybe' 'Tenancy' ----- * 'drioInstanceType' @::@ 'Maybe' 'Text'+-- * 'drioInstanceType' @::@ 'Maybe' 'InstanceType' -- -- * 'drioMaxDuration' @::@ 'Maybe' 'Integer' --@@ -107,9 +107,9 @@ -- -- * 'drioNextToken' @::@ 'Maybe' 'Text' ----- * 'drioOfferingType' @::@ 'Maybe' 'Text'+-- * 'drioOfferingType' @::@ 'Maybe' 'OfferingTypeValues' ----- * 'drioProductDescription' @::@ 'Maybe' 'Text'+-- * 'drioProductDescription' @::@ 'Maybe' 'RIProductDescription' -- -- * 'drioReservedInstancesOfferingIds' @::@ ['Text'] --@@ -163,14 +163,14 @@ -- | The tenancy of the Reserved Instance offering. A Reserved Instance with -- dedicated tenancy runs on single-tenant hardware and can only be launched -- within a VPC. Default: default.-drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Text)+drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Tenancy) drioInstanceTenancy = lens _drioInstanceTenancy (\s a -> s { _drioInstanceTenancy = a }) -- | The instance type on which the Reserved Instance can be used. For more -- information, see Instance Types in the Amazon Elastic Compute Cloud User -- Guide.-drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe Text)+drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe InstanceType) drioInstanceType = lens _drioInstanceType (\s a -> s { _drioInstanceType = a }) -- | The maximum duration (in seconds) to filter when searching for offerings.@@ -201,12 +201,12 @@ -- | The Reserved Instance offering type. If you are using tools that predate -- the 2011-11-01 API version, you only have access to the Medium -- Utilization Reserved Instance offering type.-drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe Text)+drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe OfferingTypeValues) drioOfferingType = lens _drioOfferingType (\s a -> s { _drioOfferingType = a }) -- | The Reserved Instance description. Instances that include (Amazon VPC) in -- the description are for use with Amazon VPC.-drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe Text)+drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe RIProductDescription) drioProductDescription = lens _drioProductDescription (\s a -> s { _drioProductDescription = a })
gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs view
@@ -53,23 +53,23 @@ import qualified GHC.Exts data DescribeSnapshotAttribute = DescribeSnapshotAttribute- { _dsaAttribute :: Text+ { _dsaAttribute :: SnapshotAttributeName , _dsaDryRun :: Maybe Bool , _dsaSnapshotId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeSnapshotAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'dsaAttribute' @::@ 'Text'+-- * 'dsaAttribute' @::@ 'SnapshotAttributeName' -- -- * 'dsaDryRun' @::@ 'Maybe' 'Bool' -- -- * 'dsaSnapshotId' @::@ 'Text' -- describeSnapshotAttribute :: Text -- ^ 'dsaSnapshotId'- -> Text -- ^ 'dsaAttribute'+ -> SnapshotAttributeName -- ^ 'dsaAttribute' -> DescribeSnapshotAttribute describeSnapshotAttribute p1 p2 = DescribeSnapshotAttribute { _dsaSnapshotId = p1@@ -78,7 +78,7 @@ } -- | The snapshot attribute you would like to view.-dsaAttribute :: Lens' DescribeSnapshotAttribute Text+dsaAttribute :: Lens' DescribeSnapshotAttribute SnapshotAttributeName dsaAttribute = lens _dsaAttribute (\s a -> s { _dsaAttribute = a }) dsaDryRun :: Lens' DescribeSnapshotAttribute (Maybe Bool)
gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs view
@@ -76,7 +76,7 @@ , _dsphDryRun :: Maybe Bool , _dsphEndTime :: Maybe RFC822 , _dsphFilters :: List "Filter" Filter- , _dsphInstanceTypes :: List "InstanceType" Text+ , _dsphInstanceTypes :: List "InstanceType" InstanceType , _dsphMaxResults :: Maybe Int , _dsphNextToken :: Maybe Text , _dsphProductDescriptions :: List "ProductDescription" Text@@ -95,7 +95,7 @@ -- -- * 'dsphFilters' @::@ ['Filter'] ----- * 'dsphInstanceTypes' @::@ ['Text']+-- * 'dsphInstanceTypes' @::@ ['InstanceType'] -- -- * 'dsphMaxResults' @::@ 'Maybe' 'Int' --@@ -144,7 +144,7 @@ dsphFilters = lens _dsphFilters (\s a -> s { _dsphFilters = a }) . _List -- | One or more instance types.-dsphInstanceTypes :: Lens' DescribeSpotPriceHistory [Text]+dsphInstanceTypes :: Lens' DescribeSpotPriceHistory [InstanceType] dsphInstanceTypes = lens _dsphInstanceTypes (\s a -> s { _dsphInstanceTypes = a }) . _List
gen/Network/AWS/EC2/DescribeVolumeAttribute.hs view
@@ -53,16 +53,16 @@ import qualified GHC.Exts data DescribeVolumeAttribute = DescribeVolumeAttribute- { _dvaAttribute :: Maybe Text+ { _dvaAttribute :: Maybe VolumeAttributeName , _dvaDryRun :: Maybe Bool , _dvaVolumeId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeVolumeAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'dvaAttribute' @::@ 'Maybe' 'Text'+-- * 'dvaAttribute' @::@ 'Maybe' 'VolumeAttributeName' -- -- * 'dvaDryRun' @::@ 'Maybe' 'Bool' --@@ -77,7 +77,7 @@ } -- | The instance attribute.-dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe Text)+dvaAttribute :: Lens' DescribeVolumeAttribute (Maybe VolumeAttributeName) dvaAttribute = lens _dvaAttribute (\s a -> s { _dvaAttribute = a }) dvaDryRun :: Lens' DescribeVolumeAttribute (Maybe Bool)
gen/Network/AWS/EC2/DescribeVpcAttribute.hs view
@@ -51,16 +51,16 @@ import qualified GHC.Exts data DescribeVpcAttribute = DescribeVpcAttribute- { _dva1Attribute :: Maybe Text+ { _dva1Attribute :: Maybe VpcAttributeName , _dva1DryRun :: Maybe Bool , _dva1VpcId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DescribeVpcAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'dva1Attribute' @::@ 'Maybe' 'Text'+-- * 'dva1Attribute' @::@ 'Maybe' 'VpcAttributeName' -- -- * 'dva1DryRun' @::@ 'Maybe' 'Bool' --@@ -75,7 +75,7 @@ } -- | The VPC attribute.-dva1Attribute :: Lens' DescribeVpcAttribute (Maybe Text)+dva1Attribute :: Lens' DescribeVpcAttribute (Maybe VpcAttributeName) dva1Attribute = lens _dva1Attribute (\s a -> s { _dva1Attribute = a }) dva1DryRun :: Lens' DescribeVpcAttribute (Maybe Bool)
gen/Network/AWS/EC2/DetachVolume.hs view
@@ -125,9 +125,9 @@ , _dvrDeleteOnTermination :: Maybe Bool , _dvrDevice :: Maybe Text , _dvrInstanceId :: Maybe Text- , _dvrState :: Maybe Text+ , _dvrState :: Maybe VolumeAttachmentState , _dvrVolumeId :: Maybe Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'DetachVolumeResponse' constructor. --@@ -141,7 +141,7 @@ -- -- * 'dvrInstanceId' @::@ 'Maybe' 'Text' ----- * 'dvrState' @::@ 'Maybe' 'Text'+-- * 'dvrState' @::@ 'Maybe' 'VolumeAttachmentState' -- -- * 'dvrVolumeId' @::@ 'Maybe' 'Text' --@@ -174,7 +174,7 @@ dvrInstanceId = lens _dvrInstanceId (\s a -> s { _dvrInstanceId = a }) -- | The attachment state of the volume.-dvrState :: Lens' DetachVolumeResponse (Maybe Text)+dvrState :: Lens' DetachVolumeResponse (Maybe VolumeAttachmentState) dvrState = lens _dvrState (\s a -> s { _dvrState = a }) -- | The ID of the volume.
gen/Network/AWS/EC2/ImportInstance.hs view
@@ -58,7 +58,7 @@ , _iiDiskImages :: List "diskImage" DiskImage , _iiDryRun :: Maybe Bool , _iiLaunchSpecification :: Maybe ImportInstanceLaunchSpecification- , _iiPlatform :: Text+ , _iiPlatform :: PlatformValues } deriving (Eq, Show) -- | 'ImportInstance' constructor.@@ -73,9 +73,9 @@ -- -- * 'iiLaunchSpecification' @::@ 'Maybe' 'ImportInstanceLaunchSpecification' ----- * 'iiPlatform' @::@ 'Text'+-- * 'iiPlatform' @::@ 'PlatformValues' ---importInstance :: Text -- ^ 'iiPlatform'+importInstance :: PlatformValues -- ^ 'iiPlatform' -> ImportInstance importInstance p1 = ImportInstance { _iiPlatform = p1@@ -101,7 +101,7 @@ lens _iiLaunchSpecification (\s a -> s { _iiLaunchSpecification = a }) -- | The instance operating system.-iiPlatform :: Lens' ImportInstance Text+iiPlatform :: Lens' ImportInstance PlatformValues iiPlatform = lens _iiPlatform (\s a -> s { _iiPlatform = a }) newtype ImportInstanceResponse = ImportInstanceResponse
gen/Network/AWS/EC2/ModifyInstanceAttribute.hs view
@@ -61,7 +61,7 @@ import qualified GHC.Exts data ModifyInstanceAttribute = ModifyInstanceAttribute- { _mia1Attribute :: Maybe Text+ { _mia1Attribute :: Maybe InstanceAttributeName , _mia1BlockDeviceMappings :: List "item" InstanceBlockDeviceMappingSpecification , _mia1DisableApiTermination :: Maybe AttributeBooleanValue , _mia1DryRun :: Maybe Bool@@ -82,7 +82,7 @@ -- -- The fields accessible through corresponding lenses are: ----- * 'mia1Attribute' @::@ 'Maybe' 'Text'+-- * 'mia1Attribute' @::@ 'Maybe' 'InstanceAttributeName' -- -- * 'mia1BlockDeviceMappings' @::@ ['InstanceBlockDeviceMappingSpecification'] --@@ -133,7 +133,7 @@ } -- | The name of the attribute.-mia1Attribute :: Lens' ModifyInstanceAttribute (Maybe Text)+mia1Attribute :: Lens' ModifyInstanceAttribute (Maybe InstanceAttributeName) mia1Attribute = lens _mia1Attribute (\s a -> s { _mia1Attribute = a }) -- | Modifies the DeleteOnTermination attribute for volumes that are currently
gen/Network/AWS/EC2/ModifySnapshotAttribute.hs view
@@ -55,7 +55,7 @@ import qualified GHC.Exts data ModifySnapshotAttribute = ModifySnapshotAttribute- { _msaAttribute :: Maybe Text+ { _msaAttribute :: Maybe SnapshotAttributeName , _msaCreateVolumePermission :: Maybe CreateVolumePermissionModifications , _msaDryRun :: Maybe Bool , _msaGroupNames :: List "GroupName" Text@@ -68,7 +68,7 @@ -- -- The fields accessible through corresponding lenses are: ----- * 'msaAttribute' @::@ 'Maybe' 'Text'+-- * 'msaAttribute' @::@ 'Maybe' 'SnapshotAttributeName' -- -- * 'msaCreateVolumePermission' @::@ 'Maybe' 'CreateVolumePermissionModifications' --@@ -95,7 +95,7 @@ } -- | The snapshot attribute to modify.-msaAttribute :: Lens' ModifySnapshotAttribute (Maybe Text)+msaAttribute :: Lens' ModifySnapshotAttribute (Maybe SnapshotAttributeName) msaAttribute = lens _msaAttribute (\s a -> s { _msaAttribute = a }) -- | A JSON representation of the snapshot attribute modification.
gen/Network/AWS/EC2/RegisterImage.hs view
@@ -65,7 +65,7 @@ import qualified GHC.Exts data RegisterImage = RegisterImage- { _ri1Architecture :: Maybe Text+ { _ri1Architecture :: Maybe ArchitectureValues , _ri1BlockDeviceMappings :: List "BlockDeviceMapping" BlockDeviceMapping , _ri1Description :: Maybe Text , _ri1DryRun :: Maybe Bool@@ -82,7 +82,7 @@ -- -- The fields accessible through corresponding lenses are: ----- * 'ri1Architecture' @::@ 'Maybe' 'Text'+-- * 'ri1Architecture' @::@ 'Maybe' 'ArchitectureValues' -- -- * 'ri1BlockDeviceMappings' @::@ ['BlockDeviceMapping'] --@@ -123,7 +123,7 @@ -- | The architecture of the AMI. Default: For Amazon EBS-backed AMIs, i386. -- For instance store-backed AMIs, the architecture specified in the -- manifest file.-ri1Architecture :: Lens' RegisterImage (Maybe Text)+ri1Architecture :: Lens' RegisterImage (Maybe ArchitectureValues) ri1Architecture = lens _ri1Architecture (\s a -> s { _ri1Architecture = a }) -- | One or more block device mapping entries.
gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs view
@@ -61,7 +61,7 @@ , _rnaeNetworkAclId :: Text , _rnaePortRange :: Maybe PortRange , _rnaeProtocol :: Text- , _rnaeRuleAction :: Text+ , _rnaeRuleAction :: RuleAction , _rnaeRuleNumber :: Int } deriving (Eq, Show) @@ -83,14 +83,14 @@ -- -- * 'rnaeProtocol' @::@ 'Text' ----- * 'rnaeRuleAction' @::@ 'Text'+-- * 'rnaeRuleAction' @::@ 'RuleAction' -- -- * 'rnaeRuleNumber' @::@ 'Int' -- replaceNetworkAclEntry :: Text -- ^ 'rnaeNetworkAclId' -> Int -- ^ 'rnaeRuleNumber' -> Text -- ^ 'rnaeProtocol'- -> Text -- ^ 'rnaeRuleAction'+ -> RuleAction -- ^ 'rnaeRuleAction' -> Bool -- ^ 'rnaeEgress' -> Text -- ^ 'rnaeCidrBlock' -> ReplaceNetworkAclEntry@@ -137,7 +137,7 @@ rnaeProtocol = lens _rnaeProtocol (\s a -> s { _rnaeProtocol = a }) -- | Indicates whether to allow or deny the traffic that matches the rule.-rnaeRuleAction :: Lens' ReplaceNetworkAclEntry Text+rnaeRuleAction :: Lens' ReplaceNetworkAclEntry RuleAction rnaeRuleAction = lens _rnaeRuleAction (\s a -> s { _rnaeRuleAction = a }) -- | The rule number of the entry to replace.
gen/Network/AWS/EC2/ReportInstanceStatus.hs view
@@ -60,10 +60,10 @@ , _risDryRun :: Maybe Bool , _risEndTime :: Maybe RFC822 , _risInstances :: List "InstanceId" Text- , _risReasonCodes :: List "item" Text+ , _risReasonCodes :: List "item" ReportInstanceReasonCodes , _risStartTime :: Maybe RFC822- , _risStatus :: Text- } deriving (Eq, Ord, Show)+ , _risStatus :: ReportStatusType+ } deriving (Eq, Show) -- | 'ReportInstanceStatus' constructor. --@@ -77,13 +77,13 @@ -- -- * 'risInstances' @::@ ['Text'] ----- * 'risReasonCodes' @::@ ['Text']+-- * 'risReasonCodes' @::@ ['ReportInstanceReasonCodes'] -- -- * 'risStartTime' @::@ 'Maybe' 'UTCTime' ----- * 'risStatus' @::@ 'Text'+-- * 'risStatus' @::@ 'ReportStatusType' ---reportInstanceStatus :: Text -- ^ 'risStatus'+reportInstanceStatus :: ReportStatusType -- ^ 'risStatus' -> ReportInstanceStatus reportInstanceStatus p1 = ReportInstanceStatus { _risStatus = p1@@ -122,7 +122,7 @@ -- which I believe are related to an EBS volume. performance-other: My -- instance is experiencing performance problems. other: [explain using the -- description parameter].-risReasonCodes :: Lens' ReportInstanceStatus [Text]+risReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes] risReasonCodes = lens _risReasonCodes (\s a -> s { _risReasonCodes = a }) . _List -- | The time at which the reported instance health state began.@@ -130,7 +130,7 @@ risStartTime = lens _risStartTime (\s a -> s { _risStartTime = a }) . mapping _Time -- | The status of all instances listed.-risStatus :: Lens' ReportInstanceStatus Text+risStatus :: Lens' ReportInstanceStatus ReportStatusType risStatus = lens _risStatus (\s a -> s { _risStatus = a }) data ReportInstanceStatusResponse = ReportInstanceStatusResponse
gen/Network/AWS/EC2/RequestSpotInstances.hs view
@@ -66,7 +66,7 @@ , _rsiLaunchGroup :: Maybe Text , _rsiLaunchSpecification :: Maybe RequestSpotLaunchSpecification , _rsiSpotPrice :: Text- , _rsiType :: Maybe Text+ , _rsiType :: Maybe SpotInstanceType , _rsiValidFrom :: Maybe RFC822 , _rsiValidUntil :: Maybe RFC822 } deriving (Eq, Show)@@ -87,7 +87,7 @@ -- -- * 'rsiSpotPrice' @::@ 'Text' ----- * 'rsiType' @::@ 'Maybe' 'Text'+-- * 'rsiType' @::@ 'Maybe' 'SpotInstanceType' -- -- * 'rsiValidFrom' @::@ 'Maybe' 'UTCTime' --@@ -152,7 +152,7 @@ rsiSpotPrice = lens _rsiSpotPrice (\s a -> s { _rsiSpotPrice = a }) -- | The Spot Instance request type. Default: one-time.-rsiType :: Lens' RequestSpotInstances (Maybe Text)+rsiType :: Lens' RequestSpotInstances (Maybe SpotInstanceType) rsiType = lens _rsiType (\s a -> s { _rsiType = a }) -- | The start date of the request. If this is a one-time request, the request
gen/Network/AWS/EC2/ResetImageAttribute.hs view
@@ -46,23 +46,23 @@ import qualified GHC.Exts data ResetImageAttribute = ResetImageAttribute- { _ria1Attribute :: Text+ { _ria1Attribute :: ResetImageAttributeName , _ria1DryRun :: Maybe Bool , _ria1ImageId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'ResetImageAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'ria1Attribute' @::@ 'Text'+-- * 'ria1Attribute' @::@ 'ResetImageAttributeName' -- -- * 'ria1DryRun' @::@ 'Maybe' 'Bool' -- -- * 'ria1ImageId' @::@ 'Text' -- resetImageAttribute :: Text -- ^ 'ria1ImageId'- -> Text -- ^ 'ria1Attribute'+ -> ResetImageAttributeName -- ^ 'ria1Attribute' -> ResetImageAttribute resetImageAttribute p1 p2 = ResetImageAttribute { _ria1ImageId = p1@@ -72,7 +72,7 @@ -- | The attribute to reset (currently you can only reset the launch -- permission attribute).-ria1Attribute :: Lens' ResetImageAttribute Text+ria1Attribute :: Lens' ResetImageAttribute ResetImageAttributeName ria1Attribute = lens _ria1Attribute (\s a -> s { _ria1Attribute = a }) ria1DryRun :: Lens' ResetImageAttribute (Maybe Bool)
gen/Network/AWS/EC2/ResetInstanceAttribute.hs view
@@ -53,23 +53,23 @@ import qualified GHC.Exts data ResetInstanceAttribute = ResetInstanceAttribute- { _riaAttribute :: Text+ { _riaAttribute :: InstanceAttributeName , _riaDryRun :: Maybe Bool , _riaInstanceId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'ResetInstanceAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'riaAttribute' @::@ 'Text'+-- * 'riaAttribute' @::@ 'InstanceAttributeName' -- -- * 'riaDryRun' @::@ 'Maybe' 'Bool' -- -- * 'riaInstanceId' @::@ 'Text' -- resetInstanceAttribute :: Text -- ^ 'riaInstanceId'- -> Text -- ^ 'riaAttribute'+ -> InstanceAttributeName -- ^ 'riaAttribute' -> ResetInstanceAttribute resetInstanceAttribute p1 p2 = ResetInstanceAttribute { _riaInstanceId = p1@@ -78,7 +78,7 @@ } -- | The attribute to reset.-riaAttribute :: Lens' ResetInstanceAttribute Text+riaAttribute :: Lens' ResetInstanceAttribute InstanceAttributeName riaAttribute = lens _riaAttribute (\s a -> s { _riaAttribute = a }) riaDryRun :: Lens' ResetInstanceAttribute (Maybe Bool)
gen/Network/AWS/EC2/ResetSnapshotAttribute.hs view
@@ -48,23 +48,23 @@ import qualified GHC.Exts data ResetSnapshotAttribute = ResetSnapshotAttribute- { _rsaAttribute :: Text+ { _rsaAttribute :: SnapshotAttributeName , _rsaDryRun :: Maybe Bool , _rsaSnapshotId :: Text- } deriving (Eq, Ord, Show)+ } deriving (Eq, Show) -- | 'ResetSnapshotAttribute' constructor. -- -- The fields accessible through corresponding lenses are: ----- * 'rsaAttribute' @::@ 'Text'+-- * 'rsaAttribute' @::@ 'SnapshotAttributeName' -- -- * 'rsaDryRun' @::@ 'Maybe' 'Bool' -- -- * 'rsaSnapshotId' @::@ 'Text' -- resetSnapshotAttribute :: Text -- ^ 'rsaSnapshotId'- -> Text -- ^ 'rsaAttribute'+ -> SnapshotAttributeName -- ^ 'rsaAttribute' -> ResetSnapshotAttribute resetSnapshotAttribute p1 p2 = ResetSnapshotAttribute { _rsaSnapshotId = p1@@ -74,7 +74,7 @@ -- | The attribute to reset (currently only the attribute for permission to -- create volumes can be reset).-rsaAttribute :: Lens' ResetSnapshotAttribute Text+rsaAttribute :: Lens' ResetSnapshotAttribute SnapshotAttributeName rsaAttribute = lens _rsaAttribute (\s a -> s { _rsaAttribute = a }) rsaDryRun :: Lens' ResetSnapshotAttribute (Maybe Bool)
gen/Network/AWS/EC2/RunInstances.hs view
@@ -98,8 +98,8 @@ , _riEbsOptimized :: Maybe Bool , _riIamInstanceProfile :: Maybe IamInstanceProfileSpecification , _riImageId :: Text- , _riInstanceInitiatedShutdownBehavior :: Maybe Text- , _riInstanceType :: Maybe Text+ , _riInstanceInitiatedShutdownBehavior :: Maybe ShutdownBehavior+ , _riInstanceType :: Maybe InstanceType , _riKernelId :: Maybe Text , _riKeyName :: Maybe Text , _riMaxCount :: Int@@ -135,9 +135,9 @@ -- -- * 'riImageId' @::@ 'Text' ----- * 'riInstanceInitiatedShutdownBehavior' @::@ 'Maybe' 'Text'+-- * 'riInstanceInitiatedShutdownBehavior' @::@ 'Maybe' 'ShutdownBehavior' ----- * 'riInstanceType' @::@ 'Maybe' 'Text'+-- * 'riInstanceType' @::@ 'Maybe' 'InstanceType' -- -- * 'riKernelId' @::@ 'Maybe' 'Text' --@@ -247,14 +247,14 @@ -- | Indicates whether an instance stops or terminates when you initiate -- shutdown from the instance (using the operating system command for system -- shutdown). Default: stop.-riInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe Text)+riInstanceInitiatedShutdownBehavior :: Lens' RunInstances (Maybe ShutdownBehavior) riInstanceInitiatedShutdownBehavior = lens _riInstanceInitiatedShutdownBehavior (\s a -> s { _riInstanceInitiatedShutdownBehavior = a }) -- | The instance type. For more information, see Instance Types in the Amazon -- Elastic Compute Cloud User Guide. Default: m1.small.-riInstanceType :: Lens' RunInstances (Maybe Text)+riInstanceType :: Lens' RunInstances (Maybe InstanceType) riInstanceType = lens _riInstanceType (\s a -> s { _riInstanceType = a }) -- | The ID of the kernel. We recommend that you use PV-GRUB instead of
gen/Network/AWS/EC2/Types.hs view
@@ -25,12245 +25,12381 @@ -- * Service EC2 -- ** Error- , RESTError- -- ** XML- , ns-- -- * ImageAttributeName- , ImageAttributeName (..)-- -- * PermissionGroup- , PermissionGroup (..)-- -- * NetworkAclEntry- , NetworkAclEntry- , networkAclEntry- , naeCidrBlock- , naeEgress- , naeIcmpTypeCode- , naePortRange- , naeProtocol- , naeRuleAction- , naeRuleNumber-- -- * BlobAttributeValue- , BlobAttributeValue- , blobAttributeValue- , bavValue-- -- * ImportInstanceLaunchSpecification- , ImportInstanceLaunchSpecification- , importInstanceLaunchSpecification- , iilsAdditionalInfo- , iilsArchitecture- , iilsGroupIds- , iilsGroupNames- , iilsInstanceInitiatedShutdownBehavior- , iilsInstanceType- , iilsMonitoring- , iilsPlacement- , iilsPrivateIpAddress- , iilsSubnetId- , iilsUserData-- -- * Snapshot- , Snapshot- , snapshot- , sDescription- , sEncrypted- , sOwnerAlias- , sOwnerId- , sProgress- , sSnapshotId- , sStartTime- , sState- , sTags- , sVolumeId- , sVolumeSize-- -- * SpotInstanceStateFault- , SpotInstanceStateFault- , spotInstanceStateFault- , sisfCode- , sisfMessage-- -- * TagDescription- , TagDescription- , tagDescription- , tdKey- , tdResourceId- , tdResourceType- , tdValue-- -- * GroupIdentifier- , GroupIdentifier- , groupIdentifier- , giGroupId- , giGroupName-- -- * VpnStaticRouteSource- , VpnStaticRouteSource (..)-- -- * ReservedInstancesListing- , ReservedInstancesListing- , reservedInstancesListing- , rilClientToken- , rilCreateDate- , rilInstanceCounts- , rilPriceSchedules- , rilReservedInstancesId- , rilReservedInstancesListingId- , rilStatus- , rilStatusMessage- , rilTags- , rilUpdateDate-- -- * InstanceLifecycleType- , InstanceLifecycleType (..)-- -- * VirtualizationType- , VirtualizationType (..)-- -- * NetworkInterfaceStatus- , NetworkInterfaceStatus (..)-- -- * PlatformValues- , PlatformValues (..)-- -- * CreateVolumePermission- , CreateVolumePermission- , createVolumePermission- , cvpGroup- , cvpUserId-- -- * NetworkInterfaceAttachmentChanges- , NetworkInterfaceAttachmentChanges- , networkInterfaceAttachmentChanges- , niacAttachmentId- , niacDeleteOnTermination-- -- * RecurringChargeFrequency- , RecurringChargeFrequency (..)-- -- * DhcpOptions- , DhcpOptions- , dhcpOptions- , doDhcpConfigurations- , doDhcpOptionsId- , doTags-- -- * InstanceNetworkInterfaceSpecification- , InstanceNetworkInterfaceSpecification- , instanceNetworkInterfaceSpecification- , inisAssociatePublicIpAddress- , inisDeleteOnTermination- , inisDescription- , inisDeviceIndex- , inisGroups- , inisNetworkInterfaceId- , inisPrivateIpAddress- , inisPrivateIpAddresses- , inisSecondaryPrivateIpAddressCount- , inisSubnetId-- -- * VolumeState- , VolumeState (..)-- -- * AttributeValue- , AttributeValue- , attributeValue- , avValue-- -- * PrivateIpAddressSpecification- , PrivateIpAddressSpecification- , privateIpAddressSpecification- , piasPrimary- , piasPrivateIpAddress-- -- * Image- , Image- , image- , iArchitecture- , iBlockDeviceMappings- , iDescription- , iHypervisor- , iImageId- , iImageLocation- , iImageOwnerAlias- , iImageType- , iKernelId- , iName- , iOwnerId- , iPlatform- , iProductCodes- , iPublic- , iRamdiskId- , iRootDeviceName- , iRootDeviceType- , iSriovNetSupport- , iState- , iStateReason- , iTags- , iVirtualizationType-- -- * DhcpConfiguration- , DhcpConfiguration- , dhcpConfiguration- , dcKey- , dcValues-- -- * Tag- , Tag- , tag- , tagKey- , tagValue-- -- * AccountAttributeName- , AccountAttributeName (..)-- -- * NetworkInterfaceAttachment- , NetworkInterfaceAttachment- , networkInterfaceAttachment- , niaAttachTime- , niaAttachmentId- , niaDeleteOnTermination- , niaDeviceIndex- , niaInstanceId- , niaInstanceOwnerId- , niaStatus-- -- * RunInstancesMonitoringEnabled- , RunInstancesMonitoringEnabled- , runInstancesMonitoringEnabled- , rimeEnabled-- -- * VolumeStatusInfo- , VolumeStatusInfo- , volumeStatusInfo- , vsiDetails- , vsiStatus-- -- * NetworkInterfaceAssociation- , NetworkInterfaceAssociation- , networkInterfaceAssociation- , niaAllocationId- , niaAssociationId- , niaIpOwnerId- , niaPublicDnsName- , niaPublicIp-- -- * CreateVolumePermissionModifications- , CreateVolumePermissionModifications- , createVolumePermissionModifications- , cvpmAdd- , cvpmRemove-- -- * VpcState- , VpcState (..)-- -- * ResourceType- , ResourceType (..)-- -- * ReportStatusType- , ReportStatusType (..)-- -- * CurrencyCodeValues- , CurrencyCodeValues (..)-- -- * IcmpTypeCode- , IcmpTypeCode- , icmpTypeCode- , itcCode- , itcType-- -- * InstanceCount- , InstanceCount- , instanceCount- , icInstanceCount- , icState-- -- * ExportToS3Task- , ExportToS3Task- , exportToS3Task- , etstContainerFormat- , etstDiskImageFormat- , etstS3Bucket- , etstS3Key-- -- * BlockDeviceMapping- , BlockDeviceMapping- , blockDeviceMapping- , bdmDeviceName- , bdmEbs- , bdmNoDevice- , bdmVirtualName-- -- * ConversionTask- , ConversionTask- , conversionTask- , ctConversionTaskId- , ctExpirationTime- , ctImportInstance- , ctImportVolume- , ctState- , ctStatusMessage- , ctTags-- -- * AttachmentStatus- , AttachmentStatus (..)-- -- * RouteOrigin- , RouteOrigin (..)-- -- * ListingState- , ListingState (..)-- -- * SpotPrice- , SpotPrice- , spotPrice- , spAvailabilityZone- , spInstanceType- , spProductDescription- , spSpotPrice- , spTimestamp-- -- * InstanceMonitoring- , InstanceMonitoring- , instanceMonitoring- , imInstanceId- , imMonitoring-- -- * PriceScheduleSpecification- , PriceScheduleSpecification- , priceScheduleSpecification- , pssCurrencyCode- , pssPrice- , pssTerm-- -- * SpotInstanceStatus- , SpotInstanceStatus- , spotInstanceStatus- , sisCode- , sisMessage- , sisUpdateTime-- -- * AvailabilityZoneState- , AvailabilityZoneState (..)-- -- * SpotInstanceRequest- , SpotInstanceRequest- , spotInstanceRequest- , siAvailabilityZoneGroup- , siCreateTime- , siFault- , siInstanceId- , siLaunchGroup- , siLaunchSpecification- , siLaunchedAvailabilityZone- , siProductDescription- , siSpotInstanceRequestId- , siSpotPrice- , siState- , siStatus- , siTags- , siType- , siValidFrom- , siValidUntil-- -- * LaunchSpecification- , LaunchSpecification- , launchSpecification- , lsAddressingType- , lsBlockDeviceMappings- , lsEbsOptimized- , lsIamInstanceProfile- , lsImageId- , lsInstanceType- , lsKernelId- , lsKeyName- , lsMonitoring- , lsNetworkInterfaces- , lsPlacement- , lsRamdiskId- , lsSecurityGroups- , lsSubnetId- , lsUserData-- -- * VolumeStatusEvent- , VolumeStatusEvent- , volumeStatusEvent- , vseDescription- , vseEventId- , vseEventType- , vseNotAfter- , vseNotBefore-- -- * Volume- , Volume- , volume- , vAttachments- , vAvailabilityZone- , vCreateTime- , vEncrypted- , vIops- , vSize- , vSnapshotId- , vState- , vTags- , vVolumeId- , vVolumeType-- -- * Reservation- , Reservation- , reservation- , rGroups- , rInstances- , rOwnerId- , rRequesterId- , rReservationId-- -- * ImportInstanceVolumeDetailItem- , ImportInstanceVolumeDetailItem- , importInstanceVolumeDetailItem- , iivdiAvailabilityZone- , iivdiBytesConverted- , iivdiDescription- , iivdiImage- , iivdiStatus- , iivdiStatusMessage- , iivdiVolume-- -- * SummaryStatus- , SummaryStatus (..)-- -- * ReservedInstancesModification- , ReservedInstancesModification- , reservedInstancesModification- , rimClientToken- , rimCreateDate- , rimEffectiveDate- , rimModificationResults- , rimReservedInstancesIds- , rimReservedInstancesModificationId- , rimStatus- , rimStatusMessage- , rimUpdateDate-- -- * RuleAction- , RuleAction (..)-- -- * NetworkInterface- , NetworkInterface- , networkInterface- , niAssociation- , niAttachment- , niAvailabilityZone- , niDescription- , niGroups- , niMacAddress- , niNetworkInterfaceId- , niOwnerId- , niPrivateDnsName- , niPrivateIpAddress- , niPrivateIpAddresses- , niRequesterId- , niRequesterManaged- , niSourceDestCheck- , niStatus- , niSubnetId- , niTagSet- , niVpcId-- -- * TelemetryStatus- , TelemetryStatus (..)-- -- * Subnet- , Subnet- , subnet- , s1AvailabilityZone- , s1AvailableIpAddressCount- , s1CidrBlock- , s1DefaultForAz- , s1MapPublicIpOnLaunch- , s1State- , s1SubnetId- , s1Tags- , s1VpcId-- -- * KeyPairInfo- , KeyPairInfo- , keyPairInfo- , kpiKeyFingerprint- , kpiKeyName-- -- * LaunchPermissionModifications- , LaunchPermissionModifications- , launchPermissionModifications- , lpmAdd- , lpmRemove-- -- * SnapshotState- , SnapshotState (..)-- -- * InstanceNetworkInterfaceAssociation- , InstanceNetworkInterfaceAssociation- , instanceNetworkInterfaceAssociation- , iniaIpOwnerId- , iniaPublicDnsName- , iniaPublicIp-- -- * DiskImageDetail- , DiskImageDetail- , diskImageDetail- , didBytes- , didFormat- , didImportManifestUrl-- -- * InstancePrivateIpAddress- , InstancePrivateIpAddress- , instancePrivateIpAddress- , ipiaAssociation- , ipiaPrimary- , ipiaPrivateDnsName- , ipiaPrivateIpAddress-- -- * CancelledSpotInstanceRequest- , CancelledSpotInstanceRequest- , cancelledSpotInstanceRequest- , csiSpotInstanceRequestId- , csiState-- -- * VpnConnectionOptionsSpecification- , VpnConnectionOptionsSpecification- , vpnConnectionOptionsSpecification- , vcosStaticRoutesOnly-- -- * Address- , Address- , address- , aAllocationId- , aAssociationId- , aDomain- , aInstanceId- , aNetworkInterfaceId- , aNetworkInterfaceOwnerId- , aPrivateIpAddress- , aPublicIp-- -- * VolumeAttachmentState- , VolumeAttachmentState (..)-- -- * LaunchPermission- , LaunchPermission- , launchPermission- , lpGroup- , lpUserId-- -- * RouteState- , RouteState (..)-- -- * RouteTableAssociation- , RouteTableAssociation- , routeTableAssociation- , rtaMain- , rtaRouteTableAssociationId- , rtaRouteTableId- , rtaSubnetId-- -- * BundleTaskState- , BundleTaskState (..)-- -- * PortRange- , PortRange- , portRange- , prFrom- , prTo-- -- * VpcAttributeName- , VpcAttributeName (..)-- -- * ReservedInstancesConfiguration- , ReservedInstancesConfiguration- , reservedInstancesConfiguration- , ricAvailabilityZone- , ricInstanceCount- , ricInstanceType- , ricPlatform-- -- * VolumeStatusDetails- , VolumeStatusDetails- , volumeStatusDetails- , vsdName- , vsdStatus-- -- * SpotInstanceState- , SpotInstanceState (..)-- -- * VpnConnectionOptions- , VpnConnectionOptions- , vpnConnectionOptions- , vcoStaticRoutesOnly-- -- * UserIdGroupPair- , UserIdGroupPair- , userIdGroupPair- , uigpGroupId- , uigpGroupName- , uigpUserId-- -- * InstanceStatusSummary- , InstanceStatusSummary- , instanceStatusSummary- , issDetails- , issStatus-- -- * SpotPlacement- , SpotPlacement- , spotPlacement- , sp1AvailabilityZone- , sp1GroupName-- -- * EbsInstanceBlockDeviceSpecification- , EbsInstanceBlockDeviceSpecification- , ebsInstanceBlockDeviceSpecification- , eibdsDeleteOnTermination- , eibdsVolumeId-- -- * NetworkAclAssociation- , NetworkAclAssociation- , networkAclAssociation- , naaNetworkAclAssociationId- , naaNetworkAclId- , naaSubnetId-- -- * BundleTask- , BundleTask- , bundleTask- , btBundleId- , btBundleTaskError- , btInstanceId- , btProgress- , btStartTime- , btState- , btStorage- , btUpdateTime-- -- * InstanceStatusEvent- , InstanceStatusEvent- , instanceStatusEvent- , iseCode- , iseDescription- , iseNotAfter- , iseNotBefore-- -- * InstanceType- , InstanceType (..)-- -- * Route- , Route- , route- , rDestinationCidrBlock- , rGatewayId- , rInstanceId- , rInstanceOwnerId- , rNetworkInterfaceId- , rOrigin- , rState- , rVpcPeeringConnectionId-- -- * SpotDatafeedSubscription- , SpotDatafeedSubscription- , spotDatafeedSubscription- , sdsBucket- , sdsFault- , sdsOwnerId- , sdsPrefix- , sdsState-- -- * Storage- , Storage- , storage- , sS3-- -- * SecurityGroup- , SecurityGroup- , securityGroup- , sgDescription- , sgGroupId- , sgGroupName- , sgIpPermissions- , sgIpPermissionsEgress- , sgOwnerId- , sgTags- , sgVpcId-- -- * CancelSpotInstanceRequestState- , CancelSpotInstanceRequestState (..)-- -- * PlacementGroupState- , PlacementGroupState (..)-- -- * ReservedInstancesModificationResult- , ReservedInstancesModificationResult- , reservedInstancesModificationResult- , rimrReservedInstancesId- , rimrTargetConfiguration-- -- * InstanceBlockDeviceMappingSpecification- , InstanceBlockDeviceMappingSpecification- , instanceBlockDeviceMappingSpecification- , ibdmsDeviceName- , ibdmsEbs- , ibdmsNoDevice- , ibdmsVirtualName-- -- * ExportEnvironment- , ExportEnvironment (..)-- -- * VolumeAttachment- , VolumeAttachment- , volumeAttachment- , vaAttachTime- , vaDeleteOnTermination- , vaDevice- , vaInstanceId- , vaState- , vaVolumeId-- -- * CustomerGateway- , CustomerGateway- , customerGateway- , cgBgpAsn- , cgCustomerGatewayId- , cgIpAddress- , cgState- , cgTags- , cgType-- -- * EbsInstanceBlockDevice- , EbsInstanceBlockDevice- , ebsInstanceBlockDevice- , eibdAttachTime- , eibdDeleteOnTermination- , eibdStatus- , eibdVolumeId-- -- * ShutdownBehavior- , ShutdownBehavior (..)-- -- * DiskImageDescription- , DiskImageDescription- , diskImageDescription- , did1Checksum- , did1Format- , did1ImportManifestUrl- , did1Size-- -- * DiskImageVolumeDescription- , DiskImageVolumeDescription- , diskImageVolumeDescription- , divdId- , divdSize-- -- * Monitoring- , Monitoring- , monitoring- , mState-- -- * SubnetState- , SubnetState (..)-- -- * ContainerFormat- , ContainerFormat (..)-- -- * AvailabilityZoneMessage- , AvailabilityZoneMessage- , availabilityZoneMessage- , azmMessage-- -- * VpcAttachment- , VpcAttachment- , vpcAttachment- , va1State- , va1VpcId-- -- * InstanceBlockDeviceMapping- , InstanceBlockDeviceMapping- , instanceBlockDeviceMapping- , ibdmDeviceName- , ibdmEbs-- -- * StatusType- , StatusType (..)-- -- * ExportToS3TaskSpecification- , ExportToS3TaskSpecification- , exportToS3TaskSpecification- , etstsContainerFormat- , etstsDiskImageFormat- , etstsS3Bucket- , etstsS3Prefix-- -- * NetworkInterfaceAttribute- , NetworkInterfaceAttribute (..)-- -- * ImageTypeValues- , ImageTypeValues (..)-- -- * InstanceExportDetails- , InstanceExportDetails- , instanceExportDetails- , iedInstanceId- , iedTargetEnvironment-- -- * SnapshotAttributeName- , SnapshotAttributeName (..)-- -- * AvailabilityZone- , AvailabilityZone- , availabilityZone- , azMessages- , azRegionName- , azState- , azZoneName-- -- * VpnState- , VpnState (..)-- -- * RouteTable- , RouteTable- , routeTable- , rtAssociations- , rtPropagatingVgws- , rtRouteTableId- , rtRoutes- , rtTags- , rtVpcId-- -- * HypervisorType- , HypervisorType (..)-- -- * InstanceStatusDetails- , InstanceStatusDetails- , instanceStatusDetails- , isdImpairedSince- , isdName- , isdStatus-- -- * IamInstanceProfile- , IamInstanceProfile- , iamInstanceProfile- , iipArn- , iipId-- -- * InternetGatewayAttachment- , InternetGatewayAttachment- , internetGatewayAttachment- , igaState- , igaVpcId-- -- * ReservedInstanceState- , ReservedInstanceState (..)-- -- * InstanceAttributeName- , InstanceAttributeName (..)-- -- * IpPermission- , IpPermission- , ipPermission- , ipFromPort- , ipIpProtocol- , ipIpRanges- , ipToPort- , ipUserIdGroupPairs-- -- * ConversionTaskState- , ConversionTaskState (..)-- -- * DiskImage- , DiskImage- , diskImage- , diDescription- , diImage- , diVolume-- -- * Tenancy- , Tenancy (..)-- -- * VpcPeeringConnectionStateReason- , VpcPeeringConnectionStateReason- , vpcPeeringConnectionStateReason- , vpcsrCode- , vpcsrMessage-- -- * IamInstanceProfileSpecification- , IamInstanceProfileSpecification- , iamInstanceProfileSpecification- , iipsArn- , iipsName-- -- * ImportVolumeTaskDetails- , ImportVolumeTaskDetails- , importVolumeTaskDetails- , ivtdAvailabilityZone- , ivtdBytesConverted- , ivtdDescription- , ivtdImage- , ivtdVolume-- -- * PlacementStrategy- , PlacementStrategy (..)-- -- * InstanceNetworkInterface- , InstanceNetworkInterface- , instanceNetworkInterface- , iniAssociation- , iniAttachment- , iniDescription- , iniGroups- , iniMacAddress- , iniNetworkInterfaceId- , iniOwnerId- , iniPrivateDnsName- , iniPrivateIpAddress- , iniPrivateIpAddresses- , iniSourceDestCheck- , iniStatus- , iniSubnetId- , iniVpcId-- -- * VolumeStatusAction- , VolumeStatusAction- , volumeStatusAction- , vsaCode- , vsaDescription- , vsaEventId- , vsaEventType-- -- * VpcPeeringConnectionVpcInfo- , VpcPeeringConnectionVpcInfo- , vpcPeeringConnectionVpcInfo- , vpcviCidrBlock- , vpcviOwnerId- , vpcviVpcId-- -- * ReservedInstanceLimitPrice- , ReservedInstanceLimitPrice- , reservedInstanceLimitPrice- , rilpAmount- , rilpCurrencyCode-- -- * Vpc- , Vpc- , vpc- , vpcCidrBlock- , vpcDhcpOptionsId- , vpcInstanceTenancy- , vpcIsDefault- , vpcState- , vpcTags- , vpcVpcId-- -- * InstanceStatus- , InstanceStatus- , instanceStatus- , isAvailabilityZone- , isEvents- , isInstanceId- , isInstanceState- , isInstanceStatus- , isSystemStatus-- -- * ArchitectureValues- , ArchitectureValues (..)-- -- * ReportInstanceReasonCodes- , ReportInstanceReasonCodes (..)-- -- * EbsBlockDevice- , EbsBlockDevice- , ebsBlockDevice- , ebdDeleteOnTermination- , ebdEncrypted- , ebdIops- , ebdSnapshotId- , ebdVolumeSize- , ebdVolumeType-- -- * AccountAttribute- , AccountAttribute- , accountAttribute- , aaAttributeName- , aaAttributeValues-- -- * PriceSchedule- , PriceSchedule- , priceSchedule- , psActive- , psCurrencyCode- , psPrice- , psTerm-- -- * DeviceType- , DeviceType (..)-- -- * DomainType- , DomainType (..)-- -- * Region- , Region- , region- , rEndpoint- , rRegionName-- -- * PropagatingVgw- , PropagatingVgw- , propagatingVgw- , pvGatewayId-- -- * OfferingTypeValues- , OfferingTypeValues (..)-- -- * VpnGateway- , VpnGateway- , vpnGateway- , vgAvailabilityZone- , vgState- , vgTags- , vgType- , vgVpcAttachments- , vgVpnGatewayId-- -- * Filter- , Filter- , filter'- , fName- , fValues-- -- * VolumeType- , VolumeType (..)-- -- * InstanceStateChange- , InstanceStateChange- , instanceStateChange- , iscCurrentState- , iscInstanceId- , iscPreviousState-- -- * NetworkAcl- , NetworkAcl- , networkAcl- , naAssociations- , naEntries- , naIsDefault- , naNetworkAclId- , naTags- , naVpcId-- -- * ImageState- , ImageState (..)-- -- * GatewayType- , GatewayType (..)-- -- * InstanceNetworkInterfaceAttachment- , InstanceNetworkInterfaceAttachment- , instanceNetworkInterfaceAttachment- , iniaAttachTime- , iniaAttachmentId- , iniaDeleteOnTermination- , iniaDeviceIndex- , iniaStatus-- -- * AttributeBooleanValue- , AttributeBooleanValue- , attributeBooleanValue- , abvValue-- -- * RecurringCharge- , RecurringCharge- , recurringCharge- , rcAmount- , rcFrequency-- -- * NewDhcpConfiguration- , NewDhcpConfiguration- , newDhcpConfiguration- , ndcKey- , ndcValues-- -- * StateReason- , StateReason- , stateReason- , srCode- , srMessage-- -- * MonitoringState- , MonitoringState (..)-- -- * ReservedInstancesId- , ReservedInstancesId- , reservedInstancesId- , riiReservedInstancesId-- -- * StatusName- , StatusName (..)-- -- * InternetGateway- , InternetGateway- , internetGateway- , igAttachments- , igInternetGatewayId- , igTags-- -- * VolumeStatusName- , VolumeStatusName (..)-- -- * VolumeAttributeName- , VolumeAttributeName (..)-- -- * ImportInstanceTaskDetails- , ImportInstanceTaskDetails- , importInstanceTaskDetails- , iitdDescription- , iitdInstanceId- , iitdPlatform- , iitdVolumes-- -- * PlacementGroup- , PlacementGroup- , placementGroup- , pgGroupName- , pgState- , pgStrategy-- -- * ProductCode- , ProductCode- , productCode- , pcProductCodeId- , pcProductCodeType-- -- * ListingStatus- , ListingStatus (..)-- -- * IpRange- , IpRange- , ipRange- , irCidrIp-- -- * VolumeStatusInfoStatus- , VolumeStatusInfoStatus (..)-- -- * AccountAttributeValue- , AccountAttributeValue- , accountAttributeValue- , aavAttributeValue-- -- * RIProductDescription- , RIProductDescription (..)-- -- * ReservedInstancesOffering- , ReservedInstancesOffering- , reservedInstancesOffering- , rioAvailabilityZone- , rioCurrencyCode- , rioDuration- , rioFixedPrice- , rioInstanceTenancy- , rioInstanceType- , rioMarketplace- , rioOfferingType- , rioPricingDetails- , rioProductDescription- , rioRecurringCharges- , rioReservedInstancesOfferingId- , rioUsagePrice-- -- * ReservedInstances- , ReservedInstances- , reservedInstances- , ri1AvailabilityZone- , ri1CurrencyCode- , ri1Duration- , ri1End- , ri1FixedPrice- , ri1InstanceCount- , ri1InstanceTenancy- , ri1InstanceType- , ri1OfferingType- , ri1ProductDescription- , ri1RecurringCharges- , ri1ReservedInstancesId- , ri1Start- , ri1State- , ri1Tags- , ri1UsagePrice-- -- * DatafeedSubscriptionState- , DatafeedSubscriptionState (..)-- -- * ExportTaskState- , ExportTaskState (..)-- -- * ProductCodeValues- , ProductCodeValues (..)-- -- * VpnConnection- , VpnConnection- , vpnConnection- , vcCustomerGatewayConfiguration- , vcCustomerGatewayId- , vcOptions- , vcRoutes- , vcState- , vcTags- , vcType- , vcVgwTelemetry- , vcVpnConnectionId- , vcVpnGatewayId-- -- * InstanceState- , InstanceState- , instanceState- , isCode- , isName-- -- * Placement- , Placement- , placement- , pAvailabilityZone- , pGroupName- , pTenancy-- -- * EventCode- , EventCode (..)-- -- * SpotInstanceType- , SpotInstanceType (..)-- -- * VpcPeeringConnection- , VpcPeeringConnection- , vpcPeeringConnection- , vpc1AccepterVpcInfo- , vpc1ExpirationTime- , vpc1RequesterVpcInfo- , vpc1Status- , vpc1Tags- , vpc1VpcPeeringConnectionId-- -- * S3Storage- , S3Storage- , s3Storage- , ssAWSAccessKeyId- , ssBucket- , ssPrefix- , ssUploadPolicy- , ssUploadPolicySignature-- -- * VgwTelemetry- , VgwTelemetry- , vgwTelemetry- , vtAcceptedRouteCount- , vtLastStatusChange- , vtOutsideIpAddress- , vtStatus- , vtStatusMessage-- -- * VpnStaticRoute- , VpnStaticRoute- , vpnStaticRoute- , vsrDestinationCidrBlock- , vsrSource- , vsrState-- -- * InstanceStateName- , InstanceStateName (..)-- -- * Instance- , Instance- , instance'- , i1AmiLaunchIndex- , i1Architecture- , i1BlockDeviceMappings- , i1ClientToken- , i1EbsOptimized- , i1Hypervisor- , i1IamInstanceProfile- , i1ImageId- , i1InstanceId- , i1InstanceLifecycle- , i1InstanceType- , i1KernelId- , i1KeyName- , i1LaunchTime- , i1Monitoring- , i1NetworkInterfaces- , i1Placement- , i1Platform- , i1PrivateDnsName- , i1PrivateIpAddress- , i1ProductCodes- , i1PublicDnsName- , i1PublicIpAddress- , i1RamdiskId- , i1RootDeviceName- , i1RootDeviceType- , i1SecurityGroups- , i1SourceDestCheck- , i1SpotInstanceRequestId- , i1SriovNetSupport- , i1State- , i1StateReason- , i1StateTransitionReason- , i1SubnetId- , i1Tags- , i1VirtualizationType- , i1VpcId-- -- * ExportTask- , ExportTask- , exportTask- , etDescription- , etExportTaskId- , etExportToS3Task- , etInstanceExportDetails- , etState- , etStatusMessage-- -- * ResetImageAttributeName- , ResetImageAttributeName (..)-- -- * RequestSpotLaunchSpecification- , RequestSpotLaunchSpecification- , requestSpotLaunchSpecification- , rslsAddressingType- , rslsBlockDeviceMappings- , rslsEbsOptimized- , rslsIamInstanceProfile- , rslsImageId- , rslsInstanceType- , rslsKernelId- , rslsKeyName- , rslsMonitoring- , rslsNetworkInterfaces- , rslsPlacement- , rslsRamdiskId- , rslsSecurityGroupIds- , rslsSecurityGroups- , rslsSubnetId- , rslsUserData-- -- * VolumeDetail- , VolumeDetail- , volumeDetail- , vdSize-- -- * PricingDetail- , PricingDetail- , pricingDetail- , pdCount- , pdPrice-- -- * NetworkInterfacePrivateIpAddress- , NetworkInterfacePrivateIpAddress- , networkInterfacePrivateIpAddress- , nipiaAssociation- , nipiaPrimary- , nipiaPrivateDnsName- , nipiaPrivateIpAddress-- -- * DiskImageFormat- , DiskImageFormat (..)-- -- * BundleTaskError- , BundleTaskError- , bundleTaskError- , bteCode- , bteMessage-- -- * VolumeStatusItem- , VolumeStatusItem- , volumeStatusItem- , vsiActions- , vsiAvailabilityZone- , vsiEvents- , vsiVolumeId- , vsiVolumeStatus-- -- * Common- , module Network.AWS.EC2.Internal- ) where--import Network.AWS.Error-import Network.AWS.Prelude-import Network.AWS.Signing.V4-import Network.AWS.EC2.Internal-import qualified GHC.Exts---- | Version @2014-09-01@ of the Amazon Elastic Compute Cloud service.-data EC2--instance AWSService EC2 where- type Sg EC2 = V4- type Er EC2 = RESTError-- service = Service- { _svcEndpoint = regional- , _svcAbbrev = "EC2"- , _svcPrefix = "ec2"- , _svcVersion = "2014-09-01"- , _svcTargetPrefix = Nothing- , _svcJSONVersion = Nothing- }-- handle = restError statusSuccess--ns :: Text-ns = "http://ec2.amazonaws.com/doc/2014-09-01"--data ImageAttributeName- = ImageBlockDeviceMapping -- ^ blockDeviceMapping- | ImageDescription -- ^ description- | ImageKernel -- ^ kernel- | ImageLaunchPermission -- ^ launchPermission- | ImageProductCodes -- ^ productCodes- | ImageRamdisk -- ^ ramdisk- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ImageAttributeName--instance FromText ImageAttributeName where- parser = match "blockDeviceMapping" ImageBlockDeviceMapping- <|> match "description" ImageDescription- <|> match "kernel" ImageKernel- <|> match "launchPermission" ImageLaunchPermission- <|> match "productCodes" ImageProductCodes- <|> match "ramdisk" ImageRamdisk--instance ToText ImageAttributeName where- toText = \case- ImageBlockDeviceMapping -> "blockDeviceMapping"- ImageDescription -> "description"- ImageKernel -> "kernel"- ImageLaunchPermission -> "launchPermission"- ImageProductCodes -> "productCodes"- ImageRamdisk -> "ramdisk"--instance FromXML ImageAttributeName where- parseXML = parseXMLText "ImageAttributeName"--instance ToQuery ImageAttributeName where- toQuery = toQuery . toText--data PermissionGroup- = All -- ^ all- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable PermissionGroup--instance FromText PermissionGroup where- parser = match "all" All--instance ToText PermissionGroup where- toText All = "all"--instance FromXML PermissionGroup where- parseXML = parseXMLText "PermissionGroup"--instance ToQuery PermissionGroup where- toQuery = toQuery . toText--data NetworkAclEntry = NetworkAclEntry- { _naeCidrBlock :: Maybe Text- , _naeEgress :: Maybe Bool- , _naeIcmpTypeCode :: Maybe IcmpTypeCode- , _naePortRange :: Maybe PortRange- , _naeProtocol :: Maybe Text- , _naeRuleAction :: Maybe Text- , _naeRuleNumber :: Maybe Int- } deriving (Eq, Show)---- | 'NetworkAclEntry' constructor.------ The fields accessible through corresponding lenses are:------ * 'naeCidrBlock' @::@ 'Maybe' 'Text'------ * 'naeEgress' @::@ 'Maybe' 'Bool'------ * 'naeIcmpTypeCode' @::@ 'Maybe' 'IcmpTypeCode'------ * 'naePortRange' @::@ 'Maybe' 'PortRange'------ * 'naeProtocol' @::@ 'Maybe' 'Text'------ * 'naeRuleAction' @::@ 'Maybe' 'Text'------ * 'naeRuleNumber' @::@ 'Maybe' 'Int'----networkAclEntry :: NetworkAclEntry-networkAclEntry = NetworkAclEntry- { _naeRuleNumber = Nothing- , _naeProtocol = Nothing- , _naeRuleAction = Nothing- , _naeEgress = Nothing- , _naeCidrBlock = Nothing- , _naeIcmpTypeCode = Nothing- , _naePortRange = Nothing- }---- | The network range to allow or deny, in CIDR notation.-naeCidrBlock :: Lens' NetworkAclEntry (Maybe Text)-naeCidrBlock = lens _naeCidrBlock (\s a -> s { _naeCidrBlock = a })---- | Indicates whether the rule is an egress rule (applied to traffic leaving--- the subnet).-naeEgress :: Lens' NetworkAclEntry (Maybe Bool)-naeEgress = lens _naeEgress (\s a -> s { _naeEgress = a })---- | ICMP protocol: The ICMP type and code.-naeIcmpTypeCode :: Lens' NetworkAclEntry (Maybe IcmpTypeCode)-naeIcmpTypeCode = lens _naeIcmpTypeCode (\s a -> s { _naeIcmpTypeCode = a })---- | TCP or UDP protocols: The range of ports the rule applies to.-naePortRange :: Lens' NetworkAclEntry (Maybe PortRange)-naePortRange = lens _naePortRange (\s a -> s { _naePortRange = a })---- | The protocol. A value of -1 means all protocols.-naeProtocol :: Lens' NetworkAclEntry (Maybe Text)-naeProtocol = lens _naeProtocol (\s a -> s { _naeProtocol = a })---- | Indicates whether to allow or deny the traffic that matches the rule.-naeRuleAction :: Lens' NetworkAclEntry (Maybe Text)-naeRuleAction = lens _naeRuleAction (\s a -> s { _naeRuleAction = a })---- | The rule number for the entry. ACL entries are processed in ascending--- order by rule number.-naeRuleNumber :: Lens' NetworkAclEntry (Maybe Int)-naeRuleNumber = lens _naeRuleNumber (\s a -> s { _naeRuleNumber = a })--instance FromXML NetworkAclEntry where- parseXML x = NetworkAclEntry- <$> x .@? "cidrBlock"- <*> x .@? "egress"- <*> x .@? "icmpTypeCode"- <*> x .@? "portRange"- <*> x .@? "protocol"- <*> x .@? "ruleAction"- <*> x .@? "ruleNumber"--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, 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 Text- , _iilsGroupIds :: List "SecurityGroupId" Text- , _iilsGroupNames :: List "SecurityGroup" Text- , _iilsInstanceInitiatedShutdownBehavior :: Maybe Text- , _iilsInstanceType :: Maybe Text- , _iilsMonitoring :: Maybe Bool- , _iilsPlacement :: Maybe Placement- , _iilsPrivateIpAddress :: Maybe Text- , _iilsSubnetId :: Maybe Text- , _iilsUserData :: Maybe Text- } deriving (Eq, Show)---- | 'ImportInstanceLaunchSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'iilsAdditionalInfo' @::@ 'Maybe' 'Text'------ * 'iilsArchitecture' @::@ 'Maybe' 'Text'------ * 'iilsGroupIds' @::@ ['Text']------ * 'iilsGroupNames' @::@ ['Text']------ * 'iilsInstanceInitiatedShutdownBehavior' @::@ 'Maybe' 'Text'------ * 'iilsInstanceType' @::@ 'Maybe' 'Text'------ * 'iilsMonitoring' @::@ 'Maybe' 'Bool'------ * 'iilsPlacement' @::@ 'Maybe' 'Placement'------ * 'iilsPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'iilsSubnetId' @::@ 'Maybe' 'Text'------ * 'iilsUserData' @::@ 'Maybe' 'Text'----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 Text)-iilsArchitecture = lens _iilsArchitecture (\s a -> s { _iilsArchitecture = a })--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 Text)-iilsInstanceInitiatedShutdownBehavior =- lens _iilsInstanceInitiatedShutdownBehavior- (\s a -> s { _iilsInstanceInitiatedShutdownBehavior = a })---- | The instance type. For more information, see Instance Types in the Amazon--- Elastic Compute Cloud User Guide.-iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe Text)-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 Text)-iilsUserData = lens _iilsUserData (\s a -> s { _iilsUserData = a })--instance FromXML ImportInstanceLaunchSpecification where- parseXML x = ImportInstanceLaunchSpecification- <$> x .@? "additionalInfo"- <*> x .@? "architecture"- <*> x .@ "GroupId"- <*> x .@ "GroupName"- <*> 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" =? _iilsGroupIds- , "GroupName" =? _iilsGroupNames- , "instanceInitiatedShutdownBehavior" =? _iilsInstanceInitiatedShutdownBehavior- , "instanceType" =? _iilsInstanceType- , "monitoring" =? _iilsMonitoring- , "placement" =? _iilsPlacement- , "privateIpAddress" =? _iilsPrivateIpAddress- , "subnetId" =? _iilsSubnetId- , "userData" =? _iilsUserData- ]--data Snapshot = Snapshot- { _sDescription :: Maybe Text- , _sEncrypted :: Maybe Bool- , _sOwnerAlias :: Maybe Text- , _sOwnerId :: Maybe Text- , _sProgress :: Maybe Text- , _sSnapshotId :: Maybe Text- , _sStartTime :: Maybe RFC822- , _sState :: Maybe Text- , _sTags :: List "item" Tag- , _sVolumeId :: Maybe Text- , _sVolumeSize :: Maybe Int- } deriving (Eq, Show)---- | 'Snapshot' constructor.------ The fields accessible through corresponding lenses are:------ * 'sDescription' @::@ 'Maybe' 'Text'------ * 'sEncrypted' @::@ 'Maybe' 'Bool'------ * 'sOwnerAlias' @::@ 'Maybe' 'Text'------ * 'sOwnerId' @::@ 'Maybe' 'Text'------ * 'sProgress' @::@ 'Maybe' 'Text'------ * 'sSnapshotId' @::@ 'Maybe' 'Text'------ * 'sStartTime' @::@ 'Maybe' 'UTCTime'------ * 'sState' @::@ 'Maybe' 'Text'------ * 'sTags' @::@ ['Tag']------ * 'sVolumeId' @::@ 'Maybe' 'Text'------ * 'sVolumeSize' @::@ 'Maybe' 'Int'----snapshot :: Snapshot-snapshot = Snapshot- { _sSnapshotId = Nothing- , _sVolumeId = Nothing- , _sState = Nothing- , _sStartTime = Nothing- , _sProgress = Nothing- , _sOwnerId = Nothing- , _sDescription = Nothing- , _sVolumeSize = Nothing- , _sOwnerAlias = Nothing- , _sTags = mempty- , _sEncrypted = Nothing- }---- | The description for the snapshot.-sDescription :: Lens' Snapshot (Maybe Text)-sDescription = lens _sDescription (\s a -> s { _sDescription = a })---- | Indicates whether the snapshot is encrypted.-sEncrypted :: Lens' Snapshot (Maybe Bool)-sEncrypted = lens _sEncrypted (\s a -> s { _sEncrypted = 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 (Maybe Text)-sOwnerId = lens _sOwnerId (\s a -> s { _sOwnerId = a })---- | The progress of the snapshot, as a percentage.-sProgress :: Lens' Snapshot (Maybe Text)-sProgress = lens _sProgress (\s a -> s { _sProgress = a })---- | The ID of the snapshot.-sSnapshotId :: Lens' Snapshot (Maybe Text)-sSnapshotId = lens _sSnapshotId (\s a -> s { _sSnapshotId = a })---- | The time stamp when the snapshot was initiated.-sStartTime :: Lens' Snapshot (Maybe UTCTime)-sStartTime = lens _sStartTime (\s a -> s { _sStartTime = a }) . mapping _Time---- | The snapshot state.-sState :: Lens' Snapshot (Maybe Text)-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 (Maybe Text)-sVolumeId = lens _sVolumeId (\s a -> s { _sVolumeId = a })---- | The size of the volume, in GiB.-sVolumeSize :: Lens' Snapshot (Maybe Int)-sVolumeSize = lens _sVolumeSize (\s a -> s { _sVolumeSize = a })--instance FromXML Snapshot where- parseXML x = Snapshot- <$> x .@? "description"- <*> x .@? "encrypted"- <*> x .@? "ownerAlias"- <*> x .@? "ownerId"- <*> x .@? "progress"- <*> x .@? "snapshotId"- <*> x .@? "startTime"- <*> x .@? "status"- <*> x .@ "tagSet"- <*> x .@? "volumeId"- <*> x .@? "volumeSize"--instance ToQuery Snapshot where- toQuery Snapshot{..} = mconcat- [ "description" =? _sDescription- , "encrypted" =? _sEncrypted- , "ownerAlias" =? _sOwnerAlias- , "ownerId" =? _sOwnerId- , "progress" =? _sProgress- , "snapshotId" =? _sSnapshotId- , "startTime" =? _sStartTime- , "status" =? _sState- , "tagSet" =? _sTags- , "volumeId" =? _sVolumeId- , "volumeSize" =? _sVolumeSize- ]--data SpotInstanceStateFault = SpotInstanceStateFault- { _sisfCode :: Maybe Text- , _sisfMessage :: Maybe Text- } deriving (Eq, Ord, 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 :: Text- , _tdValue :: Text- } deriving (Eq, Ord, Show)---- | 'TagDescription' constructor.------ The fields accessible through corresponding lenses are:------ * 'tdKey' @::@ 'Text'------ * 'tdResourceId' @::@ 'Text'------ * 'tdResourceType' @::@ 'Text'------ * 'tdValue' @::@ 'Text'----tagDescription :: Text -- ^ 'tdResourceId'- -> Text -- ^ 'tdResourceType'- -> Text -- ^ 'tdKey'- -> Text -- ^ 'tdValue'- -> TagDescription-tagDescription p1 p2 p3 p4 = TagDescription- { _tdResourceId = p1- , _tdResourceType = p2- , _tdKey = p3- , _tdValue = p4- }---- | The key of the tag.-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 type of resource.-tdResourceType :: Lens' TagDescription Text-tdResourceType = lens _tdResourceType (\s a -> s { _tdResourceType = a })---- | The value of the tag.-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, 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, Show, Generic, Enum)--instance Hashable VpnStaticRouteSource--instance FromText VpnStaticRouteSource where- parser = match "Static" Static--instance ToText VpnStaticRouteSource where- toText Static = "Static"--instance FromXML VpnStaticRouteSource where- parseXML = parseXMLText "VpnStaticRouteSource"--instance ToQuery VpnStaticRouteSource where- toQuery = toQuery . toText--data ReservedInstancesListing = ReservedInstancesListing- { _rilClientToken :: Maybe Text- , _rilCreateDate :: Maybe RFC822- , _rilInstanceCounts :: List "item" InstanceCount- , _rilPriceSchedules :: List "item" PriceSchedule- , _rilReservedInstancesId :: Maybe Text- , _rilReservedInstancesListingId :: Maybe Text- , _rilStatus :: Maybe Text- , _rilStatusMessage :: Maybe Text- , _rilTags :: List "item" Tag- , _rilUpdateDate :: Maybe RFC822- } deriving (Eq, 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' 'Text'------ * '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 Text)-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"- <*> x .@ "priceSchedules"- <*> x .@? "reservedInstancesId"- <*> x .@? "reservedInstancesListingId"- <*> x .@? "status"- <*> x .@? "statusMessage"- <*> x .@ "tagSet"- <*> x .@? "updateDate"--instance ToQuery ReservedInstancesListing where- toQuery ReservedInstancesListing{..} = mconcat- [ "clientToken" =? _rilClientToken- , "createDate" =? _rilCreateDate- , "instanceCounts" =? _rilInstanceCounts- , "priceSchedules" =? _rilPriceSchedules- , "reservedInstancesId" =? _rilReservedInstancesId- , "reservedInstancesListingId" =? _rilReservedInstancesListingId- , "status" =? _rilStatus- , "statusMessage" =? _rilStatusMessage- , "tagSet" =? _rilTags- , "updateDate" =? _rilUpdateDate- ]--data InstanceLifecycleType- = Spot -- ^ spot- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable InstanceLifecycleType--instance FromText InstanceLifecycleType where- parser = match "spot" Spot--instance ToText InstanceLifecycleType where- toText Spot = "spot"--instance FromXML InstanceLifecycleType where- parseXML = parseXMLText "InstanceLifecycleType"--instance ToQuery InstanceLifecycleType where- toQuery = toQuery . toText--data VirtualizationType- = Hvm -- ^ hvm- | Paravirtual -- ^ paravirtual- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VirtualizationType--instance FromText VirtualizationType where- parser = match "hvm" Hvm- <|> match "paravirtual" Paravirtual--instance ToText VirtualizationType where- toText = \case- Hvm -> "hvm"- Paravirtual -> "paravirtual"--instance FromXML VirtualizationType where- parseXML = parseXMLText "VirtualizationType"--instance ToQuery VirtualizationType where- toQuery = toQuery . toText--data NetworkInterfaceStatus- = Attaching -- ^ attaching- | Available -- ^ available- | Detaching -- ^ detaching- | InUse -- ^ in-use- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable NetworkInterfaceStatus--instance FromText NetworkInterfaceStatus where- parser = match "attaching" Attaching- <|> match "available" Available- <|> match "detaching" Detaching- <|> match "in-use" InUse--instance ToText NetworkInterfaceStatus where- toText = \case- Attaching -> "attaching"- Available -> "available"- Detaching -> "detaching"- InUse -> "in-use"--instance FromXML NetworkInterfaceStatus where- parseXML = parseXMLText "NetworkInterfaceStatus"--instance ToQuery NetworkInterfaceStatus where- toQuery = toQuery . toText--data PlatformValues- = Windows -- ^ Windows- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable PlatformValues--instance FromText PlatformValues where- parser = match "Windows" Windows--instance ToText PlatformValues where- toText Windows = "Windows"--instance FromXML PlatformValues where- parseXML = parseXMLText "PlatformValues"--instance ToQuery PlatformValues where- toQuery = toQuery . toText--data CreateVolumePermission = CreateVolumePermission- { _cvpGroup :: Maybe Text- , _cvpUserId :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'CreateVolumePermission' constructor.------ The fields accessible through corresponding lenses are:------ * 'cvpGroup' @::@ 'Maybe' 'Text'------ * '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 Text)-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, 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, Show, Generic, Enum)--instance Hashable RecurringChargeFrequency--instance FromText RecurringChargeFrequency where- parser = match "Hourly" Hourly--instance ToText RecurringChargeFrequency where- toText Hourly = "Hourly"--instance FromXML RecurringChargeFrequency where- parseXML = parseXMLText "RecurringChargeFrequency"--instance ToQuery RecurringChargeFrequency where- toQuery = toQuery . toText--data DhcpOptions = DhcpOptions- { _doDhcpConfigurations :: List "item" DhcpConfiguration- , _doDhcpOptionsId :: Maybe Text- , _doTags :: List "item" Tag- } deriving (Eq, 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"- <*> x .@? "dhcpOptionsId"- <*> x .@ "tagSet"--instance ToQuery DhcpOptions where- toQuery DhcpOptions{..} = mconcat- [ "dhcpConfigurationSet" =? _doDhcpConfigurations- , "dhcpOptionsId" =? _doDhcpOptionsId- , "tagSet" =? _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, 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"- <*> x .@? "networkInterfaceId"- <*> x .@? "privateIpAddress"- <*> x .@ "privateIpAddressesSet"- <*> x .@? "secondaryPrivateIpAddressCount"- <*> x .@? "subnetId"--instance ToQuery InstanceNetworkInterfaceSpecification where- toQuery InstanceNetworkInterfaceSpecification{..} = mconcat- [ "associatePublicIpAddress" =? _inisAssociatePublicIpAddress- , "deleteOnTermination" =? _inisDeleteOnTermination- , "description" =? _inisDescription- , "deviceIndex" =? _inisDeviceIndex- , "SecurityGroupId" =? _inisGroups- , "networkInterfaceId" =? _inisNetworkInterfaceId- , "privateIpAddress" =? _inisPrivateIpAddress- , "privateIpAddressesSet" =? _inisPrivateIpAddresses- , "secondaryPrivateIpAddressCount" =? _inisSecondaryPrivateIpAddressCount- , "subnetId" =? _inisSubnetId- ]--data VolumeState- = VSAvailable -- ^ available- | VSCreating -- ^ creating- | VSDeleted -- ^ deleted- | VSDeleting -- ^ deleting- | VSError -- ^ error- | VSInUse -- ^ in-use- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VolumeState--instance FromText VolumeState where- parser = match "available" VSAvailable- <|> match "creating" VSCreating- <|> match "deleted" VSDeleted- <|> match "deleting" VSDeleting- <|> match "error" VSError- <|> match "in-use" VSInUse--instance ToText VolumeState where- toText = \case- VSAvailable -> "available"- VSCreating -> "creating"- VSDeleted -> "deleted"- VSDeleting -> "deleting"- VSError -> "error"- VSInUse -> "in-use"--instance FromXML VolumeState where- parseXML = parseXMLText "VolumeState"--instance ToQuery VolumeState where- toQuery = toQuery . toText--newtype AttributeValue = AttributeValue- { _avValue :: Maybe Text- } deriving (Eq, Ord, Show, Monoid)---- | 'AttributeValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'avValue' @::@ 'Maybe' 'Text'----attributeValue :: AttributeValue-attributeValue = AttributeValue- { _avValue = Nothing- }--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, 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 :: Text- , _iBlockDeviceMappings :: List "item" BlockDeviceMapping- , _iDescription :: Maybe Text- , _iHypervisor :: Text- , _iImageId :: Text- , _iImageLocation :: Text- , _iImageOwnerAlias :: Maybe Text- , _iImageType :: Text- , _iKernelId :: Maybe Text- , _iName :: Text- , _iOwnerId :: Text- , _iPlatform :: Maybe Text- , _iProductCodes :: List "item" ProductCode- , _iPublic :: Bool- , _iRamdiskId :: Maybe Text- , _iRootDeviceName :: Maybe Text- , _iRootDeviceType :: Text- , _iSriovNetSupport :: Maybe Text- , _iState :: Text- , _iStateReason :: Maybe StateReason- , _iTags :: List "item" Tag- , _iVirtualizationType :: Text- } deriving (Eq, Show)---- | 'Image' constructor.------ The fields accessible through corresponding lenses are:------ * 'iArchitecture' @::@ 'Text'------ * 'iBlockDeviceMappings' @::@ ['BlockDeviceMapping']------ * 'iDescription' @::@ 'Maybe' 'Text'------ * 'iHypervisor' @::@ 'Text'------ * 'iImageId' @::@ 'Text'------ * 'iImageLocation' @::@ 'Text'------ * 'iImageOwnerAlias' @::@ 'Maybe' 'Text'------ * 'iImageType' @::@ 'Text'------ * 'iKernelId' @::@ 'Maybe' 'Text'------ * 'iName' @::@ 'Text'------ * 'iOwnerId' @::@ 'Text'------ * 'iPlatform' @::@ 'Maybe' 'Text'------ * 'iProductCodes' @::@ ['ProductCode']------ * 'iPublic' @::@ 'Bool'------ * 'iRamdiskId' @::@ 'Maybe' 'Text'------ * 'iRootDeviceName' @::@ 'Maybe' 'Text'------ * 'iRootDeviceType' @::@ 'Text'------ * 'iSriovNetSupport' @::@ 'Maybe' 'Text'------ * 'iState' @::@ 'Text'------ * 'iStateReason' @::@ 'Maybe' 'StateReason'------ * 'iTags' @::@ ['Tag']------ * 'iVirtualizationType' @::@ 'Text'----image :: Text -- ^ 'iImageId'- -> Text -- ^ 'iImageLocation'- -> Text -- ^ 'iState'- -> Text -- ^ 'iOwnerId'- -> Bool -- ^ 'iPublic'- -> Text -- ^ 'iArchitecture'- -> Text -- ^ 'iImageType'- -> Text -- ^ 'iName'- -> Text -- ^ 'iRootDeviceType'- -> Text -- ^ 'iVirtualizationType'- -> Text -- ^ 'iHypervisor'- -> Image-image p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 = Image- { _iImageId = p1- , _iImageLocation = p2- , _iState = p3- , _iOwnerId = p4- , _iPublic = p5- , _iArchitecture = p6- , _iImageType = p7- , _iName = p8- , _iRootDeviceType = p9- , _iVirtualizationType = p10- , _iHypervisor = p11- , _iProductCodes = mempty- , _iKernelId = Nothing- , _iRamdiskId = Nothing- , _iPlatform = Nothing- , _iSriovNetSupport = Nothing- , _iStateReason = Nothing- , _iImageOwnerAlias = Nothing- , _iDescription = Nothing- , _iRootDeviceName = Nothing- , _iBlockDeviceMappings = mempty- , _iTags = mempty- }---- | The architecture of the image.-iArchitecture :: Lens' Image Text-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 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 Text-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 Text-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 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 Text)-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 Text-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 Text-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 Text-iVirtualizationType =- lens _iVirtualizationType (\s a -> s { _iVirtualizationType = a })--instance FromXML Image where- parseXML x = Image- <$> x .@ "architecture"- <*> x .@ "blockDeviceMapping"- <*> x .@? "description"- <*> x .@ "hypervisor"- <*> x .@ "imageId"- <*> x .@ "imageLocation"- <*> x .@? "imageOwnerAlias"- <*> x .@ "imageType"- <*> x .@? "kernelId"- <*> x .@ "name"- <*> x .@ "imageOwnerId"- <*> x .@? "platform"- <*> x .@ "productCodes"- <*> x .@ "isPublic"- <*> x .@? "ramdiskId"- <*> x .@? "rootDeviceName"- <*> x .@ "rootDeviceType"- <*> x .@? "sriovNetSupport"- <*> x .@ "imageState"- <*> x .@? "stateReason"- <*> x .@ "tagSet"- <*> x .@ "virtualizationType"--instance ToQuery Image where- toQuery Image{..} = mconcat- [ "architecture" =? _iArchitecture- , "blockDeviceMapping" =? _iBlockDeviceMappings- , "description" =? _iDescription- , "hypervisor" =? _iHypervisor- , "imageId" =? _iImageId- , "imageLocation" =? _iImageLocation- , "imageOwnerAlias" =? _iImageOwnerAlias- , "imageType" =? _iImageType- , "kernelId" =? _iKernelId- , "name" =? _iName- , "imageOwnerId" =? _iOwnerId- , "platform" =? _iPlatform- , "productCodes" =? _iProductCodes- , "isPublic" =? _iPublic- , "ramdiskId" =? _iRamdiskId- , "rootDeviceName" =? _iRootDeviceName- , "rootDeviceType" =? _iRootDeviceType- , "sriovNetSupport" =? _iSriovNetSupport- , "imageState" =? _iState- , "stateReason" =? _iStateReason- , "tagSet" =? _iTags- , "virtualizationType" =? _iVirtualizationType- ]--data DhcpConfiguration = DhcpConfiguration- { _dcKey :: Maybe Text- , _dcValues :: List "item" AttributeValue- } deriving (Eq, 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"--instance ToQuery DhcpConfiguration where- toQuery DhcpConfiguration{..} = mconcat- [ "key" =? _dcKey- , "valueSet" =? _dcValues- ]--data Tag = Tag- { _tagKey :: Text- , _tagValue :: Text- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable AccountAttributeName--instance FromText AccountAttributeName where- parser = match "default-vpc" DefaultVpc- <|> match "supported-platforms" SupportedPlatforms--instance ToText AccountAttributeName where- toText = \case- DefaultVpc -> "default-vpc"- SupportedPlatforms -> "supported-platforms"--instance FromXML AccountAttributeName where- parseXML = parseXMLText "AccountAttributeName"--instance ToQuery AccountAttributeName where- toQuery = toQuery . toText--data NetworkInterfaceAttachment = NetworkInterfaceAttachment- { _niaAttachTime :: Maybe RFC822- , _niaAttachmentId :: Maybe Text- , _niaDeleteOnTermination :: Maybe Bool- , _niaDeviceIndex :: Maybe Int- , _niaInstanceId :: Maybe Text- , _niaInstanceOwnerId :: Maybe Text- , _niaStatus :: Maybe Text- } deriving (Eq, Ord, 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' 'Text'----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 Text)-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, 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 Text- } deriving (Eq, Show)---- | 'VolumeStatusInfo' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsiDetails' @::@ ['VolumeStatusDetails']------ * 'vsiStatus' @::@ 'Maybe' 'Text'----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 Text)-vsiStatus = lens _vsiStatus (\s a -> s { _vsiStatus = a })--instance FromXML VolumeStatusInfo where- parseXML x = VolumeStatusInfo- <$> x .@ "details"- <*> x .@? "status"--instance ToQuery VolumeStatusInfo where- toQuery VolumeStatusInfo{..} = mconcat- [ "details" =? _vsiDetails- , "status" =? _vsiStatus- ]--data NetworkInterfaceAssociation = NetworkInterfaceAssociation- { _niaAllocationId :: Maybe Text- , _niaAssociationId :: Maybe Text- , _niaIpOwnerId :: Maybe Text- , _niaPublicDnsName :: Maybe Text- , _niaPublicIp :: Maybe Text- } deriving (Eq, Ord, 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, 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"- <*> x .@ "Remove"--instance ToQuery CreateVolumePermissionModifications where- toQuery CreateVolumePermissionModifications{..} = mconcat- [ "Add" =? _cvpmAdd- , "Remove" =? _cvpmRemove- ]--data VpcState- = VpcStateAvailable -- ^ available- | VpcStatePending -- ^ pending- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VpcState--instance FromText VpcState where- parser = match "available" VpcStateAvailable- <|> match "pending" VpcStatePending--instance ToText VpcState where- toText = \case- VpcStateAvailable -> "available"- VpcStatePending -> "pending"--instance FromXML VpcState where- parseXML = parseXMLText "VpcState"--instance ToQuery VpcState where- toQuery = toQuery . toText--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, Show, Generic, Enum)--instance Hashable ResourceType--instance FromText ResourceType where- parser = match "customer-gateway" RTCustomerGateway- <|> match "dhcp-options" RTDhcpOptions- <|> match "image" RTImage- <|> match "instance" RTInstance'- <|> match "internet-gateway" RTInternetGateway- <|> match "network-acl" RTNetworkAcl- <|> match "network-interface" RTNetworkInterface- <|> match "reserved-instances" RTReservedInstances- <|> match "route-table" RTRouteTable- <|> match "security-group" RTSecurityGroup- <|> match "snapshot" RTSnapshot- <|> match "spot-instances-request" RTSpotInstancesRequest- <|> match "subnet" RTSubnet- <|> match "volume" RTVolume- <|> match "vpc" RTVpc- <|> match "vpn-connection" RTVpnConnection- <|> match "vpn-gateway" RTVpnGateway--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 FromXML ResourceType where- parseXML = parseXMLText "ResourceType"--instance ToQuery ResourceType where- toQuery = toQuery . toText--data ReportStatusType- = Impaired -- ^ impaired- | Ok -- ^ ok- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ReportStatusType--instance FromText ReportStatusType where- parser = match "impaired" Impaired- <|> match "ok" Ok--instance ToText ReportStatusType where- toText = \case- Impaired -> "impaired"- Ok -> "ok"--instance FromXML ReportStatusType where- parseXML = parseXMLText "ReportStatusType"--instance ToQuery ReportStatusType where- toQuery = toQuery . toText--data CurrencyCodeValues- = Usd -- ^ USD- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable CurrencyCodeValues--instance FromText CurrencyCodeValues where- parser = match "USD" Usd--instance ToText CurrencyCodeValues where- toText Usd = "USD"--instance FromXML CurrencyCodeValues where- parseXML = parseXMLText "CurrencyCodeValues"--instance ToQuery CurrencyCodeValues where- toQuery = toQuery . toText--data IcmpTypeCode = IcmpTypeCode- { _itcCode :: Maybe Int- , _itcType :: Maybe Int- } deriving (Eq, Ord, 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 Text- } deriving (Eq, Ord, Show)---- | 'InstanceCount' constructor.------ The fields accessible through corresponding lenses are:------ * 'icInstanceCount' @::@ 'Maybe' 'Int'------ * 'icState' @::@ 'Maybe' 'Text'----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 Text)-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 Text- , _etstDiskImageFormat :: Maybe Text- , _etstS3Bucket :: Maybe Text- , _etstS3Key :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'ExportToS3Task' constructor.------ The fields accessible through corresponding lenses are:------ * 'etstContainerFormat' @::@ 'Maybe' 'Text'------ * 'etstDiskImageFormat' @::@ 'Maybe' 'Text'------ * '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 Text)-etstContainerFormat =- lens _etstContainerFormat (\s a -> s { _etstContainerFormat = a })---- | The format for the exported image.-etstDiskImageFormat :: Lens' ExportToS3Task (Maybe Text)-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, 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[0..3]). 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 :: Text- , _ctStatusMessage :: Maybe Text- , _ctTags :: List "item" Tag- } deriving (Eq, Show)---- | 'ConversionTask' constructor.------ The fields accessible through corresponding lenses are:------ * 'ctConversionTaskId' @::@ 'Text'------ * 'ctExpirationTime' @::@ 'Maybe' 'Text'------ * 'ctImportInstance' @::@ 'Maybe' 'ImportInstanceTaskDetails'------ * 'ctImportVolume' @::@ 'Maybe' 'ImportVolumeTaskDetails'------ * 'ctState' @::@ 'Text'------ * 'ctStatusMessage' @::@ 'Maybe' 'Text'------ * 'ctTags' @::@ ['Tag']----conversionTask :: Text -- ^ 'ctConversionTaskId'- -> Text -- ^ '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 Text-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"--instance ToQuery ConversionTask where- toQuery ConversionTask{..} = mconcat- [ "conversionTaskId" =? _ctConversionTaskId- , "expirationTime" =? _ctExpirationTime- , "importInstance" =? _ctImportInstance- , "importVolume" =? _ctImportVolume- , "state" =? _ctState- , "statusMessage" =? _ctStatusMessage- , "tagSet" =? _ctTags- ]--data AttachmentStatus- = ASAttached -- ^ attached- | ASAttaching -- ^ attaching- | ASDetached -- ^ detached- | ASDetaching -- ^ detaching- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable AttachmentStatus--instance FromText AttachmentStatus where- parser = match "attached" ASAttached- <|> match "attaching" ASAttaching- <|> match "detached" ASDetached- <|> match "detaching" ASDetaching--instance ToText AttachmentStatus where- toText = \case- ASAttached -> "attached"- ASAttaching -> "attaching"- ASDetached -> "detached"- ASDetaching -> "detaching"--instance FromXML AttachmentStatus where- parseXML = parseXMLText "AttachmentStatus"--instance ToQuery AttachmentStatus where- toQuery = toQuery . toText--data RouteOrigin- = OriginCreateRoute -- ^ CreateRoute- | OriginCreateRouteTable -- ^ CreateRouteTable- | OriginEnableVgwRoutePropagation -- ^ EnableVgwRoutePropagation- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable RouteOrigin--instance FromText RouteOrigin where- parser = match "CreateRoute" OriginCreateRoute- <|> match "CreateRouteTable" OriginCreateRouteTable- <|> match "EnableVgwRoutePropagation" OriginEnableVgwRoutePropagation--instance ToText RouteOrigin where- toText = \case- OriginCreateRoute -> "CreateRoute"- OriginCreateRouteTable -> "CreateRouteTable"- OriginEnableVgwRoutePropagation -> "EnableVgwRoutePropagation"--instance FromXML RouteOrigin where- parseXML = parseXMLText "RouteOrigin"--instance ToQuery RouteOrigin where- toQuery = toQuery . toText--data ListingState- = LSAvailable -- ^ available- | LSCancelled -- ^ cancelled- | LSPending -- ^ pending- | LSSold -- ^ sold- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ListingState--instance FromText ListingState where- parser = match "available" LSAvailable- <|> match "cancelled" LSCancelled- <|> match "pending" LSPending- <|> match "sold" LSSold--instance ToText ListingState where- toText = \case- LSAvailable -> "available"- LSCancelled -> "cancelled"- LSPending -> "pending"- LSSold -> "sold"--instance FromXML ListingState where- parseXML = parseXMLText "ListingState"--instance ToQuery ListingState where- toQuery = toQuery . toText--data SpotPrice = SpotPrice- { _spAvailabilityZone :: Maybe Text- , _spInstanceType :: Maybe Text- , _spProductDescription :: Maybe Text- , _spSpotPrice :: Maybe Text- , _spTimestamp :: Maybe RFC822- } deriving (Eq, Ord, Show)---- | 'SpotPrice' constructor.------ The fields accessible through corresponding lenses are:------ * 'spAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'spInstanceType' @::@ 'Maybe' 'Text'------ * 'spProductDescription' @::@ 'Maybe' 'Text'------ * '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 Text)-spInstanceType = lens _spInstanceType (\s a -> s { _spInstanceType = a })---- | A general description of the AMI.-spProductDescription :: Lens' SpotPrice (Maybe Text)-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, 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 Text- , _pssPrice :: Maybe Double- , _pssTerm :: Maybe Integer- } deriving (Eq, Ord, Show)---- | 'PriceScheduleSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'pssCurrencyCode' @::@ 'Maybe' 'Text'------ * '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 Text)-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 RFC822- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable AvailabilityZoneState--instance FromText AvailabilityZoneState where- parser = match "available" AZSAvailable--instance ToText AvailabilityZoneState where- toText AZSAvailable = "available"--instance FromXML AvailabilityZoneState where- parseXML = parseXMLText "AvailabilityZoneState"--instance ToQuery AvailabilityZoneState where- toQuery = toQuery . toText--data SpotInstanceRequest = SpotInstanceRequest- { _siAvailabilityZoneGroup :: Maybe Text- , _siCreateTime :: Maybe RFC822- , _siFault :: Maybe SpotInstanceStateFault- , _siInstanceId :: Maybe Text- , _siLaunchGroup :: Maybe Text- , _siLaunchSpecification :: Maybe LaunchSpecification- , _siLaunchedAvailabilityZone :: Maybe Text- , _siProductDescription :: Maybe Text- , _siSpotInstanceRequestId :: Maybe Text- , _siSpotPrice :: Maybe Text- , _siState :: Maybe Text- , _siStatus :: Maybe SpotInstanceStatus- , _siTags :: List "item" Tag- , _siType :: Maybe Text- , _siValidFrom :: Maybe RFC822- , _siValidUntil :: Maybe RFC822- } deriving (Eq, 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' 'Text'------ * 'siSpotInstanceRequestId' @::@ 'Maybe' 'Text'------ * 'siSpotPrice' @::@ 'Maybe' 'Text'------ * 'siState' @::@ 'Maybe' 'Text'------ * 'siStatus' @::@ 'Maybe' 'SpotInstanceStatus'------ * 'siTags' @::@ ['Tag']------ * 'siType' @::@ 'Maybe' 'Text'------ * '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 Text)-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 information, see Tracking--- Spot Requests with Bid Status Codes in the Amazon Elastic Compute Cloud--- User Guide.-siState :: Lens' SpotInstanceRequest (Maybe Text)-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 Text)-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"- <*> 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" =? _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 Text- , _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, 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' 'Text'------ * '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 Text)-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. If requesting a Spot Instance in a--- nondefault VPC, you must specify the security group ID. If requesting a--- Spot Instance in EC2-Classic or a default VPC, you can specify either the--- security group name or ID.-lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]-lsSecurityGroups = lens _lsSecurityGroups (\s a -> s { _lsSecurityGroups = a }) . _List---- | The ID of the subnet in which to launch the Spot 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"- <*> x .@? "ebsOptimized"- <*> x .@? "iamInstanceProfile"- <*> x .@? "imageId"- <*> x .@? "instanceType"- <*> x .@? "kernelId"- <*> x .@? "keyName"- <*> x .@? "monitoring"- <*> x .@ "networkInterfaceSet"- <*> x .@? "placement"- <*> x .@? "ramdiskId"- <*> x .@ "groupSet"- <*> x .@? "subnetId"- <*> x .@? "userData"--instance ToQuery LaunchSpecification where- toQuery LaunchSpecification{..} = mconcat- [ "addressingType" =? _lsAddressingType- , "blockDeviceMapping" =? _lsBlockDeviceMappings- , "ebsOptimized" =? _lsEbsOptimized- , "iamInstanceProfile" =? _lsIamInstanceProfile- , "imageId" =? _lsImageId- , "instanceType" =? _lsInstanceType- , "kernelId" =? _lsKernelId- , "keyName" =? _lsKeyName- , "monitoring" =? _lsMonitoring- , "networkInterfaceSet" =? _lsNetworkInterfaces- , "placement" =? _lsPlacement- , "ramdiskId" =? _lsRamdiskId- , "groupSet" =? _lsSecurityGroups- , "subnetId" =? _lsSubnetId- , "userData" =? _lsUserData- ]--data VolumeStatusEvent = VolumeStatusEvent- { _vseDescription :: Maybe Text- , _vseEventId :: Maybe Text- , _vseEventType :: Maybe Text- , _vseNotAfter :: Maybe RFC822- , _vseNotBefore :: Maybe RFC822- } deriving (Eq, Ord, 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 :: Maybe Text- , _vCreateTime :: Maybe RFC822- , _vEncrypted :: Maybe Bool- , _vIops :: Maybe Int- , _vSize :: Maybe Int- , _vSnapshotId :: Maybe Text- , _vState :: Maybe Text- , _vTags :: List "item" Tag- , _vVolumeId :: Maybe Text- , _vVolumeType :: Maybe Text- } deriving (Eq, Show)---- | 'Volume' constructor.------ The fields accessible through corresponding lenses are:------ * 'vAttachments' @::@ ['VolumeAttachment']------ * 'vAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'vCreateTime' @::@ 'Maybe' 'UTCTime'------ * 'vEncrypted' @::@ 'Maybe' 'Bool'------ * 'vIops' @::@ 'Maybe' 'Int'------ * 'vSize' @::@ 'Maybe' 'Int'------ * 'vSnapshotId' @::@ 'Maybe' 'Text'------ * 'vState' @::@ 'Maybe' 'Text'------ * 'vTags' @::@ ['Tag']------ * 'vVolumeId' @::@ 'Maybe' 'Text'------ * 'vVolumeType' @::@ 'Maybe' 'Text'----volume :: Volume-volume = Volume- { _vVolumeId = Nothing- , _vSize = Nothing- , _vSnapshotId = Nothing- , _vAvailabilityZone = Nothing- , _vState = Nothing- , _vCreateTime = Nothing- , _vAttachments = mempty- , _vTags = mempty- , _vVolumeType = Nothing- , _vIops = Nothing- , _vEncrypted = Nothing- }--vAttachments :: Lens' Volume [VolumeAttachment]-vAttachments = lens _vAttachments (\s a -> s { _vAttachments = a }) . _List---- | The Availability Zone for the volume.-vAvailabilityZone :: Lens' Volume (Maybe Text)-vAvailabilityZone =- lens _vAvailabilityZone (\s a -> s { _vAvailabilityZone = a })---- | The time stamp when volume creation was initiated.-vCreateTime :: Lens' Volume (Maybe UTCTime)-vCreateTime = lens _vCreateTime (\s a -> s { _vCreateTime = a }) . mapping _Time---- | Indicates whether the volume is encrypted.-vEncrypted :: Lens' Volume (Maybe 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 Amazon EBS Volume Types in the Amazon Elastic Compute--- Cloud User Guide. 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 size of the volume, in GiBs.-vSize :: Lens' Volume (Maybe Int)-vSize = lens _vSize (\s a -> s { _vSize = a })---- | The snapshot from which the volume was created, if applicable.-vSnapshotId :: Lens' Volume (Maybe Text)-vSnapshotId = lens _vSnapshotId (\s a -> s { _vSnapshotId = a })---- | The volume state.-vState :: Lens' Volume (Maybe Text)-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 (Maybe 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 (Maybe Text)-vVolumeType = lens _vVolumeType (\s a -> s { _vVolumeType = a })--instance FromXML Volume where- parseXML x = Volume- <$> x .@ "attachmentSet"- <*> x .@? "availabilityZone"- <*> x .@? "createTime"- <*> x .@? "encrypted"- <*> x .@? "iops"- <*> x .@? "size"- <*> x .@? "snapshotId"- <*> x .@? "status"- <*> x .@ "tagSet"- <*> x .@? "volumeId"- <*> x .@? "volumeType"--instance ToQuery Volume where- toQuery Volume{..} = mconcat- [ "attachmentSet" =? _vAttachments- , "availabilityZone" =? _vAvailabilityZone- , "createTime" =? _vCreateTime- , "encrypted" =? _vEncrypted- , "iops" =? _vIops- , "size" =? _vSize- , "snapshotId" =? _vSnapshotId- , "status" =? _vState- , "tagSet" =? _vTags- , "volumeId" =? _vVolumeId- , "volumeType" =? _vVolumeType- ]--data Reservation = Reservation- { _rGroups :: List "item" GroupIdentifier- , _rInstances :: List "item" Instance- , _rOwnerId :: Maybe Text- , _rRequesterId :: Maybe Text- , _rReservationId :: Maybe Text- } deriving (Eq, Show)---- | 'Reservation' constructor.------ The fields accessible through corresponding lenses are:------ * 'rGroups' @::@ ['GroupIdentifier']------ * 'rInstances' @::@ ['Instance']------ * 'rOwnerId' @::@ 'Maybe' 'Text'------ * 'rRequesterId' @::@ 'Maybe' 'Text'------ * 'rReservationId' @::@ 'Maybe' 'Text'----reservation :: Reservation-reservation = Reservation- { _rReservationId = Nothing- , _rOwnerId = Nothing- , _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 (Maybe 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 (Maybe Text)-rReservationId = lens _rReservationId (\s a -> s { _rReservationId = a })--instance FromXML Reservation where- parseXML x = Reservation- <$> x .@ "groupSet"- <*> x .@ "instancesSet"- <*> x .@? "ownerId"- <*> x .@? "requesterId"- <*> x .@? "reservationId"--instance ToQuery Reservation where- toQuery Reservation{..} = mconcat- [ "groupSet" =? _rGroups- , "instancesSet" =? _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, 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, Show, Generic, Enum)--instance Hashable SummaryStatus--instance FromText SummaryStatus where- parser = match "impaired" SSImpaired- <|> match "insufficient-data" SSInsufficientData- <|> match "not-applicable" SSNotApplicable- <|> match "ok" SSOk--instance ToText SummaryStatus where- toText = \case- SSImpaired -> "impaired"- SSInsufficientData -> "insufficient-data"- SSNotApplicable -> "not-applicable"- SSOk -> "ok"--instance FromXML SummaryStatus where- parseXML = parseXMLText "SummaryStatus"--instance ToQuery SummaryStatus where- toQuery = toQuery . toText--data ReservedInstancesModification = ReservedInstancesModification- { _rimClientToken :: Maybe Text- , _rimCreateDate :: Maybe RFC822- , _rimEffectiveDate :: Maybe RFC822- , _rimModificationResults :: List "item" ReservedInstancesModificationResult- , _rimReservedInstancesIds :: List "item" ReservedInstancesId- , _rimReservedInstancesModificationId :: Maybe Text- , _rimStatus :: Maybe Text- , _rimStatusMessage :: Maybe Text- , _rimUpdateDate :: Maybe RFC822- } deriving (Eq, 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"- <*> x .@ "reservedInstancesSet"- <*> x .@? "reservedInstancesModificationId"- <*> x .@? "status"- <*> x .@? "statusMessage"- <*> x .@? "updateDate"--instance ToQuery ReservedInstancesModification where- toQuery ReservedInstancesModification{..} = mconcat- [ "clientToken" =? _rimClientToken- , "createDate" =? _rimCreateDate- , "effectiveDate" =? _rimEffectiveDate- , "modificationResultSet" =? _rimModificationResults- , "reservedInstancesSet" =? _rimReservedInstancesIds- , "reservedInstancesModificationId" =? _rimReservedInstancesModificationId- , "status" =? _rimStatus- , "statusMessage" =? _rimStatusMessage- , "updateDate" =? _rimUpdateDate- ]--data RuleAction- = Allow -- ^ allow- | Deny -- ^ deny- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable RuleAction--instance FromText RuleAction where- parser = match "allow" Allow- <|> match "deny" Deny--instance ToText RuleAction where- toText = \case- Allow -> "allow"- Deny -> "deny"--instance FromXML RuleAction where- parseXML = parseXMLText "RuleAction"--instance ToQuery RuleAction where- toQuery = toQuery . toText--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 Text- , _niSubnetId :: Maybe Text- , _niTagSet :: List "item" Tag- , _niVpcId :: Maybe Text- } deriving (Eq, 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' 'Text'------ * '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 Text)-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"- <*> x .@? "macAddress"- <*> x .@? "networkInterfaceId"- <*> x .@? "ownerId"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"- <*> x .@ "privateIpAddressesSet"- <*> x .@? "requesterId"- <*> x .@? "requesterManaged"- <*> x .@? "sourceDestCheck"- <*> x .@? "status"- <*> x .@? "subnetId"- <*> x .@ "tagSet"- <*> x .@? "vpcId"--instance ToQuery NetworkInterface where- toQuery NetworkInterface{..} = mconcat- [ "association" =? _niAssociation- , "attachment" =? _niAttachment- , "availabilityZone" =? _niAvailabilityZone- , "description" =? _niDescription- , "groupSet" =? _niGroups- , "macAddress" =? _niMacAddress- , "networkInterfaceId" =? _niNetworkInterfaceId- , "ownerId" =? _niOwnerId- , "privateDnsName" =? _niPrivateDnsName- , "privateIpAddress" =? _niPrivateIpAddress- , "privateIpAddressesSet" =? _niPrivateIpAddresses- , "requesterId" =? _niRequesterId- , "requesterManaged" =? _niRequesterManaged- , "sourceDestCheck" =? _niSourceDestCheck- , "status" =? _niStatus- , "subnetId" =? _niSubnetId- , "tagSet" =? _niTagSet- , "vpcId" =? _niVpcId- ]--data TelemetryStatus- = Down -- ^ DOWN- | Up -- ^ UP- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable TelemetryStatus--instance FromText TelemetryStatus where- parser = match "DOWN" Down- <|> match "UP" Up--instance ToText TelemetryStatus where- toText = \case- Down -> "DOWN"- Up -> "UP"--instance FromXML TelemetryStatus where- parseXML = parseXMLText "TelemetryStatus"--instance ToQuery TelemetryStatus where- toQuery = toQuery . toText--data Subnet = Subnet- { _s1AvailabilityZone :: Maybe Text- , _s1AvailableIpAddressCount :: Maybe Int- , _s1CidrBlock :: Maybe Text- , _s1DefaultForAz :: Maybe Bool- , _s1MapPublicIpOnLaunch :: Maybe Bool- , _s1State :: Maybe Text- , _s1SubnetId :: Maybe Text- , _s1Tags :: List "item" Tag- , _s1VpcId :: Maybe Text- } deriving (Eq, Show)---- | 'Subnet' constructor.------ The fields accessible through corresponding lenses are:------ * 's1AvailabilityZone' @::@ 'Maybe' 'Text'------ * 's1AvailableIpAddressCount' @::@ 'Maybe' 'Int'------ * 's1CidrBlock' @::@ 'Maybe' 'Text'------ * 's1DefaultForAz' @::@ 'Maybe' 'Bool'------ * 's1MapPublicIpOnLaunch' @::@ 'Maybe' 'Bool'------ * 's1State' @::@ 'Maybe' 'Text'------ * 's1SubnetId' @::@ 'Maybe' 'Text'------ * 's1Tags' @::@ ['Tag']------ * 's1VpcId' @::@ 'Maybe' 'Text'----subnet :: Subnet-subnet = Subnet- { _s1SubnetId = Nothing- , _s1State = Nothing- , _s1VpcId = Nothing- , _s1CidrBlock = Nothing- , _s1AvailableIpAddressCount = Nothing- , _s1AvailabilityZone = Nothing- , _s1DefaultForAz = Nothing- , _s1MapPublicIpOnLaunch = Nothing- , _s1Tags = mempty- }---- | The Availability Zone of the subnet.-s1AvailabilityZone :: Lens' Subnet (Maybe 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 (Maybe Int)-s1AvailableIpAddressCount =- lens _s1AvailableIpAddressCount- (\s a -> s { _s1AvailableIpAddressCount = a })---- | The CIDR block assigned to the subnet.-s1CidrBlock :: Lens' Subnet (Maybe Text)-s1CidrBlock = lens _s1CidrBlock (\s a -> s { _s1CidrBlock = a })---- | Indicates whether this is the default subnet for the Availability Zone.-s1DefaultForAz :: Lens' Subnet (Maybe Bool)-s1DefaultForAz = lens _s1DefaultForAz (\s a -> s { _s1DefaultForAz = a })---- | Indicates whether instances launched in this subnet receive a public IP--- address.-s1MapPublicIpOnLaunch :: Lens' Subnet (Maybe Bool)-s1MapPublicIpOnLaunch =- lens _s1MapPublicIpOnLaunch (\s a -> s { _s1MapPublicIpOnLaunch = a })---- | The current state of the subnet.-s1State :: Lens' Subnet (Maybe Text)-s1State = lens _s1State (\s a -> s { _s1State = a })---- | The ID of the subnet.-s1SubnetId :: Lens' Subnet (Maybe 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 (Maybe 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"- <*> x .@? "vpcId"--instance ToQuery Subnet where- toQuery Subnet{..} = mconcat- [ "availabilityZone" =? _s1AvailabilityZone- , "availableIpAddressCount" =? _s1AvailableIpAddressCount- , "cidrBlock" =? _s1CidrBlock- , "defaultForAz" =? _s1DefaultForAz- , "mapPublicIpOnLaunch" =? _s1MapPublicIpOnLaunch- , "state" =? _s1State- , "subnetId" =? _s1SubnetId- , "tagSet" =? _s1Tags- , "vpcId" =? _s1VpcId- ]--data KeyPairInfo = KeyPairInfo- { _kpiKeyFingerprint :: Maybe Text- , _kpiKeyName :: Maybe Text- } deriving (Eq, Ord, 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, 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"- <*> x .@ "Remove"--instance ToQuery LaunchPermissionModifications where- toQuery LaunchPermissionModifications{..} = mconcat- [ "Add" =? _lpmAdd- , "Remove" =? _lpmRemove- ]--data SnapshotState- = Completed -- ^ completed- | Error -- ^ error- | Pending -- ^ pending- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable SnapshotState--instance FromText SnapshotState where- parser = match "completed" Completed- <|> match "error" Error- <|> match "pending" Pending--instance ToText SnapshotState where- toText = \case- Completed -> "completed"- Error -> "error"- Pending -> "pending"--instance FromXML SnapshotState where- parseXML = parseXMLText "SnapshotState"--instance ToQuery SnapshotState where- toQuery = toQuery . toText--data InstanceNetworkInterfaceAssociation = InstanceNetworkInterfaceAssociation- { _iniaIpOwnerId :: Maybe Text- , _iniaPublicDnsName :: Maybe Text- , _iniaPublicIp :: Maybe Text- } deriving (Eq, Ord, 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 :: Text- , _didImportManifestUrl :: Text- } deriving (Eq, Ord, Show)---- | 'DiskImageDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'didBytes' @::@ 'Integer'------ * 'didFormat' @::@ 'Text'------ * 'didImportManifestUrl' @::@ 'Text'----diskImageDetail :: Text -- ^ '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 Text-didFormat = lens _didFormat (\s a -> s { _didFormat = 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--- 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, 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 Text- } deriving (Eq, Ord, Show)---- | 'CancelledSpotInstanceRequest' constructor.------ The fields accessible through corresponding lenses are:------ * 'csiSpotInstanceRequestId' @::@ 'Maybe' 'Text'------ * 'csiState' @::@ 'Maybe' 'Text'----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 Text)-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, 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 Text- , _aInstanceId :: Maybe Text- , _aNetworkInterfaceId :: Maybe Text- , _aNetworkInterfaceOwnerId :: Maybe Text- , _aPrivateIpAddress :: Maybe Text- , _aPublicIp :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'Address' constructor.------ The fields accessible through corresponding lenses are:------ * 'aAllocationId' @::@ 'Maybe' 'Text'------ * 'aAssociationId' @::@ 'Maybe' 'Text'------ * 'aDomain' @::@ 'Maybe' 'Text'------ * '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 Text)-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, Show, Generic, Enum)--instance Hashable VolumeAttachmentState--instance FromText VolumeAttachmentState where- parser = match "attached" VASAttached- <|> match "attaching" VASAttaching- <|> match "detached" VASDetached- <|> match "detaching" VASDetaching--instance ToText VolumeAttachmentState where- toText = \case- VASAttached -> "attached"- VASAttaching -> "attaching"- VASDetached -> "detached"- VASDetaching -> "detaching"--instance FromXML VolumeAttachmentState where- parseXML = parseXMLText "VolumeAttachmentState"--instance ToQuery VolumeAttachmentState where- toQuery = toQuery . toText--data LaunchPermission = LaunchPermission- { _lpGroup :: Maybe Text- , _lpUserId :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'LaunchPermission' constructor.------ The fields accessible through corresponding lenses are:------ * 'lpGroup' @::@ 'Maybe' 'Text'------ * 'lpUserId' @::@ 'Maybe' 'Text'----launchPermission :: LaunchPermission-launchPermission = LaunchPermission- { _lpUserId = Nothing- , _lpGroup = Nothing- }---- | The name of the group.-lpGroup :: Lens' LaunchPermission (Maybe Text)-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, Show, Generic, Enum)--instance Hashable RouteState--instance FromText RouteState where- parser = match "active" Active- <|> match "blackhole" Blackhole--instance ToText RouteState where- toText = \case- Active -> "active"- Blackhole -> "blackhole"--instance FromXML RouteState where- parseXML = parseXMLText "RouteState"--instance ToQuery RouteState where- toQuery = toQuery . toText--data RouteTableAssociation = RouteTableAssociation- { _rtaMain :: Maybe Bool- , _rtaRouteTableAssociationId :: Maybe Text- , _rtaRouteTableId :: Maybe Text- , _rtaSubnetId :: Maybe Text- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable BundleTaskState--instance FromText BundleTaskState where- parser = match "bundling" BTSBundling- <|> match "cancelling" BTSCancelling- <|> match "complete" BTSComplete- <|> match "failed" BTSFailed- <|> match "pending" BTSPending- <|> match "storing" BTSStoring- <|> match "waiting-for-shutdown" BTSWaitingForShutdown--instance ToText BundleTaskState where- toText = \case- BTSBundling -> "bundling"- BTSCancelling -> "cancelling"- BTSComplete -> "complete"- BTSFailed -> "failed"- BTSPending -> "pending"- BTSStoring -> "storing"- BTSWaitingForShutdown -> "waiting-for-shutdown"--instance FromXML BundleTaskState where- parseXML = parseXMLText "BundleTaskState"--instance ToQuery BundleTaskState where- toQuery = toQuery . toText--data PortRange = PortRange- { _prFrom :: Maybe Int- , _prTo :: Maybe Int- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable VpcAttributeName--instance FromText VpcAttributeName where- parser = match "enableDnsHostnames" EnableDnsHostnames- <|> match "enableDnsSupport" EnableDnsSupport--instance ToText VpcAttributeName where- toText = \case- EnableDnsHostnames -> "enableDnsHostnames"- EnableDnsSupport -> "enableDnsSupport"--instance FromXML VpcAttributeName where- parseXML = parseXMLText "VpcAttributeName"--instance ToQuery VpcAttributeName where- toQuery = toQuery . toText--data ReservedInstancesConfiguration = ReservedInstancesConfiguration- { _ricAvailabilityZone :: Maybe Text- , _ricInstanceCount :: Maybe Int- , _ricInstanceType :: Maybe Text- , _ricPlatform :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'ReservedInstancesConfiguration' constructor.------ The fields accessible through corresponding lenses are:------ * 'ricAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'ricInstanceCount' @::@ 'Maybe' 'Int'------ * 'ricInstanceType' @::@ 'Maybe' 'Text'------ * '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 Text)-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 Text- , _vsdStatus :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'VolumeStatusDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsdName' @::@ 'Maybe' 'Text'------ * 'vsdStatus' @::@ 'Maybe' 'Text'----volumeStatusDetails :: VolumeStatusDetails-volumeStatusDetails = VolumeStatusDetails- { _vsdName = Nothing- , _vsdStatus = Nothing- }---- | The name of the volume status.-vsdName :: Lens' VolumeStatusDetails (Maybe Text)-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, Show, Generic, Enum)--instance Hashable SpotInstanceState--instance FromText SpotInstanceState where- parser = match "active" SISActive- <|> match "cancelled" SISCancelled- <|> match "closed" SISClosed- <|> match "failed" SISFailed- <|> match "open" SISOpen--instance ToText SpotInstanceState where- toText = \case- SISActive -> "active"- SISCancelled -> "cancelled"- SISClosed -> "closed"- SISFailed -> "failed"- SISOpen -> "open"--instance FromXML SpotInstanceState where- parseXML = parseXMLText "SpotInstanceState"--instance ToQuery SpotInstanceState where- toQuery = toQuery . toText--newtype VpnConnectionOptions = VpnConnectionOptions- { _vcoStaticRoutesOnly :: Maybe Bool- } deriving (Eq, Ord, 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, 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 Text- } deriving (Eq, Show)---- | 'InstanceStatusSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'issDetails' @::@ ['InstanceStatusDetails']------ * 'issStatus' @::@ 'Maybe' 'Text'----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 Text)-issStatus = lens _issStatus (\s a -> s { _issStatus = a })--instance FromXML InstanceStatusSummary where- parseXML x = InstanceStatusSummary- <$> x .@ "details"- <*> x .@? "status"--instance ToQuery InstanceStatusSummary where- toQuery InstanceStatusSummary{..} = mconcat- [ "details" =? _issDetails- , "status" =? _issStatus- ]--data SpotPlacement = SpotPlacement- { _sp1AvailabilityZone :: Maybe Text- , _sp1GroupName :: Maybe Text- } deriving (Eq, Ord, 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, 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, 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 :: Maybe Text- , _btBundleTaskError :: Maybe BundleTaskError- , _btInstanceId :: Maybe Text- , _btProgress :: Maybe Text- , _btStartTime :: Maybe RFC822- , _btState :: Maybe Text- , _btStorage :: Maybe Storage- , _btUpdateTime :: Maybe RFC822- } deriving (Eq, Show)---- | 'BundleTask' constructor.------ The fields accessible through corresponding lenses are:------ * 'btBundleId' @::@ 'Maybe' 'Text'------ * 'btBundleTaskError' @::@ 'Maybe' 'BundleTaskError'------ * 'btInstanceId' @::@ 'Maybe' 'Text'------ * 'btProgress' @::@ 'Maybe' 'Text'------ * 'btStartTime' @::@ 'Maybe' 'UTCTime'------ * 'btState' @::@ 'Maybe' 'Text'------ * 'btStorage' @::@ 'Maybe' 'Storage'------ * 'btUpdateTime' @::@ 'Maybe' 'UTCTime'----bundleTask :: BundleTask-bundleTask = BundleTask- { _btInstanceId = Nothing- , _btBundleId = Nothing- , _btState = Nothing- , _btStartTime = Nothing- , _btUpdateTime = Nothing- , _btStorage = Nothing- , _btProgress = Nothing- , _btBundleTaskError = Nothing- }---- | The ID for this bundle task.-btBundleId :: Lens' BundleTask (Maybe 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 (Maybe Text)-btInstanceId = lens _btInstanceId (\s a -> s { _btInstanceId = a })---- | The level of task completion, as a percent (for example, 20%).-btProgress :: Lens' BundleTask (Maybe Text)-btProgress = lens _btProgress (\s a -> s { _btProgress = a })---- | The time this task started.-btStartTime :: Lens' BundleTask (Maybe UTCTime)-btStartTime = lens _btStartTime (\s a -> s { _btStartTime = a }) . mapping _Time---- | The state of the task.-btState :: Lens' BundleTask (Maybe Text)-btState = lens _btState (\s a -> s { _btState = a })---- | The Amazon S3 storage locations.-btStorage :: Lens' BundleTask (Maybe Storage)-btStorage = lens _btStorage (\s a -> s { _btStorage = a })---- | The time of the most recent update for the task.-btUpdateTime :: Lens' BundleTask (Maybe UTCTime)-btUpdateTime = lens _btUpdateTime (\s a -> s { _btUpdateTime = a }) . mapping _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 Text- , _iseDescription :: Maybe Text- , _iseNotAfter :: Maybe RFC822- , _iseNotBefore :: Maybe RFC822- } deriving (Eq, Ord, Show)---- | 'InstanceStatusEvent' constructor.------ The fields accessible through corresponding lenses are:------ * 'iseCode' @::@ 'Maybe' 'Text'------ * '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 Text)-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- = C1Medium -- ^ c1.medium- | C1XLarge -- ^ c1.xlarge- | C32XLarge -- ^ c3.2xlarge- | C34XLarge -- ^ c3.4xlarge- | C38XLarge -- ^ c3.8xlarge- | C3Large -- ^ c3.large- | C3XLarge -- ^ c3.xlarge- | Cc14XLarge -- ^ cc1.4xlarge- | Cc28XLarge -- ^ cc2.8xlarge- | Cg14XLarge -- ^ cg1.4xlarge- | Cr18XLarge -- ^ cr1.8xlarge- | G22XLarge -- ^ g2.2xlarge- | Hi14XLarge -- ^ hi1.4xlarge- | Hs18XLarge -- ^ hs1.8xlarge- | I22XLarge -- ^ i2.2xlarge- | I24XLarge -- ^ i2.4xlarge- | I28XLarge -- ^ i2.8xlarge- | I2XLarge -- ^ i2.xlarge- | M1Large -- ^ m1.large- | M1Medium -- ^ m1.medium- | M1Small -- ^ m1.small- | M1XLarge -- ^ m1.xlarge- | M22XLarge -- ^ m2.2xlarge- | M24XLarge -- ^ m2.4xlarge- | M2XLarge -- ^ m2.xlarge- | M32XLarge -- ^ m3.2xlarge- | M3Large -- ^ m3.large- | M3Medium -- ^ m3.medium- | M3XLarge -- ^ m3.xlarge- | R32XLarge -- ^ r3.2xlarge- | R34XLarge -- ^ r3.4xlarge- | R38XLarge -- ^ r3.8xlarge- | R3Large -- ^ r3.large- | R3XLarge -- ^ r3.xlarge- | T1Micro -- ^ t1.micro- | T2Medium -- ^ t2.medium- | T2Micro -- ^ t2.micro- | T2Small -- ^ t2.small- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable InstanceType--instance FromText InstanceType where- parser = match "c1.medium" C1Medium- <|> match "c1.xlarge" C1XLarge- <|> match "c3.2xlarge" C32XLarge- <|> match "c3.4xlarge" C34XLarge- <|> match "c3.8xlarge" C38XLarge- <|> match "c3.large" C3Large- <|> match "c3.xlarge" C3XLarge- <|> match "cc1.4xlarge" Cc14XLarge- <|> match "cc2.8xlarge" Cc28XLarge- <|> match "cg1.4xlarge" Cg14XLarge- <|> match "cr1.8xlarge" Cr18XLarge- <|> match "g2.2xlarge" G22XLarge- <|> match "hi1.4xlarge" Hi14XLarge- <|> match "hs1.8xlarge" Hs18XLarge- <|> match "i2.2xlarge" I22XLarge- <|> match "i2.4xlarge" I24XLarge- <|> match "i2.8xlarge" I28XLarge- <|> match "i2.xlarge" I2XLarge- <|> match "m1.large" M1Large- <|> match "m1.medium" M1Medium- <|> match "m1.small" M1Small- <|> match "m1.xlarge" M1XLarge- <|> match "m2.2xlarge" M22XLarge- <|> match "m2.4xlarge" M24XLarge- <|> match "m2.xlarge" M2XLarge- <|> match "m3.2xlarge" M32XLarge- <|> match "m3.large" M3Large- <|> match "m3.medium" M3Medium- <|> match "m3.xlarge" M3XLarge- <|> match "r3.2xlarge" R32XLarge- <|> match "r3.4xlarge" R34XLarge- <|> match "r3.8xlarge" R38XLarge- <|> match "r3.large" R3Large- <|> match "r3.xlarge" R3XLarge- <|> match "t1.micro" T1Micro- <|> match "t2.medium" T2Medium- <|> match "t2.micro" T2Micro- <|> match "t2.small" T2Small--instance ToText InstanceType where- toText = \case- C1Medium -> "c1.medium"- C1XLarge -> "c1.xlarge"- C32XLarge -> "c3.2xlarge"- C34XLarge -> "c3.4xlarge"- C38XLarge -> "c3.8xlarge"- C3Large -> "c3.large"- C3XLarge -> "c3.xlarge"- Cc14XLarge -> "cc1.4xlarge"- Cc28XLarge -> "cc2.8xlarge"- Cg14XLarge -> "cg1.4xlarge"- Cr18XLarge -> "cr1.8xlarge"- G22XLarge -> "g2.2xlarge"- Hi14XLarge -> "hi1.4xlarge"- Hs18XLarge -> "hs1.8xlarge"- I22XLarge -> "i2.2xlarge"- I24XLarge -> "i2.4xlarge"- I28XLarge -> "i2.8xlarge"- I2XLarge -> "i2.xlarge"- M1Large -> "m1.large"- M1Medium -> "m1.medium"- M1Small -> "m1.small"- M1XLarge -> "m1.xlarge"- M22XLarge -> "m2.2xlarge"- M24XLarge -> "m2.4xlarge"- M2XLarge -> "m2.xlarge"- M32XLarge -> "m3.2xlarge"- M3Large -> "m3.large"- M3Medium -> "m3.medium"- M3XLarge -> "m3.xlarge"- R32XLarge -> "r3.2xlarge"- R34XLarge -> "r3.4xlarge"- R38XLarge -> "r3.8xlarge"- R3Large -> "r3.large"- R3XLarge -> "r3.xlarge"- T1Micro -> "t1.micro"- T2Medium -> "t2.medium"- T2Micro -> "t2.micro"- T2Small -> "t2.small"--instance FromXML InstanceType where- parseXML = parseXMLText "InstanceType"--instance ToQuery InstanceType where- toQuery = toQuery . toText--data Route = Route- { _rDestinationCidrBlock :: Maybe Text- , _rGatewayId :: Maybe Text- , _rInstanceId :: Maybe Text- , _rInstanceOwnerId :: Maybe Text- , _rNetworkInterfaceId :: Maybe Text- , _rOrigin :: Maybe Text- , _rState :: Maybe Text- , _rVpcPeeringConnectionId :: Maybe Text- } deriving (Eq, Ord, 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' 'Text'------ * 'rState' @::@ 'Maybe' 'Text'------ * '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 Text)-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 Text)-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 Text- } deriving (Eq, Show)---- | 'SpotDatafeedSubscription' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdsBucket' @::@ 'Maybe' 'Text'------ * 'sdsFault' @::@ 'Maybe' 'SpotInstanceStateFault'------ * 'sdsOwnerId' @::@ 'Maybe' 'Text'------ * 'sdsPrefix' @::@ 'Maybe' 'Text'------ * 'sdsState' @::@ 'Maybe' 'Text'----spotDatafeedSubscription :: SpotDatafeedSubscription-spotDatafeedSubscription = SpotDatafeedSubscription- { _sdsOwnerId = Nothing- , _sdsBucket = Nothing- , _sdsPrefix = Nothing- , _sdsState = Nothing- , _sdsFault = Nothing- }---- | The Amazon S3 bucket where the Spot Instance datafeed 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 datafeed files.-sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)-sdsPrefix = lens _sdsPrefix (\s a -> s { _sdsPrefix = a })---- | The state of the Spot Instance datafeed subscription.-sdsState :: Lens' SpotDatafeedSubscription (Maybe Text)-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, 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, 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"- <*> x .@ "ipPermissionsEgress"- <*> x .@ "ownerId"- <*> x .@ "tagSet"- <*> x .@? "vpcId"--instance ToQuery SecurityGroup where- toQuery SecurityGroup{..} = mconcat- [ "groupDescription" =? _sgDescription- , "groupId" =? _sgGroupId- , "groupName" =? _sgGroupName- , "ipPermissions" =? _sgIpPermissions- , "ipPermissionsEgress" =? _sgIpPermissionsEgress- , "ownerId" =? _sgOwnerId- , "tagSet" =? _sgTags- , "vpcId" =? _sgVpcId- ]--data CancelSpotInstanceRequestState- = CSIRSActive -- ^ active- | CSIRSCancelled -- ^ cancelled- | CSIRSClosed -- ^ closed- | CSIRSCompleted -- ^ completed- | CSIRSOpen -- ^ open- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable CancelSpotInstanceRequestState--instance FromText CancelSpotInstanceRequestState where- parser = match "active" CSIRSActive- <|> match "cancelled" CSIRSCancelled- <|> match "closed" CSIRSClosed- <|> match "completed" CSIRSCompleted- <|> match "open" CSIRSOpen--instance ToText CancelSpotInstanceRequestState where- toText = \case- CSIRSActive -> "active"- CSIRSCancelled -> "cancelled"- CSIRSClosed -> "closed"- CSIRSCompleted -> "completed"- CSIRSOpen -> "open"--instance FromXML CancelSpotInstanceRequestState where- parseXML = parseXMLText "CancelSpotInstanceRequestState"--instance ToQuery CancelSpotInstanceRequestState where- toQuery = toQuery . toText--data PlacementGroupState- = PGSAvailable -- ^ available- | PGSDeleted -- ^ deleted- | PGSDeleting -- ^ deleting- | PGSPending -- ^ pending- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable PlacementGroupState--instance FromText PlacementGroupState where- parser = match "available" PGSAvailable- <|> match "deleted" PGSDeleted- <|> match "deleting" PGSDeleting- <|> match "pending" PGSPending--instance ToText PlacementGroupState where- toText = \case- PGSAvailable -> "available"- PGSDeleted -> "deleted"- PGSDeleting -> "deleting"- PGSPending -> "pending"--instance FromXML PlacementGroupState where- parseXML = parseXMLText "PlacementGroupState"--instance ToQuery PlacementGroupState where- toQuery = toQuery . toText--data ReservedInstancesModificationResult = ReservedInstancesModificationResult- { _rimrReservedInstancesId :: Maybe Text- , _rimrTargetConfiguration :: Maybe ReservedInstancesConfiguration- } deriving (Eq, 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, 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, Show, Generic, Enum)--instance Hashable ExportEnvironment--instance FromText ExportEnvironment where- parser = match "citrix" Citrix- <|> match "microsoft" Microsoft- <|> match "vmware" Vmware--instance ToText ExportEnvironment where- toText = \case- Citrix -> "citrix"- Microsoft -> "microsoft"- Vmware -> "vmware"--instance FromXML ExportEnvironment where- parseXML = parseXMLText "ExportEnvironment"--instance ToQuery ExportEnvironment where- toQuery = toQuery . toText--data VolumeAttachment = VolumeAttachment- { _vaAttachTime :: Maybe RFC822- , _vaDeleteOnTermination :: Maybe Bool- , _vaDevice :: Maybe Text- , _vaInstanceId :: Maybe Text- , _vaState :: Maybe Text- , _vaVolumeId :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'VolumeAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'vaAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'vaDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'vaDevice' @::@ 'Maybe' 'Text'------ * 'vaInstanceId' @::@ 'Maybe' 'Text'------ * 'vaState' @::@ 'Maybe' 'Text'------ * '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 Text)-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 :: Maybe Text- , _cgCustomerGatewayId :: Maybe Text- , _cgIpAddress :: Maybe Text- , _cgState :: Maybe Text- , _cgTags :: List "item" Tag- , _cgType :: Maybe Text- } deriving (Eq, Show)---- | 'CustomerGateway' constructor.------ The fields accessible through corresponding lenses are:------ * 'cgBgpAsn' @::@ 'Maybe' 'Text'------ * 'cgCustomerGatewayId' @::@ 'Maybe' 'Text'------ * 'cgIpAddress' @::@ 'Maybe' 'Text'------ * 'cgState' @::@ 'Maybe' 'Text'------ * 'cgTags' @::@ ['Tag']------ * 'cgType' @::@ 'Maybe' 'Text'----customerGateway :: CustomerGateway-customerGateway = CustomerGateway- { _cgCustomerGatewayId = Nothing- , _cgState = Nothing- , _cgType = Nothing- , _cgIpAddress = Nothing- , _cgBgpAsn = Nothing- , _cgTags = mempty- }---- | The customer gateway's Border Gateway Protocol (BGP) Autonomous System--- Number (ASN).-cgBgpAsn :: Lens' CustomerGateway (Maybe Text)-cgBgpAsn = lens _cgBgpAsn (\s a -> s { _cgBgpAsn = a })---- | The ID of the customer gateway.-cgCustomerGatewayId :: Lens' CustomerGateway (Maybe Text)-cgCustomerGatewayId =- lens _cgCustomerGatewayId (\s a -> s { _cgCustomerGatewayId = a })---- | The Internet-routable IP address of the customer gateway's outside--- interface.-cgIpAddress :: Lens' CustomerGateway (Maybe Text)-cgIpAddress = lens _cgIpAddress (\s a -> s { _cgIpAddress = a })---- | The current state of the customer gateway (pending | available | deleting--- | deleted).-cgState :: Lens' CustomerGateway (Maybe 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 (Maybe 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"- <*> x .@? "type"--instance ToQuery CustomerGateway where- toQuery CustomerGateway{..} = mconcat- [ "bgpAsn" =? _cgBgpAsn- , "customerGatewayId" =? _cgCustomerGatewayId- , "ipAddress" =? _cgIpAddress- , "state" =? _cgState- , "tagSet" =? _cgTags- , "type" =? _cgType- ]--data EbsInstanceBlockDevice = EbsInstanceBlockDevice- { _eibdAttachTime :: Maybe RFC822- , _eibdDeleteOnTermination :: Maybe Bool- , _eibdStatus :: Maybe Text- , _eibdVolumeId :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'EbsInstanceBlockDevice' constructor.------ The fields accessible through corresponding lenses are:------ * 'eibdAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'eibdDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'eibdStatus' @::@ 'Maybe' 'Text'------ * '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 Text)-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, Show, Generic, Enum)--instance Hashable ShutdownBehavior--instance FromText ShutdownBehavior where- parser = match "stop" Stop- <|> match "terminate" Terminate--instance ToText ShutdownBehavior where- toText = \case- Stop -> "stop"- Terminate -> "terminate"--instance FromXML ShutdownBehavior where- parseXML = parseXMLText "ShutdownBehavior"--instance ToQuery ShutdownBehavior where- toQuery = toQuery . toText--data DiskImageDescription = DiskImageDescription- { _did1Checksum :: Maybe Text- , _did1Format :: Text- , _did1ImportManifestUrl :: Text- , _did1Size :: Integer- } deriving (Eq, Ord, Show)---- | 'DiskImageDescription' constructor.------ The fields accessible through corresponding lenses are:------ * 'did1Checksum' @::@ 'Maybe' 'Text'------ * 'did1Format' @::@ 'Text'------ * 'did1ImportManifestUrl' @::@ 'Text'------ * 'did1Size' @::@ 'Integer'----diskImageDescription :: Text -- ^ '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 Text-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--- Authenticating REST Requests 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, 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 Text- } deriving (Eq, Ord, Show, Monoid)---- | 'Monitoring' constructor.------ The fields accessible through corresponding lenses are:------ * 'mState' @::@ 'Maybe' 'Text'----monitoring :: Monitoring-monitoring = Monitoring- { _mState = Nothing- }---- | Indicates whether monitoring is enabled for the instance.-mState :: Lens' Monitoring (Maybe Text)-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, Show, Generic, Enum)--instance Hashable SubnetState--instance FromText SubnetState where- parser = match "available" SSAvailable- <|> match "pending" SSPending--instance ToText SubnetState where- toText = \case- SSAvailable -> "available"- SSPending -> "pending"--instance FromXML SubnetState where- parseXML = parseXMLText "SubnetState"--instance ToQuery SubnetState where- toQuery = toQuery . toText--data ContainerFormat- = Ova -- ^ ova- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ContainerFormat--instance FromText ContainerFormat where- parser = match "ova" Ova--instance ToText ContainerFormat where- toText Ova = "ova"--instance FromXML ContainerFormat where- parseXML = parseXMLText "ContainerFormat"--instance ToQuery ContainerFormat where- toQuery = toQuery . toText--newtype AvailabilityZoneMessage = AvailabilityZoneMessage- { _azmMessage :: Maybe Text- } deriving (Eq, Ord, 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 Text- , _va1VpcId :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'VpcAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'va1State' @::@ 'Maybe' 'Text'------ * 'va1VpcId' @::@ 'Maybe' 'Text'----vpcAttachment :: VpcAttachment-vpcAttachment = VpcAttachment- { _va1VpcId = Nothing- , _va1State = Nothing- }---- | The current state of the attachment.-va1State :: Lens' VpcAttachment (Maybe Text)-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, 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, Show, Generic, Enum)--instance Hashable StatusType--instance FromText StatusType where- parser = match "failed" Failed- <|> match "insufficient-data" InsufficientData- <|> match "passed" Passed--instance ToText StatusType where- toText = \case- Failed -> "failed"- InsufficientData -> "insufficient-data"- Passed -> "passed"--instance FromXML StatusType where- parseXML = parseXMLText "StatusType"--instance ToQuery StatusType where- toQuery = toQuery . toText--data ExportToS3TaskSpecification = ExportToS3TaskSpecification- { _etstsContainerFormat :: Maybe Text- , _etstsDiskImageFormat :: Maybe Text- , _etstsS3Bucket :: Maybe Text- , _etstsS3Prefix :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'ExportToS3TaskSpecification' constructor.------ The fields accessible through corresponding lenses are:------ * 'etstsContainerFormat' @::@ 'Maybe' 'Text'------ * 'etstsDiskImageFormat' @::@ 'Maybe' 'Text'------ * 'etstsS3Bucket' @::@ 'Maybe' 'Text'------ * 'etstsS3Prefix' @::@ 'Maybe' 'Text'----exportToS3TaskSpecification :: ExportToS3TaskSpecification-exportToS3TaskSpecification = ExportToS3TaskSpecification- { _etstsDiskImageFormat = Nothing- , _etstsContainerFormat = Nothing- , _etstsS3Bucket = Nothing- , _etstsS3Prefix = Nothing- }--etstsContainerFormat :: Lens' ExportToS3TaskSpecification (Maybe Text)-etstsContainerFormat =- lens _etstsContainerFormat (\s a -> s { _etstsContainerFormat = a })--etstsDiskImageFormat :: Lens' ExportToS3TaskSpecification (Maybe Text)-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, Show, Generic, Enum)--instance Hashable NetworkInterfaceAttribute--instance FromText NetworkInterfaceAttribute where- parser = match "attachment" Attachment- <|> match "description" Description- <|> match "groupSet" GroupSet- <|> match "sourceDestCheck" SourceDestCheck--instance ToText NetworkInterfaceAttribute where- toText = \case- Attachment -> "attachment"- Description -> "description"- GroupSet -> "groupSet"- SourceDestCheck -> "sourceDestCheck"--instance FromXML NetworkInterfaceAttribute where- parseXML = parseXMLText "NetworkInterfaceAttribute"--instance ToQuery NetworkInterfaceAttribute where- toQuery = toQuery . toText--data ImageTypeValues- = Kernel -- ^ kernel- | Machine -- ^ machine- | Ramdisk -- ^ ramdisk- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ImageTypeValues--instance FromText ImageTypeValues where- parser = match "kernel" Kernel- <|> match "machine" Machine- <|> match "ramdisk" Ramdisk--instance ToText ImageTypeValues where- toText = \case- Kernel -> "kernel"- Machine -> "machine"- Ramdisk -> "ramdisk"--instance FromXML ImageTypeValues where- parseXML = parseXMLText "ImageTypeValues"--instance ToQuery ImageTypeValues where- toQuery = toQuery . toText--data InstanceExportDetails = InstanceExportDetails- { _iedInstanceId :: Maybe Text- , _iedTargetEnvironment :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'InstanceExportDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'iedInstanceId' @::@ 'Maybe' 'Text'------ * 'iedTargetEnvironment' @::@ 'Maybe' 'Text'----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 Text)-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, Show, Generic, Enum)--instance Hashable SnapshotAttributeName--instance FromText SnapshotAttributeName where- parser = match "createVolumePermission" SANCreateVolumePermission- <|> match "productCodes" SANProductCodes--instance ToText SnapshotAttributeName where- toText = \case- SANCreateVolumePermission -> "createVolumePermission"- SANProductCodes -> "productCodes"--instance FromXML SnapshotAttributeName where- parseXML = parseXMLText "SnapshotAttributeName"--instance ToQuery SnapshotAttributeName where- toQuery = toQuery . toText--data AvailabilityZone = AvailabilityZone- { _azMessages :: List "item" AvailabilityZoneMessage- , _azRegionName :: Maybe Text- , _azState :: Maybe Text- , _azZoneName :: Maybe Text- } deriving (Eq, Show)---- | 'AvailabilityZone' constructor.------ The fields accessible through corresponding lenses are:------ * 'azMessages' @::@ ['AvailabilityZoneMessage']------ * 'azRegionName' @::@ 'Maybe' 'Text'------ * 'azState' @::@ 'Maybe' 'Text'------ * '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 Text)-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"- <*> x .@? "regionName"- <*> x .@? "zoneState"- <*> x .@? "zoneName"--instance ToQuery AvailabilityZone where- toQuery AvailabilityZone{..} = mconcat- [ "messageSet" =? _azMessages- , "regionName" =? _azRegionName- , "zoneState" =? _azState- , "zoneName" =? _azZoneName- ]--data VpnState- = VpnStateAvailable -- ^ available- | VpnStateDeleted -- ^ deleted- | VpnStateDeleting -- ^ deleting- | VpnStatePending -- ^ pending- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VpnState--instance FromText VpnState where- parser = match "available" VpnStateAvailable- <|> match "deleted" VpnStateDeleted- <|> match "deleting" VpnStateDeleting- <|> match "pending" VpnStatePending--instance ToText VpnState where- toText = \case- VpnStateAvailable -> "available"- VpnStateDeleted -> "deleted"- VpnStateDeleting -> "deleting"- VpnStatePending -> "pending"--instance FromXML VpnState where- parseXML = parseXMLText "VpnState"--instance ToQuery VpnState where- toQuery = toQuery . toText--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, 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"- <*> x .@ "propagatingVgwSet"- <*> x .@? "routeTableId"- <*> x .@ "routeSet"- <*> x .@ "tagSet"- <*> x .@? "vpcId"--instance ToQuery RouteTable where- toQuery RouteTable{..} = mconcat- [ "associationSet" =? _rtAssociations- , "propagatingVgwSet" =? _rtPropagatingVgws- , "routeTableId" =? _rtRouteTableId- , "routeSet" =? _rtRoutes- , "tagSet" =? _rtTags- , "vpcId" =? _rtVpcId- ]--data HypervisorType- = Ovm -- ^ ovm- | Xen -- ^ xen- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable HypervisorType--instance FromText HypervisorType where- parser = match "ovm" Ovm- <|> match "xen" Xen--instance ToText HypervisorType where- toText = \case- Ovm -> "ovm"- Xen -> "xen"--instance FromXML HypervisorType where- parseXML = parseXMLText "HypervisorType"--instance ToQuery HypervisorType where- toQuery = toQuery . toText--data InstanceStatusDetails = InstanceStatusDetails- { _isdImpairedSince :: Maybe RFC822- , _isdName :: Maybe Text- , _isdStatus :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'InstanceStatusDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'isdImpairedSince' @::@ 'Maybe' 'UTCTime'------ * 'isdName' @::@ 'Maybe' 'Text'------ * 'isdStatus' @::@ 'Maybe' 'Text'----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 Text)-isdName = lens _isdName (\s a -> s { _isdName = a })---- | The status.-isdStatus :: Lens' InstanceStatusDetails (Maybe Text)-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, 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 :: Text- , _igaVpcId :: Text- } deriving (Eq, Ord, Show)---- | 'InternetGatewayAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'igaState' @::@ 'Text'------ * 'igaVpcId' @::@ 'Text'----internetGatewayAttachment :: Text -- ^ 'igaVpcId'- -> Text -- ^ 'igaState'- -> InternetGatewayAttachment-internetGatewayAttachment p1 p2 = InternetGatewayAttachment- { _igaVpcId = p1- , _igaState = p2- }---- | The current state of the attachment.-igaState :: Lens' InternetGatewayAttachment Text-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, Show, Generic, Enum)--instance Hashable ReservedInstanceState--instance FromText ReservedInstanceState where- parser = match "active" RISActive- <|> match "payment-failed" RISPaymentFailed- <|> match "payment-pending" RISPaymentPending- <|> match "retired" RISRetired--instance ToText ReservedInstanceState where- toText = \case- RISActive -> "active"- RISPaymentFailed -> "payment-failed"- RISPaymentPending -> "payment-pending"- RISRetired -> "retired"--instance FromXML ReservedInstanceState where- parseXML = parseXMLText "ReservedInstanceState"--instance ToQuery ReservedInstanceState where- toQuery = toQuery . toText--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, Show, Generic, Enum)--instance Hashable InstanceAttributeName--instance FromText InstanceAttributeName where- parser = match "blockDeviceMapping" IANInstanceBlockDeviceMapping- <|> match "disableApiTermination" IANInstanceDisableApiTermination- <|> match "ebsOptimized" IANInstanceEbsOptimized- <|> match "groupSet" IANInstanceGroupSet- <|> match "instanceInitiatedShutdownBehavior" IANInstanceInstanceInitiatedShutdownBehavior- <|> match "instanceType" IANInstanceInstanceType- <|> match "kernel" IANInstanceKernel- <|> match "productCodes" IANInstanceProductCodes- <|> match "ramdisk" IANInstanceRamdisk- <|> match "rootDeviceName" IANInstanceRootDeviceName- <|> match "sourceDestCheck" IANInstanceSourceDestCheck- <|> match "sriovNetSupport" IANInstanceSriovNetSupport- <|> match "userData" IANInstanceUserData--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 FromXML InstanceAttributeName where- parseXML = parseXMLText "InstanceAttributeName"--instance ToQuery InstanceAttributeName where- toQuery = toQuery . toText--data IpPermission = IpPermission- { _ipFromPort :: Int- , _ipIpProtocol :: Text- , _ipIpRanges :: List "item" IpRange- , _ipToPort :: Int- , _ipUserIdGroupPairs :: List "item" UserIdGroupPair- } deriving (Eq, 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 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"- <*> x .@ "toPort"- <*> x .@ "groups"--instance ToQuery IpPermission where- toQuery IpPermission{..} = mconcat- [ "fromPort" =? _ipFromPort- , "ipProtocol" =? _ipIpProtocol- , "ipRanges" =? _ipIpRanges- , "toPort" =? _ipToPort- , "groups" =? _ipUserIdGroupPairs- ]--data ConversionTaskState- = CTSActive -- ^ active- | CTSCancelled -- ^ cancelled- | CTSCancelling -- ^ cancelling- | CTSCompleted -- ^ completed- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ConversionTaskState--instance FromText ConversionTaskState where- parser = match "active" CTSActive- <|> match "cancelled" CTSCancelled- <|> match "cancelling" CTSCancelling- <|> match "completed" CTSCompleted--instance ToText ConversionTaskState where- toText = \case- CTSActive -> "active"- CTSCancelled -> "cancelled"- CTSCancelling -> "cancelling"- CTSCompleted -> "completed"--instance FromXML ConversionTaskState where- parseXML = parseXMLText "ConversionTaskState"--instance ToQuery ConversionTaskState where- toQuery = toQuery . toText--data DiskImage = DiskImage- { _diDescription :: Maybe Text- , _diImage :: Maybe DiskImageDetail- , _diVolume :: Maybe VolumeDetail- } deriving (Eq, 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, Show, Generic, Enum)--instance Hashable Tenancy--instance FromText Tenancy where- parser = match "dedicated" Dedicated- <|> match "default" Default'--instance ToText Tenancy where- toText = \case- Dedicated -> "dedicated"- Default' -> "default"--instance FromXML Tenancy where- parseXML = parseXMLText "Tenancy"--instance ToQuery Tenancy where- toQuery = toQuery . toText--data VpcPeeringConnectionStateReason = VpcPeeringConnectionStateReason- { _vpcsrCode :: Maybe Text- , _vpcsrMessage :: Maybe Text- } deriving (Eq, Ord, 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, 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, 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, Show, Generic, Enum)--instance Hashable PlacementStrategy--instance FromText PlacementStrategy where- parser = match "cluster" Cluster--instance ToText PlacementStrategy where- toText Cluster = "cluster"--instance FromXML PlacementStrategy where- parseXML = parseXMLText "PlacementStrategy"--instance ToQuery PlacementStrategy where- toQuery = toQuery . toText--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 Text- , _iniSubnetId :: Maybe Text- , _iniVpcId :: Maybe Text- } deriving (Eq, 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' 'Text'------ * '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 Text)-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"- <*> x .@? "macAddress"- <*> x .@? "networkInterfaceId"- <*> x .@? "ownerId"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"- <*> x .@ "privateIpAddressesSet"- <*> x .@? "sourceDestCheck"- <*> x .@? "status"- <*> x .@? "subnetId"- <*> x .@? "vpcId"--instance ToQuery InstanceNetworkInterface where- toQuery InstanceNetworkInterface{..} = mconcat- [ "association" =? _iniAssociation- , "attachment" =? _iniAttachment- , "description" =? _iniDescription- , "groupSet" =? _iniGroups- , "macAddress" =? _iniMacAddress- , "networkInterfaceId" =? _iniNetworkInterfaceId- , "ownerId" =? _iniOwnerId- , "privateDnsName" =? _iniPrivateDnsName- , "privateIpAddress" =? _iniPrivateIpAddress- , "privateIpAddressesSet" =? _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, 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, 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 Text- } deriving (Eq, Ord, Show)---- | 'ReservedInstanceLimitPrice' constructor.------ The fields accessible through corresponding lenses are:------ * 'rilpAmount' @::@ 'Maybe' 'Double'------ * 'rilpCurrencyCode' @::@ 'Maybe' 'Text'----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 Text)-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 :: Maybe Text- , _vpcDhcpOptionsId :: Maybe Text- , _vpcInstanceTenancy :: Maybe Text- , _vpcIsDefault :: Maybe Bool- , _vpcState :: Maybe Text- , _vpcTags :: List "item" Tag- , _vpcVpcId :: Maybe Text- } deriving (Eq, Show)---- | 'Vpc' constructor.------ The fields accessible through corresponding lenses are:------ * 'vpcCidrBlock' @::@ 'Maybe' 'Text'------ * 'vpcDhcpOptionsId' @::@ 'Maybe' 'Text'------ * 'vpcInstanceTenancy' @::@ 'Maybe' 'Text'------ * 'vpcIsDefault' @::@ 'Maybe' 'Bool'------ * 'vpcState' @::@ 'Maybe' 'Text'------ * 'vpcTags' @::@ ['Tag']------ * 'vpcVpcId' @::@ 'Maybe' 'Text'----vpc :: Vpc-vpc = Vpc- { _vpcVpcId = Nothing- , _vpcState = Nothing- , _vpcCidrBlock = Nothing- , _vpcDhcpOptionsId = Nothing- , _vpcTags = mempty- , _vpcInstanceTenancy = Nothing- , _vpcIsDefault = Nothing- }---- | The CIDR block for the VPC.-vpcCidrBlock :: Lens' Vpc (Maybe 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 (Maybe Text)-vpcDhcpOptionsId = lens _vpcDhcpOptionsId (\s a -> s { _vpcDhcpOptionsId = a })---- | The allowed tenancy of instances launched into the VPC.-vpcInstanceTenancy :: Lens' Vpc (Maybe Text)-vpcInstanceTenancy =- lens _vpcInstanceTenancy (\s a -> s { _vpcInstanceTenancy = a })---- | Indicates whether the VPC is the default VPC.-vpcIsDefault :: Lens' Vpc (Maybe Bool)-vpcIsDefault = lens _vpcIsDefault (\s a -> s { _vpcIsDefault = a })---- | The current state of the VPC.-vpcState :: Lens' Vpc (Maybe Text)-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 (Maybe 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"- <*> x .@? "vpcId"--instance ToQuery Vpc where- toQuery Vpc{..} = mconcat- [ "cidrBlock" =? _vpcCidrBlock- , "dhcpOptionsId" =? _vpcDhcpOptionsId- , "instanceTenancy" =? _vpcInstanceTenancy- , "isDefault" =? _vpcIsDefault- , "state" =? _vpcState- , "tagSet" =? _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, 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"- <*> x .@? "instanceId"- <*> x .@? "instanceState"- <*> x .@? "instanceStatus"- <*> x .@? "systemStatus"--instance ToQuery InstanceStatus where- toQuery InstanceStatus{..} = mconcat- [ "availabilityZone" =? _isAvailabilityZone- , "eventsSet" =? _isEvents- , "instanceId" =? _isInstanceId- , "instanceState" =? _isInstanceState- , "instanceStatus" =? _isInstanceStatus- , "systemStatus" =? _isSystemStatus- ]--data ArchitectureValues- = I386 -- ^ i386- | X8664 -- ^ x86_64- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ArchitectureValues--instance FromText ArchitectureValues where- parser = match "i386" I386- <|> match "x86_64" X8664--instance ToText ArchitectureValues where- toText = \case- I386 -> "i386"- X8664 -> "x86_64"--instance FromXML ArchitectureValues where- parseXML = parseXMLText "ArchitectureValues"--instance ToQuery ArchitectureValues where- toQuery = toQuery . toText--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, Show, Generic, Enum)--instance Hashable ReportInstanceReasonCodes--instance FromText ReportInstanceReasonCodes where- parser = match "instance-stuck-in-state" InstanceStuckInState- <|> match "not-accepting-credentials" NotAcceptingCredentials- <|> match "other" Other- <|> match "password-not-available" PasswordNotAvailable- <|> match "performance-ebs-volume" PerformanceEbsVolume- <|> match "performance-instance-store" PerformanceInstanceStore- <|> match "performance-network" PerformanceNetwork- <|> match "performance-other" PerformanceOther- <|> match "unresponsive" Unresponsive--instance ToText ReportInstanceReasonCodes where- toText = \case- InstanceStuckInState -> "instance-stuck-in-state"- NotAcceptingCredentials -> "not-accepting-credentials"- Other -> "other"- PasswordNotAvailable -> "password-not-available"- PerformanceEbsVolume -> "performance-ebs-volume"- PerformanceInstanceStore -> "performance-instance-store"- PerformanceNetwork -> "performance-network"- PerformanceOther -> "performance-other"- Unresponsive -> "unresponsive"--instance FromXML ReportInstanceReasonCodes where- parseXML = parseXMLText "ReportInstanceReasonCodes"--instance ToQuery ReportInstanceReasonCodes where- toQuery = toQuery . toText--data EbsBlockDevice = EbsBlockDevice- { _ebdDeleteOnTermination :: Maybe Bool- , _ebdEncrypted :: Maybe Bool- , _ebdIops :: Maybe Int- , _ebdSnapshotId :: Maybe Text- , _ebdVolumeSize :: Maybe Int- , _ebdVolumeType :: Maybe Text- } deriving (Eq, Ord, 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' 'Text'----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 Amazon EBS Volume Types in the Amazon Elastic Compute--- Cloud User Guide. 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 Text)-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, 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"--instance ToQuery AccountAttribute where- toQuery AccountAttribute{..} = mconcat- [ "attributeName" =? _aaAttributeName- , "attributeValueSet" =? _aaAttributeValues- ]--data PriceSchedule = PriceSchedule- { _psActive :: Maybe Bool- , _psCurrencyCode :: Maybe Text- , _psPrice :: Maybe Double- , _psTerm :: Maybe Integer- } deriving (Eq, Ord, Show)---- | 'PriceSchedule' constructor.------ The fields accessible through corresponding lenses are:------ * 'psActive' @::@ 'Maybe' 'Bool'------ * 'psCurrencyCode' @::@ 'Maybe' 'Text'------ * '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 Text)-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, Show, Generic, Enum)--instance Hashable DeviceType--instance FromText DeviceType where- parser = match "ebs" Ebs- <|> match "instance-store" InstanceStore--instance ToText DeviceType where- toText = \case- Ebs -> "ebs"- InstanceStore -> "instance-store"--instance FromXML DeviceType where- parseXML = parseXMLText "DeviceType"--instance ToQuery DeviceType where- toQuery = toQuery . toText--data DomainType- = DTStandard -- ^ standard- | DTVpc -- ^ vpc- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable DomainType--instance FromText DomainType where- parser = match "standard" DTStandard- <|> match "vpc" DTVpc--instance ToText DomainType where- toText = \case- DTStandard -> "standard"- DTVpc -> "vpc"--instance FromXML DomainType where- parseXML = parseXMLText "DomainType"--instance ToQuery DomainType where- toQuery = toQuery . toText--data Region = Region- { _rEndpoint :: Maybe Text- , _rRegionName :: Maybe Text- } deriving (Eq, Ord, 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, 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- = HeavyUtilization -- ^ Heavy Utilization- | LightUtilization -- ^ Light Utilization- | MediumUtilization -- ^ Medium Utilization- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable OfferingTypeValues--instance FromText OfferingTypeValues where- parser = match "Heavy Utilization" HeavyUtilization- <|> match "Light Utilization" LightUtilization- <|> match "Medium Utilization" MediumUtilization--instance ToText OfferingTypeValues where- toText = \case- HeavyUtilization -> "Heavy Utilization"- LightUtilization -> "Light Utilization"- MediumUtilization -> "Medium Utilization"--instance FromXML OfferingTypeValues where- parseXML = parseXMLText "OfferingTypeValues"--instance ToQuery OfferingTypeValues where- toQuery = toQuery . toText--data VpnGateway = VpnGateway- { _vgAvailabilityZone :: Maybe Text- , _vgState :: Maybe Text- , _vgTags :: List "item" Tag- , _vgType :: Maybe Text- , _vgVpcAttachments :: List "item" VpcAttachment- , _vgVpnGatewayId :: Maybe Text- } deriving (Eq, Show)---- | 'VpnGateway' constructor.------ The fields accessible through corresponding lenses are:------ * 'vgAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'vgState' @::@ 'Maybe' 'Text'------ * 'vgTags' @::@ ['Tag']------ * 'vgType' @::@ 'Maybe' 'Text'------ * '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 Text)-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 Text)-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"- <*> x .@? "type"- <*> x .@ "attachments"- <*> x .@? "vpnGatewayId"--instance ToQuery VpnGateway where- toQuery VpnGateway{..} = mconcat- [ "availabilityZone" =? _vgAvailabilityZone- , "state" =? _vgState- , "tagSet" =? _vgTags- , "type" =? _vgType- , "attachments" =? _vgVpcAttachments- , "vpnGatewayId" =? _vgVpnGatewayId- ]--data Filter = Filter- { _fName :: Text- , _fValues :: List "item" Text- } deriving (Eq, Ord, 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.-fName :: Lens' Filter Text-fName = lens _fName (\s a -> s { _fName = a })---- | One or more filter values.-fValues :: Lens' Filter [Text]-fValues = lens _fValues (\s a -> s { _fValues = a }) . _List--instance FromXML Filter where- parseXML x = Filter- <$> x .@ "Name"- <*> x .@ "Value"--instance ToQuery Filter where- toQuery Filter{..} = mconcat- [ "Name" =? _fName- , "Value" =? _fValues- ]--data VolumeType- = Gp2 -- ^ gp2- | Io1 -- ^ io1- | Standard -- ^ standard- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VolumeType--instance FromText VolumeType where- parser = match "gp2" Gp2- <|> match "io1" Io1- <|> match "standard" Standard--instance ToText VolumeType where- toText = \case- Gp2 -> "gp2"- Io1 -> "io1"- Standard -> "standard"--instance FromXML VolumeType where- parseXML = parseXMLText "VolumeType"--instance ToQuery VolumeType where- toQuery = toQuery . toText--data InstanceStateChange = InstanceStateChange- { _iscCurrentState :: Maybe InstanceState- , _iscInstanceId :: Maybe Text- , _iscPreviousState :: Maybe InstanceState- } deriving (Eq, 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, 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"- <*> x .@ "entrySet"- <*> x .@? "default"- <*> x .@? "networkAclId"- <*> x .@ "tagSet"- <*> x .@? "vpcId"--instance ToQuery NetworkAcl where- toQuery NetworkAcl{..} = mconcat- [ "associationSet" =? _naAssociations- , "entrySet" =? _naEntries- , "default" =? _naIsDefault- , "networkAclId" =? _naNetworkAclId- , "tagSet" =? _naTags- , "vpcId" =? _naVpcId- ]--data ImageState- = ISAvailable -- ^ available- | ISDeregistered -- ^ deregistered- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ImageState--instance FromText ImageState where- parser = match "available" ISAvailable- <|> match "deregistered" ISDeregistered--instance ToText ImageState where- toText = \case- ISAvailable -> "available"- ISDeregistered -> "deregistered"--instance FromXML ImageState where- parseXML = parseXMLText "ImageState"--instance ToQuery ImageState where- toQuery = toQuery . toText--data GatewayType- = Ipsec1 -- ^ ipsec.1- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable GatewayType--instance FromText GatewayType where- parser = match "ipsec.1" Ipsec1--instance ToText GatewayType where- toText Ipsec1 = "ipsec.1"--instance FromXML GatewayType where- parseXML = parseXMLText "GatewayType"--instance ToQuery GatewayType where- toQuery = toQuery . toText--data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment- { _iniaAttachTime :: Maybe RFC822- , _iniaAttachmentId :: Maybe Text- , _iniaDeleteOnTermination :: Maybe Bool- , _iniaDeviceIndex :: Maybe Int- , _iniaStatus :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'InstanceNetworkInterfaceAttachment' constructor.------ The fields accessible through corresponding lenses are:------ * 'iniaAttachTime' @::@ 'Maybe' 'UTCTime'------ * 'iniaAttachmentId' @::@ 'Maybe' 'Text'------ * 'iniaDeleteOnTermination' @::@ 'Maybe' 'Bool'------ * 'iniaDeviceIndex' @::@ 'Maybe' 'Int'------ * 'iniaStatus' @::@ 'Maybe' 'Text'----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 Text)-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, Show)---- | 'AttributeBooleanValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'abvValue' @::@ 'Maybe' 'Bool'----attributeBooleanValue :: AttributeBooleanValue-attributeBooleanValue = AttributeBooleanValue- { _abvValue = Nothing- }--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 Text- } deriving (Eq, Ord, Show)---- | 'RecurringCharge' constructor.------ The fields accessible through corresponding lenses are:------ * 'rcAmount' @::@ 'Maybe' 'Double'------ * 'rcFrequency' @::@ 'Maybe' 'Text'----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 Text)-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, 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"--instance ToQuery NewDhcpConfiguration where- toQuery NewDhcpConfiguration{..} = mconcat- [ "key" =? _ndcKey- , "Value" =? _ndcValues- ]--data StateReason = StateReason- { _srCode :: Maybe Text- , _srMessage :: Maybe Text- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable MonitoringState--instance FromText MonitoringState where- parser = match "disabled" MSDisabled- <|> match "enabled" MSEnabled- <|> match "pending" MSPending--instance ToText MonitoringState where- toText = \case- MSDisabled -> "disabled"- MSEnabled -> "enabled"- MSPending -> "pending"--instance FromXML MonitoringState where- parseXML = parseXMLText "MonitoringState"--instance ToQuery MonitoringState where- toQuery = toQuery . toText--newtype ReservedInstancesId = ReservedInstancesId- { _riiReservedInstancesId :: Maybe Text- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable StatusName--instance FromText StatusName where- parser = match "reachability" Reachability--instance ToText StatusName where- toText Reachability = "reachability"--instance FromXML StatusName where- parseXML = parseXMLText "StatusName"--instance ToQuery StatusName where- toQuery = toQuery . toText--data InternetGateway = InternetGateway- { _igAttachments :: List "item" InternetGatewayAttachment- , _igInternetGatewayId :: Text- , _igTags :: List "item" Tag- } deriving (Eq, 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"- <*> x .@ "internetGatewayId"- <*> x .@ "tagSet"--instance ToQuery InternetGateway where- toQuery InternetGateway{..} = mconcat- [ "attachmentSet" =? _igAttachments- , "internetGatewayId" =? _igInternetGatewayId- , "tagSet" =? _igTags- ]--data VolumeStatusName- = IoEnabled -- ^ io-enabled- | IoPerformance -- ^ io-performance- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VolumeStatusName--instance FromText VolumeStatusName where- parser = match "io-enabled" IoEnabled- <|> match "io-performance" IoPerformance--instance ToText VolumeStatusName where- toText = \case- IoEnabled -> "io-enabled"- IoPerformance -> "io-performance"--instance FromXML VolumeStatusName where- parseXML = parseXMLText "VolumeStatusName"--instance ToQuery VolumeStatusName where- toQuery = toQuery . toText--data VolumeAttributeName- = AutoEnableIO -- ^ autoEnableIO- | ProductCodes -- ^ productCodes- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable VolumeAttributeName--instance FromText VolumeAttributeName where- parser = match "autoEnableIO" AutoEnableIO- <|> match "productCodes" ProductCodes--instance ToText VolumeAttributeName where- toText = \case- AutoEnableIO -> "autoEnableIO"- ProductCodes -> "productCodes"--instance FromXML VolumeAttributeName where- parseXML = parseXMLText "VolumeAttributeName"--instance ToQuery VolumeAttributeName where- toQuery = toQuery . toText--data ImportInstanceTaskDetails = ImportInstanceTaskDetails- { _iitdDescription :: Maybe Text- , _iitdInstanceId :: Maybe Text- , _iitdPlatform :: Maybe Text- , _iitdVolumes :: List "item" ImportInstanceVolumeDetailItem- } deriving (Eq, Show)---- | 'ImportInstanceTaskDetails' constructor.------ The fields accessible through corresponding lenses are:------ * 'iitdDescription' @::@ 'Maybe' 'Text'------ * 'iitdInstanceId' @::@ 'Maybe' 'Text'------ * 'iitdPlatform' @::@ 'Maybe' 'Text'------ * '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 Text)-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"--instance ToQuery ImportInstanceTaskDetails where- toQuery ImportInstanceTaskDetails{..} = mconcat- [ "description" =? _iitdDescription- , "instanceId" =? _iitdInstanceId- , "platform" =? _iitdPlatform- , "volumes" =? _iitdVolumes- ]--data PlacementGroup = PlacementGroup- { _pgGroupName :: Maybe Text- , _pgState :: Maybe Text- , _pgStrategy :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'PlacementGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'pgGroupName' @::@ 'Maybe' 'Text'------ * 'pgState' @::@ 'Maybe' 'Text'------ * 'pgStrategy' @::@ 'Maybe' 'Text'----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 Text)-pgState = lens _pgState (\s a -> s { _pgState = a })---- | The placement strategy.-pgStrategy :: Lens' PlacementGroup (Maybe Text)-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 Text- } deriving (Eq, Ord, Show)---- | 'ProductCode' constructor.------ The fields accessible through corresponding lenses are:------ * 'pcProductCodeId' @::@ 'Maybe' 'Text'------ * 'pcProductCodeType' @::@ 'Maybe' 'Text'----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 Text)-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, Show, Generic, Enum)--instance Hashable ListingStatus--instance FromText ListingStatus where- parser = match "active" ListingStatusActive- <|> match "cancelled" ListingStatusCancelled- <|> match "closed" ListingStatusClosed- <|> match "pending" ListingStatusPending--instance ToText ListingStatus where- toText = \case- ListingStatusActive -> "active"- ListingStatusCancelled -> "cancelled"- ListingStatusClosed -> "closed"- ListingStatusPending -> "pending"--instance FromXML ListingStatus where- parseXML = parseXMLText "ListingStatus"--instance ToQuery ListingStatus where- toQuery = toQuery . toText--newtype IpRange = IpRange- { _irCidrIp :: Text- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable VolumeStatusInfoStatus--instance FromText VolumeStatusInfoStatus where- parser = match "impaired" VSISImpaired- <|> match "insufficient-data" VSISInsufficientData- <|> match "ok" VSISOk--instance ToText VolumeStatusInfoStatus where- toText = \case- VSISImpaired -> "impaired"- VSISInsufficientData -> "insufficient-data"- VSISOk -> "ok"--instance FromXML VolumeStatusInfoStatus where- parseXML = parseXMLText "VolumeStatusInfoStatus"--instance ToQuery VolumeStatusInfoStatus where- toQuery = toQuery . toText--newtype AccountAttributeValue = AccountAttributeValue- { _aavAttributeValue :: Maybe Text- } deriving (Eq, Ord, 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, Show, Generic, Enum)--instance Hashable RIProductDescription--instance FromText RIProductDescription where- parser = match "Linux/UNIX" RIPDLinuxUNIX- <|> match "Linux/UNIX (Amazon VPC)" RIPDLinuxUNIXAmazonVPC- <|> match "Windows" RIPDWindows- <|> match "Windows (Amazon VPC)" RIPDWindowsAmazonVPC--instance ToText RIProductDescription where- toText = \case- RIPDLinuxUNIX -> "Linux/UNIX"- RIPDLinuxUNIXAmazonVPC -> "Linux/UNIX (Amazon VPC)"- RIPDWindows -> "Windows"- RIPDWindowsAmazonVPC -> "Windows (Amazon VPC)"--instance FromXML RIProductDescription where- parseXML = parseXMLText "RIProductDescription"--instance ToQuery RIProductDescription where- toQuery = toQuery . toText--data ReservedInstancesOffering = ReservedInstancesOffering- { _rioAvailabilityZone :: Maybe Text- , _rioCurrencyCode :: Maybe Text- , _rioDuration :: Maybe Integer- , _rioFixedPrice :: Maybe Double- , _rioInstanceTenancy :: Maybe Text- , _rioInstanceType :: Maybe Text- , _rioMarketplace :: Maybe Bool- , _rioOfferingType :: Maybe Text- , _rioPricingDetails :: List "item" PricingDetail- , _rioProductDescription :: Maybe Text- , _rioRecurringCharges :: List "item" RecurringCharge- , _rioReservedInstancesOfferingId :: Maybe Text- , _rioUsagePrice :: Maybe Double- } deriving (Eq, Show)---- | 'ReservedInstancesOffering' constructor.------ The fields accessible through corresponding lenses are:------ * 'rioAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'rioCurrencyCode' @::@ 'Maybe' 'Text'------ * 'rioDuration' @::@ 'Maybe' 'Integer'------ * 'rioFixedPrice' @::@ 'Maybe' 'Double'------ * 'rioInstanceTenancy' @::@ 'Maybe' 'Text'------ * 'rioInstanceType' @::@ 'Maybe' 'Text'------ * 'rioMarketplace' @::@ 'Maybe' 'Bool'------ * 'rioOfferingType' @::@ 'Maybe' 'Text'------ * 'rioPricingDetails' @::@ ['PricingDetail']------ * 'rioProductDescription' @::@ 'Maybe' 'Text'------ * '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 Text)-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 Text)-rioInstanceTenancy =- lens _rioInstanceTenancy (\s a -> s { _rioInstanceTenancy = a })---- | The instance type on which the Reserved Instance can be used.-rioInstanceType :: Lens' ReservedInstancesOffering (Maybe Text)-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 Text)-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 Text)-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"- <*> x .@? "productDescription"- <*> x .@ "recurringCharges"- <*> 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" =? _rioPricingDetails- , "productDescription" =? _rioProductDescription- , "recurringCharges" =? _rioRecurringCharges- , "reservedInstancesOfferingId" =? _rioReservedInstancesOfferingId- , "usagePrice" =? _rioUsagePrice- ]--data ReservedInstances = ReservedInstances- { _ri1AvailabilityZone :: Maybe Text- , _ri1CurrencyCode :: Maybe Text- , _ri1Duration :: Maybe Integer- , _ri1End :: Maybe RFC822- , _ri1FixedPrice :: Maybe Double- , _ri1InstanceCount :: Maybe Int- , _ri1InstanceTenancy :: Maybe Text- , _ri1InstanceType :: Maybe Text- , _ri1OfferingType :: Maybe Text- , _ri1ProductDescription :: Maybe Text- , _ri1RecurringCharges :: List "item" RecurringCharge- , _ri1ReservedInstancesId :: Maybe Text- , _ri1Start :: Maybe RFC822- , _ri1State :: Maybe Text- , _ri1Tags :: List "item" Tag- , _ri1UsagePrice :: Maybe Double- } deriving (Eq, Show)---- | 'ReservedInstances' constructor.------ The fields accessible through corresponding lenses are:------ * 'ri1AvailabilityZone' @::@ 'Maybe' 'Text'------ * 'ri1CurrencyCode' @::@ 'Maybe' 'Text'------ * 'ri1Duration' @::@ 'Maybe' 'Integer'------ * 'ri1End' @::@ 'Maybe' 'UTCTime'------ * 'ri1FixedPrice' @::@ 'Maybe' 'Double'------ * 'ri1InstanceCount' @::@ 'Maybe' 'Int'------ * 'ri1InstanceTenancy' @::@ 'Maybe' 'Text'------ * 'ri1InstanceType' @::@ 'Maybe' 'Text'------ * 'ri1OfferingType' @::@ 'Maybe' 'Text'------ * 'ri1ProductDescription' @::@ 'Maybe' 'Text'------ * 'ri1RecurringCharges' @::@ ['RecurringCharge']------ * 'ri1ReservedInstancesId' @::@ 'Maybe' 'Text'------ * 'ri1Start' @::@ 'Maybe' 'UTCTime'------ * 'ri1State' @::@ 'Maybe' 'Text'------ * '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 Text)-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 Text)-ri1InstanceTenancy =- lens _ri1InstanceTenancy (\s a -> s { _ri1InstanceTenancy = a })---- | The instance type on which the Reserved Instance can be used.-ri1InstanceType :: Lens' ReservedInstances (Maybe Text)-ri1InstanceType = lens _ri1InstanceType (\s a -> s { _ri1InstanceType = a })---- | The Reserved Instance offering type.-ri1OfferingType :: Lens' ReservedInstances (Maybe Text)-ri1OfferingType = lens _ri1OfferingType (\s a -> s { _ri1OfferingType = a })---- | The Reserved Instance description.-ri1ProductDescription :: Lens' ReservedInstances (Maybe Text)-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 Text)-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"- <*> x .@? "reservedInstancesId"- <*> x .@? "start"- <*> x .@? "state"- <*> x .@ "tagSet"- <*> 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" =? _ri1RecurringCharges- , "reservedInstancesId" =? _ri1ReservedInstancesId- , "start" =? _ri1Start- , "state" =? _ri1State- , "tagSet" =? _ri1Tags- , "usagePrice" =? _ri1UsagePrice- ]--data DatafeedSubscriptionState- = DSSActive -- ^ Active- | DSSInactive -- ^ Inactive- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable DatafeedSubscriptionState--instance FromText DatafeedSubscriptionState where- parser = match "Active" DSSActive- <|> match "Inactive" DSSInactive--instance ToText DatafeedSubscriptionState where- toText = \case- DSSActive -> "Active"- DSSInactive -> "Inactive"--instance FromXML DatafeedSubscriptionState where- parseXML = parseXMLText "DatafeedSubscriptionState"--instance ToQuery DatafeedSubscriptionState where- toQuery = toQuery . toText--data ExportTaskState- = ETSActive -- ^ active- | ETSCancelled -- ^ cancelled- | ETSCancelling -- ^ cancelling- | ETSCompleted -- ^ completed- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ExportTaskState--instance FromText ExportTaskState where- parser = match "active" ETSActive- <|> match "cancelled" ETSCancelled- <|> match "cancelling" ETSCancelling- <|> match "completed" ETSCompleted--instance ToText ExportTaskState where- toText = \case- ETSActive -> "active"- ETSCancelled -> "cancelled"- ETSCancelling -> "cancelling"- ETSCompleted -> "completed"--instance FromXML ExportTaskState where- parseXML = parseXMLText "ExportTaskState"--instance ToQuery ExportTaskState where- toQuery = toQuery . toText--data ProductCodeValues- = Devpay -- ^ devpay- | Marketplace -- ^ marketplace- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable ProductCodeValues--instance FromText ProductCodeValues where- parser = match "devpay" Devpay- <|> match "marketplace" Marketplace--instance ToText ProductCodeValues where- toText = \case- Devpay -> "devpay"- Marketplace -> "marketplace"--instance FromXML ProductCodeValues where- parseXML = parseXMLText "ProductCodeValues"--instance ToQuery ProductCodeValues where- toQuery = toQuery . toText--data VpnConnection = VpnConnection- { _vcCustomerGatewayConfiguration :: Maybe Text- , _vcCustomerGatewayId :: Maybe Text- , _vcOptions :: Maybe VpnConnectionOptions- , _vcRoutes :: List "item" VpnStaticRoute- , _vcState :: Maybe Text- , _vcTags :: List "item" Tag- , _vcType :: Maybe Text- , _vcVgwTelemetry :: List "item" VgwTelemetry- , _vcVpnConnectionId :: Maybe Text- , _vcVpnGatewayId :: Maybe Text- } deriving (Eq, Show)---- | 'VpnConnection' constructor.------ The fields accessible through corresponding lenses are:------ * 'vcCustomerGatewayConfiguration' @::@ 'Maybe' 'Text'------ * 'vcCustomerGatewayId' @::@ 'Maybe' 'Text'------ * 'vcOptions' @::@ 'Maybe' 'VpnConnectionOptions'------ * 'vcRoutes' @::@ ['VpnStaticRoute']------ * 'vcState' @::@ 'Maybe' 'Text'------ * 'vcTags' @::@ ['Tag']------ * 'vcType' @::@ 'Maybe' 'Text'------ * 'vcVgwTelemetry' @::@ ['VgwTelemetry']------ * 'vcVpnConnectionId' @::@ 'Maybe' 'Text'------ * 'vcVpnGatewayId' @::@ 'Maybe' 'Text'----vpnConnection :: VpnConnection-vpnConnection = VpnConnection- { _vcVpnConnectionId = Nothing- , _vcState = Nothing- , _vcCustomerGatewayConfiguration = Nothing- , _vcType = Nothing- , _vcCustomerGatewayId = Nothing- , _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 (Maybe 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 (Maybe 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 (Maybe Text)-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 (Maybe Text)-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 (Maybe 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"- <*> x .@? "state"- <*> x .@ "tagSet"- <*> x .@? "type"- <*> x .@ "vgwTelemetry"- <*> x .@? "vpnConnectionId"- <*> x .@? "vpnGatewayId"--instance ToQuery VpnConnection where- toQuery VpnConnection{..} = mconcat- [ "customerGatewayConfiguration" =? _vcCustomerGatewayConfiguration- , "customerGatewayId" =? _vcCustomerGatewayId- , "options" =? _vcOptions- , "routes" =? _vcRoutes- , "state" =? _vcState- , "tagSet" =? _vcTags- , "type" =? _vcType- , "vgwTelemetry" =? _vcVgwTelemetry- , "vpnConnectionId" =? _vcVpnConnectionId- , "vpnGatewayId" =? _vcVpnGatewayId- ]--data InstanceState = InstanceState- { _isCode :: Int- , _isName :: Text- } deriving (Eq, Ord, Show)---- | 'InstanceState' constructor.------ The fields accessible through corresponding lenses are:------ * 'isCode' @::@ 'Int'------ * 'isName' @::@ 'Text'----instanceState :: Int -- ^ 'isCode'- -> Text -- ^ '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 Text-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 Text- } deriving (Eq, Ord, Show)---- | 'Placement' constructor.------ The fields accessible through corresponding lenses are:------ * 'pAvailabilityZone' @::@ 'Maybe' 'Text'------ * 'pGroupName' @::@ 'Maybe' 'Text'------ * 'pTenancy' @::@ 'Maybe' 'Text'----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 Text)-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, Show, Generic, Enum)--instance Hashable EventCode--instance FromText EventCode where- parser = match "instance-reboot" InstanceReboot- <|> match "instance-retirement" InstanceRetirement- <|> match "instance-stop" InstanceStop- <|> match "system-maintenance" SystemMaintenance- <|> match "system-reboot" SystemReboot--instance ToText EventCode where- toText = \case- InstanceReboot -> "instance-reboot"- InstanceRetirement -> "instance-retirement"- InstanceStop -> "instance-stop"- SystemMaintenance -> "system-maintenance"- SystemReboot -> "system-reboot"--instance FromXML EventCode where- parseXML = parseXMLText "EventCode"--instance ToQuery EventCode where- toQuery = toQuery . toText--data SpotInstanceType- = OneTime -- ^ one-time- | Persistent -- ^ persistent- deriving (Eq, Ord, Show, Generic, Enum)--instance Hashable SpotInstanceType--instance FromText SpotInstanceType where- parser = match "one-time" OneTime- <|> match "persistent" Persistent--instance ToText SpotInstanceType where- toText = \case- OneTime -> "one-time"- Persistent -> "persistent"--instance FromXML SpotInstanceType where- parseXML = parseXMLText "SpotInstanceType"--instance ToQuery SpotInstanceType where- toQuery = toQuery . toText--data VpcPeeringConnection = VpcPeeringConnection- { _vpc1AccepterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo- , _vpc1ExpirationTime :: Maybe RFC822- , _vpc1RequesterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo- , _vpc1Status :: Maybe VpcPeeringConnectionStateReason- , _vpc1Tags :: List "item" Tag- , _vpc1VpcPeeringConnectionId :: Maybe Text- } deriving (Eq, 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"- <*> x .@? "vpcPeeringConnectionId"--instance ToQuery VpcPeeringConnection where- toQuery VpcPeeringConnection{..} = mconcat- [ "accepterVpcInfo" =? _vpc1AccepterVpcInfo- , "expirationTime" =? _vpc1ExpirationTime- , "requesterVpcInfo" =? _vpc1RequesterVpcInfo- , "status" =? _vpc1Status- , "tagSet" =? _vpc1Tags- , "vpcPeeringConnectionId" =? _vpc1VpcPeeringConnectionId- ]--data S3Storage = S3Storage- { _ssAWSAccessKeyId :: Maybe Text- , _ssBucket :: Maybe Text- , _ssPrefix :: Maybe Text- , _ssUploadPolicy :: Maybe Base64- , _ssUploadPolicySignature :: Maybe Text- } deriving (Eq, 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 Best Practices--- for Managing 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 RFC822- , _vtOutsideIpAddress :: Maybe Text- , _vtStatus :: Maybe Text- , _vtStatusMessage :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'VgwTelemetry' constructor.------ The fields accessible through corresponding lenses are:------ * 'vtAcceptedRouteCount' @::@ 'Maybe' 'Int'------ * 'vtLastStatusChange' @::@ 'Maybe' 'UTCTime'------ * 'vtOutsideIpAddress' @::@ 'Maybe' 'Text'------ * 'vtStatus' @::@ 'Maybe' 'Text'------ * '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 Text)-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 Text- , _vsrState :: Maybe Text- } deriving (Eq, Ord, Show)---- | 'VpnStaticRoute' constructor.------ The fields accessible through corresponding lenses are:------ * 'vsrDestinationCidrBlock' @::@ 'Maybe' 'Text'------ * 'vsrSource' @::@ 'Maybe' 'Text'------ * 'vsrState' @::@ 'Maybe' 'Text'----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 Text)-vsrSource = lens _vsrSource (\s a -> s { _vsrSource = a })---- | The current state of the static route.-vsrState :: Lens' VpnStaticRoute (Maybe Text)-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, Show, Generic, Enum)--instance Hashable InstanceStateName--instance FromText InstanceStateName where- parser = match "pending" ISNPending- <|> match "running" ISNRunning- <|> match "shutting-down" ISNShuttingDown- <|> match "stopped" ISNStopped- <|> match "stopping" ISNStopping- <|> match "terminated" ISNTerminated--instance ToText InstanceStateName where- toText = \case- ISNPending -> "pending"- ISNRunning -> "running"- ISNShuttingDown -> "shutting-down"- ISNStopped -> "stopped"- ISNStopping -> "stopping"- ISNTerminated -> "terminated"--instance FromXML InstanceStateName where- parseXML = parseXMLText "InstanceStateName"--instance ToQuery InstanceStateName where- toQuery = toQuery . toText--data Instance = Instance- { _i1AmiLaunchIndex :: Maybe Int- , _i1Architecture :: Maybe Text- , _i1BlockDeviceMappings :: List "item" InstanceBlockDeviceMapping- , _i1ClientToken :: Maybe Text- , _i1EbsOptimized :: Maybe Bool- , _i1Hypervisor :: Maybe Text- , _i1IamInstanceProfile :: Maybe IamInstanceProfile- , _i1ImageId :: Maybe Text- , _i1InstanceId :: Maybe Text- , _i1InstanceLifecycle :: Maybe Text- , _i1InstanceType :: Maybe Text- , _i1KernelId :: Maybe Text- , _i1KeyName :: Maybe Text- , _i1LaunchTime :: Maybe RFC822- , _i1Monitoring :: Maybe Monitoring- , _i1NetworkInterfaces :: List "item" InstanceNetworkInterface- , _i1Placement :: Maybe Placement- , _i1Platform :: Maybe Text- , _i1PrivateDnsName :: Maybe Text- , _i1PrivateIpAddress :: Maybe Text- , _i1ProductCodes :: List "item" ProductCode- , _i1PublicDnsName :: Maybe Text- , _i1PublicIpAddress :: Maybe Text- , _i1RamdiskId :: Maybe Text- , _i1RootDeviceName :: Maybe Text- , _i1RootDeviceType :: Maybe Text- , _i1SecurityGroups :: List "item" GroupIdentifier- , _i1SourceDestCheck :: Maybe Bool- , _i1SpotInstanceRequestId :: Maybe Text- , _i1SriovNetSupport :: Maybe Text- , _i1State :: Maybe InstanceState- , _i1StateReason :: Maybe StateReason- , _i1StateTransitionReason :: Maybe Text- , _i1SubnetId :: Maybe Text- , _i1Tags :: List "item" Tag- , _i1VirtualizationType :: Maybe Text- , _i1VpcId :: Maybe Text- } deriving (Eq, Show)---- | 'Instance' constructor.------ The fields accessible through corresponding lenses are:------ * 'i1AmiLaunchIndex' @::@ 'Maybe' 'Int'------ * 'i1Architecture' @::@ 'Maybe' 'Text'------ * 'i1BlockDeviceMappings' @::@ ['InstanceBlockDeviceMapping']------ * 'i1ClientToken' @::@ 'Maybe' 'Text'------ * 'i1EbsOptimized' @::@ 'Maybe' 'Bool'------ * 'i1Hypervisor' @::@ 'Maybe' 'Text'------ * 'i1IamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfile'------ * 'i1ImageId' @::@ 'Maybe' 'Text'------ * 'i1InstanceId' @::@ 'Maybe' 'Text'------ * 'i1InstanceLifecycle' @::@ 'Maybe' 'Text'------ * 'i1InstanceType' @::@ 'Maybe' 'Text'------ * 'i1KernelId' @::@ 'Maybe' 'Text'------ * 'i1KeyName' @::@ 'Maybe' 'Text'------ * 'i1LaunchTime' @::@ 'Maybe' 'UTCTime'------ * 'i1Monitoring' @::@ 'Maybe' 'Monitoring'------ * 'i1NetworkInterfaces' @::@ ['InstanceNetworkInterface']------ * 'i1Placement' @::@ 'Maybe' 'Placement'------ * 'i1Platform' @::@ 'Maybe' 'Text'------ * 'i1PrivateDnsName' @::@ 'Maybe' 'Text'------ * 'i1PrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'i1ProductCodes' @::@ ['ProductCode']------ * 'i1PublicDnsName' @::@ 'Maybe' 'Text'------ * 'i1PublicIpAddress' @::@ 'Maybe' 'Text'------ * 'i1RamdiskId' @::@ 'Maybe' 'Text'------ * 'i1RootDeviceName' @::@ 'Maybe' 'Text'------ * 'i1RootDeviceType' @::@ 'Maybe' 'Text'------ * 'i1SecurityGroups' @::@ ['GroupIdentifier']------ * 'i1SourceDestCheck' @::@ 'Maybe' 'Bool'------ * 'i1SpotInstanceRequestId' @::@ 'Maybe' 'Text'------ * 'i1SriovNetSupport' @::@ 'Maybe' 'Text'------ * 'i1State' @::@ 'Maybe' 'InstanceState'------ * 'i1StateReason' @::@ 'Maybe' 'StateReason'------ * 'i1StateTransitionReason' @::@ 'Maybe' 'Text'------ * 'i1SubnetId' @::@ 'Maybe' 'Text'------ * 'i1Tags' @::@ ['Tag']------ * 'i1VirtualizationType' @::@ 'Maybe' 'Text'------ * 'i1VpcId' @::@ 'Maybe' 'Text'----instance' :: Instance-instance' = Instance- { _i1InstanceId = Nothing- , _i1ImageId = Nothing- , _i1State = Nothing- , _i1PrivateDnsName = Nothing- , _i1PublicDnsName = Nothing- , _i1StateTransitionReason = Nothing- , _i1KeyName = Nothing- , _i1AmiLaunchIndex = Nothing- , _i1ProductCodes = mempty- , _i1InstanceType = Nothing- , _i1LaunchTime = Nothing- , _i1Placement = Nothing- , _i1KernelId = Nothing- , _i1RamdiskId = Nothing- , _i1Platform = Nothing- , _i1Monitoring = Nothing- , _i1SubnetId = Nothing- , _i1VpcId = Nothing- , _i1PrivateIpAddress = Nothing- , _i1PublicIpAddress = Nothing- , _i1StateReason = Nothing- , _i1Architecture = Nothing- , _i1RootDeviceType = Nothing- , _i1RootDeviceName = Nothing- , _i1BlockDeviceMappings = mempty- , _i1VirtualizationType = Nothing- , _i1InstanceLifecycle = Nothing- , _i1SpotInstanceRequestId = Nothing- , _i1ClientToken = Nothing- , _i1Tags = mempty- , _i1SecurityGroups = mempty- , _i1SourceDestCheck = Nothing- , _i1Hypervisor = Nothing- , _i1NetworkInterfaces = mempty- , _i1IamInstanceProfile = Nothing- , _i1EbsOptimized = Nothing- , _i1SriovNetSupport = Nothing- }---- | The AMI launch index, which can be used to find this instance in the--- launch group.-i1AmiLaunchIndex :: Lens' Instance (Maybe Int)-i1AmiLaunchIndex = lens _i1AmiLaunchIndex (\s a -> s { _i1AmiLaunchIndex = a })---- | The architecture of the image.-i1Architecture :: Lens' Instance (Maybe Text)-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 (Maybe Bool)-i1EbsOptimized = lens _i1EbsOptimized (\s a -> s { _i1EbsOptimized = a })---- | The hypervisor type of the instance.-i1Hypervisor :: Lens' Instance (Maybe Text)-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 (Maybe Text)-i1ImageId = lens _i1ImageId (\s a -> s { _i1ImageId = a })---- | The ID of the instance.-i1InstanceId :: Lens' Instance (Maybe Text)-i1InstanceId = lens _i1InstanceId (\s a -> s { _i1InstanceId = a })---- | Indicates whether this is a Spot Instance.-i1InstanceLifecycle :: Lens' Instance (Maybe Text)-i1InstanceLifecycle =- lens _i1InstanceLifecycle (\s a -> s { _i1InstanceLifecycle = a })---- | The instance type.-i1InstanceType :: Lens' Instance (Maybe Text)-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 (Maybe UTCTime)-i1LaunchTime = lens _i1LaunchTime (\s a -> s { _i1LaunchTime = a }) . mapping _Time---- | The monitoring information for the instance.-i1Monitoring :: Lens' Instance (Maybe 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 (Maybe Placement)-i1Placement = lens _i1Placement (\s a -> s { _i1Placement = a })---- | The value is Windows for Windows instances; otherwise blank.-i1Platform :: Lens' Instance (Maybe Text)-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 (Maybe Text)-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 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 (Maybe 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 (Maybe Text)-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"- <*> 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"- <*> x .@? "placement"- <*> x .@? "platform"- <*> x .@? "privateDnsName"- <*> x .@? "privateIpAddress"- <*> x .@ "productCodes"- <*> x .@? "dnsName"- <*> x .@? "ipAddress"- <*> x .@? "ramdiskId"- <*> x .@? "rootDeviceName"- <*> x .@? "rootDeviceType"- <*> x .@ "groupSet"- <*> x .@? "sourceDestCheck"- <*> x .@? "spotInstanceRequestId"- <*> x .@? "sriovNetSupport"- <*> x .@? "instanceState"- <*> x .@? "stateReason"- <*> x .@? "reason"- <*> x .@? "subnetId"- <*> x .@ "tagSet"- <*> x .@? "virtualizationType"- <*> x .@? "vpcId"--instance ToQuery Instance where- toQuery Instance{..} = mconcat- [ "amiLaunchIndex" =? _i1AmiLaunchIndex- , "architecture" =? _i1Architecture- , "blockDeviceMapping" =? _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" =? _i1NetworkInterfaces- , "placement" =? _i1Placement- , "platform" =? _i1Platform- , "privateDnsName" =? _i1PrivateDnsName- , "privateIpAddress" =? _i1PrivateIpAddress- , "productCodes" =? _i1ProductCodes- , "dnsName" =? _i1PublicDnsName- , "ipAddress" =? _i1PublicIpAddress- , "ramdiskId" =? _i1RamdiskId- , "rootDeviceName" =? _i1RootDeviceName- , "rootDeviceType" =? _i1RootDeviceType- , "groupSet" =? _i1SecurityGroups- , "sourceDestCheck" =? _i1SourceDestCheck- , "spotInstanceRequestId" =? _i1SpotInstanceRequestId- , "sriovNetSupport" =? _i1SriovNetSupport- , "instanceState" =? _i1State- , "stateReason" =? _i1StateReason- , "reason" =? _i1StateTransitionReason- , "subnetId" =? _i1SubnetId- , "tagSet" =? _i1Tags- , "virtualizationType" =? _i1VirtualizationType- , "vpcId" =? _i1VpcId- ]--data ExportTask = ExportTask- { _etDescription :: Maybe Text- , _etExportTaskId :: Maybe Text- , _etExportToS3Task :: Maybe ExportToS3Task- , _etInstanceExportDetails :: Maybe InstanceExportDetails- , _etState :: Maybe Text- , _etStatusMessage :: Maybe Text- } deriving (Eq, Show)---- | 'ExportTask' constructor.------ The fields accessible through corresponding lenses are:------ * 'etDescription' @::@ 'Maybe' 'Text'------ * 'etExportTaskId' @::@ 'Maybe' 'Text'------ * 'etExportToS3Task' @::@ 'Maybe' 'ExportToS3Task'------ * 'etInstanceExportDetails' @::@ 'Maybe' 'InstanceExportDetails'------ * 'etState' @::@ 'Maybe' 'Text'------ * 'etStatusMessage' @::@ 'Maybe' 'Text'----exportTask :: ExportTask-exportTask = ExportTask- { _etExportTaskId = Nothing- , _etDescription = Nothing- , _etState = Nothing- , _etStatusMessage = Nothing- , _etInstanceExportDetails = Nothing- , _etExportToS3Task = Nothing- }---- | A description of the resource being exported.-etDescription :: Lens' ExportTask (Maybe Text)-etDescription = lens _etDescription (\s a -> s { _etDescription = a })---- | The ID of the export task.-etExportTaskId :: Lens' ExportTask (Maybe Text)-etExportTaskId = lens _etExportTaskId (\s a -> s { _etExportTaskId = a })--etExportToS3Task :: Lens' ExportTask (Maybe ExportToS3Task)-etExportToS3Task = lens _etExportToS3Task (\s a -> s { _etExportToS3Task = a })---- | The instance being exported.-etInstanceExportDetails :: Lens' ExportTask (Maybe InstanceExportDetails)-etInstanceExportDetails =- lens _etInstanceExportDetails (\s a -> s { _etInstanceExportDetails = a })---- | The state of the conversion task.-etState :: Lens' ExportTask (Maybe Text)-etState = lens _etState (\s a -> s { _etState = a })---- | The status message related to the export task.-etStatusMessage :: Lens' ExportTask (Maybe 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, Show, Generic, Enum)--instance Hashable ResetImageAttributeName--instance FromText ResetImageAttributeName where- parser = match "launchPermission" RIANLaunchPermission--instance ToText ResetImageAttributeName where- toText RIANLaunchPermission = "launchPermission"--instance FromXML ResetImageAttributeName where- parseXML = parseXMLText "ResetImageAttributeName"--instance ToQuery ResetImageAttributeName where- toQuery = toQuery . toText--data RequestSpotLaunchSpecification = RequestSpotLaunchSpecification- { _rslsAddressingType :: Maybe Text- , _rslsBlockDeviceMappings :: List "item" BlockDeviceMapping- , _rslsEbsOptimized :: Maybe Bool- , _rslsIamInstanceProfile :: Maybe IamInstanceProfileSpecification- , _rslsImageId :: Maybe Text- , _rslsInstanceType :: Maybe Text- , _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, 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' 'Text'------ * '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 Text)-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 Spot 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"- <*> x .@? "ebsOptimized"- <*> x .@? "iamInstanceProfile"- <*> x .@? "imageId"- <*> x .@? "instanceType"- <*> x .@? "kernelId"- <*> x .@? "keyName"- <*> x .@? "monitoring"- <*> x .@ "NetworkInterface"- <*> x .@? "placement"- <*> x .@? "ramdiskId"- <*> x .@ "SecurityGroupId"- <*> x .@ "SecurityGroup"- <*> x .@? "subnetId"- <*> x .@? "userData"--instance ToQuery RequestSpotLaunchSpecification where- toQuery RequestSpotLaunchSpecification{..} = mconcat- [ "addressingType" =? _rslsAddressingType- , "blockDeviceMapping" =? _rslsBlockDeviceMappings- , "ebsOptimized" =? _rslsEbsOptimized- , "iamInstanceProfile" =? _rslsIamInstanceProfile- , "imageId" =? _rslsImageId- , "instanceType" =? _rslsInstanceType- , "kernelId" =? _rslsKernelId- , "keyName" =? _rslsKeyName- , "monitoring" =? _rslsMonitoring- , "NetworkInterface" =? _rslsNetworkInterfaces- , "placement" =? _rslsPlacement- , "ramdiskId" =? _rslsRamdiskId- , "SecurityGroupId" =? _rslsSecurityGroupIds- , "SecurityGroup" =? _rslsSecurityGroups- , "subnetId" =? _rslsSubnetId- , "userData" =? _rslsUserData- ]--newtype VolumeDetail = VolumeDetail- { _vdSize :: Integer- } deriving (Eq, Ord, 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, 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, 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, Show, Generic, Enum)--instance Hashable DiskImageFormat--instance FromText DiskImageFormat where- parser = match "RAW" Raw- <|> match "VHD" Vhd- <|> match "VMDK" Vmdk--instance ToText DiskImageFormat where- toText = \case- Raw -> "RAW"- Vhd -> "VHD"- Vmdk -> "VMDK"--instance FromXML DiskImageFormat where- parseXML = parseXMLText "DiskImageFormat"--instance ToQuery DiskImageFormat where- toQuery = toQuery . toText+ , EC2Error+ -- ** XML+ , ns++ -- * ImageAttributeName+ , ImageAttributeName (..)++ -- * PermissionGroup+ , PermissionGroup (..)++ -- * NetworkAclEntry+ , NetworkAclEntry+ , networkAclEntry+ , naeCidrBlock+ , naeEgress+ , naeIcmpTypeCode+ , naePortRange+ , naeProtocol+ , naeRuleAction+ , naeRuleNumber++ -- * BlobAttributeValue+ , BlobAttributeValue+ , blobAttributeValue+ , bavValue++ -- * ImportInstanceLaunchSpecification+ , ImportInstanceLaunchSpecification+ , importInstanceLaunchSpecification+ , iilsAdditionalInfo+ , iilsArchitecture+ , iilsGroupIds+ , iilsGroupNames+ , iilsInstanceInitiatedShutdownBehavior+ , iilsInstanceType+ , iilsMonitoring+ , iilsPlacement+ , iilsPrivateIpAddress+ , iilsSubnetId+ , iilsUserData++ -- * Snapshot+ , Snapshot+ , snapshot+ , sDescription+ , sEncrypted+ , sOwnerAlias+ , sOwnerId+ , sProgress+ , sSnapshotId+ , sStartTime+ , sState+ , sTags+ , sVolumeId+ , sVolumeSize++ -- * SpotInstanceStateFault+ , SpotInstanceStateFault+ , spotInstanceStateFault+ , sisfCode+ , sisfMessage++ -- * TagDescription+ , TagDescription+ , tagDescription+ , tdKey+ , tdResourceId+ , tdResourceType+ , tdValue++ -- * GroupIdentifier+ , GroupIdentifier+ , groupIdentifier+ , giGroupId+ , giGroupName++ -- * VpnStaticRouteSource+ , VpnStaticRouteSource (..)++ -- * ReservedInstancesListing+ , ReservedInstancesListing+ , reservedInstancesListing+ , rilClientToken+ , rilCreateDate+ , rilInstanceCounts+ , rilPriceSchedules+ , rilReservedInstancesId+ , rilReservedInstancesListingId+ , rilStatus+ , rilStatusMessage+ , rilTags+ , rilUpdateDate++ -- * InstanceLifecycleType+ , InstanceLifecycleType (..)++ -- * VirtualizationType+ , VirtualizationType (..)++ -- * NetworkInterfaceStatus+ , NetworkInterfaceStatus (..)++ -- * PlatformValues+ , PlatformValues (..)++ -- * CreateVolumePermission+ , CreateVolumePermission+ , createVolumePermission+ , cvpGroup+ , cvpUserId++ -- * NetworkInterfaceAttachmentChanges+ , NetworkInterfaceAttachmentChanges+ , networkInterfaceAttachmentChanges+ , niacAttachmentId+ , niacDeleteOnTermination++ -- * RecurringChargeFrequency+ , RecurringChargeFrequency (..)++ -- * DhcpOptions+ , DhcpOptions+ , dhcpOptions+ , doDhcpConfigurations+ , doDhcpOptionsId+ , doTags++ -- * InstanceNetworkInterfaceSpecification+ , InstanceNetworkInterfaceSpecification+ , instanceNetworkInterfaceSpecification+ , inisAssociatePublicIpAddress+ , inisDeleteOnTermination+ , inisDescription+ , inisDeviceIndex+ , inisGroups+ , inisNetworkInterfaceId+ , inisPrivateIpAddress+ , inisPrivateIpAddresses+ , inisSecondaryPrivateIpAddressCount+ , inisSubnetId++ -- * VolumeState+ , VolumeState (..)++ -- * AttributeValue+ , AttributeValue+ , attributeValue+ , avValue++ -- * PrivateIpAddressSpecification+ , PrivateIpAddressSpecification+ , privateIpAddressSpecification+ , piasPrimary+ , piasPrivateIpAddress++ -- * Image+ , Image+ , image+ , iArchitecture+ , iBlockDeviceMappings+ , iDescription+ , iHypervisor+ , iImageId+ , iImageLocation+ , iImageOwnerAlias+ , iImageType+ , iKernelId+ , iName+ , iOwnerId+ , iPlatform+ , iProductCodes+ , iPublic+ , iRamdiskId+ , iRootDeviceName+ , iRootDeviceType+ , iSriovNetSupport+ , iState+ , iStateReason+ , iTags+ , iVirtualizationType++ -- * DhcpConfiguration+ , DhcpConfiguration+ , dhcpConfiguration+ , dcKey+ , dcValues++ -- * Tag+ , Tag+ , tag+ , tagKey+ , tagValue++ -- * AccountAttributeName+ , AccountAttributeName (..)++ -- * NetworkInterfaceAttachment+ , NetworkInterfaceAttachment+ , networkInterfaceAttachment+ , niaAttachTime+ , niaAttachmentId+ , niaDeleteOnTermination+ , niaDeviceIndex+ , niaInstanceId+ , niaInstanceOwnerId+ , niaStatus++ -- * RunInstancesMonitoringEnabled+ , RunInstancesMonitoringEnabled+ , runInstancesMonitoringEnabled+ , rimeEnabled++ -- * VolumeStatusInfo+ , VolumeStatusInfo+ , volumeStatusInfo+ , vsiDetails+ , vsiStatus++ -- * NetworkInterfaceAssociation+ , NetworkInterfaceAssociation+ , networkInterfaceAssociation+ , niaAllocationId+ , niaAssociationId+ , niaIpOwnerId+ , niaPublicDnsName+ , niaPublicIp++ -- * CreateVolumePermissionModifications+ , CreateVolumePermissionModifications+ , createVolumePermissionModifications+ , cvpmAdd+ , cvpmRemove++ -- * VpcState+ , VpcState (..)++ -- * ResourceType+ , ResourceType (..)++ -- * ReportStatusType+ , ReportStatusType (..)++ -- * CurrencyCodeValues+ , CurrencyCodeValues (..)++ -- * IcmpTypeCode+ , IcmpTypeCode+ , icmpTypeCode+ , itcCode+ , itcType++ -- * InstanceCount+ , InstanceCount+ , instanceCount+ , icInstanceCount+ , icState++ -- * ExportToS3Task+ , ExportToS3Task+ , exportToS3Task+ , etstContainerFormat+ , etstDiskImageFormat+ , etstS3Bucket+ , etstS3Key++ -- * BlockDeviceMapping+ , BlockDeviceMapping+ , blockDeviceMapping+ , bdmDeviceName+ , bdmEbs+ , bdmNoDevice+ , bdmVirtualName++ -- * ConversionTask+ , ConversionTask+ , conversionTask+ , ctConversionTaskId+ , ctExpirationTime+ , ctImportInstance+ , ctImportVolume+ , ctState+ , ctStatusMessage+ , ctTags++ -- * AttachmentStatus+ , AttachmentStatus (..)++ -- * RouteOrigin+ , RouteOrigin (..)++ -- * ListingState+ , ListingState (..)++ -- * SpotPrice+ , SpotPrice+ , spotPrice+ , spAvailabilityZone+ , spInstanceType+ , spProductDescription+ , spSpotPrice+ , spTimestamp++ -- * InstanceMonitoring+ , InstanceMonitoring+ , instanceMonitoring+ , imInstanceId+ , imMonitoring++ -- * PriceScheduleSpecification+ , PriceScheduleSpecification+ , priceScheduleSpecification+ , pssCurrencyCode+ , pssPrice+ , pssTerm++ -- * SpotInstanceStatus+ , SpotInstanceStatus+ , spotInstanceStatus+ , sisCode+ , sisMessage+ , sisUpdateTime++ -- * AvailabilityZoneState+ , AvailabilityZoneState (..)++ -- * SpotInstanceRequest+ , SpotInstanceRequest+ , spotInstanceRequest+ , siAvailabilityZoneGroup+ , siCreateTime+ , siFault+ , siInstanceId+ , siLaunchGroup+ , siLaunchSpecification+ , siLaunchedAvailabilityZone+ , siProductDescription+ , siSpotInstanceRequestId+ , siSpotPrice+ , siState+ , siStatus+ , siTags+ , siType+ , siValidFrom+ , siValidUntil++ -- * LaunchSpecification+ , LaunchSpecification+ , launchSpecification+ , lsAddressingType+ , lsBlockDeviceMappings+ , lsEbsOptimized+ , lsIamInstanceProfile+ , lsImageId+ , lsInstanceType+ , lsKernelId+ , lsKeyName+ , lsMonitoring+ , lsNetworkInterfaces+ , lsPlacement+ , lsRamdiskId+ , lsSecurityGroups+ , lsSubnetId+ , lsUserData++ -- * VolumeStatusEvent+ , VolumeStatusEvent+ , volumeStatusEvent+ , vseDescription+ , vseEventId+ , vseEventType+ , vseNotAfter+ , vseNotBefore++ -- * Volume+ , Volume+ , volume+ , vAttachments+ , vAvailabilityZone+ , vCreateTime+ , vEncrypted+ , vIops+ , vSize+ , vSnapshotId+ , vState+ , vTags+ , vVolumeId+ , vVolumeType++ -- * Reservation+ , Reservation+ , reservation+ , rGroups+ , rInstances+ , rOwnerId+ , rRequesterId+ , rReservationId++ -- * ImportInstanceVolumeDetailItem+ , ImportInstanceVolumeDetailItem+ , importInstanceVolumeDetailItem+ , iivdiAvailabilityZone+ , iivdiBytesConverted+ , iivdiDescription+ , iivdiImage+ , iivdiStatus+ , iivdiStatusMessage+ , iivdiVolume++ -- * SummaryStatus+ , SummaryStatus (..)++ -- * ReservedInstancesModification+ , ReservedInstancesModification+ , reservedInstancesModification+ , rimClientToken+ , rimCreateDate+ , rimEffectiveDate+ , rimModificationResults+ , rimReservedInstancesIds+ , rimReservedInstancesModificationId+ , rimStatus+ , rimStatusMessage+ , rimUpdateDate++ -- * RuleAction+ , RuleAction (..)++ -- * NetworkInterface+ , NetworkInterface+ , networkInterface+ , niAssociation+ , niAttachment+ , niAvailabilityZone+ , niDescription+ , niGroups+ , niMacAddress+ , niNetworkInterfaceId+ , niOwnerId+ , niPrivateDnsName+ , niPrivateIpAddress+ , niPrivateIpAddresses+ , niRequesterId+ , niRequesterManaged+ , niSourceDestCheck+ , niStatus+ , niSubnetId+ , niTagSet+ , niVpcId++ -- * TelemetryStatus+ , TelemetryStatus (..)++ -- * Subnet+ , Subnet+ , subnet+ , s1AvailabilityZone+ , s1AvailableIpAddressCount+ , s1CidrBlock+ , s1DefaultForAz+ , s1MapPublicIpOnLaunch+ , s1State+ , s1SubnetId+ , s1Tags+ , s1VpcId++ -- * KeyPairInfo+ , KeyPairInfo+ , keyPairInfo+ , kpiKeyFingerprint+ , kpiKeyName++ -- * LaunchPermissionModifications+ , LaunchPermissionModifications+ , launchPermissionModifications+ , lpmAdd+ , lpmRemove++ -- * SnapshotState+ , SnapshotState (..)++ -- * InstanceNetworkInterfaceAssociation+ , InstanceNetworkInterfaceAssociation+ , instanceNetworkInterfaceAssociation+ , iniaIpOwnerId+ , iniaPublicDnsName+ , iniaPublicIp++ -- * DiskImageDetail+ , DiskImageDetail+ , diskImageDetail+ , didBytes+ , didFormat+ , didImportManifestUrl++ -- * InstancePrivateIpAddress+ , InstancePrivateIpAddress+ , instancePrivateIpAddress+ , ipiaAssociation+ , ipiaPrimary+ , ipiaPrivateDnsName+ , ipiaPrivateIpAddress++ -- * CancelledSpotInstanceRequest+ , CancelledSpotInstanceRequest+ , cancelledSpotInstanceRequest+ , csiSpotInstanceRequestId+ , csiState++ -- * VpnConnectionOptionsSpecification+ , VpnConnectionOptionsSpecification+ , vpnConnectionOptionsSpecification+ , vcosStaticRoutesOnly++ -- * Address+ , Address+ , address+ , aAllocationId+ , aAssociationId+ , aDomain+ , aInstanceId+ , aNetworkInterfaceId+ , aNetworkInterfaceOwnerId+ , aPrivateIpAddress+ , aPublicIp++ -- * VolumeAttachmentState+ , VolumeAttachmentState (..)++ -- * LaunchPermission+ , LaunchPermission+ , launchPermission+ , lpGroup+ , lpUserId++ -- * RouteState+ , RouteState (..)++ -- * RouteTableAssociation+ , RouteTableAssociation+ , routeTableAssociation+ , rtaMain+ , rtaRouteTableAssociationId+ , rtaRouteTableId+ , rtaSubnetId++ -- * BundleTaskState+ , BundleTaskState (..)++ -- * PortRange+ , PortRange+ , portRange+ , prFrom+ , prTo++ -- * VpcAttributeName+ , VpcAttributeName (..)++ -- * ReservedInstancesConfiguration+ , ReservedInstancesConfiguration+ , reservedInstancesConfiguration+ , ricAvailabilityZone+ , ricInstanceCount+ , ricInstanceType+ , ricPlatform++ -- * VolumeStatusDetails+ , VolumeStatusDetails+ , volumeStatusDetails+ , vsdName+ , vsdStatus++ -- * SpotInstanceState+ , SpotInstanceState (..)++ -- * VpnConnectionOptions+ , VpnConnectionOptions+ , vpnConnectionOptions+ , vcoStaticRoutesOnly++ -- * UserIdGroupPair+ , UserIdGroupPair+ , userIdGroupPair+ , uigpGroupId+ , uigpGroupName+ , uigpUserId++ -- * InstanceStatusSummary+ , InstanceStatusSummary+ , instanceStatusSummary+ , issDetails+ , issStatus++ -- * SpotPlacement+ , SpotPlacement+ , spotPlacement+ , sp1AvailabilityZone+ , sp1GroupName++ -- * EbsInstanceBlockDeviceSpecification+ , EbsInstanceBlockDeviceSpecification+ , ebsInstanceBlockDeviceSpecification+ , eibdsDeleteOnTermination+ , eibdsVolumeId++ -- * NetworkAclAssociation+ , NetworkAclAssociation+ , networkAclAssociation+ , naaNetworkAclAssociationId+ , naaNetworkAclId+ , naaSubnetId++ -- * BundleTask+ , BundleTask+ , bundleTask+ , btBundleId+ , btBundleTaskError+ , btInstanceId+ , btProgress+ , btStartTime+ , btState+ , btStorage+ , btUpdateTime++ -- * InstanceStatusEvent+ , InstanceStatusEvent+ , instanceStatusEvent+ , iseCode+ , iseDescription+ , iseNotAfter+ , iseNotBefore++ -- * InstanceType+ , InstanceType (..)++ -- * Route+ , Route+ , route+ , rDestinationCidrBlock+ , rGatewayId+ , rInstanceId+ , rInstanceOwnerId+ , rNetworkInterfaceId+ , rOrigin+ , rState+ , rVpcPeeringConnectionId++ -- * SpotDatafeedSubscription+ , SpotDatafeedSubscription+ , spotDatafeedSubscription+ , sdsBucket+ , sdsFault+ , sdsOwnerId+ , sdsPrefix+ , sdsState++ -- * Storage+ , Storage+ , storage+ , sS3++ -- * SecurityGroup+ , SecurityGroup+ , securityGroup+ , sgDescription+ , sgGroupId+ , sgGroupName+ , sgIpPermissions+ , sgIpPermissionsEgress+ , sgOwnerId+ , sgTags+ , sgVpcId++ -- * CancelSpotInstanceRequestState+ , CancelSpotInstanceRequestState (..)++ -- * PlacementGroupState+ , PlacementGroupState (..)++ -- * ReservedInstancesModificationResult+ , ReservedInstancesModificationResult+ , reservedInstancesModificationResult+ , rimrReservedInstancesId+ , rimrTargetConfiguration++ -- * InstanceBlockDeviceMappingSpecification+ , InstanceBlockDeviceMappingSpecification+ , instanceBlockDeviceMappingSpecification+ , ibdmsDeviceName+ , ibdmsEbs+ , ibdmsNoDevice+ , ibdmsVirtualName++ -- * ExportEnvironment+ , ExportEnvironment (..)++ -- * VolumeAttachment+ , VolumeAttachment+ , volumeAttachment+ , vaAttachTime+ , vaDeleteOnTermination+ , vaDevice+ , vaInstanceId+ , vaState+ , vaVolumeId++ -- * CustomerGateway+ , CustomerGateway+ , customerGateway+ , cgBgpAsn+ , cgCustomerGatewayId+ , cgIpAddress+ , cgState+ , cgTags+ , cgType++ -- * EbsInstanceBlockDevice+ , EbsInstanceBlockDevice+ , ebsInstanceBlockDevice+ , eibdAttachTime+ , eibdDeleteOnTermination+ , eibdStatus+ , eibdVolumeId++ -- * ShutdownBehavior+ , ShutdownBehavior (..)++ -- * DiskImageDescription+ , DiskImageDescription+ , diskImageDescription+ , did1Checksum+ , did1Format+ , did1ImportManifestUrl+ , did1Size++ -- * DiskImageVolumeDescription+ , DiskImageVolumeDescription+ , diskImageVolumeDescription+ , divdId+ , divdSize++ -- * Monitoring+ , Monitoring+ , monitoring+ , mState++ -- * SubnetState+ , SubnetState (..)++ -- * ContainerFormat+ , ContainerFormat (..)++ -- * AvailabilityZoneMessage+ , AvailabilityZoneMessage+ , availabilityZoneMessage+ , azmMessage++ -- * VpcAttachment+ , VpcAttachment+ , vpcAttachment+ , va1State+ , va1VpcId++ -- * InstanceBlockDeviceMapping+ , InstanceBlockDeviceMapping+ , instanceBlockDeviceMapping+ , ibdmDeviceName+ , ibdmEbs++ -- * StatusType+ , StatusType (..)++ -- * ExportToS3TaskSpecification+ , ExportToS3TaskSpecification+ , exportToS3TaskSpecification+ , etstsContainerFormat+ , etstsDiskImageFormat+ , etstsS3Bucket+ , etstsS3Prefix++ -- * NetworkInterfaceAttribute+ , NetworkInterfaceAttribute (..)++ -- * ImageTypeValues+ , ImageTypeValues (..)++ -- * InstanceExportDetails+ , InstanceExportDetails+ , instanceExportDetails+ , iedInstanceId+ , iedTargetEnvironment++ -- * SnapshotAttributeName+ , SnapshotAttributeName (..)++ -- * AvailabilityZone+ , AvailabilityZone+ , availabilityZone+ , azMessages+ , azRegionName+ , azState+ , azZoneName++ -- * VpnState+ , VpnState (..)++ -- * RouteTable+ , RouteTable+ , routeTable+ , rtAssociations+ , rtPropagatingVgws+ , rtRouteTableId+ , rtRoutes+ , rtTags+ , rtVpcId++ -- * HypervisorType+ , HypervisorType (..)++ -- * InstanceStatusDetails+ , InstanceStatusDetails+ , instanceStatusDetails+ , isdImpairedSince+ , isdName+ , isdStatus++ -- * IamInstanceProfile+ , IamInstanceProfile+ , iamInstanceProfile+ , iipArn+ , iipId++ -- * InternetGatewayAttachment+ , InternetGatewayAttachment+ , internetGatewayAttachment+ , igaState+ , igaVpcId++ -- * ReservedInstanceState+ , ReservedInstanceState (..)++ -- * InstanceAttributeName+ , InstanceAttributeName (..)++ -- * IpPermission+ , IpPermission+ , ipPermission+ , ipFromPort+ , ipIpProtocol+ , ipIpRanges+ , ipToPort+ , ipUserIdGroupPairs++ -- * ConversionTaskState+ , ConversionTaskState (..)++ -- * DiskImage+ , DiskImage+ , diskImage+ , diDescription+ , diImage+ , diVolume++ -- * Tenancy+ , Tenancy (..)++ -- * VpcPeeringConnectionStateReason+ , VpcPeeringConnectionStateReason+ , vpcPeeringConnectionStateReason+ , vpcsrCode+ , vpcsrMessage++ -- * IamInstanceProfileSpecification+ , IamInstanceProfileSpecification+ , iamInstanceProfileSpecification+ , iipsArn+ , iipsName++ -- * ImportVolumeTaskDetails+ , ImportVolumeTaskDetails+ , importVolumeTaskDetails+ , ivtdAvailabilityZone+ , ivtdBytesConverted+ , ivtdDescription+ , ivtdImage+ , ivtdVolume++ -- * PlacementStrategy+ , PlacementStrategy (..)++ -- * InstanceNetworkInterface+ , InstanceNetworkInterface+ , instanceNetworkInterface+ , iniAssociation+ , iniAttachment+ , iniDescription+ , iniGroups+ , iniMacAddress+ , iniNetworkInterfaceId+ , iniOwnerId+ , iniPrivateDnsName+ , iniPrivateIpAddress+ , iniPrivateIpAddresses+ , iniSourceDestCheck+ , iniStatus+ , iniSubnetId+ , iniVpcId++ -- * VolumeStatusAction+ , VolumeStatusAction+ , volumeStatusAction+ , vsaCode+ , vsaDescription+ , vsaEventId+ , vsaEventType++ -- * VpcPeeringConnectionVpcInfo+ , VpcPeeringConnectionVpcInfo+ , vpcPeeringConnectionVpcInfo+ , vpcviCidrBlock+ , vpcviOwnerId+ , vpcviVpcId++ -- * ReservedInstanceLimitPrice+ , ReservedInstanceLimitPrice+ , reservedInstanceLimitPrice+ , rilpAmount+ , rilpCurrencyCode++ -- * Vpc+ , Vpc+ , vpc+ , vpcCidrBlock+ , vpcDhcpOptionsId+ , vpcInstanceTenancy+ , vpcIsDefault+ , vpcState+ , vpcTags+ , vpcVpcId++ -- * InstanceStatus+ , InstanceStatus+ , instanceStatus+ , isAvailabilityZone+ , isEvents+ , isInstanceId+ , isInstanceState+ , isInstanceStatus+ , isSystemStatus++ -- * ArchitectureValues+ , ArchitectureValues (..)++ -- * ReportInstanceReasonCodes+ , ReportInstanceReasonCodes (..)++ -- * EbsBlockDevice+ , EbsBlockDevice+ , ebsBlockDevice+ , ebdDeleteOnTermination+ , ebdEncrypted+ , ebdIops+ , ebdSnapshotId+ , ebdVolumeSize+ , ebdVolumeType++ -- * AccountAttribute+ , AccountAttribute+ , accountAttribute+ , aaAttributeName+ , aaAttributeValues++ -- * PriceSchedule+ , PriceSchedule+ , priceSchedule+ , psActive+ , psCurrencyCode+ , psPrice+ , psTerm++ -- * DeviceType+ , DeviceType (..)++ -- * DomainType+ , DomainType (..)++ -- * Region+ , Region+ , region+ , rEndpoint+ , rRegionName++ -- * PropagatingVgw+ , PropagatingVgw+ , propagatingVgw+ , pvGatewayId++ -- * OfferingTypeValues+ , OfferingTypeValues (..)++ -- * VpnGateway+ , VpnGateway+ , vpnGateway+ , vgAvailabilityZone+ , vgState+ , vgTags+ , vgType+ , vgVpcAttachments+ , vgVpnGatewayId++ -- * Filter+ , Filter+ , filter'+ , fName+ , fValues++ -- * VolumeType+ , VolumeType (..)++ -- * InstanceStateChange+ , InstanceStateChange+ , instanceStateChange+ , iscCurrentState+ , iscInstanceId+ , iscPreviousState++ -- * NetworkAcl+ , NetworkAcl+ , networkAcl+ , naAssociations+ , naEntries+ , naIsDefault+ , naNetworkAclId+ , naTags+ , naVpcId++ -- * ImageState+ , ImageState (..)++ -- * GatewayType+ , GatewayType (..)++ -- * InstanceNetworkInterfaceAttachment+ , InstanceNetworkInterfaceAttachment+ , instanceNetworkInterfaceAttachment+ , iniaAttachTime+ , iniaAttachmentId+ , iniaDeleteOnTermination+ , iniaDeviceIndex+ , iniaStatus++ -- * AttributeBooleanValue+ , AttributeBooleanValue+ , attributeBooleanValue+ , abvValue++ -- * RecurringCharge+ , RecurringCharge+ , recurringCharge+ , rcAmount+ , rcFrequency++ -- * NewDhcpConfiguration+ , NewDhcpConfiguration+ , newDhcpConfiguration+ , ndcKey+ , ndcValues++ -- * StateReason+ , StateReason+ , stateReason+ , srCode+ , srMessage++ -- * MonitoringState+ , MonitoringState (..)++ -- * ReservedInstancesId+ , ReservedInstancesId+ , reservedInstancesId+ , riiReservedInstancesId++ -- * StatusName+ , StatusName (..)++ -- * InternetGateway+ , InternetGateway+ , internetGateway+ , igAttachments+ , igInternetGatewayId+ , igTags++ -- * VolumeStatusName+ , VolumeStatusName (..)++ -- * VolumeAttributeName+ , VolumeAttributeName (..)++ -- * ImportInstanceTaskDetails+ , ImportInstanceTaskDetails+ , importInstanceTaskDetails+ , iitdDescription+ , iitdInstanceId+ , iitdPlatform+ , iitdVolumes++ -- * PlacementGroup+ , PlacementGroup+ , placementGroup+ , pgGroupName+ , pgState+ , pgStrategy++ -- * ProductCode+ , ProductCode+ , productCode+ , pcProductCodeId+ , pcProductCodeType++ -- * ListingStatus+ , ListingStatus (..)++ -- * IpRange+ , IpRange+ , ipRange+ , irCidrIp++ -- * VolumeStatusInfoStatus+ , VolumeStatusInfoStatus (..)++ -- * AccountAttributeValue+ , AccountAttributeValue+ , accountAttributeValue+ , aavAttributeValue++ -- * RIProductDescription+ , RIProductDescription (..)++ -- * ReservedInstancesOffering+ , ReservedInstancesOffering+ , reservedInstancesOffering+ , rioAvailabilityZone+ , rioCurrencyCode+ , rioDuration+ , rioFixedPrice+ , rioInstanceTenancy+ , rioInstanceType+ , rioMarketplace+ , rioOfferingType+ , rioPricingDetails+ , rioProductDescription+ , rioRecurringCharges+ , rioReservedInstancesOfferingId+ , rioUsagePrice++ -- * ReservedInstances+ , ReservedInstances+ , reservedInstances+ , ri1AvailabilityZone+ , ri1CurrencyCode+ , ri1Duration+ , ri1End+ , ri1FixedPrice+ , ri1InstanceCount+ , ri1InstanceTenancy+ , ri1InstanceType+ , ri1OfferingType+ , ri1ProductDescription+ , ri1RecurringCharges+ , ri1ReservedInstancesId+ , ri1Start+ , ri1State+ , ri1Tags+ , ri1UsagePrice++ -- * DatafeedSubscriptionState+ , DatafeedSubscriptionState (..)++ -- * ExportTaskState+ , ExportTaskState (..)++ -- * ProductCodeValues+ , ProductCodeValues (..)++ -- * VpnConnection+ , VpnConnection+ , vpnConnection+ , vcCustomerGatewayConfiguration+ , vcCustomerGatewayId+ , vcOptions+ , vcRoutes+ , vcState+ , vcTags+ , vcType+ , vcVgwTelemetry+ , vcVpnConnectionId+ , vcVpnGatewayId++ -- * InstanceState+ , InstanceState+ , instanceState+ , isCode+ , isName++ -- * Placement+ , Placement+ , placement+ , pAvailabilityZone+ , pGroupName+ , pTenancy++ -- * EventCode+ , EventCode (..)++ -- * SpotInstanceType+ , SpotInstanceType (..)++ -- * VpcPeeringConnection+ , VpcPeeringConnection+ , vpcPeeringConnection+ , vpc1AccepterVpcInfo+ , vpc1ExpirationTime+ , vpc1RequesterVpcInfo+ , vpc1Status+ , vpc1Tags+ , vpc1VpcPeeringConnectionId++ -- * S3Storage+ , S3Storage+ , s3Storage+ , ssAWSAccessKeyId+ , ssBucket+ , ssPrefix+ , ssUploadPolicy+ , ssUploadPolicySignature++ -- * VgwTelemetry+ , VgwTelemetry+ , vgwTelemetry+ , vtAcceptedRouteCount+ , vtLastStatusChange+ , vtOutsideIpAddress+ , vtStatus+ , vtStatusMessage++ -- * VpnStaticRoute+ , VpnStaticRoute+ , vpnStaticRoute+ , vsrDestinationCidrBlock+ , vsrSource+ , vsrState++ -- * InstanceStateName+ , InstanceStateName (..)++ -- * Instance+ , Instance+ , instance'+ , i1AmiLaunchIndex+ , i1Architecture+ , i1BlockDeviceMappings+ , i1ClientToken+ , i1EbsOptimized+ , i1Hypervisor+ , i1IamInstanceProfile+ , i1ImageId+ , i1InstanceId+ , i1InstanceLifecycle+ , i1InstanceType+ , i1KernelId+ , i1KeyName+ , i1LaunchTime+ , i1Monitoring+ , i1NetworkInterfaces+ , i1Placement+ , i1Platform+ , i1PrivateDnsName+ , i1PrivateIpAddress+ , i1ProductCodes+ , i1PublicDnsName+ , i1PublicIpAddress+ , i1RamdiskId+ , i1RootDeviceName+ , i1RootDeviceType+ , i1SecurityGroups+ , i1SourceDestCheck+ , i1SpotInstanceRequestId+ , i1SriovNetSupport+ , i1State+ , i1StateReason+ , i1StateTransitionReason+ , i1SubnetId+ , i1Tags+ , i1VirtualizationType+ , i1VpcId++ -- * ExportTask+ , ExportTask+ , exportTask+ , etDescription+ , etExportTaskId+ , etExportToS3Task+ , etInstanceExportDetails+ , etState+ , etStatusMessage++ -- * ResetImageAttributeName+ , ResetImageAttributeName (..)++ -- * RequestSpotLaunchSpecification+ , RequestSpotLaunchSpecification+ , requestSpotLaunchSpecification+ , rslsAddressingType+ , rslsBlockDeviceMappings+ , rslsEbsOptimized+ , rslsIamInstanceProfile+ , rslsImageId+ , rslsInstanceType+ , rslsKernelId+ , rslsKeyName+ , rslsMonitoring+ , rslsNetworkInterfaces+ , rslsPlacement+ , rslsRamdiskId+ , rslsSecurityGroupIds+ , rslsSecurityGroups+ , rslsSubnetId+ , rslsUserData++ -- * VolumeDetail+ , VolumeDetail+ , volumeDetail+ , vdSize++ -- * PricingDetail+ , PricingDetail+ , pricingDetail+ , pdCount+ , pdPrice++ -- * NetworkInterfacePrivateIpAddress+ , NetworkInterfacePrivateIpAddress+ , networkInterfacePrivateIpAddress+ , nipiaAssociation+ , nipiaPrimary+ , nipiaPrivateDnsName+ , nipiaPrivateIpAddress++ -- * DiskImageFormat+ , DiskImageFormat (..)++ -- * BundleTaskError+ , BundleTaskError+ , bundleTaskError+ , bteCode+ , bteMessage++ -- * VolumeStatusItem+ , VolumeStatusItem+ , volumeStatusItem+ , vsiActions+ , vsiAvailabilityZone+ , vsiEvents+ , vsiVolumeId+ , vsiVolumeStatus++ -- * Common+ , module Network.AWS.EC2.Internal+ ) where++import Network.AWS.Error+import Network.AWS.Prelude+import Network.AWS.Signing.V4+import Network.AWS.EC2.Internal+import qualified GHC.Exts++-- | Version @2014-09-01@ of the Amazon Elastic Compute Cloud service.+data EC2++instance AWSService EC2 where+ type Sg EC2 = V4+ type Er EC2 = EC2Error++ service = Service+ { _svcEndpoint = regional+ , _svcAbbrev = "EC2"+ , _svcPrefix = "ec2"+ , _svcVersion = "2014-09-01"+ , _svcTargetPrefix = Nothing+ , _svcJSONVersion = Nothing+ }++ handle = restError statusSuccess++ns :: Text+ns = "http://ec2.amazonaws.com/doc/2014-09-01"++data ImageAttributeName+ = ImageBlockDeviceMapping -- ^ blockDeviceMapping+ | ImageDescription -- ^ description+ | ImageKernel -- ^ kernel+ | ImageLaunchPermission -- ^ launchPermission+ | ImageProductCodes -- ^ productCodes+ | ImageRamdisk -- ^ ramdisk+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ImageAttributeName++instance FromText ImageAttributeName where+ parser = match "blockDeviceMapping" ImageBlockDeviceMapping+ <|> match "description" ImageDescription+ <|> match "kernel" ImageKernel+ <|> match "launchPermission" ImageLaunchPermission+ <|> match "productCodes" ImageProductCodes+ <|> match "ramdisk" ImageRamdisk++instance ToText ImageAttributeName where+ toText = \case+ ImageBlockDeviceMapping -> "blockDeviceMapping"+ ImageDescription -> "description"+ ImageKernel -> "kernel"+ ImageLaunchPermission -> "launchPermission"+ ImageProductCodes -> "productCodes"+ ImageRamdisk -> "ramdisk"++instance ToByteString ImageAttributeName+instance ToHeader ImageAttributeName+instance ToQuery ImageAttributeName++instance FromXML ImageAttributeName where+ parseXML = parseXMLText "ImageAttributeName"+++data PermissionGroup+ = All -- ^ all+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable PermissionGroup++instance FromText PermissionGroup where+ parser = match "all" All++instance ToText PermissionGroup where+ toText All = "all"++instance ToByteString PermissionGroup+instance ToHeader PermissionGroup+instance ToQuery PermissionGroup++instance FromXML PermissionGroup where+ parseXML = parseXMLText "PermissionGroup"+++data NetworkAclEntry = NetworkAclEntry+ { _naeCidrBlock :: Maybe Text+ , _naeEgress :: Maybe Bool+ , _naeIcmpTypeCode :: Maybe IcmpTypeCode+ , _naePortRange :: Maybe PortRange+ , _naeProtocol :: Maybe Text+ , _naeRuleAction :: Maybe RuleAction+ , _naeRuleNumber :: Maybe Int+ } deriving (Eq, Show)++-- | 'NetworkAclEntry' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'naeCidrBlock' @::@ 'Maybe' 'Text'+--+-- * 'naeEgress' @::@ 'Maybe' 'Bool'+--+-- * 'naeIcmpTypeCode' @::@ 'Maybe' 'IcmpTypeCode'+--+-- * 'naePortRange' @::@ 'Maybe' 'PortRange'+--+-- * 'naeProtocol' @::@ 'Maybe' 'Text'+--+-- * 'naeRuleAction' @::@ 'Maybe' 'RuleAction'+--+-- * 'naeRuleNumber' @::@ 'Maybe' 'Int'+--+networkAclEntry :: NetworkAclEntry+networkAclEntry = NetworkAclEntry+ { _naeRuleNumber = Nothing+ , _naeProtocol = Nothing+ , _naeRuleAction = Nothing+ , _naeEgress = Nothing+ , _naeCidrBlock = Nothing+ , _naeIcmpTypeCode = Nothing+ , _naePortRange = Nothing+ }++-- | The network range to allow or deny, in CIDR notation.+naeCidrBlock :: Lens' NetworkAclEntry (Maybe Text)+naeCidrBlock = lens _naeCidrBlock (\s a -> s { _naeCidrBlock = a })++-- | Indicates whether the rule is an egress rule (applied to traffic leaving+-- the subnet).+naeEgress :: Lens' NetworkAclEntry (Maybe Bool)+naeEgress = lens _naeEgress (\s a -> s { _naeEgress = a })++-- | ICMP protocol: The ICMP type and code.+naeIcmpTypeCode :: Lens' NetworkAclEntry (Maybe IcmpTypeCode)+naeIcmpTypeCode = lens _naeIcmpTypeCode (\s a -> s { _naeIcmpTypeCode = a })++-- | TCP or UDP protocols: The range of ports the rule applies to.+naePortRange :: Lens' NetworkAclEntry (Maybe PortRange)+naePortRange = lens _naePortRange (\s a -> s { _naePortRange = a })++-- | The protocol. A value of -1 means all protocols.+naeProtocol :: Lens' NetworkAclEntry (Maybe Text)+naeProtocol = lens _naeProtocol (\s a -> s { _naeProtocol = a })++-- | Indicates whether to allow or deny the traffic that matches the rule.+naeRuleAction :: Lens' NetworkAclEntry (Maybe RuleAction)+naeRuleAction = lens _naeRuleAction (\s a -> s { _naeRuleAction = a })++-- | The rule number for the entry. ACL entries are processed in ascending+-- order by rule number.+naeRuleNumber :: Lens' NetworkAclEntry (Maybe Int)+naeRuleNumber = lens _naeRuleNumber (\s a -> s { _naeRuleNumber = a })++instance FromXML NetworkAclEntry where+ parseXML x = NetworkAclEntry+ <$> x .@? "cidrBlock"+ <*> x .@? "egress"+ <*> x .@? "icmpTypeCode"+ <*> x .@? "portRange"+ <*> x .@? "protocol"+ <*> x .@? "ruleAction"+ <*> x .@? "ruleNumber"++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, 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 Text+ } deriving (Eq, 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' 'Text'+--+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 })++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. For more information, see Instance Types in the Amazon+-- Elastic Compute Cloud User Guide.+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 Text)+iilsUserData = lens _iilsUserData (\s a -> s { _iilsUserData = a })++instance FromXML ImportInstanceLaunchSpecification where+ parseXML x = ImportInstanceLaunchSpecification+ <$> x .@? "additionalInfo"+ <*> x .@? "architecture"+ <*> x .@ "GroupId"+ <*> x .@ "GroupName"+ <*> 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" =? _iilsGroupIds+ , "GroupName" =? _iilsGroupNames+ , "instanceInitiatedShutdownBehavior" =? _iilsInstanceInitiatedShutdownBehavior+ , "instanceType" =? _iilsInstanceType+ , "monitoring" =? _iilsMonitoring+ , "placement" =? _iilsPlacement+ , "privateIpAddress" =? _iilsPrivateIpAddress+ , "subnetId" =? _iilsSubnetId+ , "userData" =? _iilsUserData+ ]++data Snapshot = Snapshot+ { _sDescription :: Maybe Text+ , _sEncrypted :: Maybe Bool+ , _sOwnerAlias :: Maybe Text+ , _sOwnerId :: Maybe Text+ , _sProgress :: Maybe Text+ , _sSnapshotId :: Maybe Text+ , _sStartTime :: Maybe RFC822+ , _sState :: Maybe SnapshotState+ , _sTags :: List "item" Tag+ , _sVolumeId :: Maybe Text+ , _sVolumeSize :: Maybe Int+ } deriving (Eq, Show)++-- | 'Snapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sDescription' @::@ 'Maybe' 'Text'+--+-- * 'sEncrypted' @::@ 'Maybe' 'Bool'+--+-- * 'sOwnerAlias' @::@ 'Maybe' 'Text'+--+-- * 'sOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'sProgress' @::@ 'Maybe' 'Text'+--+-- * 'sSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'sStartTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'sState' @::@ 'Maybe' 'SnapshotState'+--+-- * 'sTags' @::@ ['Tag']+--+-- * 'sVolumeId' @::@ 'Maybe' 'Text'+--+-- * 'sVolumeSize' @::@ 'Maybe' 'Int'+--+snapshot :: Snapshot+snapshot = Snapshot+ { _sSnapshotId = Nothing+ , _sVolumeId = Nothing+ , _sState = Nothing+ , _sStartTime = Nothing+ , _sProgress = Nothing+ , _sOwnerId = Nothing+ , _sDescription = Nothing+ , _sVolumeSize = Nothing+ , _sOwnerAlias = Nothing+ , _sTags = mempty+ , _sEncrypted = Nothing+ }++-- | The description for the snapshot.+sDescription :: Lens' Snapshot (Maybe Text)+sDescription = lens _sDescription (\s a -> s { _sDescription = a })++-- | Indicates whether the snapshot is encrypted.+sEncrypted :: Lens' Snapshot (Maybe Bool)+sEncrypted = lens _sEncrypted (\s a -> s { _sEncrypted = 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 (Maybe Text)+sOwnerId = lens _sOwnerId (\s a -> s { _sOwnerId = a })++-- | The progress of the snapshot, as a percentage.+sProgress :: Lens' Snapshot (Maybe Text)+sProgress = lens _sProgress (\s a -> s { _sProgress = a })++-- | The ID of the snapshot.+sSnapshotId :: Lens' Snapshot (Maybe Text)+sSnapshotId = lens _sSnapshotId (\s a -> s { _sSnapshotId = a })++-- | The time stamp when the snapshot was initiated.+sStartTime :: Lens' Snapshot (Maybe UTCTime)+sStartTime = lens _sStartTime (\s a -> s { _sStartTime = a }) . mapping _Time++-- | The snapshot state.+sState :: Lens' Snapshot (Maybe 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 (Maybe Text)+sVolumeId = lens _sVolumeId (\s a -> s { _sVolumeId = a })++-- | The size of the volume, in GiB.+sVolumeSize :: Lens' Snapshot (Maybe Int)+sVolumeSize = lens _sVolumeSize (\s a -> s { _sVolumeSize = a })++instance FromXML Snapshot where+ parseXML x = Snapshot+ <$> x .@? "description"+ <*> x .@? "encrypted"+ <*> x .@? "ownerAlias"+ <*> x .@? "ownerId"+ <*> x .@? "progress"+ <*> x .@? "snapshotId"+ <*> x .@? "startTime"+ <*> x .@? "status"+ <*> x .@ "tagSet"+ <*> x .@? "volumeId"+ <*> x .@? "volumeSize"++instance ToQuery Snapshot where+ toQuery Snapshot{..} = mconcat+ [ "description" =? _sDescription+ , "encrypted" =? _sEncrypted+ , "ownerAlias" =? _sOwnerAlias+ , "ownerId" =? _sOwnerId+ , "progress" =? _sProgress+ , "snapshotId" =? _sSnapshotId+ , "startTime" =? _sStartTime+ , "status" =? _sState+ , "tagSet" =? _sTags+ , "volumeId" =? _sVolumeId+ , "volumeSize" =? _sVolumeSize+ ]++data SpotInstanceStateFault = SpotInstanceStateFault+ { _sisfCode :: Maybe Text+ , _sisfMessage :: Maybe Text+ } deriving (Eq, Ord, 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, 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 key of the tag.+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 type of resource.+tdResourceType :: Lens' TagDescription ResourceType+tdResourceType = lens _tdResourceType (\s a -> s { _tdResourceType = a })++-- | The value of the tag.+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, 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, Show, Generic, Enum)++instance Hashable VpnStaticRouteSource++instance FromText VpnStaticRouteSource where+ parser = match "Static" Static++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 RFC822+ , _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 RFC822+ } deriving (Eq, 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"+ <*> x .@ "priceSchedules"+ <*> x .@? "reservedInstancesId"+ <*> x .@? "reservedInstancesListingId"+ <*> x .@? "status"+ <*> x .@? "statusMessage"+ <*> x .@ "tagSet"+ <*> x .@? "updateDate"++instance ToQuery ReservedInstancesListing where+ toQuery ReservedInstancesListing{..} = mconcat+ [ "clientToken" =? _rilClientToken+ , "createDate" =? _rilCreateDate+ , "instanceCounts" =? _rilInstanceCounts+ , "priceSchedules" =? _rilPriceSchedules+ , "reservedInstancesId" =? _rilReservedInstancesId+ , "reservedInstancesListingId" =? _rilReservedInstancesListingId+ , "status" =? _rilStatus+ , "statusMessage" =? _rilStatusMessage+ , "tagSet" =? _rilTags+ , "updateDate" =? _rilUpdateDate+ ]++data InstanceLifecycleType+ = Spot -- ^ spot+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable InstanceLifecycleType++instance FromText InstanceLifecycleType where+ parser = match "spot" Spot++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, Show, Generic, Enum)++instance Hashable VirtualizationType++instance FromText VirtualizationType where+ parser = match "hvm" Hvm+ <|> match "paravirtual" Paravirtual++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, Show, Generic, Enum)++instance Hashable NetworkInterfaceStatus++instance FromText NetworkInterfaceStatus where+ parser = match "attaching" Attaching+ <|> match "available" Available+ <|> match "detaching" Detaching+ <|> match "in-use" InUse++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, Show, Generic, Enum)++instance Hashable PlatformValues++instance FromText PlatformValues where+ parser = match "Windows" Windows++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, 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, 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, Show, Generic, Enum)++instance Hashable RecurringChargeFrequency++instance FromText RecurringChargeFrequency where+ parser = match "Hourly" Hourly++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, 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"+ <*> x .@? "dhcpOptionsId"+ <*> x .@ "tagSet"++instance ToQuery DhcpOptions where+ toQuery DhcpOptions{..} = mconcat+ [ "dhcpConfigurationSet" =? _doDhcpConfigurations+ , "dhcpOptionsId" =? _doDhcpOptionsId+ , "tagSet" =? _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, 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"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "privateIpAddress"+ <*> x .@ "privateIpAddressesSet"+ <*> x .@? "secondaryPrivateIpAddressCount"+ <*> x .@? "subnetId"++instance ToQuery InstanceNetworkInterfaceSpecification where+ toQuery InstanceNetworkInterfaceSpecification{..} = mconcat+ [ "associatePublicIpAddress" =? _inisAssociatePublicIpAddress+ , "deleteOnTermination" =? _inisDeleteOnTermination+ , "description" =? _inisDescription+ , "deviceIndex" =? _inisDeviceIndex+ , "SecurityGroupId" =? _inisGroups+ , "networkInterfaceId" =? _inisNetworkInterfaceId+ , "privateIpAddress" =? _inisPrivateIpAddress+ , "privateIpAddressesSet" =? _inisPrivateIpAddresses+ , "secondaryPrivateIpAddressCount" =? _inisSecondaryPrivateIpAddressCount+ , "subnetId" =? _inisSubnetId+ ]++data VolumeState+ = VSAvailable -- ^ available+ | VSCreating -- ^ creating+ | VSDeleted -- ^ deleted+ | VSDeleting -- ^ deleting+ | VSError -- ^ error+ | VSInUse -- ^ in-use+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable VolumeState++instance FromText VolumeState where+ parser = match "available" VSAvailable+ <|> match "creating" VSCreating+ <|> match "deleted" VSDeleted+ <|> match "deleting" VSDeleting+ <|> match "error" VSError+ <|> match "in-use" VSInUse++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, Show, Monoid)++-- | 'AttributeValue' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'avValue' @::@ 'Maybe' 'Text'+--+attributeValue :: AttributeValue+attributeValue = AttributeValue+ { _avValue = Nothing+ }++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, 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+ , _iDescription :: Maybe Text+ , _iHypervisor :: HypervisorType+ , _iImageId :: Text+ , _iImageLocation :: Text+ , _iImageOwnerAlias :: Maybe Text+ , _iImageType :: ImageTypeValues+ , _iKernelId :: Maybe Text+ , _iName :: 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, Show)++-- | 'Image' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iArchitecture' @::@ 'ArchitectureValues'+--+-- * 'iBlockDeviceMappings' @::@ ['BlockDeviceMapping']+--+-- * 'iDescription' @::@ 'Maybe' 'Text'+--+-- * 'iHypervisor' @::@ 'HypervisorType'+--+-- * 'iImageId' @::@ 'Text'+--+-- * 'iImageLocation' @::@ 'Text'+--+-- * 'iImageOwnerAlias' @::@ 'Maybe' 'Text'+--+-- * 'iImageType' @::@ 'ImageTypeValues'+--+-- * 'iKernelId' @::@ 'Maybe' 'Text'+--+-- * 'iName' @::@ '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'+ -> Text -- ^ 'iName'+ -> DeviceType -- ^ 'iRootDeviceType'+ -> VirtualizationType -- ^ 'iVirtualizationType'+ -> HypervisorType -- ^ 'iHypervisor'+ -> Image+image p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 = Image+ { _iImageId = p1+ , _iImageLocation = p2+ , _iState = p3+ , _iOwnerId = p4+ , _iPublic = p5+ , _iArchitecture = p6+ , _iImageType = p7+ , _iName = p8+ , _iRootDeviceType = p9+ , _iVirtualizationType = p10+ , _iHypervisor = p11+ , _iProductCodes = mempty+ , _iKernelId = Nothing+ , _iRamdiskId = Nothing+ , _iPlatform = Nothing+ , _iSriovNetSupport = Nothing+ , _iStateReason = Nothing+ , _iImageOwnerAlias = 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 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 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"+ <*> x .@? "description"+ <*> x .@ "hypervisor"+ <*> x .@ "imageId"+ <*> x .@ "imageLocation"+ <*> x .@? "imageOwnerAlias"+ <*> x .@ "imageType"+ <*> x .@? "kernelId"+ <*> x .@ "name"+ <*> x .@ "imageOwnerId"+ <*> x .@? "platform"+ <*> x .@ "productCodes"+ <*> x .@ "isPublic"+ <*> x .@? "ramdiskId"+ <*> x .@? "rootDeviceName"+ <*> x .@ "rootDeviceType"+ <*> x .@? "sriovNetSupport"+ <*> x .@ "imageState"+ <*> x .@? "stateReason"+ <*> x .@ "tagSet"+ <*> x .@ "virtualizationType"++instance ToQuery Image where+ toQuery Image{..} = mconcat+ [ "architecture" =? _iArchitecture+ , "blockDeviceMapping" =? _iBlockDeviceMappings+ , "description" =? _iDescription+ , "hypervisor" =? _iHypervisor+ , "imageId" =? _iImageId+ , "imageLocation" =? _iImageLocation+ , "imageOwnerAlias" =? _iImageOwnerAlias+ , "imageType" =? _iImageType+ , "kernelId" =? _iKernelId+ , "name" =? _iName+ , "imageOwnerId" =? _iOwnerId+ , "platform" =? _iPlatform+ , "productCodes" =? _iProductCodes+ , "isPublic" =? _iPublic+ , "ramdiskId" =? _iRamdiskId+ , "rootDeviceName" =? _iRootDeviceName+ , "rootDeviceType" =? _iRootDeviceType+ , "sriovNetSupport" =? _iSriovNetSupport+ , "imageState" =? _iState+ , "stateReason" =? _iStateReason+ , "tagSet" =? _iTags+ , "virtualizationType" =? _iVirtualizationType+ ]++data DhcpConfiguration = DhcpConfiguration+ { _dcKey :: Maybe Text+ , _dcValues :: List "item" AttributeValue+ } deriving (Eq, 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"++instance ToQuery DhcpConfiguration where+ toQuery DhcpConfiguration{..} = mconcat+ [ "key" =? _dcKey+ , "valueSet" =? _dcValues+ ]++data Tag = Tag+ { _tagKey :: Text+ , _tagValue :: Text+ } deriving (Eq, Ord, 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, Show, Generic, Enum)++instance Hashable AccountAttributeName++instance FromText AccountAttributeName where+ parser = match "default-vpc" DefaultVpc+ <|> match "supported-platforms" SupportedPlatforms++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 RFC822+ , _niaAttachmentId :: Maybe Text+ , _niaDeleteOnTermination :: Maybe Bool+ , _niaDeviceIndex :: Maybe Int+ , _niaInstanceId :: Maybe Text+ , _niaInstanceOwnerId :: Maybe Text+ , _niaStatus :: Maybe AttachmentStatus+ } deriving (Eq, 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, 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, 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"+ <*> x .@? "status"++instance ToQuery VolumeStatusInfo where+ toQuery VolumeStatusInfo{..} = mconcat+ [ "details" =? _vsiDetails+ , "status" =? _vsiStatus+ ]++data NetworkInterfaceAssociation = NetworkInterfaceAssociation+ { _niaAllocationId :: Maybe Text+ , _niaAssociationId :: Maybe Text+ , _niaIpOwnerId :: Maybe Text+ , _niaPublicDnsName :: Maybe Text+ , _niaPublicIp :: Maybe Text+ } deriving (Eq, Ord, 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, 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"+ <*> x .@ "Remove"++instance ToQuery CreateVolumePermissionModifications where+ toQuery CreateVolumePermissionModifications{..} = mconcat+ [ "Add" =? _cvpmAdd+ , "Remove" =? _cvpmRemove+ ]++data VpcState+ = VpcStateAvailable -- ^ available+ | VpcStatePending -- ^ pending+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable VpcState++instance FromText VpcState where+ parser = match "available" VpcStateAvailable+ <|> match "pending" VpcStatePending++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, Show, Generic, Enum)++instance Hashable ResourceType++instance FromText ResourceType where+ parser = match "customer-gateway" RTCustomerGateway+ <|> match "dhcp-options" RTDhcpOptions+ <|> match "image" RTImage+ <|> match "instance" RTInstance'+ <|> match "internet-gateway" RTInternetGateway+ <|> match "network-acl" RTNetworkAcl+ <|> match "network-interface" RTNetworkInterface+ <|> match "reserved-instances" RTReservedInstances+ <|> match "route-table" RTRouteTable+ <|> match "security-group" RTSecurityGroup+ <|> match "snapshot" RTSnapshot+ <|> match "spot-instances-request" RTSpotInstancesRequest+ <|> match "subnet" RTSubnet+ <|> match "volume" RTVolume+ <|> match "vpc" RTVpc+ <|> match "vpn-connection" RTVpnConnection+ <|> match "vpn-gateway" RTVpnGateway++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, Show, Generic, Enum)++instance Hashable ReportStatusType++instance FromText ReportStatusType where+ parser = match "impaired" Impaired+ <|> match "ok" Ok++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, Show, Generic, Enum)++instance Hashable CurrencyCodeValues++instance FromText CurrencyCodeValues where+ parser = match "USD" Usd++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, 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, 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, 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, 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[0..3]). 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, 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"++instance ToQuery ConversionTask where+ toQuery ConversionTask{..} = mconcat+ [ "conversionTaskId" =? _ctConversionTaskId+ , "expirationTime" =? _ctExpirationTime+ , "importInstance" =? _ctImportInstance+ , "importVolume" =? _ctImportVolume+ , "state" =? _ctState+ , "statusMessage" =? _ctStatusMessage+ , "tagSet" =? _ctTags+ ]++data AttachmentStatus+ = ASAttached -- ^ attached+ | ASAttaching -- ^ attaching+ | ASDetached -- ^ detached+ | ASDetaching -- ^ detaching+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable AttachmentStatus++instance FromText AttachmentStatus where+ parser = match "attached" ASAttached+ <|> match "attaching" ASAttaching+ <|> match "detached" ASDetached+ <|> match "detaching" ASDetaching++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 RouteOrigin+ = OriginCreateRoute -- ^ CreateRoute+ | OriginCreateRouteTable -- ^ CreateRouteTable+ | OriginEnableVgwRoutePropagation -- ^ EnableVgwRoutePropagation+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable RouteOrigin++instance FromText RouteOrigin where+ parser = match "CreateRoute" OriginCreateRoute+ <|> match "CreateRouteTable" OriginCreateRouteTable+ <|> match "EnableVgwRoutePropagation" OriginEnableVgwRoutePropagation++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, Show, Generic, Enum)++instance Hashable ListingState++instance FromText ListingState where+ parser = match "available" LSAvailable+ <|> match "cancelled" LSCancelled+ <|> match "pending" LSPending+ <|> match "sold" LSSold++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 RFC822+ } deriving (Eq, 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, 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, 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 RFC822+ } deriving (Eq, Ord, 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, Show, Generic, Enum)++instance Hashable AvailabilityZoneState++instance FromText AvailabilityZoneState where+ parser = match "available" AZSAvailable++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 RFC822+ , _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 RFC822+ , _siValidUntil :: Maybe RFC822+ } deriving (Eq, 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 information, see Tracking+-- Spot Requests with Bid Status Codes in the Amazon Elastic Compute Cloud+-- User Guide.+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"+ <*> 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" =? _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, 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. If requesting a Spot Instance in a+-- nondefault VPC, you must specify the security group ID. If requesting a+-- Spot Instance in EC2-Classic or a default VPC, you can specify either the+-- security group name or ID.+lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]+lsSecurityGroups = lens _lsSecurityGroups (\s a -> s { _lsSecurityGroups = a }) . _List++-- | The ID of the subnet in which to launch the Spot 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"+ <*> x .@? "ebsOptimized"+ <*> x .@? "iamInstanceProfile"+ <*> x .@? "imageId"+ <*> x .@? "instanceType"+ <*> x .@? "kernelId"+ <*> x .@? "keyName"+ <*> x .@? "monitoring"+ <*> x .@ "networkInterfaceSet"+ <*> x .@? "placement"+ <*> x .@? "ramdiskId"+ <*> x .@ "groupSet"+ <*> x .@? "subnetId"+ <*> x .@? "userData"++instance ToQuery LaunchSpecification where+ toQuery LaunchSpecification{..} = mconcat+ [ "addressingType" =? _lsAddressingType+ , "blockDeviceMapping" =? _lsBlockDeviceMappings+ , "ebsOptimized" =? _lsEbsOptimized+ , "iamInstanceProfile" =? _lsIamInstanceProfile+ , "imageId" =? _lsImageId+ , "instanceType" =? _lsInstanceType+ , "kernelId" =? _lsKernelId+ , "keyName" =? _lsKeyName+ , "monitoring" =? _lsMonitoring+ , "networkInterfaceSet" =? _lsNetworkInterfaces+ , "placement" =? _lsPlacement+ , "ramdiskId" =? _lsRamdiskId+ , "groupSet" =? _lsSecurityGroups+ , "subnetId" =? _lsSubnetId+ , "userData" =? _lsUserData+ ]++data VolumeStatusEvent = VolumeStatusEvent+ { _vseDescription :: Maybe Text+ , _vseEventId :: Maybe Text+ , _vseEventType :: Maybe Text+ , _vseNotAfter :: Maybe RFC822+ , _vseNotBefore :: Maybe RFC822+ } deriving (Eq, Ord, 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 :: Maybe Text+ , _vCreateTime :: Maybe RFC822+ , _vEncrypted :: Maybe Bool+ , _vIops :: Maybe Int+ , _vSize :: Maybe Int+ , _vSnapshotId :: Maybe Text+ , _vState :: Maybe VolumeState+ , _vTags :: List "item" Tag+ , _vVolumeId :: Maybe Text+ , _vVolumeType :: Maybe VolumeType+ } deriving (Eq, Show)++-- | 'Volume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vAttachments' @::@ ['VolumeAttachment']+--+-- * 'vAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'vCreateTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'vEncrypted' @::@ 'Maybe' 'Bool'+--+-- * 'vIops' @::@ 'Maybe' 'Int'+--+-- * 'vSize' @::@ 'Maybe' 'Int'+--+-- * 'vSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'vState' @::@ 'Maybe' 'VolumeState'+--+-- * 'vTags' @::@ ['Tag']+--+-- * 'vVolumeId' @::@ 'Maybe' 'Text'+--+-- * 'vVolumeType' @::@ 'Maybe' 'VolumeType'+--+volume :: Volume+volume = Volume+ { _vVolumeId = Nothing+ , _vSize = Nothing+ , _vSnapshotId = Nothing+ , _vAvailabilityZone = Nothing+ , _vState = Nothing+ , _vCreateTime = Nothing+ , _vAttachments = mempty+ , _vTags = mempty+ , _vVolumeType = Nothing+ , _vIops = Nothing+ , _vEncrypted = Nothing+ }++vAttachments :: Lens' Volume [VolumeAttachment]+vAttachments = lens _vAttachments (\s a -> s { _vAttachments = a }) . _List++-- | The Availability Zone for the volume.+vAvailabilityZone :: Lens' Volume (Maybe Text)+vAvailabilityZone =+ lens _vAvailabilityZone (\s a -> s { _vAvailabilityZone = a })++-- | The time stamp when volume creation was initiated.+vCreateTime :: Lens' Volume (Maybe UTCTime)+vCreateTime = lens _vCreateTime (\s a -> s { _vCreateTime = a }) . mapping _Time++-- | Indicates whether the volume is encrypted.+vEncrypted :: Lens' Volume (Maybe 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 Amazon EBS Volume Types in the Amazon Elastic Compute+-- Cloud User Guide. 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 size of the volume, in GiBs.+vSize :: Lens' Volume (Maybe Int)+vSize = lens _vSize (\s a -> s { _vSize = a })++-- | The snapshot from which the volume was created, if applicable.+vSnapshotId :: Lens' Volume (Maybe Text)+vSnapshotId = lens _vSnapshotId (\s a -> s { _vSnapshotId = a })++-- | The volume state.+vState :: Lens' Volume (Maybe 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 (Maybe 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 (Maybe VolumeType)+vVolumeType = lens _vVolumeType (\s a -> s { _vVolumeType = a })++instance FromXML Volume where+ parseXML x = Volume+ <$> x .@ "attachmentSet"+ <*> x .@? "availabilityZone"+ <*> x .@? "createTime"+ <*> x .@? "encrypted"+ <*> x .@? "iops"+ <*> x .@? "size"+ <*> x .@? "snapshotId"+ <*> x .@? "status"+ <*> x .@ "tagSet"+ <*> x .@? "volumeId"+ <*> x .@? "volumeType"++instance ToQuery Volume where+ toQuery Volume{..} = mconcat+ [ "attachmentSet" =? _vAttachments+ , "availabilityZone" =? _vAvailabilityZone+ , "createTime" =? _vCreateTime+ , "encrypted" =? _vEncrypted+ , "iops" =? _vIops+ , "size" =? _vSize+ , "snapshotId" =? _vSnapshotId+ , "status" =? _vState+ , "tagSet" =? _vTags+ , "volumeId" =? _vVolumeId+ , "volumeType" =? _vVolumeType+ ]++data Reservation = Reservation+ { _rGroups :: List "item" GroupIdentifier+ , _rInstances :: List "item" Instance+ , _rOwnerId :: Maybe Text+ , _rRequesterId :: Maybe Text+ , _rReservationId :: Maybe Text+ } deriving (Eq, Show)++-- | 'Reservation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rGroups' @::@ ['GroupIdentifier']+--+-- * 'rInstances' @::@ ['Instance']+--+-- * 'rOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'rRequesterId' @::@ 'Maybe' 'Text'+--+-- * 'rReservationId' @::@ 'Maybe' 'Text'+--+reservation :: Reservation+reservation = Reservation+ { _rReservationId = Nothing+ , _rOwnerId = Nothing+ , _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 (Maybe 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 (Maybe Text)+rReservationId = lens _rReservationId (\s a -> s { _rReservationId = a })++instance FromXML Reservation where+ parseXML x = Reservation+ <$> x .@ "groupSet"+ <*> x .@ "instancesSet"+ <*> x .@? "ownerId"+ <*> x .@? "requesterId"+ <*> x .@? "reservationId"++instance ToQuery Reservation where+ toQuery Reservation{..} = mconcat+ [ "groupSet" =? _rGroups+ , "instancesSet" =? _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, 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, Show, Generic, Enum)++instance Hashable SummaryStatus++instance FromText SummaryStatus where+ parser = match "impaired" SSImpaired+ <|> match "insufficient-data" SSInsufficientData+ <|> match "not-applicable" SSNotApplicable+ <|> match "ok" SSOk++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 RFC822+ , _rimEffectiveDate :: Maybe RFC822+ , _rimModificationResults :: List "item" ReservedInstancesModificationResult+ , _rimReservedInstancesIds :: List "item" ReservedInstancesId+ , _rimReservedInstancesModificationId :: Maybe Text+ , _rimStatus :: Maybe Text+ , _rimStatusMessage :: Maybe Text+ , _rimUpdateDate :: Maybe RFC822+ } deriving (Eq, 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"+ <*> x .@ "reservedInstancesSet"+ <*> x .@? "reservedInstancesModificationId"+ <*> x .@? "status"+ <*> x .@? "statusMessage"+ <*> x .@? "updateDate"++instance ToQuery ReservedInstancesModification where+ toQuery ReservedInstancesModification{..} = mconcat+ [ "clientToken" =? _rimClientToken+ , "createDate" =? _rimCreateDate+ , "effectiveDate" =? _rimEffectiveDate+ , "modificationResultSet" =? _rimModificationResults+ , "reservedInstancesSet" =? _rimReservedInstancesIds+ , "reservedInstancesModificationId" =? _rimReservedInstancesModificationId+ , "status" =? _rimStatus+ , "statusMessage" =? _rimStatusMessage+ , "updateDate" =? _rimUpdateDate+ ]++data RuleAction+ = Allow -- ^ allow+ | Deny -- ^ deny+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable RuleAction++instance FromText RuleAction where+ parser = match "allow" Allow+ <|> match "deny" Deny++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, 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"+ <*> x .@? "macAddress"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "ownerId"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"+ <*> x .@ "privateIpAddressesSet"+ <*> x .@? "requesterId"+ <*> x .@? "requesterManaged"+ <*> x .@? "sourceDestCheck"+ <*> x .@? "status"+ <*> x .@? "subnetId"+ <*> x .@ "tagSet"+ <*> x .@? "vpcId"++instance ToQuery NetworkInterface where+ toQuery NetworkInterface{..} = mconcat+ [ "association" =? _niAssociation+ , "attachment" =? _niAttachment+ , "availabilityZone" =? _niAvailabilityZone+ , "description" =? _niDescription+ , "groupSet" =? _niGroups+ , "macAddress" =? _niMacAddress+ , "networkInterfaceId" =? _niNetworkInterfaceId+ , "ownerId" =? _niOwnerId+ , "privateDnsName" =? _niPrivateDnsName+ , "privateIpAddress" =? _niPrivateIpAddress+ , "privateIpAddressesSet" =? _niPrivateIpAddresses+ , "requesterId" =? _niRequesterId+ , "requesterManaged" =? _niRequesterManaged+ , "sourceDestCheck" =? _niSourceDestCheck+ , "status" =? _niStatus+ , "subnetId" =? _niSubnetId+ , "tagSet" =? _niTagSet+ , "vpcId" =? _niVpcId+ ]++data TelemetryStatus+ = Down -- ^ DOWN+ | Up -- ^ UP+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable TelemetryStatus++instance FromText TelemetryStatus where+ parser = match "DOWN" Down+ <|> match "UP" Up++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 :: Maybe Text+ , _s1AvailableIpAddressCount :: Maybe Int+ , _s1CidrBlock :: Maybe Text+ , _s1DefaultForAz :: Maybe Bool+ , _s1MapPublicIpOnLaunch :: Maybe Bool+ , _s1State :: Maybe SubnetState+ , _s1SubnetId :: Maybe Text+ , _s1Tags :: List "item" Tag+ , _s1VpcId :: Maybe Text+ } deriving (Eq, Show)++-- | 'Subnet' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 's1AvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 's1AvailableIpAddressCount' @::@ 'Maybe' 'Int'+--+-- * 's1CidrBlock' @::@ 'Maybe' 'Text'+--+-- * 's1DefaultForAz' @::@ 'Maybe' 'Bool'+--+-- * 's1MapPublicIpOnLaunch' @::@ 'Maybe' 'Bool'+--+-- * 's1State' @::@ 'Maybe' 'SubnetState'+--+-- * 's1SubnetId' @::@ 'Maybe' 'Text'+--+-- * 's1Tags' @::@ ['Tag']+--+-- * 's1VpcId' @::@ 'Maybe' 'Text'+--+subnet :: Subnet+subnet = Subnet+ { _s1SubnetId = Nothing+ , _s1State = Nothing+ , _s1VpcId = Nothing+ , _s1CidrBlock = Nothing+ , _s1AvailableIpAddressCount = Nothing+ , _s1AvailabilityZone = Nothing+ , _s1DefaultForAz = Nothing+ , _s1MapPublicIpOnLaunch = Nothing+ , _s1Tags = mempty+ }++-- | The Availability Zone of the subnet.+s1AvailabilityZone :: Lens' Subnet (Maybe 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 (Maybe Int)+s1AvailableIpAddressCount =+ lens _s1AvailableIpAddressCount+ (\s a -> s { _s1AvailableIpAddressCount = a })++-- | The CIDR block assigned to the subnet.+s1CidrBlock :: Lens' Subnet (Maybe Text)+s1CidrBlock = lens _s1CidrBlock (\s a -> s { _s1CidrBlock = a })++-- | Indicates whether this is the default subnet for the Availability Zone.+s1DefaultForAz :: Lens' Subnet (Maybe Bool)+s1DefaultForAz = lens _s1DefaultForAz (\s a -> s { _s1DefaultForAz = a })++-- | Indicates whether instances launched in this subnet receive a public IP+-- address.+s1MapPublicIpOnLaunch :: Lens' Subnet (Maybe Bool)+s1MapPublicIpOnLaunch =+ lens _s1MapPublicIpOnLaunch (\s a -> s { _s1MapPublicIpOnLaunch = a })++-- | The current state of the subnet.+s1State :: Lens' Subnet (Maybe SubnetState)+s1State = lens _s1State (\s a -> s { _s1State = a })++-- | The ID of the subnet.+s1SubnetId :: Lens' Subnet (Maybe 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 (Maybe 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"+ <*> x .@? "vpcId"++instance ToQuery Subnet where+ toQuery Subnet{..} = mconcat+ [ "availabilityZone" =? _s1AvailabilityZone+ , "availableIpAddressCount" =? _s1AvailableIpAddressCount+ , "cidrBlock" =? _s1CidrBlock+ , "defaultForAz" =? _s1DefaultForAz+ , "mapPublicIpOnLaunch" =? _s1MapPublicIpOnLaunch+ , "state" =? _s1State+ , "subnetId" =? _s1SubnetId+ , "tagSet" =? _s1Tags+ , "vpcId" =? _s1VpcId+ ]++data KeyPairInfo = KeyPairInfo+ { _kpiKeyFingerprint :: Maybe Text+ , _kpiKeyName :: Maybe Text+ } deriving (Eq, Ord, 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, 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"+ <*> x .@ "Remove"++instance ToQuery LaunchPermissionModifications where+ toQuery LaunchPermissionModifications{..} = mconcat+ [ "Add" =? _lpmAdd+ , "Remove" =? _lpmRemove+ ]++data SnapshotState+ = Completed -- ^ completed+ | Error -- ^ error+ | Pending -- ^ pending+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable SnapshotState++instance FromText SnapshotState where+ parser = match "completed" Completed+ <|> match "error" Error+ <|> match "pending" Pending++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, 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, 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. For+-- information about creating a presigned URL for an Amazon S3 object, read+-- the "Query String Request Authentication Alternative" section of the+-- 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, 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, 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, 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, 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, Show, Generic, Enum)++instance Hashable VolumeAttachmentState++instance FromText VolumeAttachmentState where+ parser = match "attached" VASAttached+ <|> match "attaching" VASAttaching+ <|> match "detached" VASDetached+ <|> match "detaching" VASDetaching++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, 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, Show, Generic, Enum)++instance Hashable RouteState++instance FromText RouteState where+ parser = match "active" Active+ <|> match "blackhole" Blackhole++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, 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, Show, Generic, Enum)++instance Hashable BundleTaskState++instance FromText BundleTaskState where+ parser = match "bundling" BTSBundling+ <|> match "cancelling" BTSCancelling+ <|> match "complete" BTSComplete+ <|> match "failed" BTSFailed+ <|> match "pending" BTSPending+ <|> match "storing" BTSStoring+ <|> match "waiting-for-shutdown" BTSWaitingForShutdown++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, 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, Show, Generic, Enum)++instance Hashable VpcAttributeName++instance FromText VpcAttributeName where+ parser = match "enableDnsHostnames" EnableDnsHostnames+ <|> match "enableDnsSupport" EnableDnsSupport++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, 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, 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, Show, Generic, Enum)++instance Hashable SpotInstanceState++instance FromText SpotInstanceState where+ parser = match "active" SISActive+ <|> match "cancelled" SISCancelled+ <|> match "closed" SISClosed+ <|> match "failed" SISFailed+ <|> match "open" SISOpen++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, 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, 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, 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"+ <*> x .@? "status"++instance ToQuery InstanceStatusSummary where+ toQuery InstanceStatusSummary{..} = mconcat+ [ "details" =? _issDetails+ , "status" =? _issStatus+ ]++data SpotPlacement = SpotPlacement+ { _sp1AvailabilityZone :: Maybe Text+ , _sp1GroupName :: Maybe Text+ } deriving (Eq, Ord, 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, 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, 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 :: Maybe Text+ , _btBundleTaskError :: Maybe BundleTaskError+ , _btInstanceId :: Maybe Text+ , _btProgress :: Maybe Text+ , _btStartTime :: Maybe RFC822+ , _btState :: Maybe BundleTaskState+ , _btStorage :: Maybe Storage+ , _btUpdateTime :: Maybe RFC822+ } deriving (Eq, Show)++-- | 'BundleTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'btBundleId' @::@ 'Maybe' 'Text'+--+-- * 'btBundleTaskError' @::@ 'Maybe' 'BundleTaskError'+--+-- * 'btInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'btProgress' @::@ 'Maybe' 'Text'+--+-- * 'btStartTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'btState' @::@ 'Maybe' 'BundleTaskState'+--+-- * 'btStorage' @::@ 'Maybe' 'Storage'+--+-- * 'btUpdateTime' @::@ 'Maybe' 'UTCTime'+--+bundleTask :: BundleTask+bundleTask = BundleTask+ { _btInstanceId = Nothing+ , _btBundleId = Nothing+ , _btState = Nothing+ , _btStartTime = Nothing+ , _btUpdateTime = Nothing+ , _btStorage = Nothing+ , _btProgress = Nothing+ , _btBundleTaskError = Nothing+ }++-- | The ID for this bundle task.+btBundleId :: Lens' BundleTask (Maybe 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 (Maybe Text)+btInstanceId = lens _btInstanceId (\s a -> s { _btInstanceId = a })++-- | The level of task completion, as a percent (for example, 20%).+btProgress :: Lens' BundleTask (Maybe Text)+btProgress = lens _btProgress (\s a -> s { _btProgress = a })++-- | The time this task started.+btStartTime :: Lens' BundleTask (Maybe UTCTime)+btStartTime = lens _btStartTime (\s a -> s { _btStartTime = a }) . mapping _Time++-- | The state of the task.+btState :: Lens' BundleTask (Maybe BundleTaskState)+btState = lens _btState (\s a -> s { _btState = a })++-- | The Amazon S3 storage locations.+btStorage :: Lens' BundleTask (Maybe Storage)+btStorage = lens _btStorage (\s a -> s { _btStorage = a })++-- | The time of the most recent update for the task.+btUpdateTime :: Lens' BundleTask (Maybe UTCTime)+btUpdateTime = lens _btUpdateTime (\s a -> s { _btUpdateTime = a }) . mapping _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 RFC822+ , _iseNotBefore :: Maybe RFC822+ } deriving (Eq, 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+ = C1Medium -- ^ c1.medium+ | C1XLarge -- ^ c1.xlarge+ | C32XLarge -- ^ c3.2xlarge+ | C34XLarge -- ^ c3.4xlarge+ | C38XLarge -- ^ c3.8xlarge+ | C3Large -- ^ c3.large+ | C3XLarge -- ^ c3.xlarge+ | Cc14XLarge -- ^ cc1.4xlarge+ | Cc28XLarge -- ^ cc2.8xlarge+ | Cg14XLarge -- ^ cg1.4xlarge+ | Cr18XLarge -- ^ cr1.8xlarge+ | G22XLarge -- ^ g2.2xlarge+ | Hi14XLarge -- ^ hi1.4xlarge+ | Hs18XLarge -- ^ hs1.8xlarge+ | I22XLarge -- ^ i2.2xlarge+ | I24XLarge -- ^ i2.4xlarge+ | I28XLarge -- ^ i2.8xlarge+ | I2XLarge -- ^ i2.xlarge+ | M1Large -- ^ m1.large+ | M1Medium -- ^ m1.medium+ | M1Small -- ^ m1.small+ | M1XLarge -- ^ m1.xlarge+ | M22XLarge -- ^ m2.2xlarge+ | M24XLarge -- ^ m2.4xlarge+ | M2XLarge -- ^ m2.xlarge+ | M32XLarge -- ^ m3.2xlarge+ | M3Large -- ^ m3.large+ | M3Medium -- ^ m3.medium+ | M3XLarge -- ^ m3.xlarge+ | R32XLarge -- ^ r3.2xlarge+ | R34XLarge -- ^ r3.4xlarge+ | R38XLarge -- ^ r3.8xlarge+ | R3Large -- ^ r3.large+ | R3XLarge -- ^ r3.xlarge+ | T1Micro -- ^ t1.micro+ | T2Medium -- ^ t2.medium+ | T2Micro -- ^ t2.micro+ | T2Small -- ^ t2.small+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable InstanceType++instance FromText InstanceType where+ parser = match "c1.medium" C1Medium+ <|> match "c1.xlarge" C1XLarge+ <|> match "c3.2xlarge" C32XLarge+ <|> match "c3.4xlarge" C34XLarge+ <|> match "c3.8xlarge" C38XLarge+ <|> match "c3.large" C3Large+ <|> match "c3.xlarge" C3XLarge+ <|> match "cc1.4xlarge" Cc14XLarge+ <|> match "cc2.8xlarge" Cc28XLarge+ <|> match "cg1.4xlarge" Cg14XLarge+ <|> match "cr1.8xlarge" Cr18XLarge+ <|> match "g2.2xlarge" G22XLarge+ <|> match "hi1.4xlarge" Hi14XLarge+ <|> match "hs1.8xlarge" Hs18XLarge+ <|> match "i2.2xlarge" I22XLarge+ <|> match "i2.4xlarge" I24XLarge+ <|> match "i2.8xlarge" I28XLarge+ <|> match "i2.xlarge" I2XLarge+ <|> match "m1.large" M1Large+ <|> match "m1.medium" M1Medium+ <|> match "m1.small" M1Small+ <|> match "m1.xlarge" M1XLarge+ <|> match "m2.2xlarge" M22XLarge+ <|> match "m2.4xlarge" M24XLarge+ <|> match "m2.xlarge" M2XLarge+ <|> match "m3.2xlarge" M32XLarge+ <|> match "m3.large" M3Large+ <|> match "m3.medium" M3Medium+ <|> match "m3.xlarge" M3XLarge+ <|> match "r3.2xlarge" R32XLarge+ <|> match "r3.4xlarge" R34XLarge+ <|> match "r3.8xlarge" R38XLarge+ <|> match "r3.large" R3Large+ <|> match "r3.xlarge" R3XLarge+ <|> match "t1.micro" T1Micro+ <|> match "t2.medium" T2Medium+ <|> match "t2.micro" T2Micro+ <|> match "t2.small" T2Small++instance ToText InstanceType where+ toText = \case+ C1Medium -> "c1.medium"+ C1XLarge -> "c1.xlarge"+ C32XLarge -> "c3.2xlarge"+ C34XLarge -> "c3.4xlarge"+ C38XLarge -> "c3.8xlarge"+ C3Large -> "c3.large"+ C3XLarge -> "c3.xlarge"+ Cc14XLarge -> "cc1.4xlarge"+ Cc28XLarge -> "cc2.8xlarge"+ Cg14XLarge -> "cg1.4xlarge"+ Cr18XLarge -> "cr1.8xlarge"+ G22XLarge -> "g2.2xlarge"+ Hi14XLarge -> "hi1.4xlarge"+ Hs18XLarge -> "hs1.8xlarge"+ I22XLarge -> "i2.2xlarge"+ I24XLarge -> "i2.4xlarge"+ I28XLarge -> "i2.8xlarge"+ I2XLarge -> "i2.xlarge"+ M1Large -> "m1.large"+ M1Medium -> "m1.medium"+ M1Small -> "m1.small"+ M1XLarge -> "m1.xlarge"+ M22XLarge -> "m2.2xlarge"+ M24XLarge -> "m2.4xlarge"+ M2XLarge -> "m2.xlarge"+ M32XLarge -> "m3.2xlarge"+ M3Large -> "m3.large"+ M3Medium -> "m3.medium"+ M3XLarge -> "m3.xlarge"+ R32XLarge -> "r3.2xlarge"+ R34XLarge -> "r3.4xlarge"+ R38XLarge -> "r3.8xlarge"+ R3Large -> "r3.large"+ R3XLarge -> "r3.xlarge"+ T1Micro -> "t1.micro"+ T2Medium -> "t2.medium"+ T2Micro -> "t2.micro"+ T2Small -> "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, 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, 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 datafeed 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 datafeed files.+sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)+sdsPrefix = lens _sdsPrefix (\s a -> s { _sdsPrefix = a })++-- | The state of the Spot Instance datafeed 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, 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, 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"+ <*> x .@ "ipPermissionsEgress"+ <*> x .@ "ownerId"+ <*> x .@ "tagSet"+ <*> x .@? "vpcId"++instance ToQuery SecurityGroup where+ toQuery SecurityGroup{..} = mconcat+ [ "groupDescription" =? _sgDescription+ , "groupId" =? _sgGroupId+ , "groupName" =? _sgGroupName+ , "ipPermissions" =? _sgIpPermissions+ , "ipPermissionsEgress" =? _sgIpPermissionsEgress+ , "ownerId" =? _sgOwnerId+ , "tagSet" =? _sgTags+ , "vpcId" =? _sgVpcId+ ]++data CancelSpotInstanceRequestState+ = CSIRSActive -- ^ active+ | CSIRSCancelled -- ^ cancelled+ | CSIRSClosed -- ^ closed+ | CSIRSCompleted -- ^ completed+ | CSIRSOpen -- ^ open+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable CancelSpotInstanceRequestState++instance FromText CancelSpotInstanceRequestState where+ parser = match "active" CSIRSActive+ <|> match "cancelled" CSIRSCancelled+ <|> match "closed" CSIRSClosed+ <|> match "completed" CSIRSCompleted+ <|> match "open" CSIRSOpen++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, Show, Generic, Enum)++instance Hashable PlacementGroupState++instance FromText PlacementGroupState where+ parser = match "available" PGSAvailable+ <|> match "deleted" PGSDeleted+ <|> match "deleting" PGSDeleting+ <|> match "pending" PGSPending++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, 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, 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, Show, Generic, Enum)++instance Hashable ExportEnvironment++instance FromText ExportEnvironment where+ parser = match "citrix" Citrix+ <|> match "microsoft" Microsoft+ <|> match "vmware" Vmware++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"+++data VolumeAttachment = VolumeAttachment+ { _vaAttachTime :: Maybe RFC822+ , _vaDeleteOnTermination :: Maybe Bool+ , _vaDevice :: Maybe Text+ , _vaInstanceId :: Maybe Text+ , _vaState :: Maybe VolumeAttachmentState+ , _vaVolumeId :: Maybe Text+ } deriving (Eq, 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 :: Maybe Text+ , _cgCustomerGatewayId :: Maybe Text+ , _cgIpAddress :: Maybe Text+ , _cgState :: Maybe Text+ , _cgTags :: List "item" Tag+ , _cgType :: Maybe Text+ } deriving (Eq, Show)++-- | 'CustomerGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cgBgpAsn' @::@ 'Maybe' 'Text'+--+-- * 'cgCustomerGatewayId' @::@ 'Maybe' 'Text'+--+-- * 'cgIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'cgState' @::@ 'Maybe' 'Text'+--+-- * 'cgTags' @::@ ['Tag']+--+-- * 'cgType' @::@ 'Maybe' 'Text'+--+customerGateway :: CustomerGateway+customerGateway = CustomerGateway+ { _cgCustomerGatewayId = Nothing+ , _cgState = Nothing+ , _cgType = Nothing+ , _cgIpAddress = Nothing+ , _cgBgpAsn = Nothing+ , _cgTags = mempty+ }++-- | The customer gateway's Border Gateway Protocol (BGP) Autonomous System+-- Number (ASN).+cgBgpAsn :: Lens' CustomerGateway (Maybe Text)+cgBgpAsn = lens _cgBgpAsn (\s a -> s { _cgBgpAsn = a })++-- | The ID of the customer gateway.+cgCustomerGatewayId :: Lens' CustomerGateway (Maybe Text)+cgCustomerGatewayId =+ lens _cgCustomerGatewayId (\s a -> s { _cgCustomerGatewayId = a })++-- | The Internet-routable IP address of the customer gateway's outside+-- interface.+cgIpAddress :: Lens' CustomerGateway (Maybe Text)+cgIpAddress = lens _cgIpAddress (\s a -> s { _cgIpAddress = a })++-- | The current state of the customer gateway (pending | available | deleting+-- | deleted).+cgState :: Lens' CustomerGateway (Maybe 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 (Maybe 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"+ <*> x .@? "type"++instance ToQuery CustomerGateway where+ toQuery CustomerGateway{..} = mconcat+ [ "bgpAsn" =? _cgBgpAsn+ , "customerGatewayId" =? _cgCustomerGatewayId+ , "ipAddress" =? _cgIpAddress+ , "state" =? _cgState+ , "tagSet" =? _cgTags+ , "type" =? _cgType+ ]++data EbsInstanceBlockDevice = EbsInstanceBlockDevice+ { _eibdAttachTime :: Maybe RFC822+ , _eibdDeleteOnTermination :: Maybe Bool+ , _eibdStatus :: Maybe AttachmentStatus+ , _eibdVolumeId :: Maybe Text+ } deriving (Eq, 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, Show, Generic, Enum)++instance Hashable ShutdownBehavior++instance FromText ShutdownBehavior where+ parser = match "stop" Stop+ <|> match "terminate" Terminate++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, 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+-- Authenticating REST Requests 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, 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, 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, Show, Generic, Enum)++instance Hashable SubnetState++instance FromText SubnetState where+ parser = match "available" SSAvailable+ <|> match "pending" SSPending++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, Show, Generic, Enum)++instance Hashable ContainerFormat++instance FromText ContainerFormat where+ parser = match "ova" Ova++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, 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, 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, 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, Show, Generic, Enum)++instance Hashable StatusType++instance FromText StatusType where+ parser = match "failed" Failed+ <|> match "insufficient-data" InsufficientData+ <|> match "passed" Passed++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, 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, Show, Generic, Enum)++instance Hashable NetworkInterfaceAttribute++instance FromText NetworkInterfaceAttribute where+ parser = match "attachment" Attachment+ <|> match "description" Description+ <|> match "groupSet" GroupSet+ <|> match "sourceDestCheck" SourceDestCheck++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, Show, Generic, Enum)++instance Hashable ImageTypeValues++instance FromText ImageTypeValues where+ parser = match "kernel" Kernel+ <|> match "machine" Machine+ <|> match "ramdisk" Ramdisk++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, 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, Show, Generic, Enum)++instance Hashable SnapshotAttributeName++instance FromText SnapshotAttributeName where+ parser = match "createVolumePermission" SANCreateVolumePermission+ <|> match "productCodes" SANProductCodes++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, 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"+ <*> x .@? "regionName"+ <*> x .@? "zoneState"+ <*> x .@? "zoneName"++instance ToQuery AvailabilityZone where+ toQuery AvailabilityZone{..} = mconcat+ [ "messageSet" =? _azMessages+ , "regionName" =? _azRegionName+ , "zoneState" =? _azState+ , "zoneName" =? _azZoneName+ ]++data VpnState+ = VpnStateAvailable -- ^ available+ | VpnStateDeleted -- ^ deleted+ | VpnStateDeleting -- ^ deleting+ | VpnStatePending -- ^ pending+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable VpnState++instance FromText VpnState where+ parser = match "available" VpnStateAvailable+ <|> match "deleted" VpnStateDeleted+ <|> match "deleting" VpnStateDeleting+ <|> match "pending" VpnStatePending++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, 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"+ <*> x .@ "propagatingVgwSet"+ <*> x .@? "routeTableId"+ <*> x .@ "routeSet"+ <*> x .@ "tagSet"+ <*> x .@? "vpcId"++instance ToQuery RouteTable where+ toQuery RouteTable{..} = mconcat+ [ "associationSet" =? _rtAssociations+ , "propagatingVgwSet" =? _rtPropagatingVgws+ , "routeTableId" =? _rtRouteTableId+ , "routeSet" =? _rtRoutes+ , "tagSet" =? _rtTags+ , "vpcId" =? _rtVpcId+ ]++data HypervisorType+ = Ovm -- ^ ovm+ | Xen -- ^ xen+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable HypervisorType++instance FromText HypervisorType where+ parser = match "ovm" Ovm+ <|> match "xen" Xen++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 RFC822+ , _isdName :: Maybe StatusName+ , _isdStatus :: Maybe StatusType+ } deriving (Eq, 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, 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, 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, Show, Generic, Enum)++instance Hashable ReservedInstanceState++instance FromText ReservedInstanceState where+ parser = match "active" RISActive+ <|> match "payment-failed" RISPaymentFailed+ <|> match "payment-pending" RISPaymentPending+ <|> match "retired" RISRetired++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, Show, Generic, Enum)++instance Hashable InstanceAttributeName++instance FromText InstanceAttributeName where+ parser = match "blockDeviceMapping" IANInstanceBlockDeviceMapping+ <|> match "disableApiTermination" IANInstanceDisableApiTermination+ <|> match "ebsOptimized" IANInstanceEbsOptimized+ <|> match "groupSet" IANInstanceGroupSet+ <|> match "instanceInitiatedShutdownBehavior" IANInstanceInstanceInitiatedShutdownBehavior+ <|> match "instanceType" IANInstanceInstanceType+ <|> match "kernel" IANInstanceKernel+ <|> match "productCodes" IANInstanceProductCodes+ <|> match "ramdisk" IANInstanceRamdisk+ <|> match "rootDeviceName" IANInstanceRootDeviceName+ <|> match "sourceDestCheck" IANInstanceSourceDestCheck+ <|> match "sriovNetSupport" IANInstanceSriovNetSupport+ <|> match "userData" IANInstanceUserData++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, 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 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"+ <*> x .@ "toPort"+ <*> x .@ "groups"++instance ToQuery IpPermission where+ toQuery IpPermission{..} = mconcat+ [ "fromPort" =? _ipFromPort+ , "ipProtocol" =? _ipIpProtocol+ , "ipRanges" =? _ipIpRanges+ , "toPort" =? _ipToPort+ , "groups" =? _ipUserIdGroupPairs+ ]++data ConversionTaskState+ = CTSActive -- ^ active+ | CTSCancelled -- ^ cancelled+ | CTSCancelling -- ^ cancelling+ | CTSCompleted -- ^ completed+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ConversionTaskState++instance FromText ConversionTaskState where+ parser = match "active" CTSActive+ <|> match "cancelled" CTSCancelled+ <|> match "cancelling" CTSCancelling+ <|> match "completed" CTSCompleted++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, 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, Show, Generic, Enum)++instance Hashable Tenancy++instance FromText Tenancy where+ parser = match "dedicated" Dedicated+ <|> match "default" Default'++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, 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, 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, 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, Show, Generic, Enum)++instance Hashable PlacementStrategy++instance FromText PlacementStrategy where+ parser = match "cluster" Cluster++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, 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"+ <*> x .@? "macAddress"+ <*> x .@? "networkInterfaceId"+ <*> x .@? "ownerId"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"+ <*> x .@ "privateIpAddressesSet"+ <*> x .@? "sourceDestCheck"+ <*> x .@? "status"+ <*> x .@? "subnetId"+ <*> x .@? "vpcId"++instance ToQuery InstanceNetworkInterface where+ toQuery InstanceNetworkInterface{..} = mconcat+ [ "association" =? _iniAssociation+ , "attachment" =? _iniAttachment+ , "description" =? _iniDescription+ , "groupSet" =? _iniGroups+ , "macAddress" =? _iniMacAddress+ , "networkInterfaceId" =? _iniNetworkInterfaceId+ , "ownerId" =? _iniOwnerId+ , "privateDnsName" =? _iniPrivateDnsName+ , "privateIpAddress" =? _iniPrivateIpAddress+ , "privateIpAddressesSet" =? _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, 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, 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, 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 :: Maybe Text+ , _vpcDhcpOptionsId :: Maybe Text+ , _vpcInstanceTenancy :: Maybe Tenancy+ , _vpcIsDefault :: Maybe Bool+ , _vpcState :: Maybe VpcState+ , _vpcTags :: List "item" Tag+ , _vpcVpcId :: Maybe Text+ } deriving (Eq, Show)++-- | 'Vpc' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vpcCidrBlock' @::@ 'Maybe' 'Text'+--+-- * 'vpcDhcpOptionsId' @::@ 'Maybe' 'Text'+--+-- * 'vpcInstanceTenancy' @::@ 'Maybe' 'Tenancy'+--+-- * 'vpcIsDefault' @::@ 'Maybe' 'Bool'+--+-- * 'vpcState' @::@ 'Maybe' 'VpcState'+--+-- * 'vpcTags' @::@ ['Tag']+--+-- * 'vpcVpcId' @::@ 'Maybe' 'Text'+--+vpc :: Vpc+vpc = Vpc+ { _vpcVpcId = Nothing+ , _vpcState = Nothing+ , _vpcCidrBlock = Nothing+ , _vpcDhcpOptionsId = Nothing+ , _vpcTags = mempty+ , _vpcInstanceTenancy = Nothing+ , _vpcIsDefault = Nothing+ }++-- | The CIDR block for the VPC.+vpcCidrBlock :: Lens' Vpc (Maybe 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 (Maybe Text)+vpcDhcpOptionsId = lens _vpcDhcpOptionsId (\s a -> s { _vpcDhcpOptionsId = a })++-- | The allowed tenancy of instances launched into the VPC.+vpcInstanceTenancy :: Lens' Vpc (Maybe Tenancy)+vpcInstanceTenancy =+ lens _vpcInstanceTenancy (\s a -> s { _vpcInstanceTenancy = a })++-- | Indicates whether the VPC is the default VPC.+vpcIsDefault :: Lens' Vpc (Maybe Bool)+vpcIsDefault = lens _vpcIsDefault (\s a -> s { _vpcIsDefault = a })++-- | The current state of the VPC.+vpcState :: Lens' Vpc (Maybe 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 (Maybe 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"+ <*> x .@? "vpcId"++instance ToQuery Vpc where+ toQuery Vpc{..} = mconcat+ [ "cidrBlock" =? _vpcCidrBlock+ , "dhcpOptionsId" =? _vpcDhcpOptionsId+ , "instanceTenancy" =? _vpcInstanceTenancy+ , "isDefault" =? _vpcIsDefault+ , "state" =? _vpcState+ , "tagSet" =? _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, 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"+ <*> x .@? "instanceId"+ <*> x .@? "instanceState"+ <*> x .@? "instanceStatus"+ <*> x .@? "systemStatus"++instance ToQuery InstanceStatus where+ toQuery InstanceStatus{..} = mconcat+ [ "availabilityZone" =? _isAvailabilityZone+ , "eventsSet" =? _isEvents+ , "instanceId" =? _isInstanceId+ , "instanceState" =? _isInstanceState+ , "instanceStatus" =? _isInstanceStatus+ , "systemStatus" =? _isSystemStatus+ ]++data ArchitectureValues+ = I386 -- ^ i386+ | X8664 -- ^ x86_64+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ArchitectureValues++instance FromText ArchitectureValues where+ parser = match "i386" I386+ <|> match "x86_64" X8664++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, Show, Generic, Enum)++instance Hashable ReportInstanceReasonCodes++instance FromText ReportInstanceReasonCodes where+ parser = match "instance-stuck-in-state" InstanceStuckInState+ <|> match "not-accepting-credentials" NotAcceptingCredentials+ <|> match "other" Other+ <|> match "password-not-available" PasswordNotAvailable+ <|> match "performance-ebs-volume" PerformanceEbsVolume+ <|> match "performance-instance-store" PerformanceInstanceStore+ <|> match "performance-network" PerformanceNetwork+ <|> match "performance-other" PerformanceOther+ <|> match "unresponsive" Unresponsive++instance ToText ReportInstanceReasonCodes where+ toText = \case+ InstanceStuckInState -> "instance-stuck-in-state"+ NotAcceptingCredentials -> "not-accepting-credentials"+ Other -> "other"+ PasswordNotAvailable -> "password-not-available"+ PerformanceEbsVolume -> "performance-ebs-volume"+ PerformanceInstanceStore -> "performance-instance-store"+ PerformanceNetwork -> "performance-network"+ PerformanceOther -> "performance-other"+ Unresponsive -> "unresponsive"++instance 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, 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 Amazon EBS Volume Types in the Amazon Elastic Compute+-- Cloud User Guide. 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, 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"++instance ToQuery AccountAttribute where+ toQuery AccountAttribute{..} = mconcat+ [ "attributeName" =? _aaAttributeName+ , "attributeValueSet" =? _aaAttributeValues+ ]++data PriceSchedule = PriceSchedule+ { _psActive :: Maybe Bool+ , _psCurrencyCode :: Maybe CurrencyCodeValues+ , _psPrice :: Maybe Double+ , _psTerm :: Maybe Integer+ } deriving (Eq, 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, Show, Generic, Enum)++instance Hashable DeviceType++instance FromText DeviceType where+ parser = match "ebs" Ebs+ <|> match "instance-store" InstanceStore++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, Show, Generic, Enum)++instance Hashable DomainType++instance FromText DomainType where+ parser = match "standard" DTStandard+ <|> match "vpc" DTVpc++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, 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, 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+ = HeavyUtilization -- ^ Heavy Utilization+ | LightUtilization -- ^ Light Utilization+ | MediumUtilization -- ^ Medium Utilization+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable OfferingTypeValues++instance FromText OfferingTypeValues where+ parser = match "Heavy Utilization" HeavyUtilization+ <|> match "Light Utilization" LightUtilization+ <|> match "Medium Utilization" MediumUtilization++instance ToText OfferingTypeValues where+ toText = \case+ HeavyUtilization -> "Heavy Utilization"+ LightUtilization -> "Light Utilization"+ MediumUtilization -> "Medium Utilization"++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, 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"+ <*> x .@? "type"+ <*> x .@ "attachments"+ <*> x .@? "vpnGatewayId"++instance ToQuery VpnGateway where+ toQuery VpnGateway{..} = mconcat+ [ "availabilityZone" =? _vgAvailabilityZone+ , "state" =? _vgState+ , "tagSet" =? _vgTags+ , "type" =? _vgType+ , "attachments" =? _vgVpcAttachments+ , "vpnGatewayId" =? _vgVpnGatewayId+ ]++data Filter = Filter+ { _fName :: Text+ , _fValues :: List "item" Text+ } deriving (Eq, Ord, 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.+fName :: Lens' Filter Text+fName = lens _fName (\s a -> s { _fName = a })++-- | One or more filter values.+fValues :: Lens' Filter [Text]+fValues = lens _fValues (\s a -> s { _fValues = a }) . _List++instance FromXML Filter where+ parseXML x = Filter+ <$> x .@ "Name"+ <*> x .@ "Value"++instance ToQuery Filter where+ toQuery Filter{..} = mconcat+ [ "Name" =? _fName+ , "Value" =? _fValues+ ]++data VolumeType+ = Gp2 -- ^ gp2+ | Io1 -- ^ io1+ | Standard -- ^ standard+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable VolumeType++instance FromText VolumeType where+ parser = match "gp2" Gp2+ <|> match "io1" Io1+ <|> match "standard" Standard++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, 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, 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"+ <*> x .@ "entrySet"+ <*> x .@? "default"+ <*> x .@? "networkAclId"+ <*> x .@ "tagSet"+ <*> x .@? "vpcId"++instance ToQuery NetworkAcl where+ toQuery NetworkAcl{..} = mconcat+ [ "associationSet" =? _naAssociations+ , "entrySet" =? _naEntries+ , "default" =? _naIsDefault+ , "networkAclId" =? _naNetworkAclId+ , "tagSet" =? _naTags+ , "vpcId" =? _naVpcId+ ]++data ImageState+ = ISAvailable -- ^ available+ | ISDeregistered -- ^ deregistered+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ImageState++instance FromText ImageState where+ parser = match "available" ISAvailable+ <|> match "deregistered" ISDeregistered++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, Show, Generic, Enum)++instance Hashable GatewayType++instance FromText GatewayType where+ parser = match "ipsec.1" Ipsec1++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 RFC822+ , _iniaAttachmentId :: Maybe Text+ , _iniaDeleteOnTermination :: Maybe Bool+ , _iniaDeviceIndex :: Maybe Int+ , _iniaStatus :: Maybe AttachmentStatus+ } deriving (Eq, 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, Show)++-- | 'AttributeBooleanValue' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'abvValue' @::@ 'Maybe' 'Bool'+--+attributeBooleanValue :: AttributeBooleanValue+attributeBooleanValue = AttributeBooleanValue+ { _abvValue = Nothing+ }++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, 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, 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"++instance ToQuery NewDhcpConfiguration where+ toQuery NewDhcpConfiguration{..} = mconcat+ [ "key" =? _ndcKey+ , "Value" =? _ndcValues+ ]++data StateReason = StateReason+ { _srCode :: Maybe Text+ , _srMessage :: Maybe Text+ } deriving (Eq, Ord, 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, Show, Generic, Enum)++instance Hashable MonitoringState++instance FromText MonitoringState where+ parser = match "disabled" MSDisabled+ <|> match "enabled" MSEnabled+ <|> match "pending" MSPending++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, 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, Show, Generic, Enum)++instance Hashable StatusName++instance FromText StatusName where+ parser = match "reachability" Reachability++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, 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"+ <*> x .@ "internetGatewayId"+ <*> x .@ "tagSet"++instance ToQuery InternetGateway where+ toQuery InternetGateway{..} = mconcat+ [ "attachmentSet" =? _igAttachments+ , "internetGatewayId" =? _igInternetGatewayId+ , "tagSet" =? _igTags+ ]++data VolumeStatusName+ = IoEnabled -- ^ io-enabled+ | IoPerformance -- ^ io-performance+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable VolumeStatusName++instance FromText VolumeStatusName where+ parser = match "io-enabled" IoEnabled+ <|> match "io-performance" IoPerformance++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, Show, Generic, Enum)++instance Hashable VolumeAttributeName++instance FromText VolumeAttributeName where+ parser = match "autoEnableIO" AutoEnableIO+ <|> match "productCodes" ProductCodes++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, 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"++instance ToQuery ImportInstanceTaskDetails where+ toQuery ImportInstanceTaskDetails{..} = mconcat+ [ "description" =? _iitdDescription+ , "instanceId" =? _iitdInstanceId+ , "platform" =? _iitdPlatform+ , "volumes" =? _iitdVolumes+ ]++data PlacementGroup = PlacementGroup+ { _pgGroupName :: Maybe Text+ , _pgState :: Maybe PlacementGroupState+ , _pgStrategy :: Maybe PlacementStrategy+ } deriving (Eq, 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, 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, Show, Generic, Enum)++instance Hashable ListingStatus++instance FromText ListingStatus where+ parser = match "active" ListingStatusActive+ <|> match "cancelled" ListingStatusCancelled+ <|> match "closed" ListingStatusClosed+ <|> match "pending" ListingStatusPending++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, 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, Show, Generic, Enum)++instance Hashable VolumeStatusInfoStatus++instance FromText VolumeStatusInfoStatus where+ parser = match "impaired" VSISImpaired+ <|> match "insufficient-data" VSISInsufficientData+ <|> match "ok" VSISOk++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, 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, Show, Generic, Enum)++instance Hashable RIProductDescription++instance FromText RIProductDescription where+ parser = match "Linux/UNIX" RIPDLinuxUNIX+ <|> match "Linux/UNIX (Amazon VPC)" RIPDLinuxUNIXAmazonVPC+ <|> match "Windows" RIPDWindows+ <|> match "Windows (Amazon VPC)" RIPDWindowsAmazonVPC++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, 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"+ <*> x .@? "productDescription"+ <*> x .@ "recurringCharges"+ <*> 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" =? _rioPricingDetails+ , "productDescription" =? _rioProductDescription+ , "recurringCharges" =? _rioRecurringCharges+ , "reservedInstancesOfferingId" =? _rioReservedInstancesOfferingId+ , "usagePrice" =? _rioUsagePrice+ ]++data ReservedInstances = ReservedInstances+ { _ri1AvailabilityZone :: Maybe Text+ , _ri1CurrencyCode :: Maybe CurrencyCodeValues+ , _ri1Duration :: Maybe Integer+ , _ri1End :: Maybe RFC822+ , _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 RFC822+ , _ri1State :: Maybe ReservedInstanceState+ , _ri1Tags :: List "item" Tag+ , _ri1UsagePrice :: Maybe Double+ } deriving (Eq, 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"+ <*> x .@? "reservedInstancesId"+ <*> x .@? "start"+ <*> x .@? "state"+ <*> x .@ "tagSet"+ <*> 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" =? _ri1RecurringCharges+ , "reservedInstancesId" =? _ri1ReservedInstancesId+ , "start" =? _ri1Start+ , "state" =? _ri1State+ , "tagSet" =? _ri1Tags+ , "usagePrice" =? _ri1UsagePrice+ ]++data DatafeedSubscriptionState+ = DSSActive -- ^ Active+ | DSSInactive -- ^ Inactive+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable DatafeedSubscriptionState++instance FromText DatafeedSubscriptionState where+ parser = match "Active" DSSActive+ <|> match "Inactive" DSSInactive++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, Show, Generic, Enum)++instance Hashable ExportTaskState++instance FromText ExportTaskState where+ parser = match "active" ETSActive+ <|> match "cancelled" ETSCancelled+ <|> match "cancelling" ETSCancelling+ <|> match "completed" ETSCompleted++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, Show, Generic, Enum)++instance Hashable ProductCodeValues++instance FromText ProductCodeValues where+ parser = match "devpay" Devpay+ <|> match "marketplace" Marketplace++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 :: Maybe Text+ , _vcCustomerGatewayId :: Maybe Text+ , _vcOptions :: Maybe VpnConnectionOptions+ , _vcRoutes :: List "item" VpnStaticRoute+ , _vcState :: Maybe VpnState+ , _vcTags :: List "item" Tag+ , _vcType :: Maybe GatewayType+ , _vcVgwTelemetry :: List "item" VgwTelemetry+ , _vcVpnConnectionId :: Maybe Text+ , _vcVpnGatewayId :: Maybe Text+ } deriving (Eq, Show)++-- | 'VpnConnection' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vcCustomerGatewayConfiguration' @::@ 'Maybe' 'Text'+--+-- * 'vcCustomerGatewayId' @::@ 'Maybe' 'Text'+--+-- * 'vcOptions' @::@ 'Maybe' 'VpnConnectionOptions'+--+-- * 'vcRoutes' @::@ ['VpnStaticRoute']+--+-- * 'vcState' @::@ 'Maybe' 'VpnState'+--+-- * 'vcTags' @::@ ['Tag']+--+-- * 'vcType' @::@ 'Maybe' 'GatewayType'+--+-- * 'vcVgwTelemetry' @::@ ['VgwTelemetry']+--+-- * 'vcVpnConnectionId' @::@ 'Maybe' 'Text'+--+-- * 'vcVpnGatewayId' @::@ 'Maybe' 'Text'+--+vpnConnection :: VpnConnection+vpnConnection = VpnConnection+ { _vcVpnConnectionId = Nothing+ , _vcState = Nothing+ , _vcCustomerGatewayConfiguration = Nothing+ , _vcType = Nothing+ , _vcCustomerGatewayId = Nothing+ , _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 (Maybe 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 (Maybe 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 (Maybe 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 (Maybe 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 (Maybe 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"+ <*> x .@? "state"+ <*> x .@ "tagSet"+ <*> x .@? "type"+ <*> x .@ "vgwTelemetry"+ <*> x .@? "vpnConnectionId"+ <*> x .@? "vpnGatewayId"++instance ToQuery VpnConnection where+ toQuery VpnConnection{..} = mconcat+ [ "customerGatewayConfiguration" =? _vcCustomerGatewayConfiguration+ , "customerGatewayId" =? _vcCustomerGatewayId+ , "options" =? _vcOptions+ , "routes" =? _vcRoutes+ , "state" =? _vcState+ , "tagSet" =? _vcTags+ , "type" =? _vcType+ , "vgwTelemetry" =? _vcVgwTelemetry+ , "vpnConnectionId" =? _vcVpnConnectionId+ , "vpnGatewayId" =? _vcVpnGatewayId+ ]++data InstanceState = InstanceState+ { _isCode :: Int+ , _isName :: InstanceStateName+ } deriving (Eq, 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, 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, Show, Generic, Enum)++instance Hashable EventCode++instance FromText EventCode where+ parser = match "instance-reboot" InstanceReboot+ <|> match "instance-retirement" InstanceRetirement+ <|> match "instance-stop" InstanceStop+ <|> match "system-maintenance" SystemMaintenance+ <|> match "system-reboot" SystemReboot++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, Show, Generic, Enum)++instance Hashable SpotInstanceType++instance FromText SpotInstanceType where+ parser = match "one-time" OneTime+ <|> match "persistent" Persistent++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 RFC822+ , _vpc1RequesterVpcInfo :: Maybe VpcPeeringConnectionVpcInfo+ , _vpc1Status :: Maybe VpcPeeringConnectionStateReason+ , _vpc1Tags :: List "item" Tag+ , _vpc1VpcPeeringConnectionId :: Maybe Text+ } deriving (Eq, 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"+ <*> x .@? "vpcPeeringConnectionId"++instance ToQuery VpcPeeringConnection where+ toQuery VpcPeeringConnection{..} = mconcat+ [ "accepterVpcInfo" =? _vpc1AccepterVpcInfo+ , "expirationTime" =? _vpc1ExpirationTime+ , "requesterVpcInfo" =? _vpc1RequesterVpcInfo+ , "status" =? _vpc1Status+ , "tagSet" =? _vpc1Tags+ , "vpcPeeringConnectionId" =? _vpc1VpcPeeringConnectionId+ ]++data S3Storage = S3Storage+ { _ssAWSAccessKeyId :: Maybe Text+ , _ssBucket :: Maybe Text+ , _ssPrefix :: Maybe Text+ , _ssUploadPolicy :: Maybe Base64+ , _ssUploadPolicySignature :: Maybe Text+ } deriving (Eq, 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 Best Practices+-- for Managing 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 RFC822+ , _vtOutsideIpAddress :: Maybe Text+ , _vtStatus :: Maybe TelemetryStatus+ , _vtStatusMessage :: Maybe Text+ } deriving (Eq, 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, 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, Show, Generic, Enum)++instance Hashable InstanceStateName++instance FromText InstanceStateName where+ parser = match "pending" ISNPending+ <|> match "running" ISNRunning+ <|> match "shutting-down" ISNShuttingDown+ <|> match "stopped" ISNStopped+ <|> match "stopping" ISNStopping+ <|> match "terminated" ISNTerminated++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 :: Maybe Int+ , _i1Architecture :: Maybe ArchitectureValues+ , _i1BlockDeviceMappings :: List "item" InstanceBlockDeviceMapping+ , _i1ClientToken :: Maybe Text+ , _i1EbsOptimized :: Maybe Bool+ , _i1Hypervisor :: Maybe HypervisorType+ , _i1IamInstanceProfile :: Maybe IamInstanceProfile+ , _i1ImageId :: Maybe Text+ , _i1InstanceId :: Maybe Text+ , _i1InstanceLifecycle :: Maybe InstanceLifecycleType+ , _i1InstanceType :: Maybe InstanceType+ , _i1KernelId :: Maybe Text+ , _i1KeyName :: Maybe Text+ , _i1LaunchTime :: Maybe RFC822+ , _i1Monitoring :: Maybe Monitoring+ , _i1NetworkInterfaces :: List "item" InstanceNetworkInterface+ , _i1Placement :: Maybe 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 :: Maybe DeviceType+ , _i1SecurityGroups :: List "item" GroupIdentifier+ , _i1SourceDestCheck :: Maybe Bool+ , _i1SpotInstanceRequestId :: Maybe Text+ , _i1SriovNetSupport :: Maybe Text+ , _i1State :: Maybe InstanceState+ , _i1StateReason :: Maybe StateReason+ , _i1StateTransitionReason :: Maybe Text+ , _i1SubnetId :: Maybe Text+ , _i1Tags :: List "item" Tag+ , _i1VirtualizationType :: Maybe VirtualizationType+ , _i1VpcId :: Maybe Text+ } deriving (Eq, Show)++-- | 'Instance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'i1AmiLaunchIndex' @::@ 'Maybe' 'Int'+--+-- * 'i1Architecture' @::@ 'Maybe' 'ArchitectureValues'+--+-- * 'i1BlockDeviceMappings' @::@ ['InstanceBlockDeviceMapping']+--+-- * 'i1ClientToken' @::@ 'Maybe' 'Text'+--+-- * 'i1EbsOptimized' @::@ 'Maybe' 'Bool'+--+-- * 'i1Hypervisor' @::@ 'Maybe' 'HypervisorType'+--+-- * 'i1IamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfile'+--+-- * 'i1ImageId' @::@ 'Maybe' 'Text'+--+-- * 'i1InstanceId' @::@ 'Maybe' 'Text'+--+-- * 'i1InstanceLifecycle' @::@ 'Maybe' 'InstanceLifecycleType'+--+-- * 'i1InstanceType' @::@ 'Maybe' 'InstanceType'+--+-- * 'i1KernelId' @::@ 'Maybe' 'Text'+--+-- * 'i1KeyName' @::@ 'Maybe' 'Text'+--+-- * 'i1LaunchTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'i1Monitoring' @::@ 'Maybe' 'Monitoring'+--+-- * 'i1NetworkInterfaces' @::@ ['InstanceNetworkInterface']+--+-- * 'i1Placement' @::@ 'Maybe' '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' @::@ 'Maybe' 'DeviceType'+--+-- * 'i1SecurityGroups' @::@ ['GroupIdentifier']+--+-- * 'i1SourceDestCheck' @::@ 'Maybe' 'Bool'+--+-- * 'i1SpotInstanceRequestId' @::@ 'Maybe' 'Text'+--+-- * 'i1SriovNetSupport' @::@ 'Maybe' 'Text'+--+-- * 'i1State' @::@ 'Maybe' 'InstanceState'+--+-- * 'i1StateReason' @::@ 'Maybe' 'StateReason'+--+-- * 'i1StateTransitionReason' @::@ 'Maybe' 'Text'+--+-- * 'i1SubnetId' @::@ 'Maybe' 'Text'+--+-- * 'i1Tags' @::@ ['Tag']+--+-- * 'i1VirtualizationType' @::@ 'Maybe' 'VirtualizationType'+--+-- * 'i1VpcId' @::@ 'Maybe' 'Text'+--+instance' :: Instance+instance' = Instance+ { _i1InstanceId = Nothing+ , _i1ImageId = Nothing+ , _i1State = Nothing+ , _i1PrivateDnsName = Nothing+ , _i1PublicDnsName = Nothing+ , _i1StateTransitionReason = Nothing+ , _i1KeyName = Nothing+ , _i1AmiLaunchIndex = Nothing+ , _i1ProductCodes = mempty+ , _i1InstanceType = Nothing+ , _i1LaunchTime = Nothing+ , _i1Placement = Nothing+ , _i1KernelId = Nothing+ , _i1RamdiskId = Nothing+ , _i1Platform = Nothing+ , _i1Monitoring = Nothing+ , _i1SubnetId = Nothing+ , _i1VpcId = Nothing+ , _i1PrivateIpAddress = Nothing+ , _i1PublicIpAddress = Nothing+ , _i1StateReason = Nothing+ , _i1Architecture = Nothing+ , _i1RootDeviceType = Nothing+ , _i1RootDeviceName = Nothing+ , _i1BlockDeviceMappings = mempty+ , _i1VirtualizationType = Nothing+ , _i1InstanceLifecycle = Nothing+ , _i1SpotInstanceRequestId = Nothing+ , _i1ClientToken = Nothing+ , _i1Tags = mempty+ , _i1SecurityGroups = mempty+ , _i1SourceDestCheck = Nothing+ , _i1Hypervisor = Nothing+ , _i1NetworkInterfaces = mempty+ , _i1IamInstanceProfile = Nothing+ , _i1EbsOptimized = Nothing+ , _i1SriovNetSupport = Nothing+ }++-- | The AMI launch index, which can be used to find this instance in the+-- launch group.+i1AmiLaunchIndex :: Lens' Instance (Maybe Int)+i1AmiLaunchIndex = lens _i1AmiLaunchIndex (\s a -> s { _i1AmiLaunchIndex = a })++-- | The architecture of the image.+i1Architecture :: Lens' Instance (Maybe 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 (Maybe Bool)+i1EbsOptimized = lens _i1EbsOptimized (\s a -> s { _i1EbsOptimized = a })++-- | The hypervisor type of the instance.+i1Hypervisor :: Lens' Instance (Maybe 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 (Maybe Text)+i1ImageId = lens _i1ImageId (\s a -> s { _i1ImageId = a })++-- | The ID of the instance.+i1InstanceId :: Lens' Instance (Maybe 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 (Maybe 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 (Maybe UTCTime)+i1LaunchTime = lens _i1LaunchTime (\s a -> s { _i1LaunchTime = a }) . mapping _Time++-- | The monitoring information for the instance.+i1Monitoring :: Lens' Instance (Maybe 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 (Maybe 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 (Maybe 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 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 (Maybe 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 (Maybe 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"+ <*> 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"+ <*> x .@? "placement"+ <*> x .@? "platform"+ <*> x .@? "privateDnsName"+ <*> x .@? "privateIpAddress"+ <*> x .@ "productCodes"+ <*> x .@? "dnsName"+ <*> x .@? "ipAddress"+ <*> x .@? "ramdiskId"+ <*> x .@? "rootDeviceName"+ <*> x .@? "rootDeviceType"+ <*> x .@ "groupSet"+ <*> x .@? "sourceDestCheck"+ <*> x .@? "spotInstanceRequestId"+ <*> x .@? "sriovNetSupport"+ <*> x .@? "instanceState"+ <*> x .@? "stateReason"+ <*> x .@? "reason"+ <*> x .@? "subnetId"+ <*> x .@ "tagSet"+ <*> x .@? "virtualizationType"+ <*> x .@? "vpcId"++instance ToQuery Instance where+ toQuery Instance{..} = mconcat+ [ "amiLaunchIndex" =? _i1AmiLaunchIndex+ , "architecture" =? _i1Architecture+ , "blockDeviceMapping" =? _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" =? _i1NetworkInterfaces+ , "placement" =? _i1Placement+ , "platform" =? _i1Platform+ , "privateDnsName" =? _i1PrivateDnsName+ , "privateIpAddress" =? _i1PrivateIpAddress+ , "productCodes" =? _i1ProductCodes+ , "dnsName" =? _i1PublicDnsName+ , "ipAddress" =? _i1PublicIpAddress+ , "ramdiskId" =? _i1RamdiskId+ , "rootDeviceName" =? _i1RootDeviceName+ , "rootDeviceType" =? _i1RootDeviceType+ , "groupSet" =? _i1SecurityGroups+ , "sourceDestCheck" =? _i1SourceDestCheck+ , "spotInstanceRequestId" =? _i1SpotInstanceRequestId+ , "sriovNetSupport" =? _i1SriovNetSupport+ , "instanceState" =? _i1State+ , "stateReason" =? _i1StateReason+ , "reason" =? _i1StateTransitionReason+ , "subnetId" =? _i1SubnetId+ , "tagSet" =? _i1Tags+ , "virtualizationType" =? _i1VirtualizationType+ , "vpcId" =? _i1VpcId+ ]++data ExportTask = ExportTask+ { _etDescription :: Maybe Text+ , _etExportTaskId :: Maybe Text+ , _etExportToS3Task :: Maybe ExportToS3Task+ , _etInstanceExportDetails :: Maybe InstanceExportDetails+ , _etState :: Maybe ExportTaskState+ , _etStatusMessage :: Maybe Text+ } deriving (Eq, Show)++-- | 'ExportTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'etDescription' @::@ 'Maybe' 'Text'+--+-- * 'etExportTaskId' @::@ 'Maybe' 'Text'+--+-- * 'etExportToS3Task' @::@ 'Maybe' 'ExportToS3Task'+--+-- * 'etInstanceExportDetails' @::@ 'Maybe' 'InstanceExportDetails'+--+-- * 'etState' @::@ 'Maybe' 'ExportTaskState'+--+-- * 'etStatusMessage' @::@ 'Maybe' 'Text'+--+exportTask :: ExportTask+exportTask = ExportTask+ { _etExportTaskId = Nothing+ , _etDescription = Nothing+ , _etState = Nothing+ , _etStatusMessage = Nothing+ , _etInstanceExportDetails = Nothing+ , _etExportToS3Task = Nothing+ }++-- | A description of the resource being exported.+etDescription :: Lens' ExportTask (Maybe Text)+etDescription = lens _etDescription (\s a -> s { _etDescription = a })++-- | The ID of the export task.+etExportTaskId :: Lens' ExportTask (Maybe Text)+etExportTaskId = lens _etExportTaskId (\s a -> s { _etExportTaskId = a })++etExportToS3Task :: Lens' ExportTask (Maybe ExportToS3Task)+etExportToS3Task = lens _etExportToS3Task (\s a -> s { _etExportToS3Task = a })++-- | The instance being exported.+etInstanceExportDetails :: Lens' ExportTask (Maybe InstanceExportDetails)+etInstanceExportDetails =+ lens _etInstanceExportDetails (\s a -> s { _etInstanceExportDetails = a })++-- | The state of the conversion task.+etState :: Lens' ExportTask (Maybe ExportTaskState)+etState = lens _etState (\s a -> s { _etState = a })++-- | The status message related to the export task.+etStatusMessage :: Lens' ExportTask (Maybe 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, Show, Generic, Enum)++instance Hashable ResetImageAttributeName++instance FromText ResetImageAttributeName where+ parser = match "launchPermission" RIANLaunchPermission++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, 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 Spot 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"+ <*> x .@? "ebsOptimized"+ <*> x .@? "iamInstanceProfile"+ <*> x .@? "imageId"+ <*> x .@? "instanceType"+ <*> x .@? "kernelId"+ <*> x .@? "keyName"+ <*> x .@? "monitoring"+ <*> x .@ "NetworkInterface"+ <*> x .@? "placement"+ <*> x .@? "ramdiskId"+ <*> x .@ "SecurityGroupId"+ <*> x .@ "SecurityGroup"+ <*> x .@? "subnetId"+ <*> x .@? "userData"++instance ToQuery RequestSpotLaunchSpecification where+ toQuery RequestSpotLaunchSpecification{..} = mconcat+ [ "addressingType" =? _rslsAddressingType+ , "blockDeviceMapping" =? _rslsBlockDeviceMappings+ , "ebsOptimized" =? _rslsEbsOptimized+ , "iamInstanceProfile" =? _rslsIamInstanceProfile+ , "imageId" =? _rslsImageId+ , "instanceType" =? _rslsInstanceType+ , "kernelId" =? _rslsKernelId+ , "keyName" =? _rslsKeyName+ , "monitoring" =? _rslsMonitoring+ , "NetworkInterface" =? _rslsNetworkInterfaces+ , "placement" =? _rslsPlacement+ , "ramdiskId" =? _rslsRamdiskId+ , "SecurityGroupId" =? _rslsSecurityGroupIds+ , "SecurityGroup" =? _rslsSecurityGroups+ , "subnetId" =? _rslsSubnetId+ , "userData" =? _rslsUserData+ ]++newtype VolumeDetail = VolumeDetail+ { _vdSize :: Integer+ } deriving (Eq, Ord, 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, 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, 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, Show, Generic, Enum)++instance Hashable DiskImageFormat++instance FromText DiskImageFormat where+ parser = match "RAW" Raw+ <|> match "VHD" Vhd+ <|> match "VMDK" Vmdk++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
src/Network/AWS/EC2/Internal.hs view
@@ -29,18 +29,27 @@ <$> x .@ "Code" <*> x .@ "Message" +msgCode :: Lens' Message Text+msgCode = lens _msgCode (\s x -> s { _msgCode = x })++msgMessage :: Lens' Message Text+msgMessage = lens _msgMessage (\s x -> s { _msgMessage = x })+ data EC2Error = EC2Error { _errRequestID :: Text- , _errErrors :: [Message]+ , _errErrors :: List "Error" Message } deriving (Eq, Ord, Show, Generic) instance FromXML EC2Error where parseXML x = EC2Error- <$> x .@ "RequestId"- <*> err (x .@ "Errors")- where- err :: Functor f => f (List "Error" Message) -> f [Message]- err = fmap list+ <$> x .@ "RequestID"+ <*> x .@ "Errors"++errRequestID :: Lens' EC2Error Text+errRequestID = lens _errRequestID (\s x -> s { _errRequestID = x })++errErrors :: Lens' EC2Error [Message]+errErrors = lens _errErrors (\s x -> s { _errErrors = x }) . _List -- <Response> -- <Errors>