packages feed

aws-sdk 0.9.2.1 → 0.9.3.0

raw patch · 38 files changed

+2156/−1452 lines, 38 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- AWS.EC2.Types: SubnetStateAvailable :: SubnetState
- AWS.EC2.Types: SubnetStatePending :: SubnetState
- AWS.EC2.Types: VpnTunnelTelemetryStatusDown :: VpnTunnelTelemetryStatus
- AWS.EC2.Types: VpnTunnelTelemetryStatusUp :: VpnTunnelTelemetryStatus
- AWS.EC2.Types: data VpnTunnelTelemetryStatus
- AWS.EC2.Types: instance Eq AMIAttribute
- AWS.EC2.Types: instance Eq AMIAttributeDescription
- AWS.EC2.Types: instance Eq Address
- AWS.EC2.Types: instance Eq AddressDomain
- AWS.EC2.Types: instance Eq AllocateAddress
- AWS.EC2.Types: instance Eq Architecture
- AWS.EC2.Types: instance Eq AssociateAddressRequest
- AWS.EC2.Types: instance Eq Attachment
- AWS.EC2.Types: instance Eq AttachmentSetItemResponse
- AWS.EC2.Types: instance Eq AttachmentSetItemResponseStatus
- AWS.EC2.Types: instance Eq AttachmentState
- AWS.EC2.Types: instance Eq AvailabilityZone
- AWS.EC2.Types: instance Eq BlockDeviceMapping
- AWS.EC2.Types: instance Eq BlockDeviceMappingParam
- AWS.EC2.Types: instance Eq ConsoleOutput
- AWS.EC2.Types: instance Eq CreateRouteRequest
- AWS.EC2.Types: instance Eq CreateSubnetRequest
- AWS.EC2.Types: instance Eq CreateVolumePermission
- AWS.EC2.Types: instance Eq CreateVolumePermissionItem
- AWS.EC2.Types: instance Eq CreateVolumeRequest
- AWS.EC2.Types: instance Eq CustomerGateway
- AWS.EC2.Types: instance Eq CustomerGatewayState
- AWS.EC2.Types: instance Eq DhcpConfiguration
- AWS.EC2.Types: instance Eq DhcpOptions
- AWS.EC2.Types: instance Eq DhcpValue
- AWS.EC2.Types: instance Eq DisassociateAddressRequest
- AWS.EC2.Types: instance Eq EC2Return
- AWS.EC2.Types: instance Eq EbsBlockDevice
- AWS.EC2.Types: instance Eq EbsInstanceBlockDevice
- AWS.EC2.Types: instance Eq EbsSource
- AWS.EC2.Types: instance Eq Group
- AWS.EC2.Types: instance Eq Hypervisor
- AWS.EC2.Types: instance Eq IamInstanceProfile
- AWS.EC2.Types: instance Eq IcmpTypeCode
- AWS.EC2.Types: instance Eq Image
- AWS.EC2.Types: instance Eq ImageState
- AWS.EC2.Types: instance Eq ImageType
- AWS.EC2.Types: instance Eq Instance
- AWS.EC2.Types: instance Eq InstanceAttribute
- AWS.EC2.Types: instance Eq InstanceAttributeRequest
- AWS.EC2.Types: instance Eq InstanceBlockDeviceMapping
- AWS.EC2.Types: instance Eq InstanceLifecycle
- AWS.EC2.Types: instance Eq InstanceMonitoringState
- AWS.EC2.Types: instance Eq InstanceNetworkInterface
- AWS.EC2.Types: instance Eq InstanceNetworkInterfaceAssociation
- AWS.EC2.Types: instance Eq InstanceNetworkInterfaceAttachment
- AWS.EC2.Types: instance Eq InstancePrivateIpAddress
- AWS.EC2.Types: instance Eq InstanceState
- AWS.EC2.Types: instance Eq InstanceStateChange
- AWS.EC2.Types: instance Eq InstanceStatus
- AWS.EC2.Types: instance Eq InstanceStatusDetail
- AWS.EC2.Types: instance Eq InstanceStatusEvent
- AWS.EC2.Types: instance Eq InstanceStatusEventCode
- AWS.EC2.Types: instance Eq InstanceStatusType
- AWS.EC2.Types: instance Eq InstanceStatusTypeStatus
- AWS.EC2.Types: instance Eq InternetGateway
- AWS.EC2.Types: instance Eq InternetGatewayAttachment
- AWS.EC2.Types: instance Eq InternetGatewayAttachmentState
- AWS.EC2.Types: instance Eq IpPermission
- AWS.EC2.Types: instance Eq KeyPair
- AWS.EC2.Types: instance Eq LaunchPermission
- AWS.EC2.Types: instance Eq LaunchPermissionItem
- AWS.EC2.Types: instance Eq ModifyInstanceAttributeRequest
- AWS.EC2.Types: instance Eq MonitorInstancesResponse
- AWS.EC2.Types: instance Eq NetworkAcl
- AWS.EC2.Types: instance Eq NetworkAclAssociation
- AWS.EC2.Types: instance Eq NetworkAclEntry
- AWS.EC2.Types: instance Eq NetworkAclEntryRequest
- AWS.EC2.Types: instance Eq NetworkAclRuleAction
- AWS.EC2.Types: instance Eq NetworkInterface
- AWS.EC2.Types: instance Eq NetworkInterfaceAssociation
- AWS.EC2.Types: instance Eq NetworkInterfaceAttachment
- AWS.EC2.Types: instance Eq NetworkInterfaceParam
- AWS.EC2.Types: instance Eq NetworkInterfacePrivateIpAddress
- AWS.EC2.Types: instance Eq NetworkInterfaceStatus
- AWS.EC2.Types: instance Eq PasswordData
- AWS.EC2.Types: instance Eq Placement
- AWS.EC2.Types: instance Eq PlacementGroup
- AWS.EC2.Types: instance Eq PlacementGroupState
- AWS.EC2.Types: instance Eq PlacementGroupStrategy
- AWS.EC2.Types: instance Eq Platform
- AWS.EC2.Types: instance Eq PortRange
- AWS.EC2.Types: instance Eq ProductCode
- AWS.EC2.Types: instance Eq ProductCodeItem
- AWS.EC2.Types: instance Eq ProductCodeType
- AWS.EC2.Types: instance Eq Region
- AWS.EC2.Types: instance Eq RegisterImageRequest
- AWS.EC2.Types: instance Eq Reservation
- AWS.EC2.Types: instance Eq ResetInstanceAttributeRequest
- AWS.EC2.Types: instance Eq ResetSnapshotAttributeRequest
- AWS.EC2.Types: instance Eq ResourceTag
- AWS.EC2.Types: instance Eq RootDeviceType
- AWS.EC2.Types: instance Eq Route
- AWS.EC2.Types: instance Eq RouteOrigin
- AWS.EC2.Types: instance Eq RouteState
- AWS.EC2.Types: instance Eq RouteTable
- AWS.EC2.Types: instance Eq RouteTableAssociation
- AWS.EC2.Types: instance Eq RunInstancesRequest
- AWS.EC2.Types: instance Eq SecondaryPrivateIpAddressParam
- AWS.EC2.Types: instance Eq SecurityGroup
- AWS.EC2.Types: instance Eq SecurityGroupRequest
- AWS.EC2.Types: instance Eq ShutdownBehavior
- AWS.EC2.Types: instance Eq Snapshot
- AWS.EC2.Types: instance Eq SnapshotAttribute
- AWS.EC2.Types: instance Eq SnapshotAttributeRequest
- AWS.EC2.Types: instance Eq SnapshotStatus
- AWS.EC2.Types: instance Eq StateReason
- AWS.EC2.Types: instance Eq Subnet
- AWS.EC2.Types: instance Eq SubnetState
- AWS.EC2.Types: instance Eq Tag
- AWS.EC2.Types: instance Eq UserIdGroupPair
- AWS.EC2.Types: instance Eq VirtualizationType
- AWS.EC2.Types: instance Eq Volume
- AWS.EC2.Types: instance Eq VolumeAttribute
- AWS.EC2.Types: instance Eq VolumeAttributeRequest
- AWS.EC2.Types: instance Eq VolumeState
- AWS.EC2.Types: instance Eq VolumeStatus
- AWS.EC2.Types: instance Eq VolumeStatusAction
- AWS.EC2.Types: instance Eq VolumeStatusDetail
- AWS.EC2.Types: instance Eq VolumeStatusEvent
- AWS.EC2.Types: instance Eq VolumeStatusInfo
- AWS.EC2.Types: instance Eq VolumeStatusInfoStatus
- AWS.EC2.Types: instance Eq VolumeType
- AWS.EC2.Types: instance Eq Vpc
- AWS.EC2.Types: instance Eq VpcState
- AWS.EC2.Types: instance Eq VpnConnection
- AWS.EC2.Types: instance Eq VpnConnectionOptionsRequest
- AWS.EC2.Types: instance Eq VpnConnectionState
- AWS.EC2.Types: instance Eq VpnGateway
- AWS.EC2.Types: instance Eq VpnGatewayState
- AWS.EC2.Types: instance Eq VpnStaticRoute
- AWS.EC2.Types: instance Eq VpnStaticRouteSource
- AWS.EC2.Types: instance Eq VpnStaticRouteState
- AWS.EC2.Types: instance Eq VpnTunnelTelemetry
- AWS.EC2.Types: instance Eq VpnTunnelTelemetryStatus
- AWS.EC2.Types: instance FromText AddressDomain
- AWS.EC2.Types: instance FromText Architecture
- AWS.EC2.Types: instance FromText AttachmentSetItemResponseStatus
- AWS.EC2.Types: instance FromText AttachmentState
- AWS.EC2.Types: instance FromText CustomerGatewayState
- AWS.EC2.Types: instance FromText EC2Return
- AWS.EC2.Types: instance FromText Hypervisor
- AWS.EC2.Types: instance FromText ImageState
- AWS.EC2.Types: instance FromText ImageType
- AWS.EC2.Types: instance FromText InstanceLifecycle
- AWS.EC2.Types: instance FromText InstanceMonitoringState
- AWS.EC2.Types: instance FromText InstanceStatusEventCode
- AWS.EC2.Types: instance FromText InstanceStatusTypeStatus
- AWS.EC2.Types: instance FromText InternetGatewayAttachmentState
- AWS.EC2.Types: instance FromText NetworkAclRuleAction
- AWS.EC2.Types: instance FromText NetworkInterfaceStatus
- AWS.EC2.Types: instance FromText PlacementGroupState
- AWS.EC2.Types: instance FromText PlacementGroupStrategy
- AWS.EC2.Types: instance FromText Platform
- AWS.EC2.Types: instance FromText ProductCodeType
- AWS.EC2.Types: instance FromText RootDeviceType
- AWS.EC2.Types: instance FromText RouteOrigin
- AWS.EC2.Types: instance FromText RouteState
- AWS.EC2.Types: instance FromText ShutdownBehavior
- AWS.EC2.Types: instance FromText SnapshotStatus
- AWS.EC2.Types: instance FromText SubnetState
- AWS.EC2.Types: instance FromText VirtualizationType
- AWS.EC2.Types: instance FromText VolumeState
- AWS.EC2.Types: instance FromText VolumeStatusInfoStatus
- AWS.EC2.Types: instance FromText VpcState
- AWS.EC2.Types: instance FromText VpnConnectionState
- AWS.EC2.Types: instance FromText VpnGatewayState
- AWS.EC2.Types: instance FromText VpnStaticRouteSource
- AWS.EC2.Types: instance FromText VpnStaticRouteState
- AWS.EC2.Types: instance FromText VpnTunnelTelemetryStatus
- AWS.EC2.Types: instance Ord InstanceAttributeRequest
- AWS.EC2.Types: instance Read AMIAttribute
- AWS.EC2.Types: instance Read AMIAttributeDescription
- AWS.EC2.Types: instance Read Address
- AWS.EC2.Types: instance Read AddressDomain
- AWS.EC2.Types: instance Read AllocateAddress
- AWS.EC2.Types: instance Read Architecture
- AWS.EC2.Types: instance Read AssociateAddressRequest
- AWS.EC2.Types: instance Read Attachment
- AWS.EC2.Types: instance Read AttachmentSetItemResponse
- AWS.EC2.Types: instance Read AttachmentSetItemResponseStatus
- AWS.EC2.Types: instance Read AttachmentState
- AWS.EC2.Types: instance Read AvailabilityZone
- AWS.EC2.Types: instance Read BlockDeviceMapping
- AWS.EC2.Types: instance Read BlockDeviceMappingParam
- AWS.EC2.Types: instance Read ConsoleOutput
- AWS.EC2.Types: instance Read CreateRouteRequest
- AWS.EC2.Types: instance Read CreateSubnetRequest
- AWS.EC2.Types: instance Read CreateVolumePermission
- AWS.EC2.Types: instance Read CreateVolumePermissionItem
- AWS.EC2.Types: instance Read CreateVolumeRequest
- AWS.EC2.Types: instance Read CustomerGateway
- AWS.EC2.Types: instance Read CustomerGatewayState
- AWS.EC2.Types: instance Read DhcpConfiguration
- AWS.EC2.Types: instance Read DhcpOptions
- AWS.EC2.Types: instance Read DhcpValue
- AWS.EC2.Types: instance Read DisassociateAddressRequest
- AWS.EC2.Types: instance Read EC2Return
- AWS.EC2.Types: instance Read EbsBlockDevice
- AWS.EC2.Types: instance Read EbsInstanceBlockDevice
- AWS.EC2.Types: instance Read EbsSource
- AWS.EC2.Types: instance Read Group
- AWS.EC2.Types: instance Read Hypervisor
- AWS.EC2.Types: instance Read IamInstanceProfile
- AWS.EC2.Types: instance Read IcmpTypeCode
- AWS.EC2.Types: instance Read Image
- AWS.EC2.Types: instance Read ImageState
- AWS.EC2.Types: instance Read ImageType
- AWS.EC2.Types: instance Read Instance
- AWS.EC2.Types: instance Read InstanceAttribute
- AWS.EC2.Types: instance Read InstanceBlockDeviceMapping
- AWS.EC2.Types: instance Read InstanceLifecycle
- AWS.EC2.Types: instance Read InstanceMonitoringState
- AWS.EC2.Types: instance Read InstanceNetworkInterface
- AWS.EC2.Types: instance Read InstanceNetworkInterfaceAssociation
- AWS.EC2.Types: instance Read InstanceNetworkInterfaceAttachment
- AWS.EC2.Types: instance Read InstancePrivateIpAddress
- AWS.EC2.Types: instance Read InstanceState
- AWS.EC2.Types: instance Read InstanceStateChange
- AWS.EC2.Types: instance Read InstanceStatus
- AWS.EC2.Types: instance Read InstanceStatusDetail
- AWS.EC2.Types: instance Read InstanceStatusEvent
- AWS.EC2.Types: instance Read InstanceStatusEventCode
- AWS.EC2.Types: instance Read InstanceStatusType
- AWS.EC2.Types: instance Read InstanceStatusTypeStatus
- AWS.EC2.Types: instance Read InternetGateway
- AWS.EC2.Types: instance Read InternetGatewayAttachment
- AWS.EC2.Types: instance Read InternetGatewayAttachmentState
- AWS.EC2.Types: instance Read IpPermission
- AWS.EC2.Types: instance Read KeyPair
- AWS.EC2.Types: instance Read LaunchPermission
- AWS.EC2.Types: instance Read LaunchPermissionItem
- AWS.EC2.Types: instance Read ModifyInstanceAttributeRequest
- AWS.EC2.Types: instance Read MonitorInstancesResponse
- AWS.EC2.Types: instance Read NetworkAcl
- AWS.EC2.Types: instance Read NetworkAclAssociation
- AWS.EC2.Types: instance Read NetworkAclEntry
- AWS.EC2.Types: instance Read NetworkAclEntryRequest
- AWS.EC2.Types: instance Read NetworkAclRuleAction
- AWS.EC2.Types: instance Read NetworkInterface
- AWS.EC2.Types: instance Read NetworkInterfaceAssociation
- AWS.EC2.Types: instance Read NetworkInterfaceAttachment
- AWS.EC2.Types: instance Read NetworkInterfaceParam
- AWS.EC2.Types: instance Read NetworkInterfacePrivateIpAddress
- AWS.EC2.Types: instance Read NetworkInterfaceStatus
- AWS.EC2.Types: instance Read PasswordData
- AWS.EC2.Types: instance Read Placement
- AWS.EC2.Types: instance Read PlacementGroup
- AWS.EC2.Types: instance Read PlacementGroupState
- AWS.EC2.Types: instance Read PlacementGroupStrategy
- AWS.EC2.Types: instance Read Platform
- AWS.EC2.Types: instance Read PortRange
- AWS.EC2.Types: instance Read ProductCode
- AWS.EC2.Types: instance Read ProductCodeItem
- AWS.EC2.Types: instance Read ProductCodeType
- AWS.EC2.Types: instance Read Region
- AWS.EC2.Types: instance Read RegisterImageRequest
- AWS.EC2.Types: instance Read Reservation
- AWS.EC2.Types: instance Read ResetInstanceAttributeRequest
- AWS.EC2.Types: instance Read ResetSnapshotAttributeRequest
- AWS.EC2.Types: instance Read ResourceTag
- AWS.EC2.Types: instance Read RootDeviceType
- AWS.EC2.Types: instance Read Route
- AWS.EC2.Types: instance Read RouteOrigin
- AWS.EC2.Types: instance Read RouteState
- AWS.EC2.Types: instance Read RouteTable
- AWS.EC2.Types: instance Read RouteTableAssociation
- AWS.EC2.Types: instance Read RunInstancesRequest
- AWS.EC2.Types: instance Read SecondaryPrivateIpAddressParam
- AWS.EC2.Types: instance Read SecurityGroup
- AWS.EC2.Types: instance Read SecurityGroupRequest
- AWS.EC2.Types: instance Read ShutdownBehavior
- AWS.EC2.Types: instance Read Snapshot
- AWS.EC2.Types: instance Read SnapshotAttribute
- AWS.EC2.Types: instance Read SnapshotAttributeRequest
- AWS.EC2.Types: instance Read SnapshotStatus
- AWS.EC2.Types: instance Read StateReason
- AWS.EC2.Types: instance Read Subnet
- AWS.EC2.Types: instance Read SubnetState
- AWS.EC2.Types: instance Read Tag
- AWS.EC2.Types: instance Read UserIdGroupPair
- AWS.EC2.Types: instance Read VirtualizationType
- AWS.EC2.Types: instance Read Volume
- AWS.EC2.Types: instance Read VolumeAttribute
- AWS.EC2.Types: instance Read VolumeAttributeRequest
- AWS.EC2.Types: instance Read VolumeState
- AWS.EC2.Types: instance Read VolumeStatus
- AWS.EC2.Types: instance Read VolumeStatusAction
- AWS.EC2.Types: instance Read VolumeStatusDetail
- AWS.EC2.Types: instance Read VolumeStatusEvent
- AWS.EC2.Types: instance Read VolumeStatusInfo
- AWS.EC2.Types: instance Read VolumeStatusInfoStatus
- AWS.EC2.Types: instance Read VolumeType
- AWS.EC2.Types: instance Read Vpc
- AWS.EC2.Types: instance Read VpcState
- AWS.EC2.Types: instance Read VpnConnection
- AWS.EC2.Types: instance Read VpnConnectionOptionsRequest
- AWS.EC2.Types: instance Read VpnConnectionState
- AWS.EC2.Types: instance Read VpnGateway
- AWS.EC2.Types: instance Read VpnGatewayState
- AWS.EC2.Types: instance Read VpnStaticRoute
- AWS.EC2.Types: instance Read VpnStaticRouteSource
- AWS.EC2.Types: instance Read VpnStaticRouteState
- AWS.EC2.Types: instance Read VpnTunnelTelemetry
- AWS.EC2.Types: instance Read VpnTunnelTelemetryStatus
- AWS.EC2.Types: instance Show AMIAttribute
- AWS.EC2.Types: instance Show AMIAttributeDescription
- AWS.EC2.Types: instance Show Address
- AWS.EC2.Types: instance Show AddressDomain
- AWS.EC2.Types: instance Show AllocateAddress
- AWS.EC2.Types: instance Show Architecture
- AWS.EC2.Types: instance Show AssociateAddressRequest
- AWS.EC2.Types: instance Show Attachment
- AWS.EC2.Types: instance Show AttachmentSetItemResponse
- AWS.EC2.Types: instance Show AttachmentSetItemResponseStatus
- AWS.EC2.Types: instance Show AttachmentState
- AWS.EC2.Types: instance Show AvailabilityZone
- AWS.EC2.Types: instance Show BlockDeviceMapping
- AWS.EC2.Types: instance Show BlockDeviceMappingParam
- AWS.EC2.Types: instance Show ConsoleOutput
- AWS.EC2.Types: instance Show CreateRouteRequest
- AWS.EC2.Types: instance Show CreateSubnetRequest
- AWS.EC2.Types: instance Show CreateVolumePermission
- AWS.EC2.Types: instance Show CreateVolumePermissionItem
- AWS.EC2.Types: instance Show CreateVolumeRequest
- AWS.EC2.Types: instance Show CustomerGateway
- AWS.EC2.Types: instance Show CustomerGatewayState
- AWS.EC2.Types: instance Show DhcpConfiguration
- AWS.EC2.Types: instance Show DhcpOptions
- AWS.EC2.Types: instance Show DhcpValue
- AWS.EC2.Types: instance Show DisassociateAddressRequest
- AWS.EC2.Types: instance Show EC2Return
- AWS.EC2.Types: instance Show EbsBlockDevice
- AWS.EC2.Types: instance Show EbsInstanceBlockDevice
- AWS.EC2.Types: instance Show EbsSource
- AWS.EC2.Types: instance Show Group
- AWS.EC2.Types: instance Show Hypervisor
- AWS.EC2.Types: instance Show IamInstanceProfile
- AWS.EC2.Types: instance Show IcmpTypeCode
- AWS.EC2.Types: instance Show Image
- AWS.EC2.Types: instance Show ImageState
- AWS.EC2.Types: instance Show ImageType
- AWS.EC2.Types: instance Show Instance
- AWS.EC2.Types: instance Show InstanceAttribute
- AWS.EC2.Types: instance Show InstanceAttributeRequest
- AWS.EC2.Types: instance Show InstanceBlockDeviceMapping
- AWS.EC2.Types: instance Show InstanceLifecycle
- AWS.EC2.Types: instance Show InstanceMonitoringState
- AWS.EC2.Types: instance Show InstanceNetworkInterface
- AWS.EC2.Types: instance Show InstanceNetworkInterfaceAssociation
- AWS.EC2.Types: instance Show InstanceNetworkInterfaceAttachment
- AWS.EC2.Types: instance Show InstancePrivateIpAddress
- AWS.EC2.Types: instance Show InstanceState
- AWS.EC2.Types: instance Show InstanceStateChange
- AWS.EC2.Types: instance Show InstanceStatus
- AWS.EC2.Types: instance Show InstanceStatusDetail
- AWS.EC2.Types: instance Show InstanceStatusEvent
- AWS.EC2.Types: instance Show InstanceStatusEventCode
- AWS.EC2.Types: instance Show InstanceStatusType
- AWS.EC2.Types: instance Show InstanceStatusTypeStatus
- AWS.EC2.Types: instance Show InternetGateway
- AWS.EC2.Types: instance Show InternetGatewayAttachment
- AWS.EC2.Types: instance Show InternetGatewayAttachmentState
- AWS.EC2.Types: instance Show IpPermission
- AWS.EC2.Types: instance Show KeyPair
- AWS.EC2.Types: instance Show LaunchPermission
- AWS.EC2.Types: instance Show LaunchPermissionItem
- AWS.EC2.Types: instance Show ModifyInstanceAttributeRequest
- AWS.EC2.Types: instance Show MonitorInstancesResponse
- AWS.EC2.Types: instance Show NetworkAcl
- AWS.EC2.Types: instance Show NetworkAclAssociation
- AWS.EC2.Types: instance Show NetworkAclEntry
- AWS.EC2.Types: instance Show NetworkAclEntryRequest
- AWS.EC2.Types: instance Show NetworkAclRuleAction
- AWS.EC2.Types: instance Show NetworkInterface
- AWS.EC2.Types: instance Show NetworkInterfaceAssociation
- AWS.EC2.Types: instance Show NetworkInterfaceAttachment
- AWS.EC2.Types: instance Show NetworkInterfaceParam
- AWS.EC2.Types: instance Show NetworkInterfacePrivateIpAddress
- AWS.EC2.Types: instance Show NetworkInterfaceStatus
- AWS.EC2.Types: instance Show PasswordData
- AWS.EC2.Types: instance Show Placement
- AWS.EC2.Types: instance Show PlacementGroup
- AWS.EC2.Types: instance Show PlacementGroupState
- AWS.EC2.Types: instance Show PlacementGroupStrategy
- AWS.EC2.Types: instance Show Platform
- AWS.EC2.Types: instance Show PortRange
- AWS.EC2.Types: instance Show ProductCode
- AWS.EC2.Types: instance Show ProductCodeItem
- AWS.EC2.Types: instance Show ProductCodeType
- AWS.EC2.Types: instance Show Region
- AWS.EC2.Types: instance Show RegisterImageRequest
- AWS.EC2.Types: instance Show Reservation
- AWS.EC2.Types: instance Show ResetInstanceAttributeRequest
- AWS.EC2.Types: instance Show ResetSnapshotAttributeRequest
- AWS.EC2.Types: instance Show ResourceTag
- AWS.EC2.Types: instance Show RootDeviceType
- AWS.EC2.Types: instance Show Route
- AWS.EC2.Types: instance Show RouteOrigin
- AWS.EC2.Types: instance Show RouteState
- AWS.EC2.Types: instance Show RouteTable
- AWS.EC2.Types: instance Show RouteTableAssociation
- AWS.EC2.Types: instance Show RunInstancesRequest
- AWS.EC2.Types: instance Show SecondaryPrivateIpAddressParam
- AWS.EC2.Types: instance Show SecurityGroup
- AWS.EC2.Types: instance Show SecurityGroupRequest
- AWS.EC2.Types: instance Show ShutdownBehavior
- AWS.EC2.Types: instance Show Snapshot
- AWS.EC2.Types: instance Show SnapshotAttribute
- AWS.EC2.Types: instance Show SnapshotAttributeRequest
- AWS.EC2.Types: instance Show SnapshotStatus
- AWS.EC2.Types: instance Show StateReason
- AWS.EC2.Types: instance Show Subnet
- AWS.EC2.Types: instance Show SubnetState
- AWS.EC2.Types: instance Show Tag
- AWS.EC2.Types: instance Show UserIdGroupPair
- AWS.EC2.Types: instance Show VirtualizationType
- AWS.EC2.Types: instance Show Volume
- AWS.EC2.Types: instance Show VolumeAttribute
- AWS.EC2.Types: instance Show VolumeAttributeRequest
- AWS.EC2.Types: instance Show VolumeState
- AWS.EC2.Types: instance Show VolumeStatus
- AWS.EC2.Types: instance Show VolumeStatusAction
- AWS.EC2.Types: instance Show VolumeStatusDetail
- AWS.EC2.Types: instance Show VolumeStatusEvent
- AWS.EC2.Types: instance Show VolumeStatusInfo
- AWS.EC2.Types: instance Show VolumeStatusInfoStatus
- AWS.EC2.Types: instance Show VolumeType
- AWS.EC2.Types: instance Show Vpc
- AWS.EC2.Types: instance Show VpcState
- AWS.EC2.Types: instance Show VpnConnection
- AWS.EC2.Types: instance Show VpnConnectionOptionsRequest
- AWS.EC2.Types: instance Show VpnConnectionState
- AWS.EC2.Types: instance Show VpnGateway
- AWS.EC2.Types: instance Show VpnGatewayState
- AWS.EC2.Types: instance Show VpnStaticRoute
- AWS.EC2.Types: instance Show VpnStaticRouteSource
- AWS.EC2.Types: instance Show VpnStaticRouteState
- AWS.EC2.Types: instance Show VpnTunnelTelemetry
- AWS.EC2.Types: instance Show VpnTunnelTelemetryStatus
+ AWS: type AccessKey = ByteString
+ AWS: type SecretAccessKey = ByteString
+ AWS.EC2: cancelConversionTask :: (MonadResource m, MonadBaseControl IO m) => Text -> EC2 m Bool
+ AWS.EC2: describeConversionTasks :: (MonadResource m, MonadBaseControl IO m) => [Text] -> EC2 m (ResumableSource m ConversionTask)
+ AWS.EC2: importInstance :: (MonadResource m, MonadBaseControl IO m) => Maybe Text -> LaunchSpecification -> [DiskImage] -> Platform -> EC2 m ConversionTask
+ AWS.EC2: importVolume :: (MonadResource m, MonadBaseControl IO m) => Text -> ImportVolumeRequestImage -> Maybe Text -> Int -> EC2 m ConversionTask
+ AWS.EC2.Types: ConversionTask :: Text -> Text -> Maybe ImportVolumeTaskDetails -> Maybe ImportInstanceTaskDetails -> ConversionTaskState -> Text -> ConversionTask
+ AWS.EC2.Types: ConversionTaskActive :: ConversionTaskState
+ AWS.EC2.Types: ConversionTaskCancelled :: ConversionTaskState
+ AWS.EC2.Types: ConversionTaskCancelling :: ConversionTaskState
+ AWS.EC2.Types: ConversionTaskCompleted :: ConversionTaskState
+ AWS.EC2.Types: DiskImage :: Text -> Int -> Text -> Maybe Text -> Int -> DiskImage
+ AWS.EC2.Types: DiskImageDescription :: Text -> Int -> Text -> Maybe Text -> DiskImageDescription
+ AWS.EC2.Types: DiskImageVolumeDescription :: Int -> Maybe Text -> DiskImageVolumeDescription
+ AWS.EC2.Types: ImportInstanceTaskDetailItem :: Int -> Text -> DiskImageDescription -> Maybe Text -> DiskImageVolumeDescription -> Text -> Maybe Text -> ImportInstanceTaskDetailItem
+ AWS.EC2.Types: ImportInstanceTaskDetails :: [ImportInstanceTaskDetailItem] -> Text -> Maybe Text -> Maybe Text -> ImportInstanceTaskDetails
+ AWS.EC2.Types: ImportVolumeRequestImage :: Text -> Int -> Text -> ImportVolumeRequestImage
+ AWS.EC2.Types: ImportVolumeTaskDetails :: Int -> Text -> Maybe Text -> DiskImageDescription -> DiskImageVolumeDescription -> ImportVolumeTaskDetails
+ AWS.EC2.Types: LaunchSpecification :: Architecture -> [Text] -> Maybe Text -> Text -> Maybe Text -> Maybe Bool -> Maybe Text -> Maybe ShutdownBehavior -> Maybe IPv4 -> LaunchSpecification
+ AWS.EC2.Types: conversionTaskExpirationTime :: ConversionTask -> Text
+ AWS.EC2.Types: conversionTaskId :: ConversionTask -> Text
+ AWS.EC2.Types: conversionTaskImportInstance :: ConversionTask -> Maybe ImportInstanceTaskDetails
+ AWS.EC2.Types: conversionTaskImportVolume :: ConversionTask -> Maybe ImportVolumeTaskDetails
+ AWS.EC2.Types: conversionTaskState :: ConversionTask -> ConversionTaskState
+ AWS.EC2.Types: conversionTaskStatusMessage :: ConversionTask -> Text
+ AWS.EC2.Types: data ConversionTask
+ AWS.EC2.Types: data ConversionTaskState
+ AWS.EC2.Types: data DiskImage
+ AWS.EC2.Types: data DiskImageDescription
+ AWS.EC2.Types: data DiskImageVolumeDescription
+ AWS.EC2.Types: data ImportInstanceTaskDetailItem
+ AWS.EC2.Types: data ImportInstanceTaskDetails
+ AWS.EC2.Types: data ImportVolumeRequestImage
+ AWS.EC2.Types: data ImportVolumeTaskDetails
+ AWS.EC2.Types: data LaunchSpecification
+ AWS.EC2.Types: diskImageBytes :: DiskImage -> Int
+ AWS.EC2.Types: diskImageDescripsion :: DiskImage -> Maybe Text
+ AWS.EC2.Types: diskImageDescriptionChecksum :: DiskImageDescription -> Maybe Text
+ AWS.EC2.Types: diskImageDescriptionFormat :: DiskImageDescription -> Text
+ AWS.EC2.Types: diskImageDescriptionImportManifestUrl :: DiskImageDescription -> Text
+ AWS.EC2.Types: diskImageDescriptionSize :: DiskImageDescription -> Int
+ AWS.EC2.Types: diskImageFormat :: DiskImage -> Text
+ AWS.EC2.Types: diskImageImportManifestUrl :: DiskImage -> Text
+ AWS.EC2.Types: diskImageVolumeDescriptionId :: DiskImageVolumeDescription -> Maybe Text
+ AWS.EC2.Types: diskImageVolumeDescriptionSize :: DiskImageVolumeDescription -> Int
+ AWS.EC2.Types: diskImageVolumeSize :: DiskImage -> Int
+ AWS.EC2.Types: importInstanceTaskDetailItemAvailabilityZone :: ImportInstanceTaskDetailItem -> Text
+ AWS.EC2.Types: importInstanceTaskDetailItemBytesConverted :: ImportInstanceTaskDetailItem -> Int
+ AWS.EC2.Types: importInstanceTaskDetailItemDescription :: ImportInstanceTaskDetailItem -> Maybe Text
+ AWS.EC2.Types: importInstanceTaskDetailItemImage :: ImportInstanceTaskDetailItem -> DiskImageDescription
+ AWS.EC2.Types: importInstanceTaskDetailItemStatus :: ImportInstanceTaskDetailItem -> Text
+ AWS.EC2.Types: importInstanceTaskDetailItemStatusMessage :: ImportInstanceTaskDetailItem -> Maybe Text
+ AWS.EC2.Types: importInstanceTaskDetailItemVolume :: ImportInstanceTaskDetailItem -> DiskImageVolumeDescription
+ AWS.EC2.Types: importInstanceTaskDetailsDescription :: ImportInstanceTaskDetails -> Maybe Text
+ AWS.EC2.Types: importInstanceTaskDetailsInstanceId :: ImportInstanceTaskDetails -> Text
+ AWS.EC2.Types: importInstanceTaskDetailsPlatform :: ImportInstanceTaskDetails -> Maybe Text
+ AWS.EC2.Types: importInstanceTaskDetailsVolumes :: ImportInstanceTaskDetails -> [ImportInstanceTaskDetailItem]
+ AWS.EC2.Types: importVolumeRequestImageBytes :: ImportVolumeRequestImage -> Int
+ AWS.EC2.Types: importVolumeRequestImageFormat :: ImportVolumeRequestImage -> Text
+ AWS.EC2.Types: importVolumeRequestImageImportManifestUrl :: ImportVolumeRequestImage -> Text
+ AWS.EC2.Types: importVolumeTaskDetailsAvailabilityZone :: ImportVolumeTaskDetails -> Text
+ AWS.EC2.Types: importVolumeTaskDetailsBytesConverted :: ImportVolumeTaskDetails -> Int
+ AWS.EC2.Types: importVolumeTaskDetailsDescription :: ImportVolumeTaskDetails -> Maybe Text
+ AWS.EC2.Types: importVolumeTaskDetailsImage :: ImportVolumeTaskDetails -> DiskImageDescription
+ AWS.EC2.Types: importVolumeTaskDetailsVolume :: ImportVolumeTaskDetails -> DiskImageVolumeDescription
+ AWS.EC2.Types: launchSpecificationArchitecture :: LaunchSpecification -> Architecture
+ AWS.EC2.Types: launchSpecificationGroupNames :: LaunchSpecification -> [Text]
+ AWS.EC2.Types: launchSpecificationInstanceInitiatedShutdownBehavior :: LaunchSpecification -> Maybe ShutdownBehavior
+ AWS.EC2.Types: launchSpecificationInstanceType :: LaunchSpecification -> Text
+ AWS.EC2.Types: launchSpecificationMonitoringEnabled :: LaunchSpecification -> Maybe Bool
+ AWS.EC2.Types: launchSpecificationPlacementAvailabilityZone :: LaunchSpecification -> Maybe Text
+ AWS.EC2.Types: launchSpecificationPrivateIpAddress :: LaunchSpecification -> Maybe IPv4
+ AWS.EC2.Types: launchSpecificationSubnetId :: LaunchSpecification -> Maybe Text
+ AWS.EC2.Types: launchSpecificationUserData :: LaunchSpecification -> Maybe Text
+ AWS.EC2.Types: type PropagatingVgw = Text
+ AWS.ELB: applySecurityGroupsToLoadBalancer :: (MonadBaseControl IO m, MonadResource m) => Text -> [Text] -> ELB m [Text]
+ AWS.ELB: attachLoadBalancerToSubnets :: (MonadBaseControl IO m, MonadResource m) => Text -> [Text] -> ELB m [Text]
+ AWS.ELB: createLoadBalancerListeners :: (MonadBaseControl IO m, MonadResource m) => [Listener] -> Text -> ELB m ()
+ AWS.ELB: deleteLoadBalancerListeners :: (MonadBaseControl IO m, MonadResource m) => Text -> [Int] -> ELB m ()
+ AWS.ELB: deregisterInstancesFromLoadBalancer :: (MonadBaseControl IO m, MonadResource m) => [Text] -> Text -> ELB m [Instance]
+ AWS.ELB: detachLoadBalancerFromSubnets :: (MonadBaseControl IO m, MonadResource m) => Text -> [Text] -> ELB m [Text]
+ AWS.ELB: registerInstancesWithLoadBalancer :: (MonadBaseControl IO m, MonadResource m) => [Text] -> Text -> ELB m [Instance]
+ AWS.ELB: setLoadBalancerListenerSSLCertificate :: (MonadBaseControl IO m, MonadResource m) => Text -> Int -> Text -> ELB m ()
+ AWS.RDS: describeEvents :: (MonadBaseControl IO m, MonadResource m) => Maybe Text -> Maybe SourceType -> Maybe Int -> Maybe UTCTime -> Maybe UTCTime -> [Text] -> Maybe Text -> Maybe Int -> RDS m [Event]
+ AWS.RDS.Types: Event :: Text -> SourceType -> [Text] -> UTCTime -> Text -> Event
+ AWS.RDS.Types: SourceTypeDBInstance :: SourceType
+ AWS.RDS.Types: SourceTypeDBParameterGroup :: SourceType
+ AWS.RDS.Types: SourceTypeDBSecurityGroup :: SourceType
+ AWS.RDS.Types: SourceTypeDBSnapshot :: SourceType
+ AWS.RDS.Types: VpcSecurityGroupMembership :: Text -> Text -> VpcSecurityGroupMembership
+ AWS.RDS.Types: data Event
+ AWS.RDS.Types: data SourceType
+ AWS.RDS.Types: data VpcSecurityGroupMembership
+ AWS.RDS.Types: dbiPubliclyAccessible :: DBInstance -> Bool
+ AWS.RDS.Types: dbiVpcSecurityGroups :: DBInstance -> [VpcSecurityGroupMembership]
+ AWS.RDS.Types: eventDate :: Event -> UTCTime
+ AWS.RDS.Types: eventEventCategories :: Event -> [Text]
+ AWS.RDS.Types: eventMessage :: Event -> Text
+ AWS.RDS.Types: eventSourceIdentifier :: Event -> Text
+ AWS.RDS.Types: eventSourceType :: Event -> SourceType
+ AWS.RDS.Types: instance Eq Event
+ AWS.RDS.Types: instance Eq SourceType
+ AWS.RDS.Types: instance Eq VpcSecurityGroupMembership
+ AWS.RDS.Types: instance FromText SourceType
+ AWS.RDS.Types: instance Read SourceType
+ AWS.RDS.Types: instance Show Event
+ AWS.RDS.Types: instance Show SourceType
+ AWS.RDS.Types: instance Show VpcSecurityGroupMembership
+ AWS.RDS.Types: vpcSecurityGroupMembershipStatus :: VpcSecurityGroupMembership -> Text
+ AWS.RDS.Types: vpcSecurityGroupMembershipVpcSecurityGroupId :: VpcSecurityGroupMembership -> Text
- AWS: ClientError :: ByteString -> Int -> Text -> Text -> Text -> AWSException
+ AWS: ClientError :: ByteString -> Int -> Text -> Maybe Text -> Text -> AWSException
- AWS: errorMessage :: AWSException -> Text
+ AWS: errorMessage :: AWSException -> Maybe Text
- AWS.EC2.Types: NetworkInterfaceAssociation :: Maybe Text -> Maybe Text -> IPv4 -> Maybe Text -> Text -> Text -> NetworkInterfaceAssociation
+ AWS.EC2.Types: NetworkInterfaceAssociation :: Maybe Text -> Maybe Text -> IPv4 -> Maybe Text -> Text -> Maybe Text -> NetworkInterfaceAssociation
- AWS.EC2.Types: networkInterfaceAssociationId :: NetworkInterfaceAssociation -> Text
+ AWS.EC2.Types: networkInterfaceAssociationId :: NetworkInterfaceAssociation -> Maybe Text
- AWS.RDS.Types: DBInstance :: Maybe Int -> Int -> Bool -> Text -> Text -> Text -> Text -> Maybe OptionGroupMembership -> Text -> Maybe UTCTime -> [Text] -> Text -> [PendingModifiedValue] -> Maybe Text -> Text -> Maybe DBSubnetGroup -> [DBParameterGroupStatus] -> Maybe Endpoint -> Text -> Maybe Text -> [DBSecurityGroupMembership] -> Maybe Text -> Bool -> Maybe UTCTime -> Int -> Text -> Text -> DBInstance
+ AWS.RDS.Types: DBInstance :: Maybe Int -> Int -> Text -> Bool -> [VpcSecurityGroupMembership] -> Text -> Text -> Text -> Maybe OptionGroupMembership -> Text -> Maybe UTCTime -> [Text] -> Text -> [PendingModifiedValue] -> Maybe Text -> Text -> Maybe DBSubnetGroup -> [DBParameterGroupStatus] -> Maybe Endpoint -> Text -> Maybe Text -> Bool -> [DBSecurityGroupMembership] -> Bool -> Maybe Text -> Maybe UTCTime -> Int -> Text -> Text -> DBInstance

Files

AWS.hs view
@@ -32,6 +32,8 @@ module AWS     ( -- * Credentials       Credential+    , AccessKey+    , SecretAccessKey     , newCredential     , loadCredential     , loadCredentialFromFile
AWS/Class.hs view
@@ -47,7 +47,7 @@         { errorAction :: ByteString         , errorStatus :: Int         , errorCode :: Text-        , errorMessage :: Text+        , errorMessage :: Maybe Text         , errorRequestId :: Text         } -- ^ This error is caused by client requests.     | ResponseParseError Text
AWS/CloudWatch/Types.hs view
@@ -1,8 +1,7 @@ module AWS.CloudWatch.Types     where -import Data.Text (Text)-import Data.Time (UTCTime)+import AWS.Lib.FromText  data Metric = Metric     { metricDimensions :: [Dimension]
AWS/EC2.hs view
@@ -36,6 +36,8 @@     , module AWS.EC2.RouteTable     , module AWS.EC2.Route     , module AWS.EC2.PlacementGroup+      -- * Tasks+    , module AWS.EC2.ConversionTask     ) where  import Data.Conduit@@ -67,6 +69,7 @@ import AWS.EC2.NetworkInterface import AWS.EC2.NetworkInterfaceAttribute import AWS.EC2.PlacementGroup+import AWS.EC2.ConversionTask  -- | set endpoint to EC2 context by giving the EC2 region. setRegion
+ AWS/EC2/ConversionTask.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE FlexibleContexts, RecordWildCards #-}+module AWS.EC2.ConversionTask+    ( describeConversionTasks+    , cancelConversionTask+    , importVolume+    , importInstance+    ) where++import Control.Applicative ((<$>), (<*>))+import Data.Conduit+import Data.Text (Text)+import Data.XML.Types (Event)++import AWS.EC2.Internal+import AWS.EC2.Query+import AWS.EC2.Types+import AWS.Lib.Parser+import AWS.Util (toText)++describeConversionTasks+    :: (MonadResource m, MonadBaseControl IO m)+    => [Text] -- ^ ConversionTaskIds+    -> EC2 m (ResumableSource m ConversionTask)+describeConversionTasks ctids =+    ec2QuerySource "DescribeConversionTasks" params $+        itemConduit "conversionTasks" conversionTaskSink+  where+    params =+        [ "ConversionTaskId" |.#= ctids+        ]++conversionTaskSink+    :: MonadThrow m+    => GLSink Event m ConversionTask+conversionTaskSink = ConversionTask+    <$> getT "conversionTaskId"+    <*> getT "expirationTime"+    <*> elementM "importVolume" (+        ImportVolumeTaskDetails+        <$> getT "bytesConverted"+        <*> getT "availabilityZone"+        <*> getT "description"+        <*> element "image" diskImageDescriptionSink+        <*> element "volume" diskImageVolumeDescriptionSink+        )+    <*> elementM "importInstance" (+        ImportInstanceTaskDetails+        <$> itemsSet "volumes" (+            ImportInstanceTaskDetailItem+            <$> getT "bytesConverted"+            <*> getT "availabilityZone"+            <*> element "image" diskImageDescriptionSink+            <*> getT "description"+            <*> element "volume" diskImageVolumeDescriptionSink+            <*> getT "status"+            <*> getT "statusMessage"+            )+        <*> getT "instanceId"+        <*> getT "platform"+        <*> getT "description"+        )+    <*> getT "state"+    <*> getT "statusMessage"++diskImageDescriptionSink+    :: MonadThrow m+    => GLSink Event m DiskImageDescription+diskImageDescriptionSink = DiskImageDescription+    <$> getT "format"+    <*> getT "size"+    <*> getT "importManifestUrl"+    <*> getT "checksum"++diskImageVolumeDescriptionSink+    :: MonadThrow m+    => GLSink Event m DiskImageVolumeDescription+diskImageVolumeDescriptionSink = DiskImageVolumeDescription+    <$> getT "size"+    <*> getT "id"++cancelConversionTask+    :: (MonadResource m, MonadBaseControl IO m)+    => Text -- ^ ConversionTaskId+    -> EC2 m Bool+cancelConversionTask =+    ec2Delete "CancelConversionTask" "ConversionTaskId"++importVolume+    :: (MonadResource m, MonadBaseControl IO m)+    => Text -- ^ AvailabilityZone+    -> ImportVolumeRequestImage -- ^ Image+    -> Maybe Text -- ^ Description+    -> Int -- ^ Volume Size+    -> EC2 m ConversionTask+importVolume zone image desc size =+    ec2Query "ImportVolume" params $+        element "conversionTask" conversionTaskSink+  where+    params =+        [ "AvailabilityZone" |= zone+        , "Image" |. imageParams image+        , "Description" |=? desc+        , "Volume" |.+ "Size" |= toText size+        ]+    imageParams img =+        [ "Format" |= importVolumeRequestImageFormat img+        , "Bytes" |= toText (importVolumeRequestImageBytes img)+        , "ImportManifestUrl" |= importVolumeRequestImageImportManifestUrl img+        ]++importInstance+    :: (MonadResource m, MonadBaseControl IO m)+    => Maybe Text -- ^ Description+    -> LaunchSpecification -- ^ LaunchSpecification+    -> [DiskImage] -- ^ DiskImages+    -> Platform -- ^ Platform+    -> EC2 m ConversionTask+importInstance desc ls images platform =+    ec2Query "ImportInstance" params $+        element "conversionTask" conversionTaskSink+  where+    params =+        [ "Description" |=? desc+        , "LaunchSpecification" |. launchSpecificationParams ls+        , "DiskImage" |.#. diskImageParams <$> images+        , "Platform" |= platformText platform+        ]+    launchSpecificationParams (LaunchSpecification{..}) =+        [ "Architecture" |=+            architectureText launchSpecificationArchitecture+        , "GroupName" |.#= launchSpecificationGroupNames+        , "UserData" |=? launchSpecificationUserData+        , "InstanceType" |= launchSpecificationInstanceType+        , "Placement" |.+ "AvailabilityZone" |=?+            launchSpecificationPlacementAvailabilityZone+        , "Monitoring" |.+ "Enabled" |=?+            toText <$> launchSpecificationMonitoringEnabled+        , "SubnetId" |=? launchSpecificationSubnetId+        , "InstanceInitiatedShutdownBehavior" |=?+            shutdownBehaviorText <$> launchSpecificationInstanceInitiatedShutdownBehavior+        , "PrivateIpAddress" |=?+            toText <$> launchSpecificationPrivateIpAddress+        ]+    diskImageParams (DiskImage{..}) =+        [ "Image" |.+            [ "Format" |= diskImageFormat+            , "Bytes" |= toText diskImageBytes+            , "ImportManifestUrl" |= diskImageImportManifestUrl+            , "Description" |=? diskImageDescripsion+            ]+        , "Volume" |.+ "Size" |= toText diskImageVolumeSize+        ]+    shutdownBehaviorText ShutdownBehaviorStop = "stop"+    shutdownBehaviorText ShutdownBehaviorTerminate = "terminate"+    platformText PlatformWindows = "Windows"+    platformText PlatformOther = error "Valid value is `Windows'"+    architectureText I386 = "i386"+    architectureText X86_64 = "x86_64"
AWS/EC2/Query.hs view
@@ -43,7 +43,7 @@ apiVersion = "2012-12-01"  sinkRequestId :: MonadThrow m-    => GLSink Event m Text+    => GLSink Event m (Maybe Text) sinkRequestId = do     await -- EventBeginDocument     await -- EventBeginElement DescribeImagesResponse@@ -99,7 +99,7 @@         response <- requestQuery cred ctx action params' apiVersion sinkError         res <- response $=+ XmlP.parseBytes XmlP.def         res $$++ sinkRequestId-    State.put ctx{lastRequestId = Just rid}+    State.put ctx{lastRequestId = rid}     lift $ src1 $=+ (cond >> nextToken)   where     params' = ("NextToken" |=? token) : params
AWS/EC2/Types.hs view
@@ -1,1413 +1,60 @@-{-# LANGUAGE TemplateHaskell #-}-module AWS.EC2.Types-    ( Address(..)-    , AddressDomain(..)-    , AllocateAddress(..)-    , AMIAttribute(..)-    , AMIAttributeDescription(..)-    , Architecture(..)-    , AssociateAddressRequest(..)-    , Attachment(..)-    , AttachmentState(..)-    , AttachmentSetItemResponse(..)-    , AttachmentSetItemResponseStatus(..)-    , AvailabilityZone(..)-    , AvailabilityZoneMessage-    , BlockDeviceMapping(..)-    , BlockDeviceMappingParam(..)-    , ConsoleOutput(..)-    , CreateRouteRequest(..)-    , CreateSubnetRequest(..)-    , CreateVolumePermission(..)-    , CreateVolumePermissionItem(..)-    , CreateVolumeRequest(..)-    , CreateVpnGatewayType(..)-    , CustomerGateway(..)-    , CustomerGatewayState(..)-    , DhcpConfiguration(..)-    , DhcpOptions(..)-    , DhcpValue(..)-    , DisassociateAddressRequest(..)-    , EbsBlockDevice(..)-    , EbsInstanceBlockDevice(..)-    , EbsSource(..)-    , EC2Return(..)-    , Filter-    , Group(..)-    , Hypervisor(..)-    , IamInstanceProfile(..)-    , IcmpTypeCode(..)-    , Image(..)-    , ImageState(..)-    , ImageType(..)-    , Instance(..)-    , InstanceAttribute(..)-    , InstanceAttributeRequest(..)-    , InstanceBlockDeviceMapping(..)-    , InstanceLifecycle(..)-    , InstanceMonitoringState(..)-    , InstanceNetworkInterface(..)-    , InstanceNetworkInterfaceAssociation(..)-    , InstanceNetworkInterfaceAttachment(..)-    , InstancePrivateIpAddress(..)-    , InstanceState(..)-    , InstanceStateChange(..)-    , InstanceStatus(..)-    , InstanceStatusEvent(..)-    , InstanceStatusEventCode(..)-    , InstanceStatusType(..)-    , InstanceStatusTypeStatus(..)-    , InstanceStatusDetail(..)-    , InstanceStatusDetailName-    , InstanceStatusDetailStatus-    , IpPermission(..)-    , KeyPair(..)-    , ModifyInstanceAttributeRequest(..)-    , MonitorInstancesResponse(..)-    , LaunchPermission(..)-    , LaunchPermissionItem(..)-    , NetworkAcl(..)-    , NetworkAclAssociation(..)-    , NetworkAclEntry(..)-    , NetworkAclEntryRequest(..)-    , NetworkAclRuleAction(..)-    , NetworkInterface(..)-    , NetworkInterfaceAssociation(..)-    , NetworkInterfaceAttachment(..)-    , NetworkInterfaceParam(..)-    , NetworkInterfacePrivateIpAddress(..)-    , NetworkInterfaceStatus(..)-    , PasswordData(..)-    , Placement(..)-    , PlacementGroup(..)-    , PlacementGroupState(..)-    , PlacementGroupStrategy(..)-    , Platform(..)-    , PortRange(..)-    , ProductCode(..)-    , ProductCodeItem(..)-    , ProductCodeType(..)-    , Region(..)-    , RegisterImageRequest(..)-    , Reservation(..)-    , ResetInstanceAttributeRequest(..)-    , ResetSnapshotAttributeRequest(..)-    , ResourceTag(..)-    , RootDeviceType(..)-    , Route(..)-    , RouteTable(..)-    , RouteTableAssociation(..)-    , RouteState(..)-    , RouteOrigin(..)-    , RunInstancesRequest(..)-    , SecondaryPrivateIpAddressParam(..)-    , SecurityGroup(..)-    , SecurityGroupRequest(..)-    , ShutdownBehavior(..)-    , Snapshot(..)-    , SnapshotAttribute(..)-    , SnapshotAttributeRequest(..)-    , SnapshotStatus(..)-    , StateReason(..)-    , Subnet(..)-    , SubnetState(..)-    , Tag(..)-    , UserIdGroupPair(..)-    , VirtualizationType(..)-    , Volume(..)-    , VolumeAttribute(..)-    , VolumeAttributeRequest(..)-    , VolumeType(..)-    , VolumeState(..)-    , VolumeStatus(..)-    , VolumeStatusAction(..)-    , VolumeStatusEvent(..)-    , VolumeStatusDetail(..)-    , VolumeStatusInfo(..)-    , VolumeStatusInfoStatus(..)-    , Vpc(..)-    , VpcState(..)-    , VpnConnection(..)-    , VpnConnectionOptionsRequest(..)-    , VpnConnectionState(..)-    , VpnGateway(..)-    , VpnGatewayState(..)-    , VpnStaticRoute(..)-    , VpnStaticRouteSource(..)-    , VpnStaticRouteState(..)-    , VpnTunnelTelemetry(..)-    , VpnTunnelTelemetryStatus(..)-    , InternetGateway(..)-    , InternetGatewayAttachment(..)-    , InternetGatewayAttachmentState(..)-    ) where--import Data.IP (IPv4, AddrRange)-import Data.Text (Text)-import Data.ByteString (ByteString)-import Data.Time (UTCTime)--import AWS.Class-import AWS.Lib.FromText--data Image = Image-    { imageId :: Text-    , imageLocation :: Text-    , imageImageState :: ImageState-    , imageOwnerId :: Text-    , imageIsPublic :: Bool-    , imageProductCodes :: [ProductCode]-    , imageArchitecture :: Text-    , imageImageType :: ImageType-    , imageKernelId :: Maybe Text-    , imageRamdiskId :: Maybe Text-    , imagePlatform :: Platform-    , imageStateReason :: Maybe StateReason-    , imageViridianEnabled :: Maybe Bool-    , imageOwnerAlias :: Maybe Text-    , imageName :: Maybe Text-    , imageDescription :: Maybe Text-    , imageBillingProducts :: [Text]-    , imageRootDeviceType :: RootDeviceType-    , imageRootDeviceName :: Maybe Text-    , imageBlockDeviceMappings :: [BlockDeviceMapping]-    , imageVirtualizationType :: VirtualizationType-    , imageTagSet :: [ResourceTag]-    , imageHypervisor :: Hypervisor-    }-  deriving (Show, Read, Eq)--data AMIAttribute-    = AMIDescription-    | AMIKernel-    | AMIRamdisk-    | AMILaunchPermission-    | AMIProductCodes-    | AMIBlockDeviceMapping-  deriving (Show, Read, Eq)--data AMIAttributeDescription = AMIAttributeDescription-    { amiAttributeDescriptionImageId :: Text-    , amiAttributeDescriptionLaunchPermission :: [LaunchPermissionItem]-    , amiAttributeDescriptionProductCodes :: [ProductCodeItem]-    , amiAttributeDescriptionKernel :: Maybe Text-    , amiAttributeDescriptionRamdisk :: Maybe Text-    , amiAttributeDescriptionDescription :: Maybe Text-    , amiAttributeDescriptionBlockDeviceMapping :: [BlockDeviceMapping]-    }-  deriving (Show, Read, Eq)--data LaunchPermission = LaunchPermission-    { launchPermissionAdd :: [LaunchPermissionItem]-    , launchPermissionRemove :: [LaunchPermissionItem]-    }-  deriving (Show, Read, Eq)--data LaunchPermissionItem = LaunchPermissionItem-    { launchPermissionItemGroup :: Text-    , launchPermissionUserId :: Text-    }-  deriving (Show, Read, Eq)--data ImageState-    = ImageStateAvailable-    | ImageStatePending-    | ImageStateFailed-  deriving (Show, Read, Eq)--data ProductCode = ProductCode-    { productCodeCode :: Text-    , productCodeType :: ProductCodeType-    }-  deriving (Show, Read, Eq)--data ProductCodeItem = ProductCodeItem-    { productCodeItemProductCode :: Text-    }-  deriving (Show, Read, Eq)--data ProductCodeType-    = ProductCodeDevpay-    | ProductCodeMarketplace-  deriving (Show, Read, Eq)--data ImageType-    = ImageTypeMachine-    | ImageTypeKernel-    | ImageTypeRamDisk-  deriving (Show, Read, Eq)--data Platform-    = PlatformWindows-    | PlatformOther-  deriving (Show, Read, Eq)--data StateReason = StateReason-    { stateReasonCode :: Text-    , stateReasonMessage :: Text-    }-  deriving (Show, Read, Eq)--data RootDeviceType-    = RootDeviceTypeEBS-    | RootDeviceTypeInstanceStore-  deriving (Show, Read, Eq)--data BlockDeviceMapping = BlockDeviceMapping-    { blockDeviceMappingDeviceName :: Text-    , blockDeviceMappingVirtualName :: Maybe Text-    , blockDeviceMappingEbs :: Maybe EbsBlockDevice-    }-  deriving (Show, Read, Eq)--data EbsBlockDevice = EbsBlockDevice-    { ebsSnapshotId :: Maybe Text-    , ebsVolumeSize :: Int-    , ebsDeleteOnTermination :: Bool-    , ebsVolumeType :: VolumeType-    }-  deriving (Show, Read, Eq)--data VolumeType-    = VolumeTypeStandard-    | VolumeTypeIO1 Int-  deriving (Show, Read, Eq)--data VirtualizationType-    = VirtualizationTypeParavirtual-    | VirtualizationTypeHVM-  deriving (Show, Read, Eq)--data ResourceTag = ResourceTag-    { resourceTagKey :: Text-    , resourceTagValue :: Maybe Text-    }-  deriving (Show, Read, Eq)--data Hypervisor-    = HypervisorOVM-    | HypervisorXen-  deriving (Show, Read, Eq)--data Region = Region-    { regionName :: Text-    , regionEndpoint :: Text-    }-  deriving (Show, Read, Eq)--data AvailabilityZone = AvailabilityZone-    { zoneName :: Text-    , zoneState :: Text-    , zoneRegionName :: Text-    , zoneMessageSet :: [AvailabilityZoneMessage]-    }-  deriving (Show, Read, Eq)--type AvailabilityZoneMessage = Text--data Reservation = Reservation-    { reservationId :: Text-    , reservationOwnerId :: Text-    , reservationGroupSet :: [Group]-    , reservationInstanceSet :: [Instance]-    , reservationRequesterId :: Maybe Text-    }-  deriving (Show, Read, Eq)--data Instance = Instance-    { instanceId :: Text-    , instanceImageId :: Text-    , instanceState :: InstanceState-    , instancePrivateDnsName :: Maybe Text-    , instanceDnsName :: Maybe Text-    , instanceReason :: Maybe Text-    , instanceKeyName :: Maybe Text-    , instanceAmiLaunchIndex :: Text-    , instanceProductCodes :: [ProductCode]-    , instanceType :: Text-    , instanceLaunchTime :: UTCTime-    , instancePlacement :: Placement-    , instanceKernelId :: Maybe Text-    , instanceRamdiskId :: Maybe Text-    , instancePlatform :: Maybe Text-    , instanceMonitoring :: InstanceMonitoringState-    , instanceSubnetId :: Maybe Text-    , instanceVpcId :: Maybe Text-    , instancePrivateIpAddress :: Maybe IPv4-    , instanceIpAddress :: Maybe IPv4-    , instanceSourceDestCheck :: Maybe Bool-    , instancevpcGroupSet :: [Group]-    , instanceStateReason :: Maybe StateReason-    , instanceArchitecture :: Architecture-    , instanceRootDeviceType :: RootDeviceType-    , instanceRootDeviceName :: Maybe Text-    , instanceBlockDeviceMappings :: [InstanceBlockDeviceMapping]-    , instanceInstanceLifecycle :: Maybe InstanceLifecycle-    , instanceSpotInstanceRequestId :: Maybe Text-    , instanceVirtualizationType :: VirtualizationType-    , instanceClientToken :: Maybe Text-    , instanceTagSet :: [ResourceTag]-    , instanceHypervisor :: Hypervisor-    , instanceNetworkInterfaceSet :: [InstanceNetworkInterface]-    , instanceIamInstanceProfile :: Maybe IamInstanceProfile-    , instanceEbsOptimized :: Bool -- default: false-    }-  deriving (Show, Read, Eq)--data InstanceStatus = InstanceStatus-    { instanceStatusInstanceId :: Text-    , instanceStatusAvailabilityZone :: Text-    , instanceStatusEventsSet :: [InstanceStatusEvent]-    , instanceStatusInstanceState :: InstanceState-    , instanceStatusSystemStatus :: InstanceStatusType-    , instanceStatusInstanceStatus :: InstanceStatusType-    }-  deriving (Show, Read, Eq)--data InstanceStatusEvent = InstanceStatusEvent-    { instanceStatusEventCode :: InstanceStatusEventCode-    , instanceStatusEventDescription :: Text-    , instanceStatusEventNotBefore :: Maybe UTCTime-    , instanceStatusEventNotAfter :: Maybe UTCTime-    }-  deriving (Show, Read, Eq)--data InstanceStatusEventCode-    = InstanceStatusEventCodeInstanceReboot-    | InstanceStatusEventCodeInstanceStop-    | InstanceStatusEventCodeSystemReboot-    | InstanceStatusEventCodeInstanceRetirement-  deriving (Show, Read, Eq)--data InstanceStatusType = InstanceStatusType-    { instanceStatusTypeStatus :: InstanceStatusTypeStatus-    , instanceStatusTypeDetails :: [InstanceStatusDetail]-    }-  deriving (Show, Read, Eq)--data InstanceStatusTypeStatus-    = InstanceStatusTypeStatusOK-    | InstanceStatusTypeStatusImpaired-    | InstanceStatusTypeStatusInsufficientData-    | InstanceStatusTypeStatusNotApplicable-  deriving (Show, Read, Eq)--data InstanceStatusDetail = InstanceStatusDetail-    { instanceStatusDetailName :: InstanceStatusDetailName-    , instanceStatusDetailStatus :: InstanceStatusDetailStatus-    , instanceStatusDetailImpairedSince :: Maybe UTCTime-    }-  deriving (Show, Read, Eq)--type InstanceStatusDetailName = Text--type InstanceStatusDetailStatus = Text--data Group = Group-    { groupId :: Text-    , groupName :: Text-    }-  deriving (Show, Read, Eq)--data InstanceState-    = InstanceStatePending-    | InstanceStateRunning-    | InstanceStateShuttingDown-    | InstanceStateTerminated-    | InstanceStateStopping-    | InstanceStateStopped-    | InstanceStateUnknown Int-  deriving (Show, Read, Eq)--data Placement = Placement-    { placementAvailabilityZone :: Text-    , placementGroupName :: Maybe Text-    , placementTenancy :: Text-    }-  deriving (Show, Read, Eq)--data PlacementGroup = PlacementGroup-    { placementGroupGroupName :: Text-    , placementGroupStrategy :: PlacementGroupStrategy-    , placementGroupState :: PlacementGroupState-    }-  deriving (Show, Read, Eq)--data PlacementGroupState-    = PlacementGroupStatePending-    | PlacementGroupStateAvailable-    | PlacementGroupStateDeleting-    | PlacementGroupStateDeleted-  deriving (Show, Read, Eq)--data PlacementGroupStrategy-    = PlacementGroupStrategyCluster-  deriving (Show, Read, Eq)--data InstanceMonitoringState-    = MonitoringDisabled-    | MonitoringEnabled-    | MonitoringPending-    | MonitoringDisabling-  deriving (Show, Read, Eq)--data Architecture = I386 | X86_64 deriving (Show, Read, Eq)--data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping-    { instanceBlockDeviceMappingDeviceName :: Text-    , instanceBlockDeviceMappingEbs :: EbsInstanceBlockDevice-    }-  deriving (Show, Read, Eq)--data EbsInstanceBlockDevice = EbsInstanceBlockDevice-    { ebsInstanceBlockDeviceVolumeId :: Text-    , ebsInstanceBlockDeviceState :: AttachmentSetItemResponseStatus-    , ebsInstanceBlockDeviceAttachTime :: UTCTime-    , ebsInstanceBlockDeviceDeleteOnTermination :: Bool-    }-  deriving (Show, Read, Eq)--data InstanceLifecycle-    = LifecycleSpot-    | LifecycleNone-  deriving (Show, Read, Eq)--data InstanceNetworkInterface = InstanceNetworkInterface-    { instanceNetworkInterfaceId :: Text-    , instanceNetworkInterfaceSubnetId :: Maybe Text-    , instanceNetworkInterfaceVpcId :: Maybe Text-    , instanceNetworkInterfaceDescription :: Maybe Text-    , instanceNetworkInterfaceOwnerId :: Text-    , instanceNetworkInterfaceStatus :: Text-    , instanceNetworkInterfaceMacAddress :: Maybe Text-    , instanceNetworkInterfacePrivateIpAddress :: Maybe IPv4-    , instanceNetworkInterfacePrivateDnsName :: Maybe Text-    , instanceNetworkInterfaceSourceDestCheck :: Maybe Bool-    , instanceNetworkInterfaceGroupSet :: [Group]-    , instanceNetworkInterfaceAttachment-        :: InstanceNetworkInterfaceAttachment-    , instanceNetworkInterfaceAssociation-        :: Maybe InstanceNetworkInterfaceAssociation-    , instanceNetworkInterfacePrivateIpAddressesSet-        :: [InstancePrivateIpAddress]-    }-  deriving (Show, Read, Eq)--data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment-    { instanceNetworkInterfaceAttachmentId :: Text-    , instanceNetworkInterfaceAttachmentDeviceIndex :: Int-    , instanceNetworkInterfaceAttachmentStatus :: Text-    , instanceNetworkInterfaceAttachmentAttachTime :: UTCTime-    , instanceNetworkInterfaceAttachmentDeleteOnTermination-        :: Bool-    }-  deriving (Show, Read, Eq)--data InstanceNetworkInterfaceAssociation-    = InstanceNetworkInterfaceAssociation-    { instanceNetworkInterfaceAssociationPublicIp :: IPv4-    , instanceNetworkInterfaceAssociationPublicDnsName-        :: Maybe Text-    , instanceNetworkInterfaceAssociationIpOwnerId :: Text-    }-  deriving (Show, Read, Eq)--data InstancePrivateIpAddress = InstancePrivateIpAddress-    { instancePrivateIpAddressAddress :: IPv4-    , instancePrivateIpAddressDnsName :: Maybe Text-    , instancePrivateIpAddressPrimary :: Bool-    , instancePrivateIpAddressAssociation-        :: Maybe InstanceNetworkInterfaceAssociation-    }-  deriving (Show, Read, Eq)--data IamInstanceProfile = IamInstanceProfile-    { iamInstanceProfileArn :: Text-    , iamInstanceProfileId :: Text-    }-  deriving (Show, Read, Eq)--data ShutdownBehavior-    = ShutdownBehaviorStop-    | ShutdownBehaviorTerminate-  deriving (Show, Read, Eq)--data InstanceAttribute-    = InstanceAttributeInstanceType Text-    | InstanceAttributeKernelId (Maybe Text)-    | InstanceAttributeRamdiskId (Maybe Text)-    | InstanceAttributeUserData (Maybe Text)-    | InstanceAttributeDisableApiTermination Bool-    | InstanceAttributeShutdownBehavior ShutdownBehavior-    | InstanceAttributeRootDeviceName (Maybe Text)-    | InstanceAttributeBlockDeviceMapping [InstanceBlockDeviceMapping]-    | InstanceAttributeSourceDestCheck (Maybe Bool)-    | InstanceAttributeGroupSet [Text]-    | InstanceAttributeProductCodes [ProductCode]-    | InstanceAttributeEbsOptimized Bool-  deriving (Show, Read, Eq)--data Address = Address-    { addressPublicIp :: IPv4-    , addressAllocationId :: Maybe Text-    , addressDomain :: AddressDomain-    , addressInstanceId :: Maybe Text-    , addressAssociationId :: Maybe Text-    , addressNetworkInterfaceId :: Maybe Text-    , addressNetworkInterfaceOwnerId :: Maybe Text-    , addressPrivateIpAddress :: Maybe IPv4-    }-  deriving (Show, Read, Eq)--data AddressDomain = AddressDomainStandard | AddressDomainVPC-  deriving (Show, Read, Eq)--data AllocateAddress = AllocateAddress-    { allocateAddressPublicIp :: IPv4-    , allocateAddressDomain :: AddressDomain-    , allocateAddressAllocationId :: Maybe Text-    }-  deriving (Show, Read, Eq)--data EC2Return = EC2Success | EC2Error Text-  deriving (Show, Read, Eq)--data Tag = Tag-    { tagResourceId :: Text-    , tagResourceType :: Text-    , tagKey :: Text-    , tagValue :: Maybe Text-    }-  deriving (Show, Read, Eq)--data InstanceStateChange = InstanceStateChange-    { instanceStateChangeInstanceId :: Text-    , instanceStateChangeCurrentState :: InstanceState-    , instanceStateChangePreviousState :: InstanceState-    }-  deriving (Show, Read, Eq)--data ConsoleOutput = ConsoleOutput-    { consoleOutputInstanceId :: Text-    , consoleOutputTimestamp :: UTCTime-        -- ^ The time the data was last updated.-    , consoleOutputOutput :: Text-    }-  deriving (Show, Read, Eq)--data PasswordData = PasswordData-    { passwordDataInstanceId :: Text-    , passwordDataTimestamp :: UTCTime-      -- ^ The time the data was last updated.-    , passwordDataPasswordData :: Text-    }-  deriving (Show, Read, Eq)--data MonitorInstancesResponse = MonitorInstancesResponse-    { monitorInstancesResponseInstanceId :: Text-    , monitorInstancesResponseInstanceMonitoringState-        :: InstanceMonitoringState-    }-  deriving (Show, Read, Eq)--data Snapshot = Snapshot-    { snapshotId :: Text-    , snapshotVolumeId :: Maybe Text-    , snapshotStatus :: SnapshotStatus-    , snapshotStartTime :: UTCTime-    , snapshotProgress :: Maybe Text-    , snapshotOwnerId :: Text-    , snapshotVolumeSize :: Int-    , snapshotDescription :: Maybe Text-    , snapshotOwnerAlias :: Maybe Text-    , snapshotTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data SnapshotStatus-    = SnapshotPending-    | SnapshotCompleted-    | SnapshotError-  deriving (Show, Read, Eq)--data SnapshotAttributeRequest-    = SnapshotAttributeRequestCreateVolumePermission-    | SnapshotAttributeRequestProductCodes-  deriving (Show, Read, Eq)--data ResetSnapshotAttributeRequest-    = ResetSnapshotAttributeRequestCreateVolumePermission-  deriving (Show, Read, Eq)--data SnapshotAttribute = SnapshotAttribute-    { snapshotAttributeSnapshotId :: Text-    , snapshotAttributeCreateVolumePermissionItems-        :: [CreateVolumePermissionItem]-    , snapshotAttributeProductCodes :: [ProductCode]-    }-  deriving (Show, Read, Eq)--data CreateVolumePermission = CreateVolumePermission-    { createVolumePermissionAdd :: [CreateVolumePermissionItem]-    , createVolumePermissionRemove :: [CreateVolumePermissionItem]-    }-  deriving (Show, Read, Eq)--data CreateVolumePermissionItem = CreateVolumePermissionItem-    { createVolumePermissionItemUserId :: Maybe Text-    , createVolumePermissionItemGroup :: Maybe Text-    }-  deriving (Show, Read, Eq)--data Volume = Volume-    { volumeId :: Text-    , volumeSize :: Int-    , volumeSnapshotId :: Maybe Text-    , volumeAvailabilityZone :: Text-    , volumeStatus :: VolumeState-    , volumeCreateTime :: UTCTime-    , volumeAttachmentSet :: [AttachmentSetItemResponse]-    , volumeTagSet :: [ResourceTag]-    , volumeVolumeType :: VolumeType-    }-  deriving (Show, Read, Eq)--data VolumeState-    = VolumeStateCreating-    | VolumeStateAvailable-    | VolumeStateInUse-    | VolumeStateDeleting-    | VolumeStateDeleted-    | VolumeStateError-  deriving (Show, Read, Eq)--data AttachmentSetItemResponse = AttachmentSetItemResponse-    { attachmentSetItemResponseVolumeId :: Text-    , attachmentSetItemResponseInstanceId :: Text-    , attachmentSetItemResponseDevice :: Text-    , attachmentSetItemResponseStatus-        :: AttachmentSetItemResponseStatus-    , attachmentSetItemResponseAttachTime :: UTCTime-    , attachmentSetItemResponseDeleteOnTermination :: Maybe Bool-    }-  deriving (Show, Read, Eq)--data AttachmentSetItemResponseStatus-    = AttachmentSetItemResponseStatusAttaching-    | AttachmentSetItemResponseStatusAttached-    | AttachmentSetItemResponseStatusDetaching-    | AttachmentSetItemResponseStatusDetached-  deriving (Show, Read, Eq)--data KeyPair = KeyPair-    { keyPairName :: Text-    , keyPairFingerprint :: Text-    }-  deriving (Show, Read, Eq)--data SecurityGroup = SecurityGroup-    { securityGroupOwnerId :: Text-    , securityGroupId :: Text-    , securityGroupName :: Text-    , securityGroupDescription :: Text-    , securityGroupVpcId :: Maybe Text-    , securityGroupIpPermissions :: [IpPermission]-    , securityGroupIpPermissionsEgress :: [IpPermission]-    , securityGroupTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data IpPermission = IpPermission-    { ipPermissionIpProtocol :: Text-    , ipPermissionFromPort :: Maybe Int-    , ipPermissionToPort :: Maybe Int-    , ipPermissionGroups :: [UserIdGroupPair]-    , ipPermissionIpRanges :: [AddrRange IPv4]-    }-  deriving (Show, Read, Eq)--data UserIdGroupPair = UserIdGroupPair-    { userIdGroupPairUserId :: Maybe Text-    , userIdGroupPairGroupId :: Text-    , userIdGroupPairGroupName :: Maybe Text-    }-  deriving (Show, Read, Eq)--data BlockDeviceMappingParam-    = BlockDeviceMappingParamEbs-        { blockDeviceMappingParamEbsDeviceName :: Text-        , blockDeviceMappingParamEbsNoDevice :: Maybe Bool-        , blockDeviceMappingParamEbsSource :: EbsSource-        , blockDeviceMappingParamEbsDeleteOnTermination-            :: Maybe Bool-        , blockDeviceMappingParamEbsVolumeType :: Maybe VolumeType-        }-    | BlockDeviceMappingParamInstanceStore-        { blockDeviceMappingParamInstanceStoreDeviceName :: Text-        , blockDeviceMappingParamInstanceStoreNoDevice-            :: Maybe Bool-        , blockDeviceMappingParamInstanceStoreVirtualName-            :: Maybe Text-        }-  deriving (Show, Read, Eq)--data EbsSource-    = EbsSourceSnapshotId Text-    | EbsSourceVolumeSize Int-  deriving (Show, Read, Eq)--data NetworkInterfaceParam-    = NetworkInterfaceParamCreate-        { networkInterfaceParamCreateDeviceIndex :: Int-        , networkInterfaceParamCreateSubnetId :: Text-        , networkInterfaceParamCreateDescription :: Text-        , networkInterfaceParamCreatePrivateIpAddress-            :: Maybe IPv4-        , networkInterfaceParamCreatePrivateIpAddresses-            :: SecondaryPrivateIpAddressParam-        , networkInterfaceParamCreateSecurityGroupIds :: [Text]-        , networkInterfaceParamCreateDeleteOnTermination :: Bool-        }-    | NetworkInterfaceParamAttach-        { networkInterfaceParamAttachInterfaceId :: Text-        , networkInterfaceParamAttachDeviceIndex :: Int-        , networkInterfaceParamAttachDeleteOnTermination :: Bool-        }-  deriving (Show, Read, Eq)--data SecondaryPrivateIpAddressParam-    = SecondaryPrivateIpAddressParamNothing-    | SecondaryPrivateIpAddressParamCount Int-    | SecondaryPrivateIpAddressParamSpecified-      { secondaryPrivateIpAddressParamSpecifiedAddresses :: [IPv4]-      , secondaryPrivateIpAddressParamSpecifiedPrimary-        :: Maybe Int-      }-  deriving (Show, Read, Eq)--data VpnConnection = VpnConnection-    { vpnConnectionId :: Text-    , vpnConnectionState :: VpnConnectionState-    , vpnConnectionCustomerGatewayConfiguration :: Maybe Text-    , vpnConnectionType :: Maybe Text-    , vpnConnectionCustomerGatewayId :: Text-    , vpnConnectionVpnGatewayId :: Text-    , vpnConnectionTagSet :: [ResourceTag]-    , vpnConnectionVgwTelemetry :: [VpnTunnelTelemetry]-    , vpnConnectionOptions :: Maybe VpnConnectionOptionsRequest-    , vpnConnectionRoutes :: Maybe VpnStaticRoute-    }-  deriving (Show, Read, Eq)--data VpnConnectionState-    = VpnConnectionStatePending-    | VpnConnectionStateAvailable-    | VpnConnectionStateDeleting-    | VpnConnectionStateDeleted-  deriving (Show, Read, Eq)--data VpnTunnelTelemetry = VpnTunnelTelemetry-    { vpnTunnelTelemetryOutsideIpAddress :: IPv4-    , vpnTunnelTelemetryStatus :: VpnTunnelTelemetryStatus-    , vpnTunnelTelemetryLastStatusChange :: UTCTime-    , vpnTunnelTelemetryStatusMessage :: Text-    , vpnTunnelTelemetryAcceptRouteCount :: Int-    }-  deriving (Show, Read, Eq)--data VpnTunnelTelemetryStatus-    = VpnTunnelTelemetryStatusUp-    | VpnTunnelTelemetryStatusDown-  deriving (Show, Read, Eq)--data VpnConnectionOptionsRequest = VpnConnectionOptionsRequest-    { vpnConnectionOptionsRequestStaticRoutesOnly :: Bool-    }-  deriving (Show, Read, Eq)--data VpnStaticRoute = VpnStaticRoute-    { vpnStaticRouteDestinationCidrBlock :: Text-    , vpnStaticRouteSource :: VpnStaticRouteSource-    , vpnStaticRouteState :: VpnStaticRouteState-    }-  deriving (Show, Read, Eq)--data VpnStaticRouteSource = VpnStaticRouteSourceStatic-  deriving (Show, Read, Eq)--data VpnStaticRouteState-    = VpnStaticRouteStatePending-    | VpnStaticRouteStateAvailable-    | VpnStaticRouteStateDeleting-    | VpnStaticRouteStateDeleted-  deriving (Show, Read, Eq)--data RunInstancesRequest = RunInstancesRequest-    { runInstancesRequestImageId :: Text -- ^ Required-    , runInstancesRequestMinCount :: Int -- ^ Required-    , runInstancesRequestMaxCount :: Int -- ^ Required-    , runInstancesRequestKeyName :: Maybe Text-    , runInstancesRequestSecurityGroupIds :: [Text]-      -- ^ SecurityGroupIds (Required for VPC; optional for EC2)-    , runInstancesRequestSecurityGroups :: [Text]-      -- ^ SecurityGroups (Only for EC2; either id or name is accepted)-    , runInstancesRequestUserData :: Maybe ByteString-      -- ^ UserData (Base64-encoded MIME user data)-    , runInstancesRequestInstanceType :: Maybe Text-    , runInstancesRequestAvailabilityZone :: Maybe Text-    , runInstancesRequestPlacementGroup :: Maybe Text-    , runInstancesRequestTenancy :: Maybe Text-    , runInstancesRequestKernelId :: Maybe Text-    , runInstancesRequestRamdiskId :: Maybe Text-    , runInstancesRequestBlockDeviceMappings-        :: [BlockDeviceMappingParam]-    , runInstancesRequestMonitoringEnabled :: Maybe Bool-    , runInstancesRequestSubnetId :: Maybe Text-    , runInstancesRequestDisableApiTermination :: Maybe Bool-    , runInstancesRequestShutdownBehavior-        :: Maybe ShutdownBehavior-    , runInstancesRequestPrivateIpAddress :: Maybe IPv4-    , runInstancesRequestClientToken :: Maybe Text-    , runInstancesRequestNetworkInterfaces-        :: [NetworkInterfaceParam]-    , runInstancesRequestIamInstanceProfile-        :: Maybe IamInstanceProfile-    , runInstancesRequestEbsOptimized :: Maybe Bool-    }-  deriving (Show, Read, Eq)--data InstanceAttributeRequest-    = InstanceAttributeRequestInstanceType-    | InstanceAttributeRequestKernelId-    | InstanceAttributeRequestRamdiskId-    | InstanceAttributeRequestUserData-    | InstanceAttributeRequestDisableApiTermination-    | InstanceAttributeRequestShutdownBehavior-    | InstanceAttributeRequestRootDeviceName-    | InstanceAttributeRequestBlockDeviceMapping-    | InstanceAttributeRequestSourceDestCheck-    | InstanceAttributeRequestGroupSet-    | InstanceAttributeRequestProductCodes-    | InstanceAttributeRequestEbsOptimized-  deriving (Show, Eq, Ord)--data ResetInstanceAttributeRequest-    = ResetInstanceAttributeRequestKernel-    | ResetInstanceAttributeRequestRamdisk-    | ResetInstanceAttributeRequestSourceDestCheck-  deriving (Show, Read, Eq)--data ModifyInstanceAttributeRequest-    = ModifyInstanceAttributeRequestInstanceType Text-    | ModifyInstanceAttributeRequestKernelId Text-    | ModifyInstanceAttributeRequestRamdiskId Text-    | ModifyInstanceAttributeRequestUserData Text-    | ModifyInstanceAttributeRequestDisableApiTermination Bool-    | ModifyInstanceAttributeRequestShutdownBehavior-        ShutdownBehavior-    | ModifyInstanceAttributeRequestRootDeviceName Text-    | ModifyInstanceAttributeRequestBlockDeviceMapping-        [BlockDeviceMappingParam]-    | ModifyInstanceAttributeRequestSourceDestCheck Bool-    | ModifyInstanceAttributeRequestGroupSet [Text]-    | ModifyInstanceAttributeRequestEbsOptimized Bool-  deriving (Show, Read, Eq)--data RegisterImageRequest = RegisterImageRequest-    { registerImageRequestName :: Text-    , registerImageRequestImageLocation :: Maybe Text-    , registerImageRequestDescription :: Maybe Text-    , registerImageRequestArchitecture :: Maybe Text-    , registerImageRequestKernelId :: Maybe Text-    , registerImageRequestRamdiskId :: Maybe Text-    , registerImageRequestRootDeviceName :: Maybe Text-    , registerImageRequestBlockDeviceMappings-        :: [BlockDeviceMappingParam]-    }-  deriving (Show, Read, Eq)--data CreateVolumeRequest-    = CreateNewVolume-        { createNewVolumeSize :: Int-        , createNewVolumeAvailabilityZone :: Text-        , createNewVolumeVolumeType :: Maybe VolumeType-        }-    | CreateFromSnapshot-        { createFromSnapshotSnapshotId :: Text-        , createFromSnapshotAvailabilityZone :: Text-        , createFromSnapshotSize :: Maybe Int-        , createFromSnapshotVolumeType :: Maybe VolumeType-        }-  deriving (Show, Read, Eq)--data AssociateAddressRequest-    = AssociateAddressRequestEc2-        { associateAddressRequestEc2PublicIp :: IPv4-        , associateAddressRequestEc2InstanceId :: Text-        }-    | AssociateAddressRequestVpc-        { associateAddressRequestVpcAllocationId :: Text-        , associateAddressRequestVpcInstanceId :: Maybe Text-        , associateAddressRequestVpcNetworkInterfaceId-            :: Maybe Text-        , associateAddressRequestVpcPrivateIpAddress :: Maybe IPv4-        , associateAddressRequestVpcAllowReassociation-            :: Maybe Bool-        }-  deriving (Show, Read, Eq)--data DisassociateAddressRequest-    = DisassociateAddressRequestEc2 IPv4 -- ^ PublicIp for EC2-    | DisassociateAddressRequestVpc IPv4-      -- ^ AssociationId for VPC-  deriving (Show, Read, Eq)--data SecurityGroupRequest-    = SecurityGroupRequestGroupId Text-    | SecurityGroupRequestGroupName Text-  deriving (Show, Read, Eq)--data Subnet = Subnet-    { subnetId :: Text-    , subnetState :: SubnetState-    , subnetVpicId :: Text-    , subnetCidrBlock :: AddrRange IPv4-    , subnetAvailableIpAddressCount :: Int-    , subnetAvailabilityZone :: Text-    , subnetDefaultForAz :: Maybe Bool-    , subnetMapPublicIpOnLaunch :: Maybe Bool-    , subnetTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data SubnetState = SubnetStatePending | SubnetStateAvailable-  deriving (Show, Read, Eq)--data CreateSubnetRequest = CreateSubnetRequest-    { createSubnetRequestVpcId :: Text-    , createSubnetRequestCidrBlock :: AddrRange IPv4-    , createSubnetRequestAvailabilityZone :: Maybe Text-    }-  deriving (Show, Read, Eq)--data VolumeStatus = VolumeStatus-    { volumeStatusVolumeId :: Text-    , volumeStatusAvailabilityZone :: Text-    , volumeStatusVolumeStatus :: VolumeStatusInfo-    , volumeStatusEventSet :: [VolumeStatusEvent]-    , volumeStatusActionSet :: [VolumeStatusAction]-    }-  deriving (Show, Read, Eq)--data VolumeStatusInfo = VolumeStatusInfo-    { volumeStatusInfoStatus :: VolumeStatusInfoStatus-    , volumeStatusInfoDetails :: [VolumeStatusDetail]-    }-  deriving (Show, Read, Eq)--data VolumeStatusInfoStatus-    = VolumeStatusInfoStatusOK-    | VolumeStatusInfoStatusImpaired-    | VolumeStatusInfoStatusInsufficientData-  deriving (Show, Read, Eq)--data VolumeStatusDetail = VolumeStatusDetail-    { volumeStatusDetailName :: Text-    , volumeStatusDetailStatus :: Text-    }-  deriving (Show, Read, Eq)--data VolumeStatusEvent = VolumeStatusEvent-    { volumeStatusEventType :: Text-    , volumeStatusEventId :: Text-    , volumeStatusEventDescription :: Text-    , volumeStatusEventNotBefore :: Maybe UTCTime-    , volumeStatusEventNotAfter :: Maybe UTCTime-    }-  deriving (Show, Read, Eq)--data VolumeStatusAction = VolumeStatusAction-    { volumeStatusActionCode :: Text-    , volumeStatusActionEventType :: Text-    , volumeStatusActionEventId :: Text-    , volumeStatusActionDescription :: Text-    }-  deriving (Show, Read, Eq)--data VolumeAttribute-    = VolumeAttributeAutoEnableIO Bool-    | VolumeAttributeProductCodes [ProductCode]-  deriving (Show, Read, Eq)--data VolumeAttributeRequest-    = VolumeAttributeRequestAutoEnableIO-    | VolumeAttributeRequestProductCodes-  deriving (Show, Read, Eq)--data NetworkAcl = NetworkAcl-    { networkAclId :: Text-    , networkAclVpcId :: Text-    , networkAclDefault :: Bool-    , networkAclEntrySet :: [NetworkAclEntry]-    , networkAclAssociationSet :: [NetworkAclAssociation]-    , networkAclTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data NetworkAclEntry = NetworkAclEntry-    { networkAclEntryRuleNumber :: Int-    , networkAclEntryProtocol :: Int-    , networkAclEntryRuleAction :: NetworkAclRuleAction-    , networkAclEntryEgress :: Bool-    , networkAclEntryCidrBlock :: Text-    , networkAclEntryIcmpTypeCode :: Maybe IcmpTypeCode-    , networkAclEntryPortRange :: Maybe PortRange-    }-  deriving (Show, Read, Eq)--data NetworkAclRuleAction-    = NetworkAclRuleActionAllow-    | NetworkAclRuleActionDeny-  deriving (Show, Read, Eq)--data IcmpTypeCode = IcmpTypeCode-    { icmpTypeCodeCode :: Int-    , icmpTypeCodeType :: Int-    }-  deriving (Show, Read, Eq)--data PortRange = PortRange-    { portRangeFrom :: Int-    , portRangeTo :: Int-    }-  deriving (Show, Read, Eq)--data NetworkAclAssociation = NetworkAclAssociation-    { networkAclAssociationId :: Text-    , networkAclAssociationNetworkAclId :: Text-    , networkAclAssociationSubnetId :: Text-    }-  deriving (Show, Read, Eq)--data NetworkAclEntryRequest = NetworkAclEntryRequest-    { networkAclEntryRequestNetworkAclId :: Text-    , networkAclEntryRequestRuleNumber :: Int-    , networkAclEntryRequestProtocol :: Int-      -- ^ Protocol Number <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml>-    , networkAclEntryRequestRuleAction :: NetworkAclRuleAction-    , networkAclEntryRequestEgress :: Bool-    , networkAclEntryRequestCidrBlock :: Text-    , networkAclEntryRequestIcmp :: Maybe IcmpTypeCode-    , networkAclEntryRequestPortRange :: Maybe PortRange-    }-  deriving (Show, Read, Eq)--data RouteTable = RouteTable-    { routeTableId :: Text-    , routeTableVpcId :: Text-    , routeTableRouteSet :: [Route]-    , routeTableAssociationSet :: [RouteTableAssociation]-    , routeTablePropagatingVgw :: Maybe PropagatingVgw-    , routeTableTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data Route = Route-    { routeDestinationCidrBlock :: Text-    , routeGatewayId :: Maybe Text-    , routeInstanceId :: Maybe Text-    , routeInstanceOwnerId :: Maybe Text-    , routeNetworkInterfaceId :: Maybe Text-    , routeState :: RouteState-    , routeOrigin :: Maybe RouteOrigin-    }-  deriving (Show, Read, Eq)--data RouteState = RouteStateActive | RouteStateBlackhole-  deriving (Show, Read, Eq)--data RouteOrigin-    = RouteOriginCreateRouteTable-    | RouteOriginCreateRoute-    | RouteOriginTableEnableVgwRoutePropagation-  deriving (Show, Read, Eq)--data RouteTableAssociation = RouteTableAssociation-    { routeTableAssociationId :: Text-    , routeTableAssociationRouteTableId :: Text-    , routeTableAssociationSubnetId :: Maybe Text-    , routeTableAssociationMain :: Maybe Bool-    }-  deriving (Show, Read, Eq)--data CreateRouteRequest-    = CreateRouteToGateway-        { createRouteTableId :: Text-        , createRouteDestinationCidrBlock :: AddrRange IPv4-        , createRouteGatewayId :: Text-        }-    | CreateRouteToInstance-        { createRouteTableId :: Text-        , createRouteDestinationCidrBlock :: AddrRange IPv4-        , createRouteInstanceId :: Text-        }-    | CreateRouteToNetworkInterface-        { createRouteTableId :: Text-        , createRouteDestinationCidrBlock :: AddrRange IPv4-        , createRouteNetworkInterfaceId :: Text-        }-  deriving (Show, Read, Eq)--type PropagatingVgw = Text--data Vpc = Vpc-    { vpcId :: Text-    , vpcState :: VpcState-    , vpcCidrBlock :: AddrRange IPv4-    , vpcDhcpOptionsId :: Text-    , vpcTagSet :: [ResourceTag]-    , vpcInstanceTenancy :: Text-    , vpcIsDefault :: Maybe Text-    }-  deriving (Show, Read, Eq)--data VpcState = VpcStatePending | VpcStateAvailable-  deriving (Show, Read, Eq)--data VpnGateway = VpnGateway-    { vpnGatewayId :: Text-    , vpnGatewayState :: VpnGatewayState-    , vpnGatewayType :: Text-    , vpnGatewayAvailabilityZone :: Maybe Text-    , vpnGatewayAttachments :: [Attachment]-    , vpnGatewayTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data VpnGatewayState-    = VpnGatewayStatePending-    | VpnGatewayStateAvailable-    | VpnGatewayStateDeleting-    | VpnGatewayStateDeleted-  deriving (Show, Read, Eq)--data Attachment = Attachment-    { attachmentVpcId :: Text-    , attachmentState :: AttachmentState-    }-  deriving (Show, Read, Eq)--data AttachmentState-    = AttachmentStateAttaching-    | AttachmentStateAttached-    | AttachmentStateDetaching-    | AttachmentStateDetached-  deriving (Show, Read, Eq)--data CreateVpnGatewayType = CreateVpnGatewayTypeIpsec1--data CustomerGateway = CustomerGateway-    { customerGatewayId :: Text-    , customerGatewayState :: CustomerGatewayState-    , customerGatewayType :: Text-    , customerGatewayIpAddress :: IPv4-    , customerGatewayBgpAsn :: Int-    , customerGatewayTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data CustomerGatewayState-    = CustomerGatewayStatePending-    | CustomerGatewayStateAvailable-    | CustomerGatewayStateDeleting-    | CustomerGatewayStateDeleted-  deriving (Show, Read, Eq)--data InternetGateway = InternetGateway-    { internetGatewayInternetGatewayId :: Text-    , internetGatewayAttachmentSet :: [InternetGatewayAttachment]-    , internetGatewayTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data InternetGatewayAttachment = InternetGatewayAttachment-    { internetGatewayAttachmentVpcId :: Text-    , internetGatewayAttachmentState :: InternetGatewayAttachmentState-    }-  deriving (Show, Read, Eq)--data InternetGatewayAttachmentState-    = InternetGatewayAttachmentStateAttaching-    | InternetGatewayAttachmentStateAttached-    | InternetGatewayAttachmentStateDetaching-    | InternetGatewayAttachmentStateDetached-    | InternetGatewayAttachmentStateAvailable-  deriving (Show, Read, Eq)--data DhcpOptions = DhcpOptions-    { dhcpOptionsId :: Text-    , dhcpOptionsDhcpConfigurationSet :: [DhcpConfiguration]-    , dhcpOptionsTagSet :: [ResourceTag]-    }-  deriving (Show, Read, Eq)--data DhcpConfiguration = DhcpConfiguration-    { dhcpConfigurationKey :: Text-    , dhcpConfigurationDhcpValueSet :: [DhcpValue]-    }-  deriving (Show, Read, Eq)--data DhcpValue = DhcpValue-    { dhcpValueValue :: Text-    }-  deriving (Show, Read, Eq)--data NetworkInterface = NetworkInterface-    { networkInterfaceId :: Text-    , networkInterfaceSubnetId :: Text-    , networkInterfaceVpcId :: Text-    , networkInterfaceAvailabilityZone :: Text-    , networkInterfaceDescription :: Maybe Text-    , networkInterfaceOwnerId :: Text-    , networkInterfaceRequesterId :: Maybe Text-    , networkInterfaceRequesterManaged :: Text-    , networkInterfaceStatus :: NetworkInterfaceStatus-    , networkInterfaceMacAddress :: Text-    , networkInterfacePrivateIpAddress :: IPv4-    , networkInterfacePrivateDnsName :: Maybe Text-    , networkInterfaceSourceDestCheck :: Bool-    , networkInterfaceGroupSet :: [Group]-    , networkInterfaceAttachment-        :: Maybe NetworkInterfaceAttachment-    , networkInterfaceAssociation-        :: Maybe NetworkInterfaceAssociation-    , networkInterfaceTagSet :: [ResourceTag]-    , networkInterfacePrivateIpAddressesSet-        :: [NetworkInterfacePrivateIpAddress]-    }-  deriving (Show, Read, Eq)--type Filter = (Text, [Text])--data NetworkInterfaceStatus-    = NetworkInterfaceStatusAvailable-    | NetworkInterfaceStatusInUse-    | NetworkInterfaceStatusPending-  deriving (Show, Read, Eq)--data NetworkInterfaceAttachment = NetworkInterfaceAttachment-    { networkInterfaceAttachmentId :: Text-    , networkInterfaceAttachmentInstanceId :: Maybe Text-    , networkInterfaceAttachmentInstanceOwnerId :: Text-    , networkInterfaceAttachmentDeviceIndex :: Int-    , networkInterfaceAttachmentStatus :: Text-    , networkInterfaceAttachmentAttachTime :: UTCTime-    , networkInterfaceAttachmentDeleteOnTermination :: Bool-    }-  deriving (Show, Read, Eq)--data NetworkInterfaceAssociation = NetworkInterfaceAssociation-    { networkInterfaceAssociationAttachmentId :: Maybe Text-    , networkInterfaceAssociationInstanceId :: Maybe Text-    , networkInterfaceAssociationPublicIp :: IPv4-    , networkInterfaceAssociationPublicDnsName :: Maybe Text-    , networkInterfaceAssociationIpOwnerId :: Text-    , networkInterfaceAssociationId :: Text-    }-  deriving (Show, Read, Eq)--data NetworkInterfacePrivateIpAddress-    = NetworkInterfacePrivateIpAddress-    { networkInterfacePrivateIpAddressPrivateIpAddress :: IPv4-    , networkInterfacePrivateIpAddressDnsName :: Maybe Text-    , networkInterfacePrivateIpAddressPrimary :: Bool-    , networkInterfacePrivateIpAddressAssociation-        :: Maybe NetworkInterfaceAssociation-    }-  deriving (Show, Read, Eq)--instance FromText Platform-  where-    fromMaybeText _name Nothing  = return PlatformOther-    fromMaybeText _name (Just t)-        | t == "windows" = return PlatformWindows-        | otherwise      = return PlatformOther--instance FromText AddressDomain-  where-    fromMaybeText _name Nothing  = return AddressDomainStandard-    fromMaybeText _name (Just t)-        | t == "standard" = return AddressDomainStandard-        | t == "vpc"      = return AddressDomainVPC-        | otherwise       = monadThrow $ TextConversionException t--instance FromText EC2Return-  where-    fromTextMay t-        | t == "true" = Just EC2Success-        | otherwise   = Just $ EC2Error t--instance FromText InstanceLifecycle-  where-    fromMaybeText _name Nothing  = return LifecycleNone-    fromMaybeText _name (Just t)-        | t == "spot" = return LifecycleSpot-        | otherwise   = monadThrow $ TextConversionException t--deriveFromText "ImageState" ["available", "pending", "failed"]-deriveFromText "ProductCodeType" ["devpay", "marketplace"]-deriveFromText "ImageType" ["machine", "kernel", "ramdisk"]-deriveFromText "RootDeviceType" ["ebs", "instance-store"]-deriveFromText "VirtualizationType" ["paravirtual", "hvm"]-deriveFromText "Hypervisor" ["ovm", "xen"]-deriveFromText "InstanceStatusEventCode"-    [ "instance-reboot"-    , "instance-stop"-    , "system-reboot"-    , "instance-retirement"-    ]-deriveFromText "InstanceStatusTypeStatus"-    ["ok", "impaired", "insufficient-data", "not-applicable"]-deriveFromText "InstanceMonitoringState"-    ["disabled", "enabled", "pending", "disabling"]-deriveFromText "Architecture" ["i386", "x86_64"]-deriveFromText "SnapshotStatus" ["pending", "completed", "error"]-deriveFromText "VolumeState"-    [ "creating"-    , "available"-    , "in-use"-    , "deleting"-    , "deleted"-    , "error"-    ]-deriveFromText "AttachmentSetItemResponseStatus"-    ["attaching", "attached", "detaching", "detached"]-deriveFromText "ShutdownBehavior" ["stop", "terminate"]-deriveFromText "VpnConnectionState"-    ["pending", "available", "deleting", "deleted"]-deriveFromText "VpnTunnelTelemetryStatus" ["UP", "DOWN"]-deriveFromText "VpnStaticRouteSource" ["Static"]-deriveFromText "VpnStaticRouteState"-    ["pending", "available", "deleting", "deleted"]-deriveFromText "SubnetState" ["pending", "available"]-deriveFromText "VolumeStatusInfoStatus"-    ["ok", "impaired", "insufficient-data"]-deriveFromText "NetworkAclRuleAction" ["allow", "deny"]-deriveFromText "RouteState" ["active", "blackhole"]-deriveFromText "RouteOrigin"-    [ "CreateRouteTable"-    , "CreateRoute"-    , "EnableVgwRoutePropagation"-    ]-deriveFromText "VpcState" ["pending", "available"]-deriveFromText "VpnGatewayState"-    ["pending", "available", "deleting", "deleted"]-deriveFromText "AttachmentState"-    ["attaching", "attached", "detaching", "detached"]-deriveFromText "CustomerGatewayState"-    ["pending", "available", "deleting", "deleted"]-deriveFromText "InternetGatewayAttachmentState"-    ["attaching", "attached", "detaching", "detached", "available"]-deriveFromText "NetworkInterfaceStatus" ["available", "in-use", "pending"]-deriveFromText "PlacementGroupState" ["pending", "available", "deleting", "deleted"]-deriveFromText "PlacementGroupStrategy" ["cluster"]+module AWS.EC2.Types+    ( -- * Common+      module AWS.EC2.Types.Common+      -- * Acl+    , module AWS.EC2.Types.Acl+      -- * Address+    , module AWS.EC2.Types.Address+      -- * AvailabiliryZone+    , module AWS.EC2.Types.AvailabilityZone+      -- * ConversionTask+    , module AWS.EC2.Types.ConversionTask+      -- * Image+    , module AWS.EC2.Types.Image+      -- * Instance+    , module AWS.EC2.Types.Instance+      -- * KeyPair+    , module AWS.EC2.Types.KeyPair+      -- * NetworkInterface+    , module AWS.EC2.Types.NetworkInterface+      -- * PlacementGroup+    , module AWS.EC2.Types.PlacementGroup+      -- * Region+    , module AWS.EC2.Types.Region+      -- * Route+    , module AWS.EC2.Types.Route+      -- * RouteTable+    , module AWS.EC2.Types.RouteTable+      -- * SecurityGroup+    , module AWS.EC2.Types.SecurityGroup+      -- * Snapshot+    , module AWS.EC2.Types.Snapshot+      -- * Subnets+    , module AWS.EC2.Types.Subnets+      -- * Tag+    , module AWS.EC2.Types.Tag+      -- * VPC+    , module AWS.EC2.Types.VPC+      -- * Volume+    , module AWS.EC2.Types.Volume+    ) where++import AWS.EC2.Types.Acl+import AWS.EC2.Types.Address+import AWS.EC2.Types.AvailabilityZone+import AWS.EC2.Types.ConversionTask+import AWS.EC2.Types.Common+import AWS.EC2.Types.Image+import AWS.EC2.Types.Instance+import AWS.EC2.Types.KeyPair+import AWS.EC2.Types.NetworkInterface+import AWS.EC2.Types.PlacementGroup+import AWS.EC2.Types.Region+import AWS.EC2.Types.Route+import AWS.EC2.Types.RouteTable+import AWS.EC2.Types.SecurityGroup+import AWS.EC2.Types.Snapshot+import AWS.EC2.Types.Subnets+import AWS.EC2.Types.Tag+import AWS.EC2.Types.VPC+import AWS.EC2.Types.Volume
+ AWS/EC2/Types/Acl.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Acl+    ( IcmpTypeCode(..)+    , NetworkAcl(..)+    , NetworkAclAssociation(..)+    , NetworkAclEntry(..)+    , NetworkAclEntryRequest(..)+    , NetworkAclRuleAction(..)+    , PortRange(..)+    ) where++import AWS.EC2.Types.Common (ResourceTag)+import AWS.Lib.FromText++data IcmpTypeCode = IcmpTypeCode+    { icmpTypeCodeCode :: Int+    , icmpTypeCodeType :: Int+    }+  deriving (Show, Read, Eq)++data NetworkAcl = NetworkAcl+    { networkAclId :: Text+    , networkAclVpcId :: Text+    , networkAclDefault :: Bool+    , networkAclEntrySet :: [NetworkAclEntry]+    , networkAclAssociationSet :: [NetworkAclAssociation]+    , networkAclTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data NetworkAclAssociation = NetworkAclAssociation+    { networkAclAssociationId :: Text+    , networkAclAssociationNetworkAclId :: Text+    , networkAclAssociationSubnetId :: Text+    }+  deriving (Show, Read, Eq)++data NetworkAclEntry = NetworkAclEntry+    { networkAclEntryRuleNumber :: Int+    , networkAclEntryProtocol :: Int+    , networkAclEntryRuleAction :: NetworkAclRuleAction+    , networkAclEntryEgress :: Bool+    , networkAclEntryCidrBlock :: Text+    , networkAclEntryIcmpTypeCode :: Maybe IcmpTypeCode+    , networkAclEntryPortRange :: Maybe PortRange+    }+  deriving (Show, Read, Eq)++data NetworkAclEntryRequest = NetworkAclEntryRequest+    { networkAclEntryRequestNetworkAclId :: Text+    , networkAclEntryRequestRuleNumber :: Int+    , networkAclEntryRequestProtocol :: Int+      -- ^ Protocol Number <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml>+    , networkAclEntryRequestRuleAction :: NetworkAclRuleAction+    , networkAclEntryRequestEgress :: Bool+    , networkAclEntryRequestCidrBlock :: Text+    , networkAclEntryRequestIcmp :: Maybe IcmpTypeCode+    , networkAclEntryRequestPortRange :: Maybe PortRange+    }+  deriving (Show, Read, Eq)++data NetworkAclRuleAction+    = NetworkAclRuleActionAllow+    | NetworkAclRuleActionDeny+  deriving (Show, Read, Eq)++data PortRange = PortRange+    { portRangeFrom :: Int+    , portRangeTo :: Int+    }+  deriving (Show, Read, Eq)++deriveFromText "NetworkAclRuleAction" ["allow", "deny"]
+ AWS/EC2/Types/Address.hs view
@@ -0,0 +1,65 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Address+    ( Address(..)+    , AddressDomain(..)+    , AllocateAddress(..)+    , AssociateAddressRequest(..)+    , DisassociateAddressRequest(..)+    ) where++import AWS.Lib.FromText++data Address = Address+    { addressPublicIp :: IPv4+    , addressAllocationId :: Maybe Text+    , addressDomain :: AddressDomain+    , addressInstanceId :: Maybe Text+    , addressAssociationId :: Maybe Text+    , addressNetworkInterfaceId :: Maybe Text+    , addressNetworkInterfaceOwnerId :: Maybe Text+    , addressPrivateIpAddress :: Maybe IPv4+    }+  deriving (Show, Read, Eq)++data AddressDomain+    = AddressDomainStandard+    | AddressDomainVPC+  deriving (Show, Read, Eq)++instance FromText AddressDomain+  where+    fromMaybeText _name Nothing  = return AddressDomainStandard+    fromMaybeText _name (Just t)+        | t == "standard" = return AddressDomainStandard+        | t == "vpc"      = return AddressDomainVPC+        | otherwise       = monadThrow $ TextConversionException t++data AllocateAddress = AllocateAddress+    { allocateAddressPublicIp :: IPv4+    , allocateAddressDomain :: AddressDomain+    , allocateAddressAllocationId :: Maybe Text+    }+  deriving (Show, Read, Eq)++data AssociateAddressRequest+    = AssociateAddressRequestEc2+        { associateAddressRequestEc2PublicIp :: IPv4+        , associateAddressRequestEc2InstanceId :: Text+        }+    | AssociateAddressRequestVpc+        { associateAddressRequestVpcAllocationId :: Text+        , associateAddressRequestVpcInstanceId :: Maybe Text+        , associateAddressRequestVpcNetworkInterfaceId+            :: Maybe Text+        , associateAddressRequestVpcPrivateIpAddress :: Maybe IPv4+        , associateAddressRequestVpcAllowReassociation+            :: Maybe Bool+        }+  deriving (Show, Read, Eq)++data DisassociateAddressRequest+    = DisassociateAddressRequestEc2 IPv4 -- ^ PublicIp for EC2+    | DisassociateAddressRequestVpc IPv4+      -- ^ AssociationId for VPC+  deriving (Show, Read, Eq)
+ AWS/EC2/Types/AvailabilityZone.hs view
@@ -0,0 +1,16 @@+module AWS.EC2.Types.AvailabilityZone+    ( AvailabilityZone(..)+    , AvailabilityZoneMessage+    ) where++import AWS.Lib.FromText++data AvailabilityZone = AvailabilityZone+    { zoneName :: Text+    , zoneState :: Text+    , zoneRegionName :: Text+    , zoneMessageSet :: [AvailabilityZoneMessage]+    }+  deriving (Show, Read, Eq)++type AvailabilityZoneMessage = Text
+ AWS/EC2/Types/Common.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Common+    ( Architecture(..)+    , Filter+    , EC2Return(..)+    , Group(..)+    , Hypervisor(..)+    , Placement(..)+    , Platform(..)+    , ProductCode(..)+    , ProductCodeType(..)+    , ResourceTag(..)+    , RootDeviceType(..)+    , ShutdownBehavior(..)+    , StateReason(..)+    , VirtualizationType(..)+    ) where++import AWS.Lib.FromText++data Architecture+    = I386+    | X86_64+  deriving (Show, Read, Eq)++data EC2Return+    = EC2Success+    | EC2Error Text+  deriving (Show, Read, Eq)++instance FromText EC2Return+  where+    fromTextMay t+        | t == "true" = Just EC2Success+        | otherwise   = Just $ EC2Error t++type Filter = (Text, [Text])++data Group = Group+    { groupId :: Text+    , groupName :: Text+    }+  deriving (Show, Read, Eq)++data Hypervisor+    = HypervisorOVM+    | HypervisorXen+  deriving (Show, Read, Eq)++deriveFromText "Hypervisor" ["ovm", "xen"]++data Placement = Placement+    { placementAvailabilityZone :: Text+    , placementGroupName :: Maybe Text+    , placementTenancy :: Text+    }+  deriving (Show, Read, Eq)++data Platform+    = PlatformWindows+    | PlatformOther+  deriving (Show, Read, Eq)++instance FromText Platform+  where+    fromMaybeText _name Nothing  = return PlatformOther+    fromMaybeText _name (Just t)+        | t == "windows" = return PlatformWindows+        | otherwise      = return PlatformOther++data ProductCode = ProductCode+    { productCodeCode :: Text+    , productCodeType :: ProductCodeType+    }+  deriving (Show, Read, Eq)++data ProductCodeType+    = ProductCodeDevpay+    | ProductCodeMarketplace+  deriving (Show, Read, Eq)++data ResourceTag = ResourceTag+    { resourceTagKey :: Text+    , resourceTagValue :: Maybe Text+    }+  deriving (Show, Read, Eq)++data RootDeviceType+    = RootDeviceTypeEBS+    | RootDeviceTypeInstanceStore+  deriving (Show, Read, Eq)++data ShutdownBehavior+    = ShutdownBehaviorStop+    | ShutdownBehaviorTerminate+  deriving (Show, Read, Eq)++data StateReason = StateReason+    { stateReasonCode :: Text+    , stateReasonMessage :: Text+    }+  deriving (Show, Read, Eq)++data VirtualizationType+    = VirtualizationTypeParavirtual+    | VirtualizationTypeHVM+  deriving (Show, Read, Eq)++deriveFromText "Architecture" ["i386", "x86_64"]+deriveFromText "ProductCodeType" ["devpay", "marketplace"]+deriveFromText "RootDeviceType" ["ebs", "instance-store"]+deriveFromText "ShutdownBehavior" ["stop", "terminate"]+deriveFromText "VirtualizationType" ["paravirtual", "hvm"]
+ AWS/EC2/Types/ConversionTask.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.ConversionTask+    ( ConversionTask(..)+    , ConversionTaskState(..)+    , DiskImage(..)+    , DiskImageDescription(..)+    , DiskImageVolumeDescription(..)+    , ImportInstanceTaskDetailItem(..)+    , ImportInstanceTaskDetails(..)+    , ImportVolumeRequestImage(..)+    , ImportVolumeTaskDetails(..)+    , LaunchSpecification(..)+    ) where++import AWS.EC2.Types.Common (Architecture, ShutdownBehavior)+import AWS.Lib.FromText++data ConversionTask = ConversionTask+    { conversionTaskId :: Text+    , conversionTaskExpirationTime :: Text+    , conversionTaskImportVolume :: Maybe ImportVolumeTaskDetails+    , conversionTaskImportInstance :: Maybe ImportInstanceTaskDetails+    , conversionTaskState :: ConversionTaskState+    , conversionTaskStatusMessage :: Text+    }+  deriving (Show, Read, Eq)++data ConversionTaskState+    = ConversionTaskActive+    | ConversionTaskCancelling+    | ConversionTaskCancelled+    | ConversionTaskCompleted+  deriving (Show, Read, Eq)++data DiskImage = DiskImage+    { diskImageFormat :: Text+    , diskImageBytes :: Int+    , diskImageImportManifestUrl :: Text+    , diskImageDescripsion :: Maybe Text+    , diskImageVolumeSize :: Int+    }+  deriving (Show, Read, Eq)++data DiskImageDescription = DiskImageDescription+    { diskImageDescriptionFormat :: Text+    , diskImageDescriptionSize :: Int+    , diskImageDescriptionImportManifestUrl :: Text+    , diskImageDescriptionChecksum :: Maybe Text+    }+  deriving (Show, Read, Eq)++data DiskImageVolumeDescription = DiskImageVolumeDescription+    { diskImageVolumeDescriptionSize :: Int+    , diskImageVolumeDescriptionId :: Maybe Text+    }+  deriving (Show, Read, Eq)++data ImportInstanceTaskDetailItem = ImportInstanceTaskDetailItem+    { importInstanceTaskDetailItemBytesConverted :: Int+    , importInstanceTaskDetailItemAvailabilityZone :: Text+    , importInstanceTaskDetailItemImage :: DiskImageDescription+    , importInstanceTaskDetailItemDescription :: Maybe Text+    , importInstanceTaskDetailItemVolume :: DiskImageVolumeDescription+    , importInstanceTaskDetailItemStatus :: Text+    , importInstanceTaskDetailItemStatusMessage :: Maybe Text+    }+  deriving (Show, Read, Eq)++data ImportInstanceTaskDetails = ImportInstanceTaskDetails+    { importInstanceTaskDetailsVolumes :: [ImportInstanceTaskDetailItem]+    , importInstanceTaskDetailsInstanceId :: Text+    , importInstanceTaskDetailsPlatform :: Maybe Text+    , importInstanceTaskDetailsDescription :: Maybe Text+    }+  deriving (Show, Read, Eq)++data ImportVolumeRequestImage = ImportVolumeRequestImage+    { importVolumeRequestImageFormat :: Text+    , importVolumeRequestImageBytes :: Int+    , importVolumeRequestImageImportManifestUrl :: Text+    }+  deriving (Show, Read, Eq)++data ImportVolumeTaskDetails = ImportVolumeTaskDetails+    { importVolumeTaskDetailsBytesConverted :: Int+    , importVolumeTaskDetailsAvailabilityZone :: Text+    , importVolumeTaskDetailsDescription :: Maybe Text+    , importVolumeTaskDetailsImage :: DiskImageDescription+    , importVolumeTaskDetailsVolume :: DiskImageVolumeDescription+    }+  deriving (Show, Read, Eq)++data LaunchSpecification = LaunchSpecification+    { launchSpecificationArchitecture :: Architecture+    , launchSpecificationGroupNames :: [Text]+    , launchSpecificationUserData :: Maybe Text+    , launchSpecificationInstanceType :: Text+    , launchSpecificationPlacementAvailabilityZone :: Maybe Text+    , launchSpecificationMonitoringEnabled :: Maybe Bool+    , launchSpecificationSubnetId :: Maybe Text+    , launchSpecificationInstanceInitiatedShutdownBehavior+        :: Maybe ShutdownBehavior+    , launchSpecificationPrivateIpAddress :: Maybe IPv4+    }+  deriving (Show, Read, Eq)++deriveFromText "ConversionTaskState"+    ["active", "cancelling", "cancelled", "completed"]
+ AWS/EC2/Types/Image.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Image+    ( AMIAttribute(..)+    , AMIAttributeDescription(..)+    , BlockDeviceMapping(..)+    , BlockDeviceMappingParam(..)+    , EbsBlockDevice(..)+    , EbsSource(..)+    , Image(..)+    , ImageState(..)+    , ImageType(..)+    , LaunchPermission(..)+    , LaunchPermissionItem(..)+    , ProductCodeItem(..)+    , RegisterImageRequest(..)+    ) where++import AWS.EC2.Types.Common+import AWS.EC2.Types.Volume (VolumeType)+import AWS.Lib.FromText++data AMIAttribute+    = AMIDescription+    | AMIKernel+    | AMIRamdisk+    | AMILaunchPermission+    | AMIProductCodes+    | AMIBlockDeviceMapping+  deriving (Show, Read, Eq)++data AMIAttributeDescription = AMIAttributeDescription+    { amiAttributeDescriptionImageId :: Text+    , amiAttributeDescriptionLaunchPermission :: [LaunchPermissionItem]+    , amiAttributeDescriptionProductCodes :: [ProductCodeItem]+    , amiAttributeDescriptionKernel :: Maybe Text+    , amiAttributeDescriptionRamdisk :: Maybe Text+    , amiAttributeDescriptionDescription :: Maybe Text+    , amiAttributeDescriptionBlockDeviceMapping :: [BlockDeviceMapping]+    }+  deriving (Show, Read, Eq)++data BlockDeviceMapping = BlockDeviceMapping+    { blockDeviceMappingDeviceName :: Text+    , blockDeviceMappingVirtualName :: Maybe Text+    , blockDeviceMappingEbs :: Maybe EbsBlockDevice+    }+  deriving (Show, Read, Eq)++data BlockDeviceMappingParam+    = BlockDeviceMappingParamEbs+        { blockDeviceMappingParamEbsDeviceName :: Text+        , blockDeviceMappingParamEbsNoDevice :: Maybe Bool+        , blockDeviceMappingParamEbsSource :: EbsSource+        , blockDeviceMappingParamEbsDeleteOnTermination+            :: Maybe Bool+        , blockDeviceMappingParamEbsVolumeType :: Maybe VolumeType+        }+    | BlockDeviceMappingParamInstanceStore+        { blockDeviceMappingParamInstanceStoreDeviceName :: Text+        , blockDeviceMappingParamInstanceStoreNoDevice+            :: Maybe Bool+        , blockDeviceMappingParamInstanceStoreVirtualName+            :: Maybe Text+        }+  deriving (Show, Read, Eq)++data EbsBlockDevice = EbsBlockDevice+    { ebsSnapshotId :: Maybe Text+    , ebsVolumeSize :: Int+    , ebsDeleteOnTermination :: Bool+    , ebsVolumeType :: VolumeType+    }+  deriving (Show, Read, Eq)++data EbsSource+    = EbsSourceSnapshotId Text+    | EbsSourceVolumeSize Int+  deriving (Show, Read, Eq)++data Image = Image+    { imageId :: Text+    , imageLocation :: Text+    , imageImageState :: ImageState+    , imageOwnerId :: Text+    , imageIsPublic :: Bool+    , imageProductCodes :: [ProductCode]+    , imageArchitecture :: Text+    , imageImageType :: ImageType+    , imageKernelId :: Maybe Text+    , imageRamdiskId :: Maybe Text+    , imagePlatform :: Platform+    , imageStateReason :: Maybe StateReason+    , imageViridianEnabled :: Maybe Bool+    , imageOwnerAlias :: Maybe Text+    , imageName :: Maybe Text+    , imageDescription :: Maybe Text+    , imageBillingProducts :: [Text]+    , imageRootDeviceType :: RootDeviceType+    , imageRootDeviceName :: Maybe Text+    , imageBlockDeviceMappings :: [BlockDeviceMapping]+    , imageVirtualizationType :: VirtualizationType+    , imageTagSet :: [ResourceTag]+    , imageHypervisor :: Hypervisor+    }+  deriving (Show, Read, Eq)++data ImageState+    = ImageStateAvailable+    | ImageStatePending+    | ImageStateFailed+  deriving (Show, Read, Eq)++data ImageType+    = ImageTypeMachine+    | ImageTypeKernel+    | ImageTypeRamDisk+  deriving (Show, Read, Eq)++data LaunchPermission = LaunchPermission+    { launchPermissionAdd :: [LaunchPermissionItem]+    , launchPermissionRemove :: [LaunchPermissionItem]+    }+  deriving (Show, Read, Eq)++data LaunchPermissionItem = LaunchPermissionItem+    { launchPermissionItemGroup :: Text+    , launchPermissionUserId :: Text+    }+  deriving (Show, Read, Eq)++data ProductCodeItem = ProductCodeItem+    { productCodeItemProductCode :: Text+    }+  deriving (Show, Read, Eq)++data RegisterImageRequest = RegisterImageRequest+    { registerImageRequestName :: Text+    , registerImageRequestImageLocation :: Maybe Text+    , registerImageRequestDescription :: Maybe Text+    , registerImageRequestArchitecture :: Maybe Text+    , registerImageRequestKernelId :: Maybe Text+    , registerImageRequestRamdiskId :: Maybe Text+    , registerImageRequestRootDeviceName :: Maybe Text+    , registerImageRequestBlockDeviceMappings+        :: [BlockDeviceMappingParam]+    }+  deriving (Show, Read, Eq)++deriveFromText "ImageState" ["available", "pending", "failed"]+deriveFromText "ImageType" ["machine", "kernel", "ramdisk"]
+ AWS/EC2/Types/Instance.hs view
@@ -0,0 +1,366 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Instance+    ( ConsoleOutput(..)+    , EbsInstanceBlockDevice(..)+    , IamInstanceProfile(..)+    , Instance(..)+    , InstanceAttribute(..)+    , InstanceAttributeRequest(..)+    , InstanceBlockDeviceMapping(..)+    , InstanceLifecycle(..)+    , InstanceMonitoringState(..)+    , InstanceNetworkInterface(..)+    , InstanceNetworkInterfaceAssociation(..)+    , InstanceNetworkInterfaceAttachment(..)+    , InstancePrivateIpAddress(..)+    , InstanceState(..)+    , InstanceStateChange(..)+    , InstanceStatus(..)+    , InstanceStatusDetail(..)+    , InstanceStatusDetailName+    , InstanceStatusDetailStatus+    , InstanceStatusEvent(..)+    , InstanceStatusEventCode(..)+    , InstanceStatusType(..)+    , InstanceStatusTypeStatus(..)+    , ModifyInstanceAttributeRequest(..)+    , MonitorInstancesResponse(..)+    , PasswordData(..)+    , Reservation(..)+    , ResetInstanceAttributeRequest(..)+    , RunInstancesRequest(..)+    ) where++import Data.ByteString (ByteString)++import AWS.Class+import AWS.EC2.Types.Common+import AWS.EC2.Types.Image (BlockDeviceMappingParam)+import AWS.EC2.Types.NetworkInterface (NetworkInterfaceParam)+import AWS.EC2.Types.Volume (AttachmentSetItemResponseStatus)+import AWS.Lib.FromText++data ConsoleOutput = ConsoleOutput+    { consoleOutputInstanceId :: Text+    , consoleOutputTimestamp :: UTCTime+        -- ^ The time the data was last updated.+    , consoleOutputOutput :: Text+    }+  deriving (Show, Read, Eq)++data EbsInstanceBlockDevice = EbsInstanceBlockDevice+    { ebsInstanceBlockDeviceVolumeId :: Text+    , ebsInstanceBlockDeviceState :: AttachmentSetItemResponseStatus+    , ebsInstanceBlockDeviceAttachTime :: UTCTime+    , ebsInstanceBlockDeviceDeleteOnTermination :: Bool+    }+  deriving (Show, Read, Eq)++data IamInstanceProfile = IamInstanceProfile+    { iamInstanceProfileArn :: Text+    , iamInstanceProfileId :: Text+    }+  deriving (Show, Read, Eq)++data Instance = Instance+    { instanceId :: Text+    , instanceImageId :: Text+    , instanceState :: InstanceState+    , instancePrivateDnsName :: Maybe Text+    , instanceDnsName :: Maybe Text+    , instanceReason :: Maybe Text+    , instanceKeyName :: Maybe Text+    , instanceAmiLaunchIndex :: Text+    , instanceProductCodes :: [ProductCode]+    , instanceType :: Text+    , instanceLaunchTime :: UTCTime+    , instancePlacement :: Placement+    , instanceKernelId :: Maybe Text+    , instanceRamdiskId :: Maybe Text+    , instancePlatform :: Maybe Text+    , instanceMonitoring :: InstanceMonitoringState+    , instanceSubnetId :: Maybe Text+    , instanceVpcId :: Maybe Text+    , instancePrivateIpAddress :: Maybe IPv4+    , instanceIpAddress :: Maybe IPv4+    , instanceSourceDestCheck :: Maybe Bool+    , instancevpcGroupSet :: [Group]+    , instanceStateReason :: Maybe StateReason+    , instanceArchitecture :: Architecture+    , instanceRootDeviceType :: RootDeviceType+    , instanceRootDeviceName :: Maybe Text+    , instanceBlockDeviceMappings :: [InstanceBlockDeviceMapping]+    , instanceInstanceLifecycle :: Maybe InstanceLifecycle+    , instanceSpotInstanceRequestId :: Maybe Text+    , instanceVirtualizationType :: VirtualizationType+    , instanceClientToken :: Maybe Text+    , instanceTagSet :: [ResourceTag]+    , instanceHypervisor :: Hypervisor+    , instanceNetworkInterfaceSet :: [InstanceNetworkInterface]+    , instanceIamInstanceProfile :: Maybe IamInstanceProfile+    , instanceEbsOptimized :: Bool -- default: false+    }+  deriving (Show, Read, Eq)++data InstanceAttribute+    = InstanceAttributeInstanceType Text+    | InstanceAttributeKernelId (Maybe Text)+    | InstanceAttributeRamdiskId (Maybe Text)+    | InstanceAttributeUserData (Maybe Text)+    | InstanceAttributeDisableApiTermination Bool+    | InstanceAttributeShutdownBehavior ShutdownBehavior+    | InstanceAttributeRootDeviceName (Maybe Text)+    | InstanceAttributeBlockDeviceMapping [InstanceBlockDeviceMapping]+    | InstanceAttributeSourceDestCheck (Maybe Bool)+    | InstanceAttributeGroupSet [Text]+    | InstanceAttributeProductCodes [ProductCode]+    | InstanceAttributeEbsOptimized Bool+  deriving (Show, Read, Eq)++data InstanceAttributeRequest+    = InstanceAttributeRequestInstanceType+    | InstanceAttributeRequestKernelId+    | InstanceAttributeRequestRamdiskId+    | InstanceAttributeRequestUserData+    | InstanceAttributeRequestDisableApiTermination+    | InstanceAttributeRequestShutdownBehavior+    | InstanceAttributeRequestRootDeviceName+    | InstanceAttributeRequestBlockDeviceMapping+    | InstanceAttributeRequestSourceDestCheck+    | InstanceAttributeRequestGroupSet+    | InstanceAttributeRequestProductCodes+    | InstanceAttributeRequestEbsOptimized+  deriving (Show, Eq, Ord)++data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping+    { instanceBlockDeviceMappingDeviceName :: Text+    , instanceBlockDeviceMappingEbs :: EbsInstanceBlockDevice+    }+  deriving (Show, Read, Eq)++data InstanceLifecycle+    = LifecycleSpot+    | LifecycleNone+  deriving (Show, Read, Eq)++instance FromText InstanceLifecycle+  where+    fromMaybeText _name Nothing  = return LifecycleNone+    fromMaybeText _name (Just t)+        | t == "spot" = return LifecycleSpot+        | otherwise   = monadThrow $ TextConversionException t++data InstanceMonitoringState+    = MonitoringDisabled+    | MonitoringEnabled+    | MonitoringPending+    | MonitoringDisabling+  deriving (Show, Read, Eq)++data InstanceNetworkInterface = InstanceNetworkInterface+    { instanceNetworkInterfaceId :: Text+    , instanceNetworkInterfaceSubnetId :: Maybe Text+    , instanceNetworkInterfaceVpcId :: Maybe Text+    , instanceNetworkInterfaceDescription :: Maybe Text+    , instanceNetworkInterfaceOwnerId :: Text+    , instanceNetworkInterfaceStatus :: Text+    , instanceNetworkInterfaceMacAddress :: Maybe Text+    , instanceNetworkInterfacePrivateIpAddress :: Maybe IPv4+    , instanceNetworkInterfacePrivateDnsName :: Maybe Text+    , instanceNetworkInterfaceSourceDestCheck :: Maybe Bool+    , instanceNetworkInterfaceGroupSet :: [Group]+    , instanceNetworkInterfaceAttachment+        :: InstanceNetworkInterfaceAttachment+    , instanceNetworkInterfaceAssociation+        :: Maybe InstanceNetworkInterfaceAssociation+    , instanceNetworkInterfacePrivateIpAddressesSet+        :: [InstancePrivateIpAddress]+    }+  deriving (Show, Read, Eq)++data InstanceNetworkInterfaceAssociation+    = InstanceNetworkInterfaceAssociation+    { instanceNetworkInterfaceAssociationPublicIp :: IPv4+    , instanceNetworkInterfaceAssociationPublicDnsName+        :: Maybe Text+    , instanceNetworkInterfaceAssociationIpOwnerId :: Text+    }+  deriving (Show, Read, Eq)++data InstanceNetworkInterfaceAttachment = InstanceNetworkInterfaceAttachment+    { instanceNetworkInterfaceAttachmentId :: Text+    , instanceNetworkInterfaceAttachmentDeviceIndex :: Int+    , instanceNetworkInterfaceAttachmentStatus :: Text+    , instanceNetworkInterfaceAttachmentAttachTime :: UTCTime+    , instanceNetworkInterfaceAttachmentDeleteOnTermination+        :: Bool+    }+  deriving (Show, Read, Eq)++data InstancePrivateIpAddress = InstancePrivateIpAddress+    { instancePrivateIpAddressAddress :: IPv4+    , instancePrivateIpAddressDnsName :: Maybe Text+    , instancePrivateIpAddressPrimary :: Bool+    , instancePrivateIpAddressAssociation+        :: Maybe InstanceNetworkInterfaceAssociation+    }+  deriving (Show, Read, Eq)++data InstanceState+    = InstanceStatePending+    | InstanceStateRunning+    | InstanceStateShuttingDown+    | InstanceStateTerminated+    | InstanceStateStopping+    | InstanceStateStopped+    | InstanceStateUnknown Int+  deriving (Show, Read, Eq)++data InstanceStateChange = InstanceStateChange+    { instanceStateChangeInstanceId :: Text+    , instanceStateChangeCurrentState :: InstanceState+    , instanceStateChangePreviousState :: InstanceState+    }+  deriving (Show, Read, Eq)++data InstanceStatus = InstanceStatus+    { instanceStatusInstanceId :: Text+    , instanceStatusAvailabilityZone :: Text+    , instanceStatusEventsSet :: [InstanceStatusEvent]+    , instanceStatusInstanceState :: InstanceState+    , instanceStatusSystemStatus :: InstanceStatusType+    , instanceStatusInstanceStatus :: InstanceStatusType+    }+  deriving (Show, Read, Eq)++data InstanceStatusDetail = InstanceStatusDetail+    { instanceStatusDetailName :: InstanceStatusDetailName+    , instanceStatusDetailStatus :: InstanceStatusDetailStatus+    , instanceStatusDetailImpairedSince :: Maybe UTCTime+    }+  deriving (Show, Read, Eq)++type InstanceStatusDetailName = Text++type InstanceStatusDetailStatus = Text++data InstanceStatusEvent = InstanceStatusEvent+    { instanceStatusEventCode :: InstanceStatusEventCode+    , instanceStatusEventDescription :: Text+    , instanceStatusEventNotBefore :: Maybe UTCTime+    , instanceStatusEventNotAfter :: Maybe UTCTime+    }+  deriving (Show, Read, Eq)++data InstanceStatusEventCode+    = InstanceStatusEventCodeInstanceReboot+    | InstanceStatusEventCodeInstanceStop+    | InstanceStatusEventCodeSystemReboot+    | InstanceStatusEventCodeInstanceRetirement+  deriving (Show, Read, Eq)++data InstanceStatusType = InstanceStatusType+    { instanceStatusTypeStatus :: InstanceStatusTypeStatus+    , instanceStatusTypeDetails :: [InstanceStatusDetail]+    }+  deriving (Show, Read, Eq)++data InstanceStatusTypeStatus+    = InstanceStatusTypeStatusOK+    | InstanceStatusTypeStatusImpaired+    | InstanceStatusTypeStatusInsufficientData+    | InstanceStatusTypeStatusNotApplicable+  deriving (Show, Read, Eq)++data ModifyInstanceAttributeRequest+    = ModifyInstanceAttributeRequestInstanceType Text+    | ModifyInstanceAttributeRequestKernelId Text+    | ModifyInstanceAttributeRequestRamdiskId Text+    | ModifyInstanceAttributeRequestUserData Text+    | ModifyInstanceAttributeRequestDisableApiTermination Bool+    | ModifyInstanceAttributeRequestShutdownBehavior+        ShutdownBehavior+    | ModifyInstanceAttributeRequestRootDeviceName Text+    | ModifyInstanceAttributeRequestBlockDeviceMapping+        [BlockDeviceMappingParam]+    | ModifyInstanceAttributeRequestSourceDestCheck Bool+    | ModifyInstanceAttributeRequestGroupSet [Text]+    | ModifyInstanceAttributeRequestEbsOptimized Bool+  deriving (Show, Read, Eq)+++data MonitorInstancesResponse = MonitorInstancesResponse+    { monitorInstancesResponseInstanceId :: Text+    , monitorInstancesResponseInstanceMonitoringState+        :: InstanceMonitoringState+    }+  deriving (Show, Read, Eq)++data PasswordData = PasswordData+    { passwordDataInstanceId :: Text+    , passwordDataTimestamp :: UTCTime+      -- ^ The time the data was last updated.+    , passwordDataPasswordData :: Text+    }+  deriving (Show, Read, Eq)++data Reservation = Reservation+    { reservationId :: Text+    , reservationOwnerId :: Text+    , reservationGroupSet :: [Group]+    , reservationInstanceSet :: [Instance]+    , reservationRequesterId :: Maybe Text+    }+  deriving (Show, Read, Eq)++data ResetInstanceAttributeRequest+    = ResetInstanceAttributeRequestKernel+    | ResetInstanceAttributeRequestRamdisk+    | ResetInstanceAttributeRequestSourceDestCheck+  deriving (Show, Read, Eq)++data RunInstancesRequest = RunInstancesRequest+    { runInstancesRequestImageId :: Text -- ^ Required+    , runInstancesRequestMinCount :: Int -- ^ Required+    , runInstancesRequestMaxCount :: Int -- ^ Required+    , runInstancesRequestKeyName :: Maybe Text+    , runInstancesRequestSecurityGroupIds :: [Text]+      -- ^ SecurityGroupIds (Required for VPC; optional for EC2)+    , runInstancesRequestSecurityGroups :: [Text]+      -- ^ SecurityGroups (Only for EC2; either id or name is accepted)+    , runInstancesRequestUserData :: Maybe ByteString+      -- ^ UserData (Base64-encoded MIME user data)+    , runInstancesRequestInstanceType :: Maybe Text+    , runInstancesRequestAvailabilityZone :: Maybe Text+    , runInstancesRequestPlacementGroup :: Maybe Text+    , runInstancesRequestTenancy :: Maybe Text+    , runInstancesRequestKernelId :: Maybe Text+    , runInstancesRequestRamdiskId :: Maybe Text+    , runInstancesRequestBlockDeviceMappings+        :: [BlockDeviceMappingParam]+    , runInstancesRequestMonitoringEnabled :: Maybe Bool+    , runInstancesRequestSubnetId :: Maybe Text+    , runInstancesRequestDisableApiTermination :: Maybe Bool+    , runInstancesRequestShutdownBehavior+        :: Maybe ShutdownBehavior+    , runInstancesRequestPrivateIpAddress :: Maybe IPv4+    , runInstancesRequestClientToken :: Maybe Text+    , runInstancesRequestNetworkInterfaces+        :: [NetworkInterfaceParam]+    , runInstancesRequestIamInstanceProfile+        :: Maybe IamInstanceProfile+    , runInstancesRequestEbsOptimized :: Maybe Bool+    }+  deriving (Show, Read, Eq)++deriveFromText "InstanceMonitoringState"+    ["disabled", "enabled", "pending", "disabling"]+deriveFromText "InstanceStatusEventCode"+    [ "instance-reboot"+    , "instance-stop"+    , "system-reboot"+    , "instance-retirement"+    ]+deriveFromText "InstanceStatusTypeStatus"+    ["ok", "impaired", "insufficient-data", "not-applicable"]
+ AWS/EC2/Types/KeyPair.hs view
@@ -0,0 +1,11 @@+module AWS.EC2.Types.KeyPair+    ( KeyPair(..)+    ) where++import AWS.Lib.FromText++data KeyPair = KeyPair+    { keyPairName :: Text+    , keyPairFingerprint :: Text+    }+  deriving (Show, Read, Eq)
+ AWS/EC2/Types/NetworkInterface.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.NetworkInterface+    ( NetworkInterface(..)+    , NetworkInterfaceAssociation(..)+    , NetworkInterfaceAttachment(..)+    , NetworkInterfaceParam(..)+    , NetworkInterfacePrivateIpAddress(..)+    , NetworkInterfaceStatus(..)+    , SecondaryPrivateIpAddressParam(..)+    ) where++import AWS.EC2.Types.Common (Group, ResourceTag)+import AWS.Lib.FromText++data NetworkInterface = NetworkInterface+    { networkInterfaceId :: Text+    , networkInterfaceSubnetId :: Text+    , networkInterfaceVpcId :: Text+    , networkInterfaceAvailabilityZone :: Text+    , networkInterfaceDescription :: Maybe Text+    , networkInterfaceOwnerId :: Text+    , networkInterfaceRequesterId :: Maybe Text+    , networkInterfaceRequesterManaged :: Text+    , networkInterfaceStatus :: NetworkInterfaceStatus+    , networkInterfaceMacAddress :: Text+    , networkInterfacePrivateIpAddress :: IPv4+    , networkInterfacePrivateDnsName :: Maybe Text+    , networkInterfaceSourceDestCheck :: Bool+    , networkInterfaceGroupSet :: [Group]+    , networkInterfaceAttachment+        :: Maybe NetworkInterfaceAttachment+    , networkInterfaceAssociation+        :: Maybe NetworkInterfaceAssociation+    , networkInterfaceTagSet :: [ResourceTag]+    , networkInterfacePrivateIpAddressesSet+        :: [NetworkInterfacePrivateIpAddress]+    }+  deriving (Show, Read, Eq)++data NetworkInterfaceAssociation = NetworkInterfaceAssociation+    { networkInterfaceAssociationAttachmentId :: Maybe Text+    , networkInterfaceAssociationInstanceId :: Maybe Text+    , networkInterfaceAssociationPublicIp :: IPv4+    , networkInterfaceAssociationPublicDnsName :: Maybe Text+    , networkInterfaceAssociationIpOwnerId :: Text+    , networkInterfaceAssociationId :: Maybe Text+    }+  deriving (Show, Read, Eq)++data NetworkInterfaceAttachment = NetworkInterfaceAttachment+    { networkInterfaceAttachmentId :: Text+    , networkInterfaceAttachmentInstanceId :: Maybe Text+    , networkInterfaceAttachmentInstanceOwnerId :: Text+    , networkInterfaceAttachmentDeviceIndex :: Int+    , networkInterfaceAttachmentStatus :: Text+    , networkInterfaceAttachmentAttachTime :: UTCTime+    , networkInterfaceAttachmentDeleteOnTermination :: Bool+    }+  deriving (Show, Read, Eq)++data NetworkInterfaceParam+    = NetworkInterfaceParamCreate+        { networkInterfaceParamCreateDeviceIndex :: Int+        , networkInterfaceParamCreateSubnetId :: Text+        , networkInterfaceParamCreateDescription :: Text+        , networkInterfaceParamCreatePrivateIpAddress+            :: Maybe IPv4+        , networkInterfaceParamCreatePrivateIpAddresses+            :: SecondaryPrivateIpAddressParam+        , networkInterfaceParamCreateSecurityGroupIds :: [Text]+        , networkInterfaceParamCreateDeleteOnTermination :: Bool+        }+    | NetworkInterfaceParamAttach+        { networkInterfaceParamAttachInterfaceId :: Text+        , networkInterfaceParamAttachDeviceIndex :: Int+        , networkInterfaceParamAttachDeleteOnTermination :: Bool+        }+  deriving (Show, Read, Eq)++data NetworkInterfacePrivateIpAddress+    = NetworkInterfacePrivateIpAddress+    { networkInterfacePrivateIpAddressPrivateIpAddress :: IPv4+    , networkInterfacePrivateIpAddressDnsName :: Maybe Text+    , networkInterfacePrivateIpAddressPrimary :: Bool+    , networkInterfacePrivateIpAddressAssociation+        :: Maybe NetworkInterfaceAssociation+    }+  deriving (Show, Read, Eq)++data NetworkInterfaceStatus+    = NetworkInterfaceStatusAvailable+    | NetworkInterfaceStatusInUse+    | NetworkInterfaceStatusPending+  deriving (Show, Read, Eq)++data SecondaryPrivateIpAddressParam+    = SecondaryPrivateIpAddressParamNothing+    | SecondaryPrivateIpAddressParamCount Int+    | SecondaryPrivateIpAddressParamSpecified+      { secondaryPrivateIpAddressParamSpecifiedAddresses :: [IPv4]+      , secondaryPrivateIpAddressParamSpecifiedPrimary+        :: Maybe Int+      }+  deriving (Show, Read, Eq)++deriveFromText "NetworkInterfaceStatus"+    ["available", "in-use", "pending"]
+ AWS/EC2/Types/PlacementGroup.hs view
@@ -0,0 +1,31 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.PlacementGroup+    ( PlacementGroup(..)+    , PlacementGroupState(..)+    , PlacementGroupStrategy(..)+    ) where++import AWS.Lib.FromText++data PlacementGroup = PlacementGroup+    { placementGroupGroupName :: Text+    , placementGroupStrategy :: PlacementGroupStrategy+    , placementGroupState :: PlacementGroupState+    }+  deriving (Show, Read, Eq)++data PlacementGroupState+    = PlacementGroupStatePending+    | PlacementGroupStateAvailable+    | PlacementGroupStateDeleting+    | PlacementGroupStateDeleted+  deriving (Show, Read, Eq)++data PlacementGroupStrategy+    = PlacementGroupStrategyCluster+  deriving (Show, Read, Eq)++deriveFromText "PlacementGroupState"+    ["pending", "available", "deleting", "deleted"]+deriveFromText "PlacementGroupStrategy" ["cluster"]
+ AWS/EC2/Types/Region.hs view
@@ -0,0 +1,11 @@+module AWS.EC2.Types.Region+    ( Region(..)+    ) where++import AWS.Lib.FromText++data Region = Region+    { regionName :: Text+    , regionEndpoint :: Text+    }+  deriving (Show, Read, Eq)
+ AWS/EC2/Types/Route.hs view
@@ -0,0 +1,23 @@+module AWS.EC2.Types.Route+    ( CreateRouteRequest(..)+    ) where++import AWS.Lib.FromText++data CreateRouteRequest+    = CreateRouteToGateway+        { createRouteTableId :: Text+        , createRouteDestinationCidrBlock :: AddrRange IPv4+        , createRouteGatewayId :: Text+        }+    | CreateRouteToInstance+        { createRouteTableId :: Text+        , createRouteDestinationCidrBlock :: AddrRange IPv4+        , createRouteInstanceId :: Text+        }+    | CreateRouteToNetworkInterface+        { createRouteTableId :: Text+        , createRouteDestinationCidrBlock :: AddrRange IPv4+        , createRouteNetworkInterfaceId :: Text+        }+  deriving (Show, Read, Eq)
+ AWS/EC2/Types/RouteTable.hs view
@@ -0,0 +1,63 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.RouteTable+    ( PropagatingVgw+    , Route(..)+    , RouteOrigin(..)+    , RouteState(..)+    , RouteTable(..)+    , RouteTableAssociation(..)+    ) where++import AWS.EC2.Types.Common (ResourceTag)+import AWS.Lib.FromText++type PropagatingVgw = Text++data Route = Route+    { routeDestinationCidrBlock :: Text+    , routeGatewayId :: Maybe Text+    , routeInstanceId :: Maybe Text+    , routeInstanceOwnerId :: Maybe Text+    , routeNetworkInterfaceId :: Maybe Text+    , routeState :: RouteState+    , routeOrigin :: Maybe RouteOrigin+    }+  deriving (Show, Read, Eq)++data RouteOrigin+    = RouteOriginCreateRouteTable+    | RouteOriginCreateRoute+    | RouteOriginTableEnableVgwRoutePropagation+  deriving (Show, Read, Eq)++data RouteState+    = RouteStateActive+    | RouteStateBlackhole+  deriving (Show, Read, Eq)++data RouteTable = RouteTable+    { routeTableId :: Text+    , routeTableVpcId :: Text+    , routeTableRouteSet :: [Route]+    , routeTableAssociationSet :: [RouteTableAssociation]+    , routeTablePropagatingVgw :: Maybe PropagatingVgw+    , routeTableTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data RouteTableAssociation = RouteTableAssociation+    { routeTableAssociationId :: Text+    , routeTableAssociationRouteTableId :: Text+    , routeTableAssociationSubnetId :: Maybe Text+    , routeTableAssociationMain :: Maybe Bool+    }+  deriving (Show, Read, Eq)++deriveFromText "RouteOrigin"+    [ "CreateRouteTable"+    , "CreateRoute"+    , "EnableVgwRoutePropagation"+    ]++deriveFromText "RouteState" ["active", "blackhole"]
+ AWS/EC2/Types/SecurityGroup.hs view
@@ -0,0 +1,42 @@+module AWS.EC2.Types.SecurityGroup+    ( IpPermission(..)+    , SecurityGroup(..)+    , SecurityGroupRequest(..)+    , UserIdGroupPair(..)+    ) where++import AWS.Lib.FromText+import AWS.EC2.Types.Common (ResourceTag)++data IpPermission = IpPermission+    { ipPermissionIpProtocol :: Text+    , ipPermissionFromPort :: Maybe Int+    , ipPermissionToPort :: Maybe Int+    , ipPermissionGroups :: [UserIdGroupPair]+    , ipPermissionIpRanges :: [AddrRange IPv4]+    }+  deriving (Show, Read, Eq)++data SecurityGroup = SecurityGroup+    { securityGroupOwnerId :: Text+    , securityGroupId :: Text+    , securityGroupName :: Text+    , securityGroupDescription :: Text+    , securityGroupVpcId :: Maybe Text+    , securityGroupIpPermissions :: [IpPermission]+    , securityGroupIpPermissionsEgress :: [IpPermission]+    , securityGroupTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data SecurityGroupRequest+    = SecurityGroupRequestGroupId Text+    | SecurityGroupRequestGroupName Text+  deriving (Show, Read, Eq)++data UserIdGroupPair = UserIdGroupPair+    { userIdGroupPairUserId :: Maybe Text+    , userIdGroupPairGroupId :: Text+    , userIdGroupPairGroupName :: Maybe Text+    }+  deriving (Show, Read, Eq)
+ AWS/EC2/Types/Snapshot.hs view
@@ -0,0 +1,65 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Snapshot+    ( CreateVolumePermission(..)+    , CreateVolumePermissionItem(..)+    , ResetSnapshotAttributeRequest(..)+    , Snapshot(..)+    , SnapshotAttribute(..)+    , SnapshotAttributeRequest(..)+    , SnapshotStatus(..)+    ) where++import AWS.EC2.Types.Common (ProductCode, ResourceTag)+import AWS.Lib.FromText++data CreateVolumePermission = CreateVolumePermission+    { createVolumePermissionAdd :: [CreateVolumePermissionItem]+    , createVolumePermissionRemove :: [CreateVolumePermissionItem]+    }+  deriving (Show, Read, Eq)++data CreateVolumePermissionItem = CreateVolumePermissionItem+    { createVolumePermissionItemUserId :: Maybe Text+    , createVolumePermissionItemGroup :: Maybe Text+    }+  deriving (Show, Read, Eq)++data ResetSnapshotAttributeRequest+    = ResetSnapshotAttributeRequestCreateVolumePermission+  deriving (Show, Read, Eq)++data Snapshot = Snapshot+    { snapshotId :: Text+    , snapshotVolumeId :: Maybe Text+    , snapshotStatus :: SnapshotStatus+    , snapshotStartTime :: UTCTime+    , snapshotProgress :: Maybe Text+    , snapshotOwnerId :: Text+    , snapshotVolumeSize :: Int+    , snapshotDescription :: Maybe Text+    , snapshotOwnerAlias :: Maybe Text+    , snapshotTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data SnapshotAttribute = SnapshotAttribute+    { snapshotAttributeSnapshotId :: Text+    , snapshotAttributeCreateVolumePermissionItems+        :: [CreateVolumePermissionItem]+    , snapshotAttributeProductCodes :: [ProductCode]+    }+  deriving (Show, Read, Eq)++data SnapshotAttributeRequest+    = SnapshotAttributeRequestCreateVolumePermission+    | SnapshotAttributeRequestProductCodes+  deriving (Show, Read, Eq)++data SnapshotStatus+    = SnapshotPending+    | SnapshotCompleted+    | SnapshotError+  deriving (Show, Read, Eq)++deriveFromText "SnapshotStatus" ["pending", "completed", "error"]
+ AWS/EC2/Types/Subnets.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Subnets+    ( CreateSubnetRequest(..)+    , Subnet(..)+    , SubnetState+    ) where++import AWS.EC2.Types.Common (ResourceTag)+import AWS.Lib.FromText++data CreateSubnetRequest = CreateSubnetRequest+    { createSubnetRequestVpcId :: Text+    , createSubnetRequestCidrBlock :: AddrRange IPv4+    , createSubnetRequestAvailabilityZone :: Maybe Text+    }+  deriving (Show, Read, Eq)++data Subnet = Subnet+    { subnetId :: Text+    , subnetState :: SubnetState+    , subnetVpicId :: Text+    , subnetCidrBlock :: AddrRange IPv4+    , subnetAvailableIpAddressCount :: Int+    , subnetAvailabilityZone :: Text+    , subnetDefaultForAz :: Maybe Bool+    , subnetMapPublicIpOnLaunch :: Maybe Bool+    , subnetTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data SubnetState+    = SubnetStatePending+    | SubnetStateAvailable+  deriving (Show, Read, Eq)++deriveFromText "SubnetState" ["pending", "available"]
+ AWS/EC2/Types/Tag.hs view
@@ -0,0 +1,13 @@+module AWS.EC2.Types.Tag+    ( Tag(..)+    ) where++import AWS.Lib.FromText++data Tag = Tag+    { tagResourceId :: Text+    , tagResourceType :: Text+    , tagKey :: Text+    , tagValue :: Maybe Text+    }+  deriving (Show, Read, Eq)
+ AWS/EC2/Types/VPC.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.VPC+    ( Attachment(..)+    , AttachmentState(..)+    , CreateVpnGatewayType(..)+    , CustomerGateway(..)+    , CustomerGatewayState(..)+    , DhcpConfiguration(..)+    , DhcpOptions(..)+    , DhcpValue(..)+    , InternetGateway(..)+    , InternetGatewayAttachment(..)+    , InternetGatewayAttachmentState(..)+    , Vpc(..)+    , VpcState(..)+    , VpnConnection(..)+    , VpnConnectionOptionsRequest(..)+    , VpnConnectionState(..)+    , VpnGateway(..)+    , VpnGatewayState(..)+    , VpnStaticRoute(..)+    , VpnStaticRouteSource(..)+    , VpnStaticRouteState(..)+    , VpnTunnelTelemetry(..)+    ) where++import AWS.EC2.Types.Common (ResourceTag)+import AWS.Lib.FromText++data Attachment = Attachment+    { attachmentVpcId :: Text+    , attachmentState :: AttachmentState+    }+  deriving (Show, Read, Eq)++data AttachmentState+    = AttachmentStateAttaching+    | AttachmentStateAttached+    | AttachmentStateDetaching+    | AttachmentStateDetached+  deriving (Show, Read, Eq)++data CreateVpnGatewayType = CreateVpnGatewayTypeIpsec1++data CustomerGateway = CustomerGateway+    { customerGatewayId :: Text+    , customerGatewayState :: CustomerGatewayState+    , customerGatewayType :: Text+    , customerGatewayIpAddress :: IPv4+    , customerGatewayBgpAsn :: Int+    , customerGatewayTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data CustomerGatewayState+    = CustomerGatewayStatePending+    | CustomerGatewayStateAvailable+    | CustomerGatewayStateDeleting+    | CustomerGatewayStateDeleted+  deriving (Show, Read, Eq)++data DhcpOptions = DhcpOptions+    { dhcpOptionsId :: Text+    , dhcpOptionsDhcpConfigurationSet :: [DhcpConfiguration]+    , dhcpOptionsTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data DhcpConfiguration = DhcpConfiguration+    { dhcpConfigurationKey :: Text+    , dhcpConfigurationDhcpValueSet :: [DhcpValue]+    }+  deriving (Show, Read, Eq)++data DhcpValue = DhcpValue+    { dhcpValueValue :: Text+    }+  deriving (Show, Read, Eq)++data InternetGateway = InternetGateway+    { internetGatewayInternetGatewayId :: Text+    , internetGatewayAttachmentSet :: [InternetGatewayAttachment]+    , internetGatewayTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data InternetGatewayAttachment = InternetGatewayAttachment+    { internetGatewayAttachmentVpcId :: Text+    , internetGatewayAttachmentState :: InternetGatewayAttachmentState+    }+  deriving (Show, Read, Eq)++data InternetGatewayAttachmentState+    = InternetGatewayAttachmentStateAttaching+    | InternetGatewayAttachmentStateAttached+    | InternetGatewayAttachmentStateDetaching+    | InternetGatewayAttachmentStateDetached+    | InternetGatewayAttachmentStateAvailable+  deriving (Show, Read, Eq)++data Vpc = Vpc+    { vpcId :: Text+    , vpcState :: VpcState+    , vpcCidrBlock :: AddrRange IPv4+    , vpcDhcpOptionsId :: Text+    , vpcTagSet :: [ResourceTag]+    , vpcInstanceTenancy :: Text+    , vpcIsDefault :: Maybe Text+    }+  deriving (Show, Read, Eq)++data VpcState+    = VpcStatePending+    | VpcStateAvailable+  deriving (Show, Read, Eq)++data VpnConnection = VpnConnection+    { vpnConnectionId :: Text+    , vpnConnectionState :: VpnConnectionState+    , vpnConnectionCustomerGatewayConfiguration :: Maybe Text+    , vpnConnectionType :: Maybe Text+    , vpnConnectionCustomerGatewayId :: Text+    , vpnConnectionVpnGatewayId :: Text+    , vpnConnectionTagSet :: [ResourceTag]+    , vpnConnectionVgwTelemetry :: [VpnTunnelTelemetry]+    , vpnConnectionOptions :: Maybe VpnConnectionOptionsRequest+    , vpnConnectionRoutes :: Maybe VpnStaticRoute+    }+  deriving (Show, Read, Eq)++data VpnConnectionOptionsRequest = VpnConnectionOptionsRequest+    { vpnConnectionOptionsRequestStaticRoutesOnly :: Bool+    }+  deriving (Show, Read, Eq)++data VpnConnectionState+    = VpnConnectionStatePending+    | VpnConnectionStateAvailable+    | VpnConnectionStateDeleting+    | VpnConnectionStateDeleted+  deriving (Show, Read, Eq)++data VpnGateway = VpnGateway+    { vpnGatewayId :: Text+    , vpnGatewayState :: VpnGatewayState+    , vpnGatewayType :: Text+    , vpnGatewayAvailabilityZone :: Maybe Text+    , vpnGatewayAttachments :: [Attachment]+    , vpnGatewayTagSet :: [ResourceTag]+    }+  deriving (Show, Read, Eq)++data VpnGatewayState+    = VpnGatewayStatePending+    | VpnGatewayStateAvailable+    | VpnGatewayStateDeleting+    | VpnGatewayStateDeleted+  deriving (Show, Read, Eq)++data VpnStaticRoute = VpnStaticRoute+    { vpnStaticRouteDestinationCidrBlock :: Text+    , vpnStaticRouteSource :: VpnStaticRouteSource+    , vpnStaticRouteState :: VpnStaticRouteState+    }+  deriving (Show, Read, Eq)++data VpnStaticRouteSource = VpnStaticRouteSourceStatic+  deriving (Show, Read, Eq)++data VpnStaticRouteState+    = VpnStaticRouteStatePending+    | VpnStaticRouteStateAvailable+    | VpnStaticRouteStateDeleting+    | VpnStaticRouteStateDeleted+  deriving (Show, Read, Eq)++data VpnTunnelTelemetry = VpnTunnelTelemetry+    { vpnTunnelTelemetryOutsideIpAddress :: IPv4+    , vpnTunnelTelemetryStatus :: VpnTunnelTelemetryStatus+    , vpnTunnelTelemetryLastStatusChange :: UTCTime+    , vpnTunnelTelemetryStatusMessage :: Text+    , vpnTunnelTelemetryAcceptRouteCount :: Int+    }+  deriving (Show, Read, Eq)++data VpnTunnelTelemetryStatus+    = VpnTunnelTelemetryStatusUp+    | VpnTunnelTelemetryStatusDown+  deriving (Show, Read, Eq)++deriveFromText "AttachmentState"+    ["attaching", "attached", "detaching", "detached"]+deriveFromText "CustomerGatewayState"+    ["pending", "available", "deleting", "deleted"]+deriveFromText "InternetGatewayAttachmentState"+    ["attaching", "attached", "detaching", "detached", "available"]+deriveFromText "VpcState" ["pending", "available"]+deriveFromText "VpnConnectionState"+    ["pending", "available", "deleting", "deleted"]+deriveFromText "VpnGatewayState"+    ["pending", "available", "deleting", "deleted"]+deriveFromText "VpnStaticRouteSource" ["Static"]+deriveFromText "VpnStaticRouteState"+    ["pending", "available", "deleting", "deleted"]+deriveFromText "VpnTunnelTelemetryStatus" ["UP", "DOWN"]
+ AWS/EC2/Types/Volume.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.EC2.Types.Volume+    ( AttachmentSetItemResponse(..)+    , AttachmentSetItemResponseStatus(..)+    , CreateVolumeRequest(..)+    , Volume(..)+    , VolumeAttribute(..)+    , VolumeAttributeRequest(..)+    , VolumeState(..)+    , VolumeStatus(..)+    , VolumeStatusAction(..)+    , VolumeStatusDetail(..)+    , VolumeStatusEvent(..)+    , VolumeStatusInfo(..)+    , VolumeStatusInfoStatus(..)+    , VolumeType(..)+    ) where++import AWS.EC2.Types.Common (ProductCode, ResourceTag)+import AWS.Lib.FromText++data AttachmentSetItemResponse = AttachmentSetItemResponse+    { attachmentSetItemResponseVolumeId :: Text+    , attachmentSetItemResponseInstanceId :: Text+    , attachmentSetItemResponseDevice :: Text+    , attachmentSetItemResponseStatus+        :: AttachmentSetItemResponseStatus+    , attachmentSetItemResponseAttachTime :: UTCTime+    , attachmentSetItemResponseDeleteOnTermination :: Maybe Bool+    }+  deriving (Show, Read, Eq)++data AttachmentSetItemResponseStatus+    = AttachmentSetItemResponseStatusAttaching+    | AttachmentSetItemResponseStatusAttached+    | AttachmentSetItemResponseStatusDetaching+    | AttachmentSetItemResponseStatusDetached+  deriving (Show, Read, Eq)++data CreateVolumeRequest+    = CreateNewVolume+        { createNewVolumeSize :: Int+        , createNewVolumeAvailabilityZone :: Text+        , createNewVolumeVolumeType :: Maybe VolumeType+        }+    | CreateFromSnapshot+        { createFromSnapshotSnapshotId :: Text+        , createFromSnapshotAvailabilityZone :: Text+        , createFromSnapshotSize :: Maybe Int+        , createFromSnapshotVolumeType :: Maybe VolumeType+        }+  deriving (Show, Read, Eq)++data Volume = Volume+    { volumeId :: Text+    , volumeSize :: Int+    , volumeSnapshotId :: Maybe Text+    , volumeAvailabilityZone :: Text+    , volumeStatus :: VolumeState+    , volumeCreateTime :: UTCTime+    , volumeAttachmentSet :: [AttachmentSetItemResponse]+    , volumeTagSet :: [ResourceTag]+    , volumeVolumeType :: VolumeType+    }+  deriving (Show, Read, Eq)++data VolumeAttribute+    = VolumeAttributeAutoEnableIO Bool+    | VolumeAttributeProductCodes [ProductCode]+  deriving (Show, Read, Eq)++data VolumeAttributeRequest+    = VolumeAttributeRequestAutoEnableIO+    | VolumeAttributeRequestProductCodes+  deriving (Show, Read, Eq)++data VolumeState+    = VolumeStateCreating+    | VolumeStateAvailable+    | VolumeStateInUse+    | VolumeStateDeleting+    | VolumeStateDeleted+    | VolumeStateError+  deriving (Show, Read, Eq)++data VolumeStatus = VolumeStatus+    { volumeStatusVolumeId :: Text+    , volumeStatusAvailabilityZone :: Text+    , volumeStatusVolumeStatus :: VolumeStatusInfo+    , volumeStatusEventSet :: [VolumeStatusEvent]+    , volumeStatusActionSet :: [VolumeStatusAction]+    }+  deriving (Show, Read, Eq)++data VolumeStatusAction = VolumeStatusAction+    { volumeStatusActionCode :: Text+    , volumeStatusActionEventType :: Text+    , volumeStatusActionEventId :: Text+    , volumeStatusActionDescription :: Text+    }+  deriving (Show, Read, Eq)++data VolumeStatusDetail = VolumeStatusDetail+    { volumeStatusDetailName :: Text+    , volumeStatusDetailStatus :: Text+    }+  deriving (Show, Read, Eq)++data VolumeStatusEvent = VolumeStatusEvent+    { volumeStatusEventType :: Text+    , volumeStatusEventId :: Text+    , volumeStatusEventDescription :: Text+    , volumeStatusEventNotBefore :: Maybe UTCTime+    , volumeStatusEventNotAfter :: Maybe UTCTime+    }+  deriving (Show, Read, Eq)++data VolumeStatusInfo = VolumeStatusInfo+    { volumeStatusInfoStatus :: VolumeStatusInfoStatus+    , volumeStatusInfoDetails :: [VolumeStatusDetail]+    }+  deriving (Show, Read, Eq)++data VolumeStatusInfoStatus+    = VolumeStatusInfoStatusOK+    | VolumeStatusInfoStatusImpaired+    | VolumeStatusInfoStatusInsufficientData+  deriving (Show, Read, Eq)++data VolumeType+    = VolumeTypeStandard+    | VolumeTypeIO1 Int+  deriving (Show, Read, Eq)++deriveFromText "AttachmentSetItemResponseStatus"+    ["attaching", "attached", "detaching", "detached"]+deriveFromText "VolumeState"+    [ "creating"+    , "available"+    , "in-use"+    , "deleting"+    , "deleted"+    , "error"+    ]+deriveFromText "VolumeStatusInfoStatus"+    ["ok", "impaired", "insufficient-data"]
AWS/ELB/LoadBalancer.hs view
@@ -1,9 +1,17 @@-{-# LANGUAGE FlexibleContexts, RankNTypes #-}+{-# LANGUAGE FlexibleContexts, RankNTypes, RecordWildCards #-}  module AWS.ELB.LoadBalancer     ( describeLoadBalancers     , createLoadBalancer     , deleteLoadBalancer+    , attachLoadBalancerToSubnets+    , detachLoadBalancerFromSubnets+    , applySecurityGroupsToLoadBalancer+    , registerInstancesWithLoadBalancer+    , deregisterInstancesFromLoadBalancer+    , setLoadBalancerListenerSSLCertificate+    , createLoadBalancerListeners+    , deleteLoadBalancerListeners     ) where  import Data.Text (Text)@@ -61,8 +69,7 @@             <*> getT "InstancePort"             )         )-    <*> members "Instances"-        (Instance <$> getT "InstanceId")+    <*> members "Instances" sinkInstance     <*> element "Policies"         (Policies         <$> members "AppCookieStickinessPolicies"@@ -94,6 +101,9 @@         )     <*> members "Subnets" text +sinkInstance :: MonadThrow m => GLSink Event m Instance+sinkInstance = Instance <$> getT "InstanceId"+ createLoadBalancer     :: (MonadBaseControl IO m, MonadResource m)     => Text -- ^ LoadBalancerName@@ -131,3 +141,121 @@     getT_ "DeleteLoadBalancerResult"   where     params = ["LoadBalancerName" |= name]++attachLoadBalancerToSubnets+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The name associated with the LoadBalancer.+    -> [Text] -- ^ A list of subnet IDs to add for the LoadBalancer.+    -> ELB m [Text] -- ^ A list of subnet IDs added for the LoadBalancer.+attachLoadBalancerToSubnets name subnets =+    elbQuery "AttachLoadBalancerToSubnets" params $ members "Subnets" text+  where+    params =+        [ "LoadBalancerName" |= name+        , "Subnets.member" |.#= subnets+        ]++detachLoadBalancerFromSubnets+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The name associated with the LoadBalancer to be detached.+    -> [Text] -- ^ A list of subnet IDs to remove from the set of configured subnets for the LoadBalancer.+    -> ELB m [Text] -- ^ A list of subnet IDs removed from the configured set of subnets for the LoadBalancer.+detachLoadBalancerFromSubnets name subnets =+    elbQuery "DetachLoadBalancerFromSubnets" params $ members "Subnets" text+  where+    params =+        [ "LoadBalancerName" |= name+        , "Subnets.member" |.#= subnets+        ]++applySecurityGroupsToLoadBalancer+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The name associated with the LoadBalancer.+    -> [Text] -- ^ A list of security group IDs to associate with your LoadBalancer in VPC.+    -> ELB m [Text] -- ^ A list of security group IDs associated with your LoadBalancer.+applySecurityGroupsToLoadBalancer name sgs =+    elbQuery "ApplySecurityGroupsToLoadBalancer" params $ members "SecurityGroups" text+  where+    params =+        [ "LoadBalancerName" |= name+        , "SecurityGroups.member" |.#= sgs+        ]++registerInstancesWithLoadBalancer+    :: (MonadBaseControl IO m, MonadResource m)+    => [Text] -- ^ A list of instance IDs that should be registered with the LoadBalancer.+    -> Text -- ^ The name associated with the LoadBalancer.+    -> ELB m [Instance]+registerInstancesWithLoadBalancer insts name =+    elbQuery "RegisterInstancesWithLoadBalancer" params $ members "Instances" sinkInstance+  where+    params =+        [ "Instances.member" |.#. map toInstanceParam insts+        , "LoadBalancerName" |= name+        ]++toInstanceParam :: Text -> [QueryParam]+toInstanceParam inst = ["InstanceId" |= inst ]++deregisterInstancesFromLoadBalancer+    :: (MonadBaseControl IO m, MonadResource m)+    => [Text] -- ^ A list of EC2 instance IDs consisting of all instances to be deregistered.+    -> Text -- ^ A list of EC2 instance IDs consisting of all instances to be deregistered.+    -> ELB m [Instance]+deregisterInstancesFromLoadBalancer insts name =+    elbQuery "DeregisterInstancesFromLoadBalancer" params $ members "Instances" sinkInstance+  where+    params =+        [ "Instances.member" |.#. map toInstanceParam insts+        , "LoadBalancerName" |= name+        ]++setLoadBalancerListenerSSLCertificate+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The name of the the LoadBalancer.+    -> Int -- ^ The port that uses the specified SSL certificate.+    -> Text -- ^ The ID of the SSL certificate chain to use.+    -> ELB m ()+setLoadBalancerListenerSSLCertificate lb port cert =+    elbQuery "SetLoadBalancerListenerSSLCertificate" params $ getT_ "SetLoadBalancerListenerSSLCertificateResult"+  where+    params =+        [ "LoadBalancerName" |= lb+        , "LoadBalancerPort" |= toText port+        , "SSLCertificateId" |= cert+        ]++createLoadBalancerListeners+    :: (MonadBaseControl IO m, MonadResource m)+    => [Listener] -- ^ A list of Listeners+    -> Text -- ^ The name of the LoadBalancer.+    -> ELB m ()+createLoadBalancerListeners listeners lb =+    elbQuery "CreateLoadBalancerListeners" params $ getT_ "CreateLoadBalancerListenersResult"+  where+    params =+        [ "Listeners.member" |.#. map toListenerParam listeners+        , "LoadBalancerName" |= lb+        ]++toListenerParam :: Listener -> [QueryParam]+toListenerParam Listener{..} =+    [ "Protocol" |= listenerProtocol+    , "LoadBalancerPort" |= toText listenerLoadBalancerPort+    , "InstanceProtocol" |= listenerInstanceProtocol+    , "SSLCertificateId" |=? listenerSSLCertificateId+    , "InstancePort" |= toText listenerInstancePort+    ]++deleteLoadBalancerListeners+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The mnemonic name associated with the LoadBalancer.+    -> [Int] -- ^ The client port number(s) of the LoadBalancerListener(s) to be removed.+    -> ELB m ()+deleteLoadBalancerListeners lb ports =+    elbQuery "DeleteLoadBalancerListeners" params $ getT_ "DeleteLoadBalancerListenersResult"+  where+    params =+        [ "LoadBalancerName" |= lb+        , "LoadBalancerPorts.member" |.#= map toText ports+        ]
AWS/ELB/Types.hs view
@@ -1,8 +1,7 @@ module AWS.ELB.Types     where -import Data.Text (Text)-import Data.Time (UTCTime)+import AWS.Lib.FromText  data LoadBalancer = LoadBalancer     { loadBalancerSecurityGroups :: [Text]
AWS/Lib/FromText.hs view
@@ -1,7 +1,16 @@ {-# LANGUAGE RankNTypes, OverloadedStrings, TemplateHaskell, FlexibleInstances #-}  module AWS.Lib.FromText-    where+    ( FromText(..)+    , deriveFromText+    -- re-exports+    , monadThrow+    , IPv4+    , AddrRange+    , Text+    , UTCTime+    , AWSException(..)+    ) where  import Control.Applicative ((<$>)) import Control.Monad
AWS/Lib/Parser.hs view
@@ -21,7 +21,6 @@     ) where  import Data.XML.Types (Event(..), Name(..))-import Data.Text (Text) import Data.ByteString (ByteString) import Data.Conduit import qualified Data.Conduit.List as CL
AWS/RDS.hs view
@@ -9,6 +9,8 @@     , module AWS.RDS.DBInstance       -- * DBSnapshot     , module AWS.RDS.DBSnapshot+      -- * Event+    , module AWS.RDS.Event     ) where  import Data.Text (Text)@@ -25,6 +27,7 @@ import AWS.RDS.Internal import AWS.RDS.DBInstance import AWS.RDS.DBSnapshot+import AWS.RDS.Event  initialRDSContext :: HTTP.Manager -> AWSContext initialRDSContext mgr = AWSContext
AWS/RDS/DBInstance.hs view
@@ -14,7 +14,7 @@ import AWS.Lib.Query import AWS.Lib.Parser -import AWS.RDS.Types+import AWS.RDS.Types hiding (Event) import AWS.RDS.Internal  describeDBInstances@@ -39,8 +39,13 @@     DBInstance     <$> getT "Iops"     <*> getT "BackupRetentionPeriod"-    <*> getT "MultiAZ"     <*> getT "DBInstanceStatus"+    <*> getT "MultiAZ"+    <*> elements' "VpcSecurityGroups" "VpcSecurityGroupMembership"+        (VpcSecurityGroupMembership+        <$> getT "Status"+        <*> getT "VpcSecurityGroupId"+        )     <*> getT "DBInstanceIdentifier"     <*> getT "PreferredBackupWindow"     <*> getT "PreferredMaintenanceWindow"@@ -85,13 +90,14 @@         )     <*> getT "EngineVersion"     <*> getT "ReadReplicaSourceDBInstanceIdentifier"+    <*> getT "PubliclyAccessible"     <*> elements "DBSecurityGroup"         (DBSecurityGroupMembership         <$> getT "Status"         <*> getT "DBSecurityGroupName"         )-    <*> getT "DBName"     <*> getT "AutoMinorVersionUpgrade"+    <*> getT "DBName"     <*> getT "InstanceCreateTime"     <*> getT "AllocatedStorage"     <*> getT "DBInstanceClass"
AWS/RDS/DBSnapshot.hs view
@@ -15,7 +15,7 @@ import AWS.Lib.Query import AWS.Lib.Parser -import AWS.RDS.Types+import AWS.RDS.Types hiding (Event) import AWS.RDS.Internal  describeDBSnapshots
+ AWS/RDS/Event.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE FlexibleContexts #-}+module AWS.RDS.Event+    ( describeEvents+    ) where++import Control.Applicative ((<$>), (<*>))+import Data.Conduit+import Data.Text (Text)+import Data.Time (UTCTime)+import qualified Data.XML.Types as XML++import AWS.Lib.Parser+import AWS.Lib.Query+import AWS.RDS.Internal+import AWS.RDS.Types+import AWS.Util (toText)++describeEvents+    :: (MonadBaseControl IO m, MonadResource m)+    => Maybe Text -- ^ SourceIdentifier+    -> Maybe SourceType -- ^ SourceType+    -> Maybe Int -- ^ Duration+    -> Maybe UTCTime -- ^ StartTime+    -> Maybe UTCTime -- ^ EndTime+    -> [Text] -- ^ EventCategories.member+    -> Maybe Text -- ^ Marker+    -> Maybe Int -- ^ MaxRecords+    -> RDS m [Event]+describeEvents sid stype d start end categories marker maxRecords =+    rdsQuery "DescribeEvents" params $+        elements "Event" eventSink+  where+    params =+        [ "SourceIdentifier" |=? sid+        , "SourceType" |=? sourceTypeToText <$> stype+        , "Duration" |=? toText <$> d+        , "StartTime" |=? toText <$> start+        , "EndTime" |=? toText <$> end+        , "EventCategories" |.+ "member" |.#= categories+        , "Marker" |=? marker+        , "MaxRecords" |=? toText <$> maxRecords+        ]++sourceTypeToText :: SourceType -> Text+sourceTypeToText SourceTypeDBInstance = "db-instance"+sourceTypeToText SourceTypeDBParameterGroup = "db-parameter-group"+sourceTypeToText SourceTypeDBSecurityGroup = "db-security-group"+sourceTypeToText SourceTypeDBSnapshot = "db-snapshot"++eventSink+    :: MonadThrow m+    => GLSink XML.Event m Event+eventSink = Event+    <$> getT "Message"+    <*> getT "SourceType"+    <*> listConsumer "EventCategories" (getT "EventCategory")+    <*> getT "Date"+    <*> getT "SourceIdentifier"
AWS/RDS/Internal.hs view
@@ -13,16 +13,8 @@ import AWS.Lib.Query import AWS.Lib.Parser -#ifdef DEBUG-import Control.Monad.IO.Class (liftIO)-import qualified Control.Monad.Reader as Reader-import qualified Control.Monad.State as State-import Control.Monad.Trans.Class (lift)-import qualified Data.Conduit.Binary as CB-#endif- apiVersion :: ByteString-apiVersion = "2012-09-17"+apiVersion = "2013-01-10"  type RDS m a = AWS AWSContext m a @@ -38,20 +30,20 @@     => Text     -> GLSink Event m a     -> GLSink Event m [a]-elements name f = element (name <> "s") $ listConsumer name f+elements name = elements' (name <> "s") name +elements' :: MonadThrow m+    => Text+    -> Text+    -> GLSink Event m a+    -> GLSink Event m [a]+elements' setName itemName = element setName . listConsumer itemName+ #ifdef DEBUG rdsQueryDebug     :: (MonadResource m, MonadBaseControl IO m)     => ByteString     -> [QueryParam]     -> RDS m a-rdsQueryDebug action params = do-    cred <- Reader.ask-    ctx <- State.get-    lift $ do-        liftIO $ mapM_ putStrLn $ showUnitParams params-        response <- requestQuery cred ctx action params apiVersion sinkError-        (res, _) <- unwrapResumable response-        res $$ CB.sinkFile "debug.txt" >>= fail "debug"+rdsQueryDebug = debugQuery apiVersion #endif
AWS/RDS/Types.hs view
@@ -1,14 +1,15 @@+{-# LANGUAGE TemplateHaskell #-} module AWS.RDS.Types     where -import Data.Text (Text)-import Data.Time (UTCTime)+import AWS.Lib.FromText  data DBInstance = DBInstance     { dbiIops :: Maybe Int     , dbiBackupRetentionPeriod :: Int-    , dbiMultiAZ :: Bool     , dbiDBInstanceStatus :: Text+    , dbiMultiAZ :: Bool+    , dbiVpcSecurityGroups :: [VpcSecurityGroupMembership]     , dbiDBInstanceIdentifier :: Text     , dbiPreferredBackupWindow :: Text     , dbiPreferredMaintenanceWindow :: Text@@ -25,9 +26,10 @@     , dbiEndpoint :: Maybe Endpoint     , dbiEngineVersion :: Text     , dbiReadReplicaSourceDBInstanceIdentifier :: Maybe Text+    , dbiPubliclyAccessible :: Bool     , dbiSecurityGroups :: [DBSecurityGroupMembership]-    , dbiDBName :: Maybe Text     , dbiAutoMinorVersionUpgrade :: Bool+    , dbiDBName :: Maybe Text     , dbiInstanceCreateTime :: Maybe UTCTime     , dbiAllocatedStorage :: Int -- ^ storage size in gigabytes     , dbiDBInstanceClass :: Text@@ -35,6 +37,12 @@     }   deriving (Show, Eq) +data VpcSecurityGroupMembership = VpcSecurityGroupMembership+    { vpcSecurityGroupMembershipStatus :: Text+    , vpcSecurityGroupMembershipVpcSecurityGroupId :: Text+    }+  deriving (Show, Eq)+ data DBParameterGroupStatus = DBParameterGroupStatus     { dbpgsParameterApplyStatus :: Text     , dbpgsDBParameterGroupName :: Text@@ -110,3 +118,21 @@     , dbsMasterUsername :: Text     }   deriving (Show, Eq)++data Event = Event+    { eventMessage :: Text+    , eventSourceType :: SourceType+    , eventEventCategories :: [Text]+    , eventDate :: UTCTime+    , eventSourceIdentifier :: Text+    }+  deriving (Show, Eq)++data SourceType+    = SourceTypeDBInstance+    | SourceTypeDBParameterGroup+    | SourceTypeDBSecurityGroup+    | SourceTypeDBSnapshot+  deriving (Show, Read, Eq)++deriveFromText "SourceType" ["db-instance", "db-parameter-group", "db-security-group", "db-snapshot"]
Tests/Main.hs view
@@ -29,10 +29,12 @@     runNetworkInterfaceTests     runNetworkInterfaceAttributeTests     runPlacementGroupTests+    runConversionTaskTests      -- RDS Tests     runDBInstanceTests     runDBSnapshotTests+    runEventTests      -- ELB Tests     runLoadBalancerTests
aws-sdk.cabal view
@@ -1,5 +1,5 @@ name:                aws-sdk-version:             0.9.2.1+version:             0.9.3.0 synopsis:            AWS SDK for Haskell description: AWS (Amazon Web Services) sdk for Haskell.              .@@ -36,6 +36,7 @@                    , AWS.EC2.Internal                    , AWS.EC2.Address                    , AWS.EC2.AvailabilityZone+                   , AWS.EC2.ConversionTask                    , AWS.EC2.Image                    , AWS.EC2.Instance                    , AWS.EC2.Volume@@ -54,12 +55,32 @@                    , AWS.EC2.Tag                    , AWS.EC2.Params                    , AWS.EC2.PlacementGroup+                   , AWS.EC2.Types.Acl+                   , AWS.EC2.Types.Address+                   , AWS.EC2.Types.AvailabilityZone+                   , AWS.EC2.Types.ConversionTask+                   , AWS.EC2.Types.Common+                   , AWS.EC2.Types.Image+                   , AWS.EC2.Types.Instance+                   , AWS.EC2.Types.KeyPair+                   , AWS.EC2.Types.NetworkInterface+                   , AWS.EC2.Types.PlacementGroup+                   , AWS.EC2.Types.Region+                   , AWS.EC2.Types.Route+                   , AWS.EC2.Types.RouteTable+                   , AWS.EC2.Types.SecurityGroup+                   , AWS.EC2.Types.Snapshot+                   , AWS.EC2.Types.Subnets+                   , AWS.EC2.Types.Tag+                   , AWS.EC2.Types.VPC+                   , AWS.EC2.Types.Volume                    , AWS.Lib.FromText                    , AWS.Lib.Parser                    , AWS.Lib.Query                    , AWS.RDS.Internal                    , AWS.RDS.DBInstance                    , AWS.RDS.DBSnapshot+                   , AWS.RDS.Event                    , AWS.ELB.Internal                    , AWS.ELB.LoadBalancer                    , AWS.CloudWatch.Internal