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 +2/−0
- AWS/Class.hs +1/−1
- AWS/CloudWatch/Types.hs +1/−2
- AWS/EC2.hs +3/−0
- AWS/EC2/ConversionTask.hs +158/−0
- AWS/EC2/Query.hs +2/−2
- AWS/EC2/Types.hs +60/−1413
- AWS/EC2/Types/Acl.hs +74/−0
- AWS/EC2/Types/Address.hs +65/−0
- AWS/EC2/Types/AvailabilityZone.hs +16/−0
- AWS/EC2/Types/Common.hs +114/−0
- AWS/EC2/Types/ConversionTask.hs +109/−0
- AWS/EC2/Types/Image.hs +151/−0
- AWS/EC2/Types/Instance.hs +366/−0
- AWS/EC2/Types/KeyPair.hs +11/−0
- AWS/EC2/Types/NetworkInterface.hs +108/−0
- AWS/EC2/Types/PlacementGroup.hs +31/−0
- AWS/EC2/Types/Region.hs +11/−0
- AWS/EC2/Types/Route.hs +23/−0
- AWS/EC2/Types/RouteTable.hs +63/−0
- AWS/EC2/Types/SecurityGroup.hs +42/−0
- AWS/EC2/Types/Snapshot.hs +65/−0
- AWS/EC2/Types/Subnets.hs +37/−0
- AWS/EC2/Types/Tag.hs +13/−0
- AWS/EC2/Types/VPC.hs +206/−0
- AWS/EC2/Types/Volume.hs +147/−0
- AWS/ELB/LoadBalancer.hs +131/−3
- AWS/ELB/Types.hs +1/−2
- AWS/Lib/FromText.hs +10/−1
- AWS/Lib/Parser.hs +0/−1
- AWS/RDS.hs +3/−0
- AWS/RDS/DBInstance.hs +9/−3
- AWS/RDS/DBSnapshot.hs +1/−1
- AWS/RDS/Event.hs +58/−0
- AWS/RDS/Internal.hs +10/−18
- AWS/RDS/Types.hs +30/−4
- Tests/Main.hs +2/−0
- aws-sdk.cabal +22/−1
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