packages feed

aws-sdk 0.6.0.0 → 0.7.0.0

raw patch · 29 files changed

+1170/−651 lines, 29 filesdep +HUnitdep +aws-sdkdep ~conduitPVP ok

version bump matches the API change (PVP)

Dependencies added: HUnit, aws-sdk

Dependency ranges changed: conduit

API changes (from Hackage documentation)

- AWS.EC2: AAEC2Instance :: Text -> Text -> AssociateAddressRequest
- AWS.EC2: AAVPCInstance :: Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> AssociateAddressRequest
- AWS.EC2: DAEC2 :: Text -> DisassociateAddressRequest
- AWS.EC2: DAVPC :: Text -> DisassociateAddressRequest
- AWS.EC2: aaec2InstanceId :: AssociateAddressRequest -> Text
- AWS.EC2: aaec2PublicIp :: AssociateAddressRequest -> Text
- AWS.EC2: aavpcAllocationId :: AssociateAddressRequest -> Text
- AWS.EC2: aavpcAllowReassociation :: AssociateAddressRequest -> Maybe Bool
- AWS.EC2: aavpcInstanceId :: AssociateAddressRequest -> Maybe Text
- AWS.EC2: aavpcNetworkInterfaceId :: AssociateAddressRequest -> Maybe Text
- AWS.EC2: aavpcPrivateIpAddress :: AssociateAddressRequest -> Maybe Text
- AWS.EC2.Types: AAEC2Instance :: Text -> Text -> AssociateAddressRequest
- AWS.EC2.Types: AAVPCInstance :: Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> AssociateAddressRequest
- AWS.EC2.Types: AllocateAddressResponse :: Text -> AddressDomain -> Maybe Text -> AllocateAddressResponse
- AWS.EC2.Types: AsirAttached :: AttachmentSetItemResponseStatus
- AWS.EC2.Types: AsirAttaching :: AttachmentSetItemResponseStatus
- AWS.EC2.Types: AsirDetached :: AttachmentSetItemResponseStatus
- AWS.EC2.Types: AsirDetaching :: AttachmentSetItemResponseStatus
- AWS.EC2.Types: BlockDeviceMappingParamEBS :: Text -> Maybe Bool -> EbsSource -> Maybe Bool -> Maybe VolumeType -> BlockDeviceMappingParam
- AWS.EC2.Types: DAEC2 :: Text -> DisassociateAddressRequest
- AWS.EC2.Types: DAVPC :: Text -> DisassociateAddressRequest
- AWS.EC2.Types: Devpay :: ProductCodeType
- AWS.EC2.Types: EBS :: RootDeviceType
- AWS.EC2.Types: EbsSnapshotId :: Text -> EbsSource
- AWS.EC2.Types: EbsVolumeSize :: Int -> EbsSource
- AWS.EC2.Types: GroupId :: Text -> SecurityGroupRequest
- AWS.EC2.Types: GroupName :: Text -> SecurityGroupRequest
- AWS.EC2.Types: HVM :: VirtualizationType
- AWS.EC2.Types: IABlockDeviceMapping :: [InstanceBlockDeviceMapping] -> InstanceAttribute
- AWS.EC2.Types: IADisableApiTermination :: Bool -> InstanceAttribute
- AWS.EC2.Types: IAEbsOptimized :: Bool -> InstanceAttribute
- AWS.EC2.Types: IAGroupSet :: [Text] -> InstanceAttribute
- AWS.EC2.Types: IAInstanceType :: Text -> InstanceAttribute
- AWS.EC2.Types: IAKernelId :: (Maybe Text) -> InstanceAttribute
- AWS.EC2.Types: IAProductCodes :: [ProductCode] -> InstanceAttribute
- AWS.EC2.Types: IARBlockDeviceMapping :: InstanceAttributeRequest
- AWS.EC2.Types: IARDisableApiTermination :: InstanceAttributeRequest
- AWS.EC2.Types: IAREbsOptimized :: InstanceAttributeRequest
- AWS.EC2.Types: IARGroupSet :: InstanceAttributeRequest
- AWS.EC2.Types: IARInstanceType :: InstanceAttributeRequest
- AWS.EC2.Types: IARKernelId :: InstanceAttributeRequest
- AWS.EC2.Types: IARProductCodes :: InstanceAttributeRequest
- AWS.EC2.Types: IARRamdiskId :: InstanceAttributeRequest
- AWS.EC2.Types: IARRootDeviceName :: InstanceAttributeRequest
- AWS.EC2.Types: IARShutdownBehavior :: InstanceAttributeRequest
- AWS.EC2.Types: IARSourceDestCheck :: InstanceAttributeRequest
- AWS.EC2.Types: IARUserData :: InstanceAttributeRequest
- AWS.EC2.Types: IARamdiskId :: (Maybe Text) -> InstanceAttribute
- AWS.EC2.Types: IARootDeviceName :: (Maybe Text) -> InstanceAttribute
- AWS.EC2.Types: IAShutdownBehavior :: ShutdownBehavior -> InstanceAttribute
- AWS.EC2.Types: IASourceDestCheck :: (Maybe Bool) -> InstanceAttribute
- AWS.EC2.Types: IAUserData :: (Maybe Text) -> InstanceAttribute
- AWS.EC2.Types: IO1 :: Int -> VolumeType
- AWS.EC2.Types: ImageAvailable :: ImageState
- AWS.EC2.Types: ImageFailed :: ImageState
- AWS.EC2.Types: ImagePending :: ImageState
- AWS.EC2.Types: InstanceEbsBlockDevice :: Text -> AttachmentSetItemResponseStatus -> UTCTime -> Bool -> InstanceEbsBlockDevice
- AWS.EC2.Types: InstanceReboot :: InstanceStatusEventCode
- AWS.EC2.Types: InstanceRetirement :: InstanceStatusEventCode
- AWS.EC2.Types: InstanceStatusImpaired :: InstanceStatusTypeStatus
- AWS.EC2.Types: InstanceStatusInsufficientData :: InstanceStatusTypeStatus
- AWS.EC2.Types: InstanceStatusNotApplicable :: InstanceStatusTypeStatus
- AWS.EC2.Types: InstanceStatusOK :: InstanceStatusTypeStatus
- AWS.EC2.Types: InstanceStop :: InstanceStatusEventCode
- AWS.EC2.Types: InstanceStore :: RootDeviceType
- AWS.EC2.Types: Kernel :: ImageType
- AWS.EC2.Types: MIAPBlockDeviceMapping :: [BlockDeviceMappingParam] -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPDisableApiTermination :: Bool -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPEbsOptimized :: Bool -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPGroupSet :: [Text] -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPInstanceType :: Text -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPKernelId :: Text -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPRamdiskId :: Text -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPRootDeviceName :: Text -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPShutdownBehavior :: ShutdownBehavior -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPSourceDestCheck :: Bool -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: MIAPUserData :: Text -> ModifyInstanceAttributeRequest
- AWS.EC2.Types: Machine :: ImageType
- AWS.EC2.Types: Marketplace :: ProductCodeType
- AWS.EC2.Types: OVM :: Hypervisor
- AWS.EC2.Types: Other :: Platform
- AWS.EC2.Types: Paravirtual :: VirtualizationType
- AWS.EC2.Types: Pending :: InstanceState
- AWS.EC2.Types: RIAPKernel :: ResetInstanceAttributeRequest
- AWS.EC2.Types: RIAPRamdisk :: ResetInstanceAttributeRequest
- AWS.EC2.Types: RIAPSourceDestCheck :: ResetInstanceAttributeRequest
- AWS.EC2.Types: RamDisk :: ImageType
- AWS.EC2.Types: Running :: InstanceState
- AWS.EC2.Types: SBStop :: ShutdownBehavior
- AWS.EC2.Types: SBTerminate :: ShutdownBehavior
- AWS.EC2.Types: SSCompleted :: SnapshotStatus
- AWS.EC2.Types: SSError :: SnapshotStatus
- AWS.EC2.Types: SSPending :: SnapshotStatus
- AWS.EC2.Types: ShuttingDown :: InstanceState
- AWS.EC2.Types: Standard :: VolumeType
- AWS.EC2.Types: Stopped :: InstanceState
- AWS.EC2.Types: Stopping :: InstanceState
- AWS.EC2.Types: SubnetAvailable :: SubnetState
- AWS.EC2.Types: SubnetPending :: SubnetState
- AWS.EC2.Types: SystemReboot :: InstanceStatusEventCode
- AWS.EC2.Types: Terminated :: InstanceState
- AWS.EC2.Types: UnknownState :: Int -> InstanceState
- AWS.EC2.Types: VAAutoEnableIO :: Bool -> VolumeAttribute
- AWS.EC2.Types: VAProductCodes :: [ProductCode] -> VolumeAttribute
- AWS.EC2.Types: VARAutoEnableIO :: VolumeAttributeRequest
- AWS.EC2.Types: VARProductCodes :: VolumeAttributeRequest
- AWS.EC2.Types: VCSAvailable :: VpnConnectionState
- AWS.EC2.Types: VCSDeleted :: VpnConnectionState
- AWS.EC2.Types: VCSDeleting :: VpnConnectionState
- AWS.EC2.Types: VCSPending :: VpnConnectionState
- AWS.EC2.Types: VSIImpaired :: VolumeStatusInfoStatus
- AWS.EC2.Types: VSIInsufficientData :: VolumeStatusInfoStatus
- AWS.EC2.Types: VSIOK :: VolumeStatusInfoStatus
- AWS.EC2.Types: VSRSAvailable :: VpnStaticRouteState
- AWS.EC2.Types: VSRSDeleted :: VpnStaticRouteState
- AWS.EC2.Types: VSRSDeleting :: VpnStaticRouteState
- AWS.EC2.Types: VSRSPending :: VpnStaticRouteState
- AWS.EC2.Types: VSRStatic :: VpnStaticRouteSource
- AWS.EC2.Types: VTTSDown :: VpnTunnelTelemetryStatus
- AWS.EC2.Types: VTTSUp :: VpnTunnelTelemetryStatus
- AWS.EC2.Types: VolAvailable :: VolumeState
- AWS.EC2.Types: VolCreating :: VolumeState
- AWS.EC2.Types: VolDeleted :: VolumeState
- AWS.EC2.Types: VolDeleting :: VolumeState
- AWS.EC2.Types: VolError :: VolumeState
- AWS.EC2.Types: VolInUse :: VolumeState
- AWS.EC2.Types: Windows :: Platform
- AWS.EC2.Types: Xen :: Hypervisor
- AWS.EC2.Types: aaec2InstanceId :: AssociateAddressRequest -> Text
- AWS.EC2.Types: aaec2PublicIp :: AssociateAddressRequest -> Text
- AWS.EC2.Types: aavpcAllocationId :: AssociateAddressRequest -> Text
- AWS.EC2.Types: aavpcAllowReassociation :: AssociateAddressRequest -> Maybe Bool
- AWS.EC2.Types: aavpcInstanceId :: AssociateAddressRequest -> Maybe Text
- AWS.EC2.Types: aavpcNetworkInterfaceId :: AssociateAddressRequest -> Maybe Text
- AWS.EC2.Types: aavpcPrivateIpAddress :: AssociateAddressRequest -> Maybe Text
- AWS.EC2.Types: addrAllocationId :: Address -> Maybe Text
- AWS.EC2.Types: addrAssociationId :: Address -> Maybe Text
- AWS.EC2.Types: addrDomain :: Address -> AddressDomain
- AWS.EC2.Types: addrInstanceId :: Address -> Maybe Text
- AWS.EC2.Types: addrNetworkInterfaceId :: Address -> Maybe Text
- AWS.EC2.Types: addrNetworkInterfaceOwnerId :: Address -> Maybe Text
- AWS.EC2.Types: addrPrivateIpAddress :: Address -> Maybe Text
- AWS.EC2.Types: addrPublicIp :: Address -> Text
- AWS.EC2.Types: alaAllocationId :: AllocateAddressResponse -> Maybe Text
- AWS.EC2.Types: alaDomain :: AllocateAddressResponse -> AddressDomain
- AWS.EC2.Types: alaPublicIp :: AllocateAddressResponse -> Text
- AWS.EC2.Types: amiLaunchIndex :: Instance -> Text
- AWS.EC2.Types: asirAttachTime :: AttachmentSetItemResponse -> UTCTime
- AWS.EC2.Types: asirDeleteOnTermination :: AttachmentSetItemResponse -> Maybe Bool
- AWS.EC2.Types: asirDevice :: AttachmentSetItemResponse -> Text
- AWS.EC2.Types: asirInstanceId :: AttachmentSetItemResponse -> Text
- AWS.EC2.Types: asirStatus :: AttachmentSetItemResponse -> AttachmentSetItemResponseStatus
- AWS.EC2.Types: asirVolumeId :: AttachmentSetItemResponse -> Text
- AWS.EC2.Types: bdmpEbsDeleteOnTermination :: BlockDeviceMappingParam -> Maybe Bool
- AWS.EC2.Types: bdmpEbsDeviceName :: BlockDeviceMappingParam -> Text
- AWS.EC2.Types: bdmpEbsNoDevice :: BlockDeviceMappingParam -> Maybe Bool
- AWS.EC2.Types: bdmpEbsSource :: BlockDeviceMappingParam -> EbsSource
- AWS.EC2.Types: bdmpEbsVolumeType :: BlockDeviceMappingParam -> Maybe VolumeType
- AWS.EC2.Types: bdmpIsDeviceName :: BlockDeviceMappingParam -> Text
- AWS.EC2.Types: bdmpIsNoDevice :: BlockDeviceMappingParam -> Maybe Bool
- AWS.EC2.Types: bdmpIsVirtualName :: BlockDeviceMappingParam -> Maybe Text
- AWS.EC2.Types: blockDeviceMappings :: Image -> [BlockDeviceMapping]
- AWS.EC2.Types: cfsAvailabilityZone :: CreateVolumeRequest -> Text
- AWS.EC2.Types: cfsSize :: CreateVolumeRequest -> Maybe Int
- AWS.EC2.Types: cfsSnapshotId :: CreateVolumeRequest -> Text
- AWS.EC2.Types: cfsVolumeType :: CreateVolumeRequest -> Maybe VolumeType
- AWS.EC2.Types: clientToken :: Instance -> Text
- AWS.EC2.Types: cnvAvailabilityZone :: CreateVolumeRequest -> Text
- AWS.EC2.Types: cnvSize :: CreateVolumeRequest -> Int
- AWS.EC2.Types: cnvVolumeType :: CreateVolumeRequest -> Maybe VolumeType
- AWS.EC2.Types: coInstanceId :: ConsoleOutput -> Text
- AWS.EC2.Types: coOutput :: ConsoleOutput -> Text
- AWS.EC2.Types: coTimestamp :: ConsoleOutput -> UTCTime
- AWS.EC2.Types: csrAvailabilityZone :: CreateSubnetRequest -> Maybe Text
- AWS.EC2.Types: csrCidrBlock :: CreateSubnetRequest -> Text
- AWS.EC2.Types: csrVpcId :: CreateSubnetRequest -> Text
- AWS.EC2.Types: customerGateway :: CustomerGateway -> [ResourceTag]
- AWS.EC2.Types: data AllocateAddressResponse
- AWS.EC2.Types: data InstanceEbsBlockDevice
- AWS.EC2.Types: deviceName :: BlockDeviceMapping -> Text
- AWS.EC2.Types: dnsName :: Instance -> Text
- AWS.EC2.Types: ebs :: BlockDeviceMapping -> Maybe EbsBlockDevice
- AWS.EC2.Types: ebsOptimized :: Instance -> Bool
- AWS.EC2.Types: groupSet :: Reservation -> [Group]
- AWS.EC2.Types: iAssociation :: InstancePrivateIpAddress -> Maybe NetworkInterfaceAssociation
- AWS.EC2.Types: iPrimary :: InstancePrivateIpAddress -> Bool
- AWS.EC2.Types: iPrivateIpAddress :: InstancePrivateIpAddress -> Text
- AWS.EC2.Types: iipArn :: IamInstanceProfile -> Text
- AWS.EC2.Types: iipId :: IamInstanceProfile -> Text
- AWS.EC2.Types: iniAssociation :: InstanceNetworkInterface -> Maybe NetworkInterfaceAssociation
- AWS.EC2.Types: iniAttachment :: InstanceNetworkInterface -> NetworkInterfaceAttachment
- AWS.EC2.Types: iniDescription :: InstanceNetworkInterface -> Text
- AWS.EC2.Types: iniGroupSet :: InstanceNetworkInterface -> [Group]
- AWS.EC2.Types: iniOwnerId :: InstanceNetworkInterface -> Text
- AWS.EC2.Types: iniPrivateDnsName :: InstanceNetworkInterface -> Maybe Text
- AWS.EC2.Types: iniPrivateIpAddress :: InstanceNetworkInterface -> Text
- AWS.EC2.Types: iniPrivateIpAddressSet :: InstanceNetworkInterface -> [InstancePrivateIpAddress]
- AWS.EC2.Types: iniSourceDestCheck :: InstanceNetworkInterface -> Bool
- AWS.EC2.Types: iniStatus :: InstanceNetworkInterface -> Text
- AWS.EC2.Types: iniSubnetId :: InstanceNetworkInterface -> Text
- AWS.EC2.Types: iniVpcId :: InstanceNetworkInterface -> Text
- AWS.EC2.Types: instance Default VolumeType
- AWS.EC2.Types: instance Eq AllocateAddressResponse
- AWS.EC2.Types: instance Eq InstanceEbsBlockDevice
- AWS.EC2.Types: instance Show AllocateAddressResponse
- AWS.EC2.Types: instance Show InstanceEbsBlockDevice
- AWS.EC2.Types: instanceDeviceName :: InstanceBlockDeviceMapping -> Text
- AWS.EC2.Types: instanceEbs :: InstanceBlockDeviceMapping -> InstanceEbsBlockDevice
- AWS.EC2.Types: instanceEbsAttachTime :: InstanceEbsBlockDevice -> UTCTime
- AWS.EC2.Types: instanceEbsDeleteOnTermination :: InstanceEbsBlockDevice -> Bool
- AWS.EC2.Types: instanceEbsState :: InstanceEbsBlockDevice -> AttachmentSetItemResponseStatus
- AWS.EC2.Types: instanceEbsVolumeId :: InstanceEbsBlockDevice -> Text
- AWS.EC2.Types: instanceSet :: Reservation -> [Instance]
- AWS.EC2.Types: ipAddress :: Instance -> Maybe Text
- AWS.EC2.Types: ippFromPort :: IpPermission -> Maybe Int
- AWS.EC2.Types: ippGroups :: IpPermission -> [UserIdGroupPair]
- AWS.EC2.Types: ippIpProtocol :: IpPermission -> Text
- AWS.EC2.Types: ippIpRanges :: IpPermission -> [IpRange]
- AWS.EC2.Types: ippToPort :: IpPermission -> Maybe Int
- AWS.EC2.Types: iprCidrIp :: IpRange -> Text
- AWS.EC2.Types: isAvailabilityZone :: InstanceStatus -> Text
- AWS.EC2.Types: isEventsSet :: InstanceStatus -> [InstanceStatusEvent]
- AWS.EC2.Types: isInstanceId :: InstanceStatus -> Text
- AWS.EC2.Types: isInstanceState :: InstanceStatus -> InstanceState
- AWS.EC2.Types: isInstanceStatus :: InstanceStatus -> InstanceStatusType
- AWS.EC2.Types: isPublic :: Image -> Bool
- AWS.EC2.Types: isSystemStatus :: InstanceStatus -> InstanceStatusType
- AWS.EC2.Types: iscCurrentState :: InstanceStateChange -> InstanceState
- AWS.EC2.Types: iscInstanceId :: InstanceStateChange -> Text
- AWS.EC2.Types: iscPreviousState :: InstanceStateChange -> InstanceState
- AWS.EC2.Types: isdDetails :: InstanceStatusType -> [InstanceStatusDetail]
- AWS.EC2.Types: isdStatus :: InstanceStatusType -> InstanceStatusTypeStatus
- AWS.EC2.Types: isddImpairedSince :: InstanceStatusDetail -> Maybe UTCTime
- AWS.EC2.Types: isddName :: InstanceStatusDetail -> InstanceStatusDetailName
- AWS.EC2.Types: isddStatus :: InstanceStatusDetail -> InstanceStatusDetailStatus
- AWS.EC2.Types: iseCode :: InstanceStatusEvent -> InstanceStatusEventCode
- AWS.EC2.Types: iseDescription :: InstanceStatusEvent -> Text
- AWS.EC2.Types: iseNotAfter :: InstanceStatusEvent -> Maybe UTCTime
- AWS.EC2.Types: iseNotBefore :: InstanceStatusEvent -> Maybe UTCTime
- AWS.EC2.Types: kernelId :: Image -> Maybe Text
- AWS.EC2.Types: keyFingerprint :: KeyPair -> Text
- AWS.EC2.Types: keyName :: KeyPair -> Text
- AWS.EC2.Types: launchTime :: Instance -> UTCTime
- AWS.EC2.Types: messageSet :: AvailabilityZone -> [AvailabilityZoneMessage]
- AWS.EC2.Types: niasIpOwnerId :: NetworkInterfaceAssociation -> Text
- AWS.EC2.Types: niasPublicIp :: NetworkInterfaceAssociation -> Text
- AWS.EC2.Types: niatAttachTime :: NetworkInterfaceAttachment -> UTCTime
- AWS.EC2.Types: niatAttachmentId :: NetworkInterfaceAttachment -> Text
- AWS.EC2.Types: niatDeleteOnTermination :: NetworkInterfaceAttachment -> Bool
- AWS.EC2.Types: niatDeviceIndex :: NetworkInterfaceAttachment -> Int
- AWS.EC2.Types: niatStatus :: NetworkInterfaceAttachment -> Text
- AWS.EC2.Types: nipDeleteOnTermination :: NetworkInterfaceParam -> Maybe Bool
- AWS.EC2.Types: nipDescription :: NetworkInterfaceParam -> Maybe Text
- AWS.EC2.Types: nipDeviceIndex :: NetworkInterfaceParam -> Maybe Text
- AWS.EC2.Types: nipInterfaceId :: NetworkInterfaceParam -> Maybe Text
- AWS.EC2.Types: nipPrivateIpAddresses :: NetworkInterfaceParam -> [Text]
- AWS.EC2.Types: nipSecurityGroupIds :: NetworkInterfaceParam -> [Text]
- AWS.EC2.Types: nipSubnetId :: NetworkInterfaceParam -> Maybe Text
- AWS.EC2.Types: ownerId :: Reservation -> Text
- AWS.EC2.Types: pcCode :: ProductCode -> Text
- AWS.EC2.Types: pcType :: ProductCode -> ProductCodeType
- AWS.EC2.Types: pdInstanceId :: PasswordData -> Text
- AWS.EC2.Types: pdPasswordData :: PasswordData -> Text
- AWS.EC2.Types: pdTimestamp :: PasswordData -> UTCTime
- AWS.EC2.Types: privateDnsName :: Instance -> Text
- AWS.EC2.Types: privateIpAddress :: Instance -> Maybe Text
- AWS.EC2.Types: rDestinationCidrBlock :: Route -> Text
- AWS.EC2.Types: rGatewayId :: Route -> Maybe Text
- AWS.EC2.Types: rInstanceId :: Route -> Maybe Text
- AWS.EC2.Types: rInstanceOwnerId :: Route -> Maybe Text
- AWS.EC2.Types: rNetworkInterfaceId :: Route -> Maybe Text
- AWS.EC2.Types: rOrigin :: Route -> Maybe RouteOrigin
- AWS.EC2.Types: rState :: Route -> RouteState
- AWS.EC2.Types: ramdiskId :: Image -> Maybe Text
- AWS.EC2.Types: reason :: Instance -> Text
- AWS.EC2.Types: requesterId :: Reservation -> Maybe Text
- AWS.EC2.Types: resourceKey :: ResourceTag -> Text
- AWS.EC2.Types: resourceValue :: ResourceTag -> Maybe Text
- AWS.EC2.Types: riAvailabilityZone :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riBlockDeviceMappings :: RunInstancesRequest -> [BlockDeviceMappingParam]
- AWS.EC2.Types: riClientToken :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riDisableApiTermination :: RunInstancesRequest -> Maybe Bool
- AWS.EC2.Types: riEbsOptimized :: RunInstancesRequest -> Maybe Bool
- AWS.EC2.Types: riIamInstanceProfile :: RunInstancesRequest -> Maybe IamInstanceProfile
- AWS.EC2.Types: riImageId :: RunInstancesRequest -> Text
- AWS.EC2.Types: riInstanceType :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riKernelId :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riKeyName :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riMaxCount :: RunInstancesRequest -> Int
- AWS.EC2.Types: riMinCount :: RunInstancesRequest -> Int
- AWS.EC2.Types: riMonitoringEnabled :: RunInstancesRequest -> Maybe Bool
- AWS.EC2.Types: riNetworkInterface :: RunInstancesRequest -> [NetworkInterfaceParam]
- AWS.EC2.Types: riPlacementGroup :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riPrivateIpAddresses :: RunInstancesRequest -> [Text]
- AWS.EC2.Types: riRamdiskId :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riSecurityGroupIds :: RunInstancesRequest -> [Text]
- AWS.EC2.Types: riSecurityGroups :: RunInstancesRequest -> [Text]
- AWS.EC2.Types: riShutdownBehavior :: RunInstancesRequest -> Maybe ShutdownBehavior
- AWS.EC2.Types: riSubnetId :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riTenancy :: RunInstancesRequest -> Maybe Text
- AWS.EC2.Types: riUserData :: RunInstancesRequest -> Maybe ByteString
- AWS.EC2.Types: rirArchitecture :: RegisterImageRequest -> Maybe Text
- AWS.EC2.Types: rirBlockDeviceMappings :: RegisterImageRequest -> [BlockDeviceMappingParam]
- AWS.EC2.Types: rirDescription :: RegisterImageRequest -> Maybe Text
- AWS.EC2.Types: rirImageLocation :: RegisterImageRequest -> Maybe Text
- AWS.EC2.Types: rirKernelId :: RegisterImageRequest -> Maybe Text
- AWS.EC2.Types: rirName :: RegisterImageRequest -> Text
- AWS.EC2.Types: rirRamdiskId :: RegisterImageRequest -> Maybe Text
- AWS.EC2.Types: rirRootDeviceName :: RegisterImageRequest -> Maybe Text
- AWS.EC2.Types: rtAssociationSet :: RouteTable -> [RouteTableAssociation]
- AWS.EC2.Types: rtPropagatingVgw :: RouteTable -> Maybe PropagatingVgw
- AWS.EC2.Types: rtRouteSet :: RouteTable -> [Route]
- AWS.EC2.Types: rtRouteTableId :: RouteTable -> Text
- AWS.EC2.Types: rtTagSet :: RouteTable -> [ResourceTag]
- AWS.EC2.Types: rtVpcId :: RouteTable -> Text
- AWS.EC2.Types: rtaMain :: RouteTableAssociation -> Maybe Bool
- AWS.EC2.Types: rtaRouteTableAssociationId :: RouteTableAssociation -> Text
- AWS.EC2.Types: rtaRouteTableId :: RouteTableAssociation -> Text
- AWS.EC2.Types: rtaSubnetId :: RouteTableAssociation -> Maybe Text
- AWS.EC2.Types: sgGroupDescription :: SecurityGroup -> Text
- AWS.EC2.Types: sgGroupId :: SecurityGroup -> Text
- AWS.EC2.Types: sgGroupName :: SecurityGroup -> Text
- AWS.EC2.Types: sgIpPermissions :: SecurityGroup -> [IpPermission]
- AWS.EC2.Types: sgIpPermissionsEgress :: SecurityGroup -> [IpPermission]
- AWS.EC2.Types: sgOwnerId :: SecurityGroup -> Text
- AWS.EC2.Types: sgTagSet :: SecurityGroup -> [ResourceTag]
- AWS.EC2.Types: sgVpcId :: SecurityGroup -> Maybe Text
- AWS.EC2.Types: snAvailableIpAddressCount :: Subnet -> Int
- AWS.EC2.Types: snCAvailabilityZone :: Subnet -> Text
- AWS.EC2.Types: snCidrBlock :: Subnet -> Text
- AWS.EC2.Types: snState :: Subnet -> SubnetState
- AWS.EC2.Types: snSubnetId :: Subnet -> Text
- AWS.EC2.Types: snTagSet :: Subnet -> [ResourceTag]
- AWS.EC2.Types: snVpicId :: Subnet -> Text
- AWS.EC2.Types: sourceDestCheck :: Instance -> Maybe Bool
- AWS.EC2.Types: spotInstanceRequestId :: Instance -> Maybe Text
- AWS.EC2.Types: ssDescription :: Snapshot -> Text
- AWS.EC2.Types: ssOwnerAlias :: Snapshot -> Maybe Text
- AWS.EC2.Types: ssOwnerId :: Snapshot -> Text
- AWS.EC2.Types: ssProgress :: Snapshot -> Text
- AWS.EC2.Types: ssStartTime :: Snapshot -> UTCTime
- AWS.EC2.Types: ssStatus :: Snapshot -> SnapshotStatus
- AWS.EC2.Types: ssTagSet :: Snapshot -> [ResourceTag]
- AWS.EC2.Types: ssVolumeId :: Snapshot -> Text
- AWS.EC2.Types: ssVolumeSize :: Snapshot -> Int
- AWS.EC2.Types: staticRoutesOnly :: VpnConnectionOptionsRequest -> Bool
- AWS.EC2.Types: tenancy :: Placement -> Text
- AWS.EC2.Types: uigpGroupId :: UserIdGroupPair -> Text
- AWS.EC2.Types: uigpGroupName :: UserIdGroupPair -> Maybe Text
- AWS.EC2.Types: uigpUserId :: UserIdGroupPair -> Maybe Text
- AWS.EC2.Types: vcCustomerGatewayConfiguration :: VpnConnection -> Text
- AWS.EC2.Types: vcCustomerGatewayId :: VpnConnection -> Text
- AWS.EC2.Types: vcOptions :: VpnConnection -> Maybe VpnConnectionOptionsRequest
- AWS.EC2.Types: vcRoutes :: VpnConnection -> Maybe VpnStaticRoute
- AWS.EC2.Types: vcState :: VpnConnection -> VpnConnectionState
- AWS.EC2.Types: vcTagSet :: VpnConnection -> [ResourceTag]
- AWS.EC2.Types: vcType :: VpnConnection -> Text
- AWS.EC2.Types: vcVgwTelemetry :: VpnConnection -> [VpnTunnelTelemetry]
- AWS.EC2.Types: vcVpnGatewayId :: VpnConnection -> Text
- AWS.EC2.Types: virtualName :: BlockDeviceMapping -> Maybe Text
- AWS.EC2.Types: volAttachmentSet :: Volume -> [AttachmentSetItemResponse]
- AWS.EC2.Types: volAvailabilityZone :: Volume -> Text
- AWS.EC2.Types: volCreateTime :: Volume -> UTCTime
- AWS.EC2.Types: volSize :: Volume -> Int
- AWS.EC2.Types: volSnapshotId :: Volume -> Maybe Text
- AWS.EC2.Types: volStatus :: Volume -> VolumeState
- AWS.EC2.Types: volTagSet :: Volume -> [ResourceTag]
- AWS.EC2.Types: volVolumeType :: Volume -> VolumeType
- AWS.EC2.Types: vpcGroupSet :: Instance -> [Group]
- AWS.EC2.Types: vsaCode :: VolumeStatusAction -> Text
- AWS.EC2.Types: vsaDescription :: VolumeStatusAction -> Text
- AWS.EC2.Types: vsaEventId :: VolumeStatusAction -> Text
- AWS.EC2.Types: vsaEventType :: VolumeStatusAction -> Text
- AWS.EC2.Types: vsdName :: VolumeStatusDetail -> Text
- AWS.EC2.Types: vsdStatus :: VolumeStatusDetail -> Text
- AWS.EC2.Types: vseDescription :: VolumeStatusEvent -> Text
- AWS.EC2.Types: vseEventId :: VolumeStatusEvent -> Text
- AWS.EC2.Types: vseEventType :: VolumeStatusEvent -> Text
- AWS.EC2.Types: vseNotAfter :: VolumeStatusEvent -> Maybe UTCTime
- AWS.EC2.Types: vseNotBefore :: VolumeStatusEvent -> Maybe UTCTime
- AWS.EC2.Types: vsiDetails :: VolumeStatusInfo -> [VolumeStatusDetail]
- AWS.EC2.Types: vsiStatus :: VolumeStatusInfo -> VolumeStatusInfoStatus
- AWS.EC2.Types: vsrDestinationCidrBlock :: VpnStaticRoute -> Text
- AWS.EC2.Types: vsrSource :: VpnStaticRoute -> VpnStaticRouteSource
- AWS.EC2.Types: vsrState :: VpnStaticRoute -> VpnStaticRouteState
- AWS.EC2.Types: vstActionSet :: VolumeStatus -> [VolumeStatusAction]
- AWS.EC2.Types: vstAvailabilityZone :: VolumeStatus -> Text
- AWS.EC2.Types: vstEventSet :: VolumeStatus -> [VolumeStatusEvent]
- AWS.EC2.Types: vstVolumeId :: VolumeStatus -> Text
- AWS.EC2.Types: vstVolumeStatus :: VolumeStatus -> VolumeStatusInfo
- AWS.EC2.Types: vttAcceptRouteCount :: VpnTunnelTelemetry -> Int
- AWS.EC2.Types: vttLastStatusChange :: VpnTunnelTelemetry -> UTCTime
- AWS.EC2.Types: vttOutsideIpAddress :: VpnTunnelTelemetry -> Text
- AWS.EC2.Types: vttStatus :: VpnTunnelTelemetry -> VpnTunnelTelemetryStatus
- AWS.EC2.Types: vttStatusMessage :: VpnTunnelTelemetry -> Text
+ AWS: loadCredentialFromFile :: FilePath -> IO Credential
+ AWS.CloudWatch: apiVersion :: ByteString
+ AWS.CloudWatch: getMetricStatistics :: (MonadBaseControl IO m, MonadResource m) => [DimensionFilter] -> UTCTime -> UTCTime -> Text -> Text -> Int -> [Statistic] -> Maybe Text -> CloudWatch m ([Datapoint], Text)
+ AWS.CloudWatch: listMetrics :: (MonadBaseControl IO m, MonadResource m) => [DimensionFilter] -> Maybe Text -> Maybe Text -> Maybe Text -> CloudWatch m [Metric]
+ AWS.CloudWatch: runCloudWatch :: MonadIO m => Credential -> CloudWatch m a -> m a
+ AWS.CloudWatch: setRegion :: (MonadBaseControl IO m, MonadResource m) => Text -> CloudWatch m ()
+ AWS.CloudWatch: type CloudWatch m a = AWS AWSContext m a
+ AWS.CloudWatch.Types: Datapoint :: UTCTime -> Maybe Double -> Text -> Maybe Double -> Maybe Double -> Maybe Double -> Maybe Double -> Datapoint
+ AWS.CloudWatch.Types: Dimension :: Text -> Text -> Dimension
+ AWS.CloudWatch.Types: Metric :: [Dimension] -> Text -> Text -> Metric
+ AWS.CloudWatch.Types: StatisticAverage :: Statistic
+ AWS.CloudWatch.Types: StatisticMaximum :: Statistic
+ AWS.CloudWatch.Types: StatisticMinimum :: Statistic
+ AWS.CloudWatch.Types: StatisticSampleCount :: Statistic
+ AWS.CloudWatch.Types: StatisticSum :: Statistic
+ AWS.CloudWatch.Types: allStatistics :: [Statistic]
+ AWS.CloudWatch.Types: data Datapoint
+ AWS.CloudWatch.Types: data Dimension
+ AWS.CloudWatch.Types: data Metric
+ AWS.CloudWatch.Types: data Statistic
+ AWS.CloudWatch.Types: datapointAverage :: Datapoint -> Maybe Double
+ AWS.CloudWatch.Types: datapointMaximum :: Datapoint -> Maybe Double
+ AWS.CloudWatch.Types: datapointMinimum :: Datapoint -> Maybe Double
+ AWS.CloudWatch.Types: datapointSampleCount :: Datapoint -> Maybe Double
+ AWS.CloudWatch.Types: datapointSum :: Datapoint -> Maybe Double
+ AWS.CloudWatch.Types: datapointTimestamp :: Datapoint -> UTCTime
+ AWS.CloudWatch.Types: datapointUnit :: Datapoint -> Text
+ AWS.CloudWatch.Types: dimensionName :: Dimension -> Text
+ AWS.CloudWatch.Types: dimensionValue :: Dimension -> Text
+ AWS.CloudWatch.Types: instance Eq Datapoint
+ AWS.CloudWatch.Types: instance Eq Dimension
+ AWS.CloudWatch.Types: instance Eq Metric
+ AWS.CloudWatch.Types: instance Eq Statistic
+ AWS.CloudWatch.Types: instance Show Datapoint
+ AWS.CloudWatch.Types: instance Show Dimension
+ AWS.CloudWatch.Types: instance Show Metric
+ AWS.CloudWatch.Types: instance Show Statistic
+ AWS.CloudWatch.Types: metricDimensions :: Metric -> [Dimension]
+ AWS.CloudWatch.Types: metricName :: Metric -> Text
+ AWS.CloudWatch.Types: metricNameSpace :: Metric -> Text
+ AWS.CloudWatch.Types: type DimensionFilter = (Text, Text)
+ AWS.EC2: AssociateAddressRequestEc2 :: Text -> Text -> AssociateAddressRequest
+ AWS.EC2: AssociateAddressRequestVpc :: Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> AssociateAddressRequest
+ AWS.EC2: DisassociateAddressRequestEc2 :: Text -> DisassociateAddressRequest
+ AWS.EC2: DisassociateAddressRequestVpc :: Text -> DisassociateAddressRequest
+ AWS.EC2: associateAddressRequestEc2InstanceId :: AssociateAddressRequest -> Text
+ AWS.EC2: associateAddressRequestEc2PublicIp :: AssociateAddressRequest -> Text
+ AWS.EC2: associateAddressRequestVpcAllocationId :: AssociateAddressRequest -> Text
+ AWS.EC2: associateAddressRequestVpcAllowReassociation :: AssociateAddressRequest -> Maybe Bool
+ AWS.EC2: associateAddressRequestVpcInstanceId :: AssociateAddressRequest -> Maybe Text
+ AWS.EC2: associateAddressRequestVpcNetworkInterfaceId :: AssociateAddressRequest -> Maybe Text
+ AWS.EC2: associateAddressRequestVpcPrivateIpAddress :: AssociateAddressRequest -> Maybe Text
+ AWS.EC2: describeImageAttribute :: (MonadResource m, MonadBaseControl IO m) => Text -> AMIAttribute -> EC2 m AMIAttributeDescription
+ AWS.EC2.Types: AMIAttributeDescription :: Text -> [LaunchPermissionItem] -> [ProductCodeItem] -> Maybe Text -> Maybe Text -> Maybe Text -> [BlockDeviceMapping] -> AMIAttributeDescription
+ AWS.EC2.Types: AMIBlockDeviceMapping :: AMIAttribute
+ AWS.EC2.Types: AMIDescription :: AMIAttribute
+ AWS.EC2.Types: AMIKernel :: AMIAttribute
+ AWS.EC2.Types: AMILaunchPermission :: AMIAttribute
+ AWS.EC2.Types: AMIProductCodes :: AMIAttribute
+ AWS.EC2.Types: AMIRamdisk :: AMIAttribute
+ AWS.EC2.Types: AllocateAddress :: Text -> AddressDomain -> Maybe Text -> AllocateAddress
+ AWS.EC2.Types: AssociateAddressRequestEc2 :: Text -> Text -> AssociateAddressRequest
+ AWS.EC2.Types: AssociateAddressRequestVpc :: Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> AssociateAddressRequest
+ AWS.EC2.Types: AttachmentSetItemResponseStatusAttached :: AttachmentSetItemResponseStatus
+ AWS.EC2.Types: AttachmentSetItemResponseStatusAttaching :: AttachmentSetItemResponseStatus
+ AWS.EC2.Types: AttachmentSetItemResponseStatusDetached :: AttachmentSetItemResponseStatus
+ AWS.EC2.Types: AttachmentSetItemResponseStatusDetaching :: AttachmentSetItemResponseStatus
+ AWS.EC2.Types: BlockDeviceMappingParamEbs :: Text -> Maybe Bool -> EbsSource -> Maybe Bool -> Maybe VolumeType -> BlockDeviceMappingParam
+ AWS.EC2.Types: DisassociateAddressRequestEc2 :: Text -> DisassociateAddressRequest
+ AWS.EC2.Types: DisassociateAddressRequestVpc :: Text -> DisassociateAddressRequest
+ AWS.EC2.Types: EbsInstanceBlockDevice :: Text -> AttachmentSetItemResponseStatus -> UTCTime -> Bool -> EbsInstanceBlockDevice
+ AWS.EC2.Types: EbsSourceSnapshotId :: Text -> EbsSource
+ AWS.EC2.Types: EbsSourceVolumeSize :: Int -> EbsSource
+ AWS.EC2.Types: HypervisorOVM :: Hypervisor
+ AWS.EC2.Types: HypervisorXen :: Hypervisor
+ AWS.EC2.Types: ImageStateAvailable :: ImageState
+ AWS.EC2.Types: ImageStateFailed :: ImageState
+ AWS.EC2.Types: ImageStatePending :: ImageState
+ AWS.EC2.Types: ImageTypeKernel :: ImageType
+ AWS.EC2.Types: ImageTypeMachine :: ImageType
+ AWS.EC2.Types: ImageTypeRamDisk :: ImageType
+ AWS.EC2.Types: InstanceAttributeBlockDeviceMapping :: [InstanceBlockDeviceMapping] -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeDisableApiTermination :: Bool -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeEbsOptimized :: Bool -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeGroupSet :: [Text] -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeInstanceType :: Text -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeKernelId :: (Maybe Text) -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeProductCodes :: [ProductCode] -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeRamdiskId :: (Maybe Text) -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeRequestBlockDeviceMapping :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestDisableApiTermination :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestEbsOptimized :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestGroupSet :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestInstanceType :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestKernelId :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestProductCodes :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestRamdiskId :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestRootDeviceName :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestShutdownBehavior :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestSourceDestCheck :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRequestUserData :: InstanceAttributeRequest
+ AWS.EC2.Types: InstanceAttributeRootDeviceName :: (Maybe Text) -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeShutdownBehavior :: ShutdownBehavior -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeSourceDestCheck :: (Maybe Bool) -> InstanceAttribute
+ AWS.EC2.Types: InstanceAttributeUserData :: (Maybe Text) -> InstanceAttribute
+ AWS.EC2.Types: InstanceStatePending :: InstanceState
+ AWS.EC2.Types: InstanceStateRunning :: InstanceState
+ AWS.EC2.Types: InstanceStateShuttingDown :: InstanceState
+ AWS.EC2.Types: InstanceStateStopped :: InstanceState
+ AWS.EC2.Types: InstanceStateStopping :: InstanceState
+ AWS.EC2.Types: InstanceStateTerminated :: InstanceState
+ AWS.EC2.Types: InstanceStateUnknown :: Int -> InstanceState
+ AWS.EC2.Types: InstanceStatusEventCodeInstanceReboot :: InstanceStatusEventCode
+ AWS.EC2.Types: InstanceStatusEventCodeInstanceRetirement :: InstanceStatusEventCode
+ AWS.EC2.Types: InstanceStatusEventCodeInstanceStop :: InstanceStatusEventCode
+ AWS.EC2.Types: InstanceStatusEventCodeSystemReboot :: InstanceStatusEventCode
+ AWS.EC2.Types: InstanceStatusTypeStatusImpaired :: InstanceStatusTypeStatus
+ AWS.EC2.Types: InstanceStatusTypeStatusInsufficientData :: InstanceStatusTypeStatus
+ AWS.EC2.Types: InstanceStatusTypeStatusNotApplicable :: InstanceStatusTypeStatus
+ AWS.EC2.Types: InstanceStatusTypeStatusOK :: InstanceStatusTypeStatus
+ AWS.EC2.Types: LaunchPermissionItem :: Text -> Text -> LaunchPermissionItem
+ AWS.EC2.Types: ModifyInstanceAttributeRequestBlockDeviceMapping :: [BlockDeviceMappingParam] -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestDisableApiTermination :: Bool -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestEbsOptimized :: Bool -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestGroupSet :: [Text] -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestInstanceType :: Text -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestKernelId :: Text -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestRamdiskId :: Text -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestRootDeviceName :: Text -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestShutdownBehavior :: ShutdownBehavior -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestSourceDestCheck :: Bool -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: ModifyInstanceAttributeRequestUserData :: Text -> ModifyInstanceAttributeRequest
+ AWS.EC2.Types: PlatformOther :: Platform
+ AWS.EC2.Types: PlatformWindows :: Platform
+ AWS.EC2.Types: ProductCodeDevpay :: ProductCodeType
+ AWS.EC2.Types: ProductCodeItem :: Text -> ProductCodeItem
+ AWS.EC2.Types: ProductCodeMarketplace :: ProductCodeType
+ AWS.EC2.Types: ResetInstanceAttributeRequestKernel :: ResetInstanceAttributeRequest
+ AWS.EC2.Types: ResetInstanceAttributeRequestRamdisk :: ResetInstanceAttributeRequest
+ AWS.EC2.Types: ResetInstanceAttributeRequestSourceDestCheck :: ResetInstanceAttributeRequest
+ AWS.EC2.Types: RootDeviceTypeEBS :: RootDeviceType
+ AWS.EC2.Types: RootDeviceTypeInstanceStore :: RootDeviceType
+ AWS.EC2.Types: SecurityGroupRequestGroupId :: Text -> SecurityGroupRequest
+ AWS.EC2.Types: SecurityGroupRequestGroupName :: Text -> SecurityGroupRequest
+ AWS.EC2.Types: ShutdownBehaviorStop :: ShutdownBehavior
+ AWS.EC2.Types: ShutdownBehaviorTerminate :: ShutdownBehavior
+ AWS.EC2.Types: SnapshotCompleted :: SnapshotStatus
+ AWS.EC2.Types: SnapshotError :: SnapshotStatus
+ AWS.EC2.Types: SnapshotPending :: SnapshotStatus
+ AWS.EC2.Types: SubnetStateAvailable :: SubnetState
+ AWS.EC2.Types: SubnetStatePending :: SubnetState
+ AWS.EC2.Types: VirtualizationTypeHVM :: VirtualizationType
+ AWS.EC2.Types: VirtualizationTypeParavirtual :: VirtualizationType
+ AWS.EC2.Types: VolumeAttributeAutoEnableIO :: Bool -> VolumeAttribute
+ AWS.EC2.Types: VolumeAttributeProductCodes :: [ProductCode] -> VolumeAttribute
+ AWS.EC2.Types: VolumeAttributeRequestAutoEnableIO :: VolumeAttributeRequest
+ AWS.EC2.Types: VolumeAttributeRequestProductCodes :: VolumeAttributeRequest
+ AWS.EC2.Types: VolumeStateAvailable :: VolumeState
+ AWS.EC2.Types: VolumeStateCreating :: VolumeState
+ AWS.EC2.Types: VolumeStateDeleted :: VolumeState
+ AWS.EC2.Types: VolumeStateDeleting :: VolumeState
+ AWS.EC2.Types: VolumeStateError :: VolumeState
+ AWS.EC2.Types: VolumeStateInUse :: VolumeState
+ AWS.EC2.Types: VolumeStatusInfoStatusImpaired :: VolumeStatusInfoStatus
+ AWS.EC2.Types: VolumeStatusInfoStatusInsufficientData :: VolumeStatusInfoStatus
+ AWS.EC2.Types: VolumeStatusInfoStatusOK :: VolumeStatusInfoStatus
+ AWS.EC2.Types: VolumeTypeIO1 :: Int -> VolumeType
+ AWS.EC2.Types: VolumeTypeStandard :: VolumeType
+ AWS.EC2.Types: VpnConnectionStateAvailable :: VpnConnectionState
+ AWS.EC2.Types: VpnConnectionStateDeleted :: VpnConnectionState
+ AWS.EC2.Types: VpnConnectionStateDeleting :: VpnConnectionState
+ AWS.EC2.Types: VpnConnectionStatePending :: VpnConnectionState
+ AWS.EC2.Types: VpnStaticRouteSourceStatic :: VpnStaticRouteSource
+ AWS.EC2.Types: VpnStaticRouteStateAvailable :: VpnStaticRouteState
+ AWS.EC2.Types: VpnStaticRouteStateDeleted :: VpnStaticRouteState
+ AWS.EC2.Types: VpnStaticRouteStateDeleting :: VpnStaticRouteState
+ AWS.EC2.Types: VpnStaticRouteStatePending :: VpnStaticRouteState
+ AWS.EC2.Types: VpnTunnelTelemetryStatusDown :: VpnTunnelTelemetryStatus
+ AWS.EC2.Types: VpnTunnelTelemetryStatusUp :: VpnTunnelTelemetryStatus
+ AWS.EC2.Types: addressAllocationId :: Address -> Maybe Text
+ AWS.EC2.Types: addressAssociationId :: Address -> Maybe Text
+ AWS.EC2.Types: addressDomain :: Address -> AddressDomain
+ AWS.EC2.Types: addressInstanceId :: Address -> Maybe Text
+ AWS.EC2.Types: addressNetworkInterfaceId :: Address -> Maybe Text
+ AWS.EC2.Types: addressNetworkInterfaceOwnerId :: Address -> Maybe Text
+ AWS.EC2.Types: addressPrivateIpAddress :: Address -> Maybe Text
+ AWS.EC2.Types: addressPublicIp :: Address -> Text
+ AWS.EC2.Types: allocateAddressAllocationId :: AllocateAddress -> Maybe Text
+ AWS.EC2.Types: allocateAddressDomain :: AllocateAddress -> AddressDomain
+ AWS.EC2.Types: allocateAddressPublicIp :: AllocateAddress -> Text
+ AWS.EC2.Types: amiAttributeDescriptionBlockDeviceMapping :: AMIAttributeDescription -> [BlockDeviceMapping]
+ AWS.EC2.Types: amiAttributeDescriptionDescription :: AMIAttributeDescription -> Maybe Text
+ AWS.EC2.Types: amiAttributeDescriptionImageId :: AMIAttributeDescription -> Text
+ AWS.EC2.Types: amiAttributeDescriptionKernel :: AMIAttributeDescription -> Maybe Text
+ AWS.EC2.Types: amiAttributeDescriptionLaunchPermission :: AMIAttributeDescription -> [LaunchPermissionItem]
+ AWS.EC2.Types: amiAttributeDescriptionProductCodes :: AMIAttributeDescription -> [ProductCodeItem]
+ AWS.EC2.Types: amiAttributeDescriptionRamdisk :: AMIAttributeDescription -> Maybe Text
+ AWS.EC2.Types: associateAddressRequestEc2InstanceId :: AssociateAddressRequest -> Text
+ AWS.EC2.Types: associateAddressRequestEc2PublicIp :: AssociateAddressRequest -> Text
+ AWS.EC2.Types: associateAddressRequestVpcAllocationId :: AssociateAddressRequest -> Text
+ AWS.EC2.Types: associateAddressRequestVpcAllowReassociation :: AssociateAddressRequest -> Maybe Bool
+ AWS.EC2.Types: associateAddressRequestVpcInstanceId :: AssociateAddressRequest -> Maybe Text
+ AWS.EC2.Types: associateAddressRequestVpcNetworkInterfaceId :: AssociateAddressRequest -> Maybe Text
+ AWS.EC2.Types: associateAddressRequestVpcPrivateIpAddress :: AssociateAddressRequest -> Maybe Text
+ AWS.EC2.Types: attachmentSetItemResponseAttachTime :: AttachmentSetItemResponse -> UTCTime
+ AWS.EC2.Types: attachmentSetItemResponseDeleteOnTermination :: AttachmentSetItemResponse -> Maybe Bool
+ AWS.EC2.Types: attachmentSetItemResponseDevice :: AttachmentSetItemResponse -> Text
+ AWS.EC2.Types: attachmentSetItemResponseInstanceId :: AttachmentSetItemResponse -> Text
+ AWS.EC2.Types: attachmentSetItemResponseStatus :: AttachmentSetItemResponse -> AttachmentSetItemResponseStatus
+ AWS.EC2.Types: attachmentSetItemResponseVolumeId :: AttachmentSetItemResponse -> Text
+ AWS.EC2.Types: blockDeviceMappingDeviceName :: BlockDeviceMapping -> Text
+ AWS.EC2.Types: blockDeviceMappingEbs :: BlockDeviceMapping -> Maybe EbsBlockDevice
+ AWS.EC2.Types: blockDeviceMappingParamEbsDeleteOnTermination :: BlockDeviceMappingParam -> Maybe Bool
+ AWS.EC2.Types: blockDeviceMappingParamEbsDeviceName :: BlockDeviceMappingParam -> Text
+ AWS.EC2.Types: blockDeviceMappingParamEbsNoDevice :: BlockDeviceMappingParam -> Maybe Bool
+ AWS.EC2.Types: blockDeviceMappingParamEbsSource :: BlockDeviceMappingParam -> EbsSource
+ AWS.EC2.Types: blockDeviceMappingParamEbsVolumeType :: BlockDeviceMappingParam -> Maybe VolumeType
+ AWS.EC2.Types: blockDeviceMappingParamInstanceStoreDeviceName :: BlockDeviceMappingParam -> Text
+ AWS.EC2.Types: blockDeviceMappingParamInstanceStoreNoDevice :: BlockDeviceMappingParam -> Maybe Bool
+ AWS.EC2.Types: blockDeviceMappingParamInstanceStoreVirtualName :: BlockDeviceMappingParam -> Maybe Text
+ AWS.EC2.Types: blockDeviceMappingVirtualName :: BlockDeviceMapping -> Maybe Text
+ AWS.EC2.Types: consoleOutputInstanceId :: ConsoleOutput -> Text
+ AWS.EC2.Types: consoleOutputOutput :: ConsoleOutput -> Text
+ AWS.EC2.Types: consoleOutputTimestamp :: ConsoleOutput -> UTCTime
+ AWS.EC2.Types: createFromSnapshotAvailabilityZone :: CreateVolumeRequest -> Text
+ AWS.EC2.Types: createFromSnapshotSize :: CreateVolumeRequest -> Maybe Int
+ AWS.EC2.Types: createFromSnapshotSnapshotId :: CreateVolumeRequest -> Text
+ AWS.EC2.Types: createFromSnapshotVolumeType :: CreateVolumeRequest -> Maybe VolumeType
+ AWS.EC2.Types: createNewVolumeAvailabilityZone :: CreateVolumeRequest -> Text
+ AWS.EC2.Types: createNewVolumeSize :: CreateVolumeRequest -> Int
+ AWS.EC2.Types: createNewVolumeVolumeType :: CreateVolumeRequest -> Maybe VolumeType
+ AWS.EC2.Types: createSubnetRequestAvailabilityZone :: CreateSubnetRequest -> Maybe Text
+ AWS.EC2.Types: createSubnetRequestCidrBlock :: CreateSubnetRequest -> Text
+ AWS.EC2.Types: createSubnetRequestVpcId :: CreateSubnetRequest -> Text
+ AWS.EC2.Types: customerGatewayTagSet :: CustomerGateway -> [ResourceTag]
+ AWS.EC2.Types: data AMIAttribute
+ AWS.EC2.Types: data AMIAttributeDescription
+ AWS.EC2.Types: data AllocateAddress
+ AWS.EC2.Types: data EbsInstanceBlockDevice
+ AWS.EC2.Types: data LaunchPermissionItem
+ AWS.EC2.Types: data ProductCodeItem
+ AWS.EC2.Types: ebsInstanceBlockDeviceAttachTime :: EbsInstanceBlockDevice -> UTCTime
+ AWS.EC2.Types: ebsInstanceBlockDeviceDeleteOnTermination :: EbsInstanceBlockDevice -> Bool
+ AWS.EC2.Types: ebsInstanceBlockDeviceState :: EbsInstanceBlockDevice -> AttachmentSetItemResponseStatus
+ AWS.EC2.Types: ebsInstanceBlockDeviceVolumeId :: EbsInstanceBlockDevice -> Text
+ AWS.EC2.Types: iamInstanceProfileArn :: IamInstanceProfile -> Text
+ AWS.EC2.Types: iamInstanceProfileId :: IamInstanceProfile -> Text
+ AWS.EC2.Types: imageBlockDeviceMappings :: Image -> [BlockDeviceMapping]
+ AWS.EC2.Types: imageIsPublic :: Image -> Bool
+ AWS.EC2.Types: imageKernelId :: Image -> Maybe Text
+ AWS.EC2.Types: imageRamdiskId :: Image -> Maybe Text
+ AWS.EC2.Types: instance Eq AMIAttribute
+ AWS.EC2.Types: instance Eq AMIAttributeDescription
+ AWS.EC2.Types: instance Eq AllocateAddress
+ AWS.EC2.Types: instance Eq EbsInstanceBlockDevice
+ AWS.EC2.Types: instance Eq LaunchPermissionItem
+ AWS.EC2.Types: instance Eq ProductCodeItem
+ AWS.EC2.Types: instance Show AMIAttribute
+ AWS.EC2.Types: instance Show AMIAttributeDescription
+ AWS.EC2.Types: instance Show AllocateAddress
+ AWS.EC2.Types: instance Show EbsInstanceBlockDevice
+ AWS.EC2.Types: instance Show LaunchPermissionItem
+ AWS.EC2.Types: instance Show ProductCodeItem
+ AWS.EC2.Types: instanceAmiLaunchIndex :: Instance -> Text
+ AWS.EC2.Types: instanceBlockDeviceMappingDeviceName :: InstanceBlockDeviceMapping -> Text
+ AWS.EC2.Types: instanceBlockDeviceMappingEbs :: InstanceBlockDeviceMapping -> EbsInstanceBlockDevice
+ AWS.EC2.Types: instanceClientToken :: Instance -> Text
+ AWS.EC2.Types: instanceDnsName :: Instance -> Text
+ AWS.EC2.Types: instanceEbsOptimized :: Instance -> Bool
+ AWS.EC2.Types: instanceIpAddress :: Instance -> Maybe Text
+ AWS.EC2.Types: instanceLaunchTime :: Instance -> UTCTime
+ AWS.EC2.Types: instanceNetworkInterfaceAssociation :: InstanceNetworkInterface -> Maybe NetworkInterfaceAssociation
+ AWS.EC2.Types: instanceNetworkInterfaceAttachment :: InstanceNetworkInterface -> NetworkInterfaceAttachment
+ AWS.EC2.Types: instanceNetworkInterfaceDescription :: InstanceNetworkInterface -> Text
+ AWS.EC2.Types: instanceNetworkInterfaceGroupSet :: InstanceNetworkInterface -> [Group]
+ AWS.EC2.Types: instanceNetworkInterfaceOwnerId :: InstanceNetworkInterface -> Text
+ AWS.EC2.Types: instanceNetworkInterfacePrivateDnsName :: InstanceNetworkInterface -> Maybe Text
+ AWS.EC2.Types: instanceNetworkInterfacePrivateIpAddress :: InstanceNetworkInterface -> Text
+ AWS.EC2.Types: instanceNetworkInterfacePrivateIpAddressSet :: InstanceNetworkInterface -> [InstancePrivateIpAddress]
+ AWS.EC2.Types: instanceNetworkInterfaceSourceDestCheck :: InstanceNetworkInterface -> Bool
+ AWS.EC2.Types: instanceNetworkInterfaceStatus :: InstanceNetworkInterface -> Text
+ AWS.EC2.Types: instanceNetworkInterfaceSubnetId :: InstanceNetworkInterface -> Text
+ AWS.EC2.Types: instanceNetworkInterfaceVpcId :: InstanceNetworkInterface -> Text
+ AWS.EC2.Types: instancePrivateDnsName :: Instance -> Text
+ AWS.EC2.Types: instancePrivateIpAddress :: Instance -> Maybe Text
+ AWS.EC2.Types: instancePrivateIpAddressAddress :: InstancePrivateIpAddress -> Text
+ AWS.EC2.Types: instancePrivateIpAddressAssociation :: InstancePrivateIpAddress -> Maybe NetworkInterfaceAssociation
+ AWS.EC2.Types: instancePrivateIpAddressPrimary :: InstancePrivateIpAddress -> Bool
+ AWS.EC2.Types: instanceReason :: Instance -> Text
+ AWS.EC2.Types: instanceSourceDestCheck :: Instance -> Maybe Bool
+ AWS.EC2.Types: instanceSpotInstanceRequestId :: Instance -> Maybe Text
+ AWS.EC2.Types: instanceStateChangeCurrentState :: InstanceStateChange -> InstanceState
+ AWS.EC2.Types: instanceStateChangeInstanceId :: InstanceStateChange -> Text
+ AWS.EC2.Types: instanceStateChangePreviousState :: InstanceStateChange -> InstanceState
+ AWS.EC2.Types: instanceStatusAvailabilityZone :: InstanceStatus -> Text
+ AWS.EC2.Types: instanceStatusDetailImpairedSince :: InstanceStatusDetail -> Maybe UTCTime
+ AWS.EC2.Types: instanceStatusDetailName :: InstanceStatusDetail -> InstanceStatusDetailName
+ AWS.EC2.Types: instanceStatusDetailStatus :: InstanceStatusDetail -> InstanceStatusDetailStatus
+ AWS.EC2.Types: instanceStatusEventCode :: InstanceStatusEvent -> InstanceStatusEventCode
+ AWS.EC2.Types: instanceStatusEventDescription :: InstanceStatusEvent -> Text
+ AWS.EC2.Types: instanceStatusEventNotAfter :: InstanceStatusEvent -> Maybe UTCTime
+ AWS.EC2.Types: instanceStatusEventNotBefore :: InstanceStatusEvent -> Maybe UTCTime
+ AWS.EC2.Types: instanceStatusEventsSet :: InstanceStatus -> [InstanceStatusEvent]
+ AWS.EC2.Types: instanceStatusInstanceId :: InstanceStatus -> Text
+ AWS.EC2.Types: instanceStatusInstanceState :: InstanceStatus -> InstanceState
+ AWS.EC2.Types: instanceStatusInstanceStatus :: InstanceStatus -> InstanceStatusType
+ AWS.EC2.Types: instanceStatusSystemStatus :: InstanceStatus -> InstanceStatusType
+ AWS.EC2.Types: instanceStatusTypeDetails :: InstanceStatusType -> [InstanceStatusDetail]
+ AWS.EC2.Types: instanceStatusTypeStatus :: InstanceStatusType -> InstanceStatusTypeStatus
+ AWS.EC2.Types: instanceSubnetId :: Instance -> Maybe Text
+ AWS.EC2.Types: instancevpcGroupSet :: Instance -> [Group]
+ AWS.EC2.Types: ipPermissionFromPort :: IpPermission -> Maybe Int
+ AWS.EC2.Types: ipPermissionGroups :: IpPermission -> [UserIdGroupPair]
+ AWS.EC2.Types: ipPermissionIpProtocol :: IpPermission -> Text
+ AWS.EC2.Types: ipPermissionIpRanges :: IpPermission -> [IpRange]
+ AWS.EC2.Types: ipPermissionToPort :: IpPermission -> Maybe Int
+ AWS.EC2.Types: ipRangeCidrIp :: IpRange -> Text
+ AWS.EC2.Types: keyPairFingerprint :: KeyPair -> Text
+ AWS.EC2.Types: keyPairName :: KeyPair -> Text
+ AWS.EC2.Types: launchPermissionItemGroup :: LaunchPermissionItem -> Text
+ AWS.EC2.Types: launchPermissionUserId :: LaunchPermissionItem -> Text
+ AWS.EC2.Types: networkInterfaceAssociationIpOwnerId :: NetworkInterfaceAssociation -> Text
+ AWS.EC2.Types: networkInterfaceAssociationPublicIp :: NetworkInterfaceAssociation -> Text
+ AWS.EC2.Types: networkInterfaceAttachmentAttachTime :: NetworkInterfaceAttachment -> UTCTime
+ AWS.EC2.Types: networkInterfaceAttachmentDeleteOnTermination :: NetworkInterfaceAttachment -> Bool
+ AWS.EC2.Types: networkInterfaceAttachmentDeviceIndex :: NetworkInterfaceAttachment -> Int
+ AWS.EC2.Types: networkInterfaceAttachmentId :: NetworkInterfaceAttachment -> Text
+ AWS.EC2.Types: networkInterfaceAttachmentStatus :: NetworkInterfaceAttachment -> Text
+ AWS.EC2.Types: networkInterfaceParamDeleteOnTermination :: NetworkInterfaceParam -> Maybe Bool
+ AWS.EC2.Types: networkInterfaceParamDescription :: NetworkInterfaceParam -> Maybe Text
+ AWS.EC2.Types: networkInterfaceParamDeviceIndex :: NetworkInterfaceParam -> Maybe Text
+ AWS.EC2.Types: networkInterfaceParamInterfaceId :: NetworkInterfaceParam -> Maybe Text
+ AWS.EC2.Types: networkInterfaceParamPrivateIpAddresses :: NetworkInterfaceParam -> [Text]
+ AWS.EC2.Types: networkInterfaceParamSecurityGroupIds :: NetworkInterfaceParam -> [Text]
+ AWS.EC2.Types: networkInterfaceParamSubnetId :: NetworkInterfaceParam -> Maybe Text
+ AWS.EC2.Types: passwordDataInstanceId :: PasswordData -> Text
+ AWS.EC2.Types: passwordDataPasswordData :: PasswordData -> Text
+ AWS.EC2.Types: passwordDataTimestamp :: PasswordData -> UTCTime
+ AWS.EC2.Types: placementTenancy :: Placement -> Text
+ AWS.EC2.Types: productCodeCode :: ProductCode -> Text
+ AWS.EC2.Types: productCodeItemProductCode :: ProductCodeItem -> Text
+ AWS.EC2.Types: productCodeType :: ProductCode -> ProductCodeType
+ AWS.EC2.Types: registerImageRequestArchitecture :: RegisterImageRequest -> Maybe Text
+ AWS.EC2.Types: registerImageRequestBlockDeviceMappings :: RegisterImageRequest -> [BlockDeviceMappingParam]
+ AWS.EC2.Types: registerImageRequestDescription :: RegisterImageRequest -> Maybe Text
+ AWS.EC2.Types: registerImageRequestImageLocation :: RegisterImageRequest -> Maybe Text
+ AWS.EC2.Types: registerImageRequestKernelId :: RegisterImageRequest -> Maybe Text
+ AWS.EC2.Types: registerImageRequestName :: RegisterImageRequest -> Text
+ AWS.EC2.Types: registerImageRequestRamdiskId :: RegisterImageRequest -> Maybe Text
+ AWS.EC2.Types: registerImageRequestRootDeviceName :: RegisterImageRequest -> Maybe Text
+ AWS.EC2.Types: reservationGroupSet :: Reservation -> [Group]
+ AWS.EC2.Types: reservationInstanceSet :: Reservation -> [Instance]
+ AWS.EC2.Types: reservationOwnerId :: Reservation -> Text
+ AWS.EC2.Types: reservationRequesterId :: Reservation -> Maybe Text
+ AWS.EC2.Types: resourceTagKey :: ResourceTag -> Text
+ AWS.EC2.Types: resourceTagValue :: ResourceTag -> Maybe Text
+ AWS.EC2.Types: routeDestinationCidrBlock :: Route -> Text
+ AWS.EC2.Types: routeGatewayId :: Route -> Maybe Text
+ AWS.EC2.Types: routeInstanceId :: Route -> Maybe Text
+ AWS.EC2.Types: routeInstanceOwnerId :: Route -> Maybe Text
+ AWS.EC2.Types: routeNetworkInterfaceId :: Route -> Maybe Text
+ AWS.EC2.Types: routeOrigin :: Route -> Maybe RouteOrigin
+ AWS.EC2.Types: routeState :: Route -> RouteState
+ AWS.EC2.Types: routeTableAssociationId :: RouteTableAssociation -> Text
+ AWS.EC2.Types: routeTableAssociationMain :: RouteTableAssociation -> Maybe Bool
+ AWS.EC2.Types: routeTableAssociationRouteTableId :: RouteTableAssociation -> Text
+ AWS.EC2.Types: routeTableAssociationSet :: RouteTable -> [RouteTableAssociation]
+ AWS.EC2.Types: routeTableAssociationSubnetId :: RouteTableAssociation -> Maybe Text
+ AWS.EC2.Types: routeTableId :: RouteTable -> Text
+ AWS.EC2.Types: routeTablePropagatingVgw :: RouteTable -> Maybe PropagatingVgw
+ AWS.EC2.Types: routeTableRouteSet :: RouteTable -> [Route]
+ AWS.EC2.Types: routeTableTagSet :: RouteTable -> [ResourceTag]
+ AWS.EC2.Types: routeTableVpcId :: RouteTable -> Text
+ AWS.EC2.Types: runInstancesRequestAvailabilityZone :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestBlockDeviceMappings :: RunInstancesRequest -> [BlockDeviceMappingParam]
+ AWS.EC2.Types: runInstancesRequestClientToken :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestDisableApiTermination :: RunInstancesRequest -> Maybe Bool
+ AWS.EC2.Types: runInstancesRequestEbsOptimized :: RunInstancesRequest -> Maybe Bool
+ AWS.EC2.Types: runInstancesRequestIamInstanceProfile :: RunInstancesRequest -> Maybe IamInstanceProfile
+ AWS.EC2.Types: runInstancesRequestImageId :: RunInstancesRequest -> Text
+ AWS.EC2.Types: runInstancesRequestInstanceType :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestKernelId :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestKeyName :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestMaxCount :: RunInstancesRequest -> Int
+ AWS.EC2.Types: runInstancesRequestMinCount :: RunInstancesRequest -> Int
+ AWS.EC2.Types: runInstancesRequestMonitoringEnabled :: RunInstancesRequest -> Maybe Bool
+ AWS.EC2.Types: runInstancesRequestNetworkInterface :: RunInstancesRequest -> [NetworkInterfaceParam]
+ AWS.EC2.Types: runInstancesRequestPlacementGroup :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestPrivateIpAddress :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestRamdiskId :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestSecurityGroupIds :: RunInstancesRequest -> [Text]
+ AWS.EC2.Types: runInstancesRequestSecurityGroups :: RunInstancesRequest -> [Text]
+ AWS.EC2.Types: runInstancesRequestShutdownBehavior :: RunInstancesRequest -> Maybe ShutdownBehavior
+ AWS.EC2.Types: runInstancesRequestSubnetId :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestTenancy :: RunInstancesRequest -> Maybe Text
+ AWS.EC2.Types: runInstancesRequestUserData :: RunInstancesRequest -> Maybe ByteString
+ AWS.EC2.Types: securityGroupDescription :: SecurityGroup -> Text
+ AWS.EC2.Types: securityGroupId :: SecurityGroup -> Text
+ AWS.EC2.Types: securityGroupIpPermissions :: SecurityGroup -> [IpPermission]
+ AWS.EC2.Types: securityGroupIpPermissionsEgress :: SecurityGroup -> [IpPermission]
+ AWS.EC2.Types: securityGroupName :: SecurityGroup -> Text
+ AWS.EC2.Types: securityGroupOwnerId :: SecurityGroup -> Text
+ AWS.EC2.Types: securityGroupTagSet :: SecurityGroup -> [ResourceTag]
+ AWS.EC2.Types: securityGroupVpcId :: SecurityGroup -> Maybe Text
+ AWS.EC2.Types: snapshotDescription :: Snapshot -> Text
+ AWS.EC2.Types: snapshotOwnerAlias :: Snapshot -> Maybe Text
+ AWS.EC2.Types: snapshotOwnerId :: Snapshot -> Text
+ AWS.EC2.Types: snapshotProgress :: Snapshot -> Text
+ AWS.EC2.Types: snapshotStartTime :: Snapshot -> UTCTime
+ AWS.EC2.Types: snapshotStatus :: Snapshot -> SnapshotStatus
+ AWS.EC2.Types: snapshotTagSet :: Snapshot -> [ResourceTag]
+ AWS.EC2.Types: snapshotVolumeId :: Snapshot -> Text
+ AWS.EC2.Types: snapshotVolumeSize :: Snapshot -> Int
+ AWS.EC2.Types: subnetAvailabilityZone :: Subnet -> Text
+ AWS.EC2.Types: subnetAvailableIpAddressCount :: Subnet -> Int
+ AWS.EC2.Types: subnetCidrBlock :: Subnet -> Text
+ AWS.EC2.Types: subnetState :: Subnet -> SubnetState
+ AWS.EC2.Types: subnetTagSet :: Subnet -> [ResourceTag]
+ AWS.EC2.Types: subnetVpicId :: Subnet -> Text
+ AWS.EC2.Types: userIdGroupPairGroupId :: UserIdGroupPair -> Text
+ AWS.EC2.Types: userIdGroupPairGroupName :: UserIdGroupPair -> Maybe Text
+ AWS.EC2.Types: userIdGroupPairUserId :: UserIdGroupPair -> Maybe Text
+ AWS.EC2.Types: volumeAttachmentSet :: Volume -> [AttachmentSetItemResponse]
+ AWS.EC2.Types: volumeAvailabilityZone :: Volume -> Text
+ AWS.EC2.Types: volumeCreateTime :: Volume -> UTCTime
+ AWS.EC2.Types: volumeSize :: Volume -> Int
+ AWS.EC2.Types: volumeSnapshotId :: Volume -> Maybe Text
+ AWS.EC2.Types: volumeStatus :: Volume -> VolumeState
+ AWS.EC2.Types: volumeStatusActionCode :: VolumeStatusAction -> Text
+ AWS.EC2.Types: volumeStatusActionDescription :: VolumeStatusAction -> Text
+ AWS.EC2.Types: volumeStatusActionEventId :: VolumeStatusAction -> Text
+ AWS.EC2.Types: volumeStatusActionEventType :: VolumeStatusAction -> Text
+ AWS.EC2.Types: volumeStatusActionSet :: VolumeStatus -> [VolumeStatusAction]
+ AWS.EC2.Types: volumeStatusAvailabilityZone :: VolumeStatus -> Text
+ AWS.EC2.Types: volumeStatusDetailName :: VolumeStatusDetail -> Text
+ AWS.EC2.Types: volumeStatusDetailStatus :: VolumeStatusDetail -> Text
+ AWS.EC2.Types: volumeStatusEventDescription :: VolumeStatusEvent -> Text
+ AWS.EC2.Types: volumeStatusEventId :: VolumeStatusEvent -> Text
+ AWS.EC2.Types: volumeStatusEventNotAfter :: VolumeStatusEvent -> Maybe UTCTime
+ AWS.EC2.Types: volumeStatusEventNotBefore :: VolumeStatusEvent -> Maybe UTCTime
+ AWS.EC2.Types: volumeStatusEventSet :: VolumeStatus -> [VolumeStatusEvent]
+ AWS.EC2.Types: volumeStatusEventType :: VolumeStatusEvent -> Text
+ AWS.EC2.Types: volumeStatusInfoDetails :: VolumeStatusInfo -> [VolumeStatusDetail]
+ AWS.EC2.Types: volumeStatusInfoStatus :: VolumeStatusInfo -> VolumeStatusInfoStatus
+ AWS.EC2.Types: volumeStatusVolumeId :: VolumeStatus -> Text
+ AWS.EC2.Types: volumeStatusVolumeStatus :: VolumeStatus -> VolumeStatusInfo
+ AWS.EC2.Types: volumeTagSet :: Volume -> [ResourceTag]
+ AWS.EC2.Types: volumeVolumeType :: Volume -> VolumeType
+ AWS.EC2.Types: vpnConnectionCustomerGatewayConfiguration :: VpnConnection -> Text
+ AWS.EC2.Types: vpnConnectionCustomerGatewayId :: VpnConnection -> Text
+ AWS.EC2.Types: vpnConnectionOptions :: VpnConnection -> Maybe VpnConnectionOptionsRequest
+ AWS.EC2.Types: vpnConnectionOptionsRequestStaticRoutesOnly :: VpnConnectionOptionsRequest -> Bool
+ AWS.EC2.Types: vpnConnectionRoutes :: VpnConnection -> Maybe VpnStaticRoute
+ AWS.EC2.Types: vpnConnectionState :: VpnConnection -> VpnConnectionState
+ AWS.EC2.Types: vpnConnectionTagSet :: VpnConnection -> [ResourceTag]
+ AWS.EC2.Types: vpnConnectionType :: VpnConnection -> Text
+ AWS.EC2.Types: vpnConnectionVgwTelemetry :: VpnConnection -> [VpnTunnelTelemetry]
+ AWS.EC2.Types: vpnConnectionVpnGatewayId :: VpnConnection -> Text
+ AWS.EC2.Types: vpnStaticRouteDestinationCidrBlock :: VpnStaticRoute -> Text
+ AWS.EC2.Types: vpnStaticRouteSource :: VpnStaticRoute -> VpnStaticRouteSource
+ AWS.EC2.Types: vpnStaticRouteState :: VpnStaticRoute -> VpnStaticRouteState
+ AWS.EC2.Types: vpnTunnelTelemetryAcceptRouteCount :: VpnTunnelTelemetry -> Int
+ AWS.EC2.Types: vpnTunnelTelemetryLastStatusChange :: VpnTunnelTelemetry -> UTCTime
+ AWS.EC2.Types: vpnTunnelTelemetryOutsideIpAddress :: VpnTunnelTelemetry -> Text
+ AWS.EC2.Types: vpnTunnelTelemetryStatus :: VpnTunnelTelemetry -> VpnTunnelTelemetryStatus
+ AWS.EC2.Types: vpnTunnelTelemetryStatusMessage :: VpnTunnelTelemetry -> Text
+ AWS.EC2.Types: zoneMessageSet :: AvailabilityZone -> [AvailabilityZoneMessage]
+ AWS.EC2.Util: findTag :: Text -> [ResourceTag] -> Maybe ResourceTag
- AWS.EC2: allocateAddress :: (MonadResource m, MonadBaseControl IO m) => Bool -> EC2 m AllocateAddressResponse
+ AWS.EC2: allocateAddress :: (MonadResource m, MonadBaseControl IO m) => Bool -> EC2 m AllocateAddress
- AWS.EC2.Types: InstanceBlockDeviceMapping :: Text -> InstanceEbsBlockDevice -> InstanceBlockDeviceMapping
+ AWS.EC2.Types: InstanceBlockDeviceMapping :: Text -> EbsInstanceBlockDevice -> InstanceBlockDeviceMapping
- AWS.EC2.Types: RunInstancesRequest :: Text -> Int -> Int -> Maybe Text -> [Text] -> [Text] -> Maybe ByteString -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> [BlockDeviceMappingParam] -> Maybe Bool -> Maybe Text -> Maybe Bool -> Maybe ShutdownBehavior -> [Text] -> Maybe Text -> [NetworkInterfaceParam] -> Maybe IamInstanceProfile -> Maybe Bool -> RunInstancesRequest
+ AWS.EC2.Types: RunInstancesRequest :: Text -> Int -> Int -> Maybe Text -> [Text] -> [Text] -> Maybe ByteString -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> [BlockDeviceMappingParam] -> Maybe Bool -> Maybe Text -> Maybe Bool -> Maybe ShutdownBehavior -> Maybe Text -> Maybe Text -> [NetworkInterfaceParam] -> Maybe IamInstanceProfile -> Maybe Bool -> RunInstancesRequest
- AWS.EC2.Types: subnetId :: Instance -> Maybe Text
+ AWS.EC2.Types: subnetId :: Subnet -> Text

Files

AWS.hs view
@@ -32,8 +32,9 @@ module AWS     ( -- * Credentials       Credential-    , loadCredential     , newCredential+    , loadCredential+    , loadCredentialFromFile       -- * Environment     , AWS     , AWSException(..)
+ AWS/CloudWatch.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE FlexibleContexts, RankNTypes #-}++module AWS.CloudWatch+    ( -- * CloudWatch Environment+      CloudWatch+    , runCloudWatch+    , setRegion+    , apiVersion+      -- * Metric+    , module AWS.CloudWatch.Metric+    ) where++import Data.Text (Text)+import Data.Conduit+import Control.Monad.Trans.Control (MonadBaseControl)+import Control.Monad.IO.Class (MonadIO)+import qualified Control.Monad.State as State+import qualified Network.HTTP.Conduit as HTTP+import Data.Monoid ((<>))++import AWS.Class+import AWS.Util++import AWS+import AWS.CloudWatch.Internal+import AWS.CloudWatch.Metric++initialCloudWatchContext :: HTTP.Manager -> AWSContext+initialCloudWatchContext mgr = AWSContext+    { manager = mgr+    , endpoint = "monitoring.amazonaws.com"+    , lastRequestId = Nothing+    }++runCloudWatch :: MonadIO m => Credential -> CloudWatch m a -> m a+runCloudWatch = runAWS initialCloudWatchContext++setRegion+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -> CloudWatch m ()+setRegion region = do+    ctx <- State.get+    State.put+        ctx { endpoint =+            "monitoring." <> textToBS region <> ".amazonaws.com"+            }
+ AWS/CloudWatch/Internal.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE FlexibleContexts, RankNTypes #-}++module AWS.CloudWatch.Internal+    where++import Data.ByteString (ByteString)+import Data.Text (Text)+import Data.Conduit+import Control.Monad.Trans.Control (MonadBaseControl)+import Data.Monoid ((<>))+import Data.XML.Types (Event(..))++import AWS.Class+import AWS.Lib.Query+import AWS.Lib.Parser++apiVersion :: ByteString+apiVersion = "2010-08-01"++type CloudWatch m a = AWS AWSContext m a++cloudWatchQuery+    :: (MonadBaseControl IO m, MonadResource m)+    => ByteString -- ^ Action+    -> [QueryParam]+    -> GLSink Event m a+    -> CloudWatch m a+cloudWatchQuery = commonQuery apiVersion++elements :: MonadThrow m+    => Text+    -> GLSink Event m a+    -> GLSink Event m [a]+elements name f = element (name <> "s") $ listConsumer name f
+ AWS/CloudWatch/Metric.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE FlexibleContexts, RankNTypes #-}++module AWS.CloudWatch.Metric+    ( listMetrics+    , getMetricStatistics+    ) where++import Data.Text (Text)+import Data.Time (UTCTime)+import Data.Conduit+import Control.Monad.Trans.Control (MonadBaseControl)+import Control.Applicative++import AWS.Util+import AWS.CloudWatch.Internal+import AWS.Lib.Query+import AWS.Lib.Parser+import AWS.CloudWatch.Types++dimensionFilterParams :: [DimensionFilter] -> QueryParam+dimensionFilterParams filters =+    StructArrayParams "Dimensions.member" $ map f filters+  where+    f (k, v) = [("Name", k), ("Value", v)]++listMetrics+    :: (MonadBaseControl IO m, MonadResource m)+    => [DimensionFilter] -- ^ Dimensions+    -> Maybe Text -- ^ MetricName+    -> Maybe Text -- ^ Namespace+    -> Maybe Text -- ^ NextToken+    -> CloudWatch m [Metric]+listMetrics ds mn ns nt = cloudWatchQuery "ListMetrics" params $+    members "Metrics" $ Metric+        <$> members "Dimensions" (Dimension+            <$> getT "Name"+            <*> getT "Value"+            )+        <*> getT "MetricName"+        <*> getT "Namespace"+  where+    params =+        dimensionFilterParams ds :+        maybeParams+        [ ("MetricName", mn)+        , ("Namespace", ns)+        , ("NextToken", nt)+        ]++getMetricStatistics+    :: (MonadBaseControl IO m, MonadResource m)+    => [DimensionFilter]+    -> UTCTime -- ^ StartTime+    -> UTCTime -- ^ EndTime+    -> Text -- ^ MetricName+    -> Text -- ^ Namespace+    -> Int -- ^ Period+    -> [Statistic] -- ^ Statistics+    -> Maybe Text -- ^ Unit+    -> CloudWatch m ([Datapoint], Text) -- ^ Datapoints and Label+getMetricStatistics ds start end mn ns pe sts unit =+    cloudWatchQuery "GetMetricStatistics" params $ (,)+        <$> members "Datapoints" (Datapoint+            <$> getF "Timestamp" textToTime+            <*> getM "SampleCount" (textToDouble <$>)+            <*> getT "Unit"+            <*> getM "Minimum" (textToDouble <$>)+            <*> getM "Maximum" (textToDouble <$>)+            <*> getM "Sum" (textToDouble <$>)+            <*> getM "Average" (textToDouble <$>)+            )+        <*> getT "Label"+  where+    params = dimensionFilterParams ds :+        [ ValueParam "StartTime" $ timeToText start+        , ValueParam "EndTime" $ timeToText end+        , ValueParam "MetricName" mn+        , ValueParam "Namespace" ns+        , ValueParam "Period" $ toText pe+        , ArrayParams "Statistics.member" $ map s sts+        ] ++ maybeParams [("Unit", unit)]+    s StatisticAverage     = "Average"+    s StatisticSum         = "Sum"+    s StatisticSampleCount = "SampleCount"+    s StatisticMaximum     = "Maximum"+    s StatisticMinimum     = "Minimum"
+ AWS/CloudWatch/Types.hs view
@@ -0,0 +1,48 @@+module AWS.CloudWatch.Types+    where++import Data.Text (Text)+import Data.Time (UTCTime)++data Metric = Metric+    { metricDimensions :: [Dimension]+    , metricName :: Text+    , metricNameSpace :: Text+    }+  deriving (Show, Eq)++data Dimension = Dimension+    { dimensionName :: Text+    , dimensionValue :: Text+    }+  deriving (Show, Eq)++type DimensionFilter = (Text, Text)++data Datapoint = Datapoint+    { datapointTimestamp :: UTCTime+    , datapointSampleCount :: Maybe Double+    , datapointUnit :: Text+    , datapointMinimum :: Maybe Double+    , datapointMaximum :: Maybe Double+    , datapointSum :: Maybe Double+    , datapointAverage :: Maybe Double+    }+  deriving (Show, Eq)++data Statistic+    = StatisticAverage+    | StatisticSum+    | StatisticSampleCount+    | StatisticMaximum+    | StatisticMinimum+  deriving (Show, Eq)++allStatistics :: [Statistic]+allStatistics =+    [ StatisticAverage+    , StatisticSum+    , StatisticSampleCount+    , StatisticMaximum+    , StatisticMinimum+    ]
AWS/EC2/Address.hs view
@@ -45,7 +45,7 @@     addressSet = itemConduit "addressesSet" $ Address         <$> getT "publicIp"         <*> getMT "allocationId"-        <*> getM "domain" addressDomain+        <*> getM "domain" addressDomain'         <*> getMT "instanceId"         <*> getMT "associationId"         <*> getMT "networkInterfaceId"@@ -58,12 +58,12 @@ allocateAddress     :: (MonadResource m, MonadBaseControl IO m)     => Bool -- ^ is VPC?-    -> EC2 m AllocateAddressResponse+    -> EC2 m AllocateAddress allocateAddress isVpc = do     ec2Query "AllocateAddress" params $-        AllocateAddressResponse+        AllocateAddress         <$> getT "publicIp"-        <*> getM "domain" addressDomain+        <*> getM "domain" addressDomain'         <*> getMT "allocationId"   where     params = if isVpc then [ValueParam "Domain" "vpc"] else []@@ -99,11 +99,12 @@  associateAddressParam     :: AssociateAddressRequest -> [QueryParam]-associateAddressParam (AAEC2Instance ip iid) =+associateAddressParam (AssociateAddressRequestEc2 ip iid) =     [ ValueParam "PublicIp" ip     , ValueParam "InstanceId" iid     ]-associateAddressParam (AAVPCInstance aid iid nid pip ar) =+associateAddressParam+    (AssociateAddressRequestVpc aid iid nid pip ar) =     [ ValueParam "AllocationId" aid ]     ++ maybeParams         [ ("InstanceId", iid)@@ -120,5 +121,7 @@     ec2Query "DisassociateAddress" (p param)         $ getF "return" textToBool   where-    p (DAEC2 pip) = [ValueParam "PublicIp" pip]-    p (DAVPC aid) = [ValueParam "AssociationId" aid]+    p (DisassociateAddressRequestEc2 pip)+        = [ValueParam "PublicIp" pip]+    p (DisassociateAddressRequestVpc aid)+        = [ValueParam "AssociationId" aid]
AWS/EC2/Convert.hs view
@@ -9,59 +9,83 @@ import AWS.Lib.Convert import AWS.EC2.Types -mkConvertFunc "imageState" ''ImageState ["available", "pending", "failed"]+mkConvertFunc+    "imageState"+    ''ImageState+    ["available", "pending", "failed"] -mkConvertFunc "productCodeType" ''ProductCodeType ["devpay", "marketplace"]+mkConvertFunc+    "productCodeType'"+    ''ProductCodeType+    ["devpay", "marketplace"] -mkConvertFunc "imageType" ''ImageType ["machine", "kernel", "ramdisk"]+mkConvertFunc+    "imageType"+    ''ImageType+    ["machine", "kernel", "ramdisk"]  platform :: Maybe Text -> Platform-platform Nothing   = Other+platform Nothing   = PlatformOther platform (Just t)-    | t == "windows" = Windows-    | otherwise      = Other+    | t == "windows" = PlatformWindows+    | otherwise      = PlatformOther -mkConvertFunc "rootDeviceType" ''RootDeviceType ["ebs", "instance-store"]+mkConvertFunc+    "rootDeviceType"+    ''RootDeviceType+    ["ebs", "instance-store"]  volumeType :: Text -> Maybe Int -> VolumeType-volumeType t Nothing  | t == "standard" = Standard-volumeType t (Just i) | t == "io1"      = IO1 i+volumeType t Nothing  | t == "standard" = VolumeTypeStandard+volumeType t (Just i) | t == "io1"      = VolumeTypeIO1 i volumeType t _ = err "volume type" t -mkConvertFunc "virtualizationType" ''VirtualizationType ["paravirtual", "hvm"]+mkConvertFunc+    "virtualizationType"+    ''VirtualizationType ["paravirtual", "hvm"]  mkConvertFunc "hypervisor" ''Hypervisor ["ovm", "xen"] -mkConvertFunc "instanceStatusEventCode"-                  ''InstanceStatusEventCode-                  ["instance-reboot", "instance-stop", "system-reboot", "instance-retirement"]+mkConvertFunc+    "instanceStatusEventCode'"+    ''InstanceStatusEventCode+    [ "instance-reboot"+    , "instance-stop"+    , "system-reboot"+    , "instance-retirement"+    ] -mkConvertFunc "instanceStatusTypeStatus"-                  ''InstanceStatusTypeStatus-                  ["ok", "impaired", "insufficient-data", "not-applicable"]+mkConvertFunc+    "instanceStatusTypeStatus'"+    ''InstanceStatusTypeStatus+    ["ok", "impaired", "insufficient-data", "not-applicable"]  instanceStateCodes :: [(Int, InstanceState)] instanceStateCodes =-    [ (0, Pending)-    , (16, Running)-    , (32, ShuttingDown)-    , (48, Terminated)-    , (64, Stopping)-    , (80, Stopped)+    [ (0, InstanceStatePending)+    , (16, InstanceStateRunning)+    , (32, InstanceStateShuttingDown)+    , (48, InstanceStateTerminated)+    , (64, InstanceStateStopping)+    , (80, InstanceStateStopped)     ]  codeToState :: Int -> InstanceState-codeToState code = case lookup code instanceStateCodes of-    Nothing -> UnknownState code-    Just st -> st+codeToState code = maybe+    (InstanceStateUnknown code)+    id+    (lookup code instanceStateCodes) -mkConvertFunc "instanceMonitoringState" ''InstanceMonitoringState ["disabled", "enabled", "pending"]+mkConvertFunc+    "instanceMonitoringState"+    ''InstanceMonitoringState+    ["disabled", "enabled", "pending"]  mkConvertFunc "architecture" ''Architecture ["i386", "x86_64"] -addressDomain :: Maybe Text -> AddressDomain-addressDomain Nothing = AddressDomainStandard-addressDomain (Just t)+addressDomain' :: Maybe Text -> AddressDomain+addressDomain' Nothing = AddressDomainStandard+addressDomain' (Just t)     | t == "standard" = AddressDomainStandard     | t == "vpc"      = AddressDomainVPC     | otherwise       = err "address domain" t@@ -71,25 +95,50 @@     | t == "true" = EC2Success     | otherwise   = EC2Error t -mkConvertFunc "snapshotStatus" ''SnapshotStatus ["pending", "completed", "error"]+mkConvertFunc+    "snapshotStatus'"+    ''SnapshotStatus+    ["pending", "completed", "error"] -mkConvertFunc "volumeStatus"-                  ''VolumeState-                  ["creating", "available", "in-use", "deleting", "deleted", "error"]+mkConvertFunc+    "volumeStatus'"+    ''VolumeState+    [ "creating"+    , "available"+    , "in-use"+    , "deleting"+    , "deleted"+    , "error"] -mkConvertFunc "attachmentSetItemResponseStatus"-                  ''AttachmentSetItemResponseStatus-                  ["attaching", "attached", "detaching", "detached"]+mkConvertFunc+    "attachmentSetItemResponseStatus'"+    ''AttachmentSetItemResponseStatus+    ["attaching", "attached", "detaching", "detached"] -mkConvertFunc "shutdownBehavior" ''ShutdownBehavior ["stop", "terminate"]+mkConvertFunc+    "shutdownBehavior"+    ''ShutdownBehavior+    ["stop", "terminate"] -mkConvertFunc "vpnConnectionState" ''VpnConnectionState ["pending", "available", "deleting", "deleted"]+mkConvertFunc+    "vpnConnectionState'"+    ''VpnConnectionState+    ["pending", "available", "deleting", "deleted"] -mkConvertFunc "vpnTunnelTelemetryStatus" ''VpnTunnelTelemetryStatus ["UP", "DOWN"]+mkConvertFunc+    "vpnTunnelTelemetryStatus'"+    ''VpnTunnelTelemetryStatus+    ["UP", "DOWN"] -mkConvertFunc "vpnStaticRouteSource" ''VpnStaticRouteSource ["Static"]+mkConvertFunc+    "vpnStaticRouteSource'"+    ''VpnStaticRouteSource+    ["Static"] -mkConvertFunc "vpnStaticRouteState" ''VpnStaticRouteState ["pending", "available", "deleting", "deleted"]+mkConvertFunc+    "vpnStaticRouteState'"+    ''VpnStaticRouteState+    ["pending", "available", "deleting", "deleted"]  instanceLifecycle :: Maybe Text -> InstanceLifecycle instanceLifecycle Nothing = LifecycleNone@@ -97,22 +146,55 @@     | t == "spot"   = LifecycleSpot     | otherwise     = err "lifecycle" t -mkConvertFunc "subnetState" ''SubnetState ["pending", "available"]+mkConvertFunc+    "subnetState'"+    ''SubnetState+    ["pending", "available"] -mkConvertFunc "volumeStatusInfoStatus" ''VolumeStatusInfoStatus ["ok", "impaired", "insufficient-data"]+mkConvertFunc+    "volumeStatusInfoStatus'"+    ''VolumeStatusInfoStatus+    ["ok", "impaired", "insufficient-data"] -mkConvertFunc "networkAclRuleAction" ''NetworkAclRuleAction ["allow", "deny"]+mkConvertFunc+    "networkAclRuleAction"+    ''NetworkAclRuleAction+    ["allow", "deny"] -mkConvertFunc "routeState" ''RouteState ["active", "blackhole"]+mkConvertFunc+    "routeState'"+    ''RouteState+    ["active", "blackhole"] -mkConvertFunc "routeOrigin" ''RouteOrigin ["CreateRouteTable", "CreateRoute", "EnableVgwRoutePropagation"]+mkConvertFunc+    "routeOrigin'"+    ''RouteOrigin+    [ "CreateRouteTable"+    , "CreateRoute"+    , "EnableVgwRoutePropagation"+    ] -mkConvertFunc "vpcState'" ''VpcState ["pending", "available"]+mkConvertFunc+    "vpcState'"+    ''VpcState+    ["pending", "available"] -mkConvertFunc "vpnGatewayState'" ''VpnGatewayState ["pending", "available", "deleting", "deleted"]+mkConvertFunc+    "vpnGatewayState'"+    ''VpnGatewayState+    ["pending", "available", "deleting", "deleted"] -mkConvertFunc "attachmentState'" ''AttachmentState ["attaching", "attached", "detaching", "detached"]+mkConvertFunc+    "attachmentState'"+    ''AttachmentState+    ["attaching", "attached", "detaching", "detached"] -mkConvertFunc "customerGatewayState'" ''CustomerGatewayState ["pending", "available", "deleting", "deleted"]+mkConvertFunc+    "customerGatewayState'"+    ''CustomerGatewayState+    ["pending", "available", "deleting", "deleted"] -mkConvertFunc "internetGatewayAttachmentState'" ''InternetGatewayAttachmentState ["attaching", "attached", "detaching", "detached", "available"]+mkConvertFunc+    "internetGatewayAttachmentState'"+    ''InternetGatewayAttachmentState+    ["attaching", "attached", "detaching", "detached", "available"]
AWS/EC2/Image.hs view
@@ -5,14 +5,17 @@     , createImage     , registerImage     , deregisterImage+    , describeImageAttribute     ) where  import Data.Text (Text)+import qualified Data.Text as T  import Data.XML.Types (Event) import Data.Conduit import Control.Monad.Trans.Control (MonadBaseControl) import Control.Applicative+import Control.Monad (join)  import AWS.EC2.Convert import AWS.EC2.Internal@@ -62,22 +65,25 @@     <*> itemsSet "billingProducts" (getT "billingProduct")     <*> getF "rootDeviceType" rootDeviceType     <*> getMT "rootDeviceName"-    <*> itemsSet "blockDeviceMapping" (-        BlockDeviceMapping-        <$> getT "deviceName"-        <*> getMT "virtualName"-        <*> elementM "ebs" (-            EbsBlockDevice-            <$> getMT "snapshotId"-            <*> getF "volumeSize" textToInt-            <*> getF "deleteOnTermination" textToBool-            <*> volumeTypeSink-            )-        )+    <*> blockDeviceMappingSink     <*> getF "virtualizationType" virtualizationType     <*> resourceTagSink     <*> getF "hypervisor" hypervisor +blockDeviceMappingSink :: MonadThrow m => GLSink Event m [BlockDeviceMapping]+blockDeviceMappingSink = itemsSet "blockDeviceMapping" (+    BlockDeviceMapping+    <$> getT "deviceName"+    <*> getMT "virtualName"+    <*> elementM "ebs" (+        EbsBlockDevice+        <$> getMT "snapshotId"+        <*> getF "volumeSize" textToInt+        <*> getF "deleteOnTermination" textToBool+        <*> volumeTypeSink+        )+    )+ createImage     :: (MonadResource m, MonadBaseControl IO m)     => Text -- ^ InstanceId@@ -104,15 +110,22 @@ registerImage req =     ec2Query "RegisterImage" params $ getT "imageId"   where-    params = [ValueParam "Name" $ rirName req]-        ++ [blockDeviceMappingParams $ rirBlockDeviceMappings req]+    params = [ValueParam "Name" $ registerImageRequestName req]+        ++ [blockDeviceMappingParams+            $ registerImageRequestBlockDeviceMappings req]         ++ maybeParams-            [ ("ImageLocation", rirImageLocation req)-            , ("Description", rirDescription req)-            , ("Architecture", rirArchitecture req)-            , ("KernelId", rirKernelId req)-            , ("RamdiskId", rirRamdiskId req)-            , ("RootDeviceName", rirRootDeviceName req)+            [ ("ImageLocation"+              , registerImageRequestImageLocation req+              )+            , ("Description", registerImageRequestDescription req)+            , ("Architecture"+              , registerImageRequestArchitecture req+              )+            , ("KernelId", registerImageRequestKernelId req)+            , ("RamdiskId", registerImageRequestRamdiskId req)+            , ("RootDeviceName"+              , registerImageRequestRootDeviceName req+              )             ]  deregisterImage@@ -123,3 +136,36 @@     ec2Query "DeregisterImage" params returnBool   where     params = [ValueParam "ImageId" iid]++describeImageAttribute+    :: (MonadResource m, MonadBaseControl IO m)+    => Text -- ^ ImageId+    -> AMIAttribute -- ^ Attribute+    -> EC2 m AMIAttributeDescription+describeImageAttribute iid attr =+    ec2Query "DescribeImageAttribute" params $ AMIAttributeDescription+        <$> getT "imageId"+        <*> itemsSet "launchPermission"+            (LaunchPermissionItem+            <$> getT "group"+            <*> getT "userId")+        <*> itemsSet "productCodes"+            (ProductCodeItem+            <$> getT "productCode")+        <*> getMMT "kernel"+        <*> getMMT "ramdisk"+        <*> getMMT "description"+        <*> blockDeviceMappingSink+  where+    getMMT name = join <$> elementM name (getMT "value")+    params = [ ValueParam "ImageId" iid+             , ValueParam "Attribute" param+             ]+    param :: Text+    param | attr == AMIDescription        = "description"+          | attr == AMIKernel             = "kernel"+          | attr == AMIRamdisk            = "ramdisk"+          | attr == AMILaunchPermission   = "launchPermission"+          | attr == AMIProductCodes       = "productCodes"+          | attr == AMIBlockDeviceMapping = "blockDeviceMapping"+          | otherwise                     = err "AMIAttribute" $ T.pack $ show attr
AWS/EC2/Instance.hs view
@@ -120,9 +120,9 @@     InstanceBlockDeviceMapping     <$> getT "deviceName"     <*> element "ebs" (-        InstanceEbsBlockDevice+        EbsInstanceBlockDevice         <$> getT "volumeId"-        <*> getF "status" attachmentSetItemResponseStatus+        <*> getF "status" attachmentSetItemResponseStatus'         <*> getF "attachTime" textToTime         <*> getF "deleteOnTermination" textToBool         )@@ -201,7 +201,7 @@         <*> getT "availabilityZone"         <*> itemsSet "eventsSet" (             InstanceStatusEvent-            <$> getF "code" instanceStatusEventCode+            <$> getF "code" instanceStatusEventCode'             <*> getT "description"             <*> getM "notBefore" (textToTime <$>)             <*> getM "notAfter" (textToTime <$>)@@ -214,7 +214,7 @@     => Text -> GLSink Event m InstanceStatusType instanceStatusTypeSink name = element name $     InstanceStatusType-    <$> getF "status" instanceStatusTypeStatus+    <$> getF "status" instanceStatusTypeStatus'     <*> itemsSet "details" (         InstanceStatusDetail         <$> getT "name"@@ -295,35 +295,65 @@     ec2Query "RunInstances" params reservationSink   where     params =-        [ ValueParam "ImageId" $ riImageId param-        , ValueParam "MinCount" $ toText $ riMinCount param-        , ValueParam "MaxCount" $ toText $ riMaxCount param-        , ArrayParams "SecurityGroupId" $ riSecurityGroupIds param-        , ArrayParams "SecurityGroup" $ riSecurityGroups param-        , blockDeviceMappingParams $ riBlockDeviceMappings param+        [ ValueParam "ImageId" $ runInstancesRequestImageId param+        , ValueParam "MinCount"+            $ toText $ runInstancesRequestMinCount param+        , ValueParam "MaxCount"+            $ toText $ runInstancesRequestMaxCount param+        , ArrayParams "SecurityGroupId"+            $ runInstancesRequestSecurityGroupIds param+        , ArrayParams "SecurityGroup"+            $ runInstancesRequestSecurityGroups param+        , blockDeviceMappingParams+            $ runInstancesRequestBlockDeviceMappings param         ] ++ maybeParams-            [ ("KeyName", riKeyName param)-            , ("UserData", bsToText <$> riUserData param)-            , ("InstanceType", riInstanceType param)-            , ("Placement.AvailabilityZone",-               riAvailabilityZone param)-            , ("Placement.GroupName", riPlacementGroup param)-            , ("Placement.Tenancy", riTenancy param)-            , ("KernelId", riKernelId param)-            , ("RamdiskId", riRamdiskId param)-            , ("Monitoring.Enabled",-               boolToText <$> riMonitoringEnabled param)-            , ("SubnetId", riSubnetId param)-            , ("DisableApiTermination",-               boolToText <$> riDisableApiTermination param)-            , ("InstanceInitiatedShutdownBehavior",-               sbToText <$> riShutdownBehavior param)-            , ("ClientToken", riClientToken param)-            , ("IamInstanceProfile.Arn",-               iipArn <$> riIamInstanceProfile param)-            , ("IamInstanceProfile.Name",-               iipId <$> riIamInstanceProfile param)-            , ("EbsOptimized", boolToText <$> riEbsOptimized param)+            [ ("KeyName", runInstancesRequestKeyName param)+            , ("UserData"+              , bsToText <$> runInstancesRequestUserData param+              )+            , ("InstanceType"+              , runInstancesRequestInstanceType param+              )+            , ("Placement.AvailabilityZone"+              , runInstancesRequestAvailabilityZone param+              )+            , ("Placement.GroupName"+              , runInstancesRequestPlacementGroup param+              )+            , ("Placement.Tenancy"+              , runInstancesRequestTenancy param+              )+            , ("KernelId", runInstancesRequestKernelId param)+            , ("RamdiskId", runInstancesRequestRamdiskId param)+            , ("Monitoring.Enabled"+              , boolToText+                <$> runInstancesRequestMonitoringEnabled param+              )+            , ("SubnetId", runInstancesRequestSubnetId param)+            , ("DisableApiTermination"+              , boolToText+                <$> runInstancesRequestDisableApiTermination param+              )+            , ("InstanceInitiatedShutdownBehavior"+              , sbToText+                <$> runInstancesRequestShutdownBehavior param+              )+            , ("PrivateIpAddress"+              , runInstancesRequestPrivateIpAddress param+              )+            , ("ClientToken", runInstancesRequestClientToken param)+            , ("IamInstanceProfile.Arn"+              , iamInstanceProfileArn+                <$> runInstancesRequestIamInstanceProfile param+              )+            , ("IamInstanceProfile.Name"+              , iamInstanceProfileId+                <$> runInstancesRequestIamInstanceProfile param+              )+            , ("EbsOptimized"+              , boolToText+                <$> runInstancesRequestEbsOptimized param+              )             ]  -- | RunInstances parameter utility@@ -334,34 +364,33 @@     -> RunInstancesRequest defaultRunInstancesRequest iid minCount maxCount     = RunInstancesRequest-    { riImageId = iid-    , riMinCount = minCount-    , riMaxCount = maxCount-    , riKeyName = Nothing-    , riSecurityGroupIds = []-    , riSecurityGroups = []-    , riUserData = Nothing-    , riInstanceType = Nothing-    , riAvailabilityZone = Nothing-    , riPlacementGroup = Nothing-    , riTenancy = Nothing-    , riKernelId = Nothing-    , riRamdiskId = Nothing-    , riBlockDeviceMappings = []-    , riMonitoringEnabled = Nothing-    , riSubnetId = Nothing-    , riDisableApiTermination = Nothing-    , riShutdownBehavior = Nothing-    , riPrivateIpAddresses = []-    , riClientToken = Nothing-    , riNetworkInterface = []-    , riIamInstanceProfile = Nothing-    , riEbsOptimized = Nothing-    }+        iid+        minCount+        maxCount+        Nothing+        []+        []+        Nothing+        Nothing+        Nothing+        Nothing+        Nothing+        Nothing+        Nothing+        []+        Nothing+        Nothing+        Nothing+        Nothing+        Nothing+        Nothing+        []+        Nothing+        Nothing  sbToText :: ShutdownBehavior -> Text-sbToText SBStop      = "stop"-sbToText SBTerminate = "terminate"+sbToText ShutdownBehaviorStop      = "stop"+sbToText ShutdownBehaviorTerminate = "terminate"  ------------------------------------------------------------ -- GetConsoleOutput@@ -405,48 +434,53 @@         [ ValueParam "InstanceId" iid         , ValueParam "Attribute" str         ]-    f IARBlockDeviceMapping = instanceBlockDeviceMappingsSink-        >>= return . IABlockDeviceMapping-    f IARProductCodes =-        productCodeSink >>= return . IAProductCodes-    f IARGroupSet =-        (itemsSet str $ getT "groupId") >>= return . IAGroupSet+    f InstanceAttributeRequestBlockDeviceMapping = instanceBlockDeviceMappingsSink+        >>= return . InstanceAttributeBlockDeviceMapping+    f InstanceAttributeRequestProductCodes =+        productCodeSink >>= return . InstanceAttributeProductCodes+    f InstanceAttributeRequestGroupSet =+        (itemsSet str $ getT "groupId")+        >>= return . InstanceAttributeGroupSet     f req = valueSink str (fromJust $ Map.lookup req h)     h = Map.fromList-        [ (IARInstanceType, IAInstanceType . fromJust)-        , (IARKernelId, IAKernelId)-        , (IARRamdiskId, IARamdiskId)-        , (IARUserData, IAUserData)-        , (IARDisableApiTermination,-           IADisableApiTermination . textToBool . fromJust)-        , (IARShutdownBehavior,-           IAShutdownBehavior . shutdownBehavior . fromJust)-        , (IARRootDeviceName, IARootDeviceName)-        , (IARSourceDestCheck,-           IASourceDestCheck . (textToBool <$>))-        , (IAREbsOptimized, IAEbsOptimized . textToBool . fromJust)+        [ (InstanceAttributeRequestInstanceType,+           InstanceAttributeInstanceType . fromJust)+        , (InstanceAttributeRequestKernelId, InstanceAttributeKernelId)+        , (InstanceAttributeRequestRamdiskId, InstanceAttributeRamdiskId)+        , (InstanceAttributeRequestUserData, InstanceAttributeUserData)+        , (InstanceAttributeRequestDisableApiTermination,+           InstanceAttributeDisableApiTermination+           . textToBool . fromJust)+        , (InstanceAttributeRequestShutdownBehavior,+           InstanceAttributeShutdownBehavior+           . shutdownBehavior . fromJust)+        , (InstanceAttributeRequestRootDeviceName, InstanceAttributeRootDeviceName)+        , (InstanceAttributeRequestSourceDestCheck,+           InstanceAttributeSourceDestCheck . (textToBool <$>))+        , (InstanceAttributeRequestEbsOptimized,+           InstanceAttributeEbsOptimized . textToBool . fromJust)         ]     valueSink name val =         (element name $ getMT "value") >>= return . val  iar :: InstanceAttributeRequest -> Text-iar IARInstanceType          = "instanceType"-iar IARKernelId              = "kernel"-iar IARRamdiskId             = "ramdisk"-iar IARUserData              = "userData"-iar IARDisableApiTermination = "disableApiTermination"-iar IARShutdownBehavior      = "instanceInitiatedShutdownBehavior"-iar IARRootDeviceName        = "rootDeviceName"-iar IARBlockDeviceMapping    = "blockDeviceMapping"-iar IARSourceDestCheck       = "sourceDestCheck"-iar IARGroupSet              = "groupSet"-iar IARProductCodes          = "productCodes"-iar IAREbsOptimized          = "ebsOptimized"+iar InstanceAttributeRequestInstanceType          = "instanceType"+iar InstanceAttributeRequestKernelId              = "kernel"+iar InstanceAttributeRequestRamdiskId             = "ramdisk"+iar InstanceAttributeRequestUserData              = "userData"+iar InstanceAttributeRequestDisableApiTermination = "disableApiTermination"+iar InstanceAttributeRequestShutdownBehavior      = "instanceInitiatedShutdownBehavior"+iar InstanceAttributeRequestRootDeviceName        = "rootDeviceName"+iar InstanceAttributeRequestBlockDeviceMapping    = "blockDeviceMapping"+iar InstanceAttributeRequestSourceDestCheck       = "sourceDestCheck"+iar InstanceAttributeRequestGroupSet              = "groupSet"+iar InstanceAttributeRequestProductCodes          = "productCodes"+iar InstanceAttributeRequestEbsOptimized          = "ebsOptimized"  riap :: ResetInstanceAttributeRequest -> Text-riap RIAPKernel          = "kernel"-riap RIAPRamdisk         = "ramdisk"-riap RIAPSourceDestCheck = "sourceDestCheck"+riap ResetInstanceAttributeRequestKernel          = "kernel"+riap ResetInstanceAttributeRequestRamdisk         = "ramdisk"+riap ResetInstanceAttributeRequestSourceDestCheck = "sourceDestCheck"  resetInstanceAttribute     :: (MonadResource m, MonadBaseControl IO m)@@ -473,26 +507,26 @@     params = ValueParam "InstanceId" iid:concatMap miap attrs  miap :: ModifyInstanceAttributeRequest -> [QueryParam]-miap (MIAPInstanceType a) =+miap (ModifyInstanceAttributeRequestInstanceType a) =     [ValueParam "InstanceType.Value" a]-miap (MIAPKernelId a) =+miap (ModifyInstanceAttributeRequestKernelId a) =     [ValueParam "Kernel.Value"  a]-miap (MIAPRamdiskId a) =+miap (ModifyInstanceAttributeRequestRamdiskId a) =     [ValueParam "Ramdisk.Value" a]-miap (MIAPUserData a) =+miap (ModifyInstanceAttributeRequestUserData a) =     [ValueParam "UserData.Value" a]-miap (MIAPDisableApiTermination a) =+miap (ModifyInstanceAttributeRequestDisableApiTermination a) =     [ValueParam "DisableApiTermination.Value" $ toText a]-miap (MIAPShutdownBehavior a) =+miap (ModifyInstanceAttributeRequestShutdownBehavior a) =     [ValueParam "InstanceInitiatedShutdownBehavior.Value"      $ sbToText a]-miap (MIAPRootDeviceName a) =+miap (ModifyInstanceAttributeRequestRootDeviceName a) =     [ValueParam "RootDeviceName" a]-miap (MIAPBlockDeviceMapping a) =+miap (ModifyInstanceAttributeRequestBlockDeviceMapping a) =     [blockDeviceMappingParams a]-miap (MIAPSourceDestCheck a) =+miap (ModifyInstanceAttributeRequestSourceDestCheck a) =     [ValueParam "SourceDestCheck.Value" $ toText a]-miap (MIAPGroupSet a) =+miap (ModifyInstanceAttributeRequestGroupSet a) =     [ArrayParams "GroupId" a]-miap (MIAPEbsOptimized a) =+miap (ModifyInstanceAttributeRequestEbsOptimized a) =     [ValueParam "EbsOptimized" $ toText a]
AWS/EC2/Internal.hs view
@@ -56,7 +56,7 @@ productCodeSink = itemsSet "productCodes" $     ProductCode     <$> getT "productCode"-    <*> getF "type" productCodeType+    <*> getF "type" productCodeType'  stateReasonSink :: MonadThrow m     => GLSink Event m (Maybe StateReason)
AWS/EC2/KeyPair.hs view
@@ -18,7 +18,6 @@ import AWS.EC2.Types import AWS.EC2.Query import AWS.Lib.Parser-import AWS.Util  describeKeyPairs     :: (MonadResource m, MonadBaseControl IO m)
AWS/EC2/Params.hs view
@@ -12,7 +12,7 @@ blockDeviceMappingParams =     StructArrayParams "BlockDeviceMapping" . map kvs   where-    kvs (BlockDeviceMappingParamEBS name dev src dot vtype) = +    kvs (BlockDeviceMappingParamEbs name dev src dot vtype) =          [ ("DeviceName", name)         , ebsSource src         ] ++ vtparam vtype ++ (uncurry f =<<@@ -25,14 +25,15 @@             , ("VirtualName", vname)             ]) -    ebsSource (EbsSnapshotId sid) = ("Ebs.SnapshotId", sid)-    ebsSource (EbsVolumeSize size) =+    ebsSource (EbsSourceSnapshotId sid) = ("Ebs.SnapshotId", sid)+    ebsSource (EbsSourceVolumeSize size) =         ("Ebs.VolumeSize", T.pack $ show size)      f n = maybe [] (\a -> [(n, a)])     vtparam Nothing = []-    vtparam (Just Standard) = [("Ebs.VolumeType", "standard")]-    vtparam (Just (IO1 iops)) =+    vtparam (Just VolumeTypeStandard) =+        [("Ebs.VolumeType", "standard")]+    vtparam (Just (VolumeTypeIO1 iops)) =         [ ("Ebs.VolumeType", "io1")         , ("Ebs.Iops", T.pack $ show iops)         ]
AWS/EC2/Query.hs view
@@ -9,6 +9,7 @@ #endif     , ec2Delete     , module AWS.Lib.Query+    , apiVersion     ) where  import           Data.ByteString (ByteString)@@ -38,8 +39,8 @@ import qualified Data.Conduit.Binary as CB #endif -ec2Version :: ByteString-ec2Version = "2012-10-01"+apiVersion :: ByteString+apiVersion = "2012-10-01"  sinkRequestId :: MonadThrow m     => GLSink Event m Text@@ -95,7 +96,7 @@     cred <- Reader.ask     ctx <- State.get     (src1, rid) <- lift $ do-        response <- requestQuery cred ctx action params' ec2Version sinkError+        response <- requestQuery cred ctx action params' apiVersion sinkError         res <- response $=+ XmlP.parseBytes XmlP.def         res $$++ sinkRequestId     State.put ctx{lastRequestId = Just rid}@@ -117,7 +118,7 @@     cred <- Reader.ask     ctx <- State.get     lift $ do-        response <- requestQuery cred ctx action params ec2Version sinkError+        response <- requestQuery cred ctx action params apiVersion sinkError         (res, _) <- unwrapResumable response         res $$ CB.sinkFile "debug.txt" >>= fail "debug" #endif
AWS/EC2/RouteTable.hs view
@@ -57,8 +57,8 @@     <*> getMT "instanceId"     <*> getMT "instanceOwnerId"     <*> getMT "networkInterfaceId"-    <*> getF "state" routeState-    <*> getM "origin" (routeOrigin <$>)+    <*> getF "state" routeState'+    <*> getM "origin" (routeOrigin' <$>)  routeTableAssociationSink :: MonadThrow m     => GLSink Event m [RouteTableAssociation]
AWS/EC2/SecurityGroup.hs view
@@ -87,8 +87,8 @@         $ getF "return" textToBool  p :: SecurityGroupRequest -> QueryParam-p (GroupId t)   = ValueParam "GroupId" t-p (GroupName t) = ValueParam "GroupName" t+p (SecurityGroupRequestGroupId t)   = ValueParam "GroupId" t+p (SecurityGroupRequestGroupName t) = ValueParam "GroupName" t  -- | not tested authorizeSecurityGroupIngress@@ -107,7 +107,7 @@     -> EC2 m Bool authorizeSecurityGroupEgress gid =     securityGroupQuery "AuthorizeSecurityGroupEgress"-        $ GroupId gid+        $ SecurityGroupRequestGroupId gid  -- | not tested revokeSecurityGroupIngress@@ -126,7 +126,7 @@     -> EC2 m Bool revokeSecurityGroupEgress gid =     securityGroupQuery "RevokeSecurityGroupEgress"-        $ GroupId gid+        $ SecurityGroupRequestGroupId gid  securityGroupQuery     :: (MonadResource m, MonadBaseControl IO m)@@ -145,23 +145,29 @@  ipPermissionParam :: Int -> IpPermission -> [QueryParam] ipPermissionParam num ipp =-    [ValueParam (pre <> ".IpProtocol") $ ippIpProtocol ipp]+    [ValueParam (pre <> ".IpProtocol") $+        ipPermissionIpProtocol ipp]     ++ (uncurry (mk pre) =<<-        [ (".FromPort", toText <$> ippFromPort ipp)-        , (".ToPort", toText <$> ippToPort ipp)+        [ (".FromPort", toText <$> ipPermissionFromPort ipp)+        , (".ToPort", toText <$> ipPermissionToPort ipp)         ])-    ++ map (uncurry ipr) (zip intstr $ ippIpRanges ipp)-    ++ concatMap (uncurry grp) (zip intstr $ ippGroups ipp)+    ++ map+        (uncurry ipr)+        (zip intstr $ ipPermissionIpRanges ipp)+    ++ concatMap+        (uncurry grp)+        (zip intstr $ ipPermissionGroups ipp)   where     pre = "IpPermissions." <> toText num     mk h name = maybe [] (\a -> [ValueParam (h <> name) a])     grph n = pre <> ".Groups." <> toText n     grp n g = -        [ ValueParam (grph n <> ".GroupId") $ uigpGroupId g+        [ ValueParam (grph n <> ".GroupId") $+            userIdGroupPairGroupId g         ] ++ (uncurry (mk (grph n)) =<<-            [ (".UserId", uigpUserId g)-            , (".GroupName", uigpGroupName g)+            [ (".UserId", userIdGroupPairUserId g)+            , (".GroupName", userIdGroupPairGroupName g)             ])     ipr n r = ValueParam         (pre <> ".IPRanges." <> toText n <> ".CidrIp")-        $ iprCidrIp r+        $ ipRangeCidrIp r
AWS/EC2/Snapshot.hs view
@@ -43,7 +43,7 @@ snapshotSink = Snapshot         <$> getT "snapshotId"         <*> getT "volumeId"-        <*> getF "status" snapshotStatus+        <*> getF "status" snapshotStatus'         <*> getF "startTime" textToTime         <*> getT "progress"         <*> getT "ownerId"
AWS/EC2/Subnets.hs view
@@ -40,7 +40,7 @@     => GLSink Event m Subnet subnetSink = Subnet     <$> getT "subnetId"-    <*> getF "state" subnetState+    <*> getF "state" subnetState'     <*> getT "vpcId"     <*> getT "cidrBlock"     <*> getF "availableIpAddressCount" textToInt
AWS/EC2/Tag.hs view
@@ -35,7 +35,7 @@ createTags     :: (MonadResource m, MonadBaseControl IO m)     => [Text] -- ^ ResourceId (instance-id, image-id,..)-    -> [(Text, Text)]+    -> [(Text, Text)] -- ^ (Key, Value)     -> EC2 m Bool createTags rids kvs =     ec2Query "CreateTags" params returnBool@@ -61,7 +61,7 @@         ++ concatMap (uncurry tagParam) (zip ([1..]::[Int]) tags)     tagParam n tag =         [ ValueParam ("Tag." <> toText n <> ".Key")-         $ resourceKey tag ]+         $ resourceTagKey tag ]         ++ maybe []             (\a -> [ValueParam ("Tag." <> toText n <> ".Value") a])-            (resourceValue tag)+            (resourceTagValue tag)
AWS/EC2/Types.hs view
@@ -1,7 +1,9 @@ module AWS.EC2.Types     ( Address(..)     , AddressDomain(..)-    , AllocateAddressResponse(..)+    , AllocateAddress(..)+    , AMIAttribute(..)+    , AMIAttributeDescription(..)     , Architecture(..)     , AssociateAddressRequest(..)     , Attachment(..)@@ -20,6 +22,7 @@     , CustomerGatewayState(..)     , DisassociateAddressRequest(..)     , EbsBlockDevice(..)+    , EbsInstanceBlockDevice(..)     , EbsSource(..)     , EC2Return(..)     , Group(..)@@ -33,7 +36,6 @@     , InstanceAttribute(..)     , InstanceAttributeRequest(..)     , InstanceBlockDeviceMapping(..)-    , InstanceEbsBlockDevice(..)     , InstanceLifecycle(..)     , InstanceMonitoringState(..)     , InstanceNetworkInterface(..)@@ -52,6 +54,7 @@     , IpRange(..)     , KeyPair(..)     , ModifyInstanceAttributeRequest(..)+    , LaunchPermissionItem(..)     , NetworkAcl(..)     , NetworkAclAssociation(..)     , NetworkAclEntry(..)@@ -65,6 +68,7 @@     , Platform(..)     , PortRange(..)     , ProductCode(..)+    , ProductCodeItem(..)     , ProductCodeType(..)     , Region(..)     , RegisterImageRequest(..)@@ -117,7 +121,6 @@     , InternetGatewayAttachmentState(..)     ) where -import Data.Default (Default(..)) import Data.Text (Text) import Data.ByteString (ByteString) import Data.Time (UTCTime)@@ -127,12 +130,12 @@     , imageLocation :: Text     , imageImageState :: ImageState     , imageOwnerId :: Text-    , isPublic :: Bool+    , imageIsPublic :: Bool     , imageProductCodes :: [ProductCode]     , imageArchitecture :: Text     , imageImageType :: ImageType-    , kernelId :: Maybe Text-    , ramdiskId :: Maybe Text+    , imageKernelId :: Maybe Text+    , imageRamdiskId :: Maybe Text     , imagePlatform :: Platform     , imageStateReason :: Maybe StateReason     , imageViridianEnabled :: Maybe Bool@@ -142,38 +145,72 @@     , imageBillingProducts :: [Text]     , imageRootDeviceType :: RootDeviceType     , imageRootDeviceName :: Maybe Text-    , blockDeviceMappings :: [BlockDeviceMapping]+    , imageBlockDeviceMappings :: [BlockDeviceMapping]     , imageVirtualizationType :: VirtualizationType     , imageTagSet :: [ResourceTag]     , imageHypervisor :: Hypervisor     }   deriving (Show, Eq) +data AMIAttribute+    = AMIDescription+    | AMIKernel+    | AMIRamdisk+    | AMILaunchPermission+    | AMIProductCodes+    | AMIBlockDeviceMapping+  deriving (Show, Eq)++data AMIAttributeDescription = AMIAttributeDescription+    { amiAttributeDescriptionImageId :: Text+    , amiAttributeDescriptionLaunchPermission :: [LaunchPermissionItem]+    , amiAttributeDescriptionProductCodes :: [ProductCodeItem]+    , amiAttributeDescriptionKernel :: Maybe Text+    , amiAttributeDescriptionRamdisk :: Maybe Text+    , amiAttributeDescriptionDescription :: Maybe Text+    , amiAttributeDescriptionBlockDeviceMapping :: [BlockDeviceMapping]+    }+  deriving (Show, Eq)++data LaunchPermissionItem = LaunchPermissionItem+    { launchPermissionItemGroup :: Text+    , launchPermissionUserId :: Text+    }+  deriving (Show, Eq)+ data ImageState-    = ImageAvailable-    | ImagePending-    | ImageFailed+    = ImageStateAvailable+    | ImageStatePending+    | ImageStateFailed   deriving (Show, Eq)  data ProductCode = ProductCode-    { pcCode :: Text-    , pcType :: ProductCodeType+    { productCodeCode :: Text+    , productCodeType :: ProductCodeType     }   deriving (Show, Eq) -data ProductCodeType = Devpay-                     | Marketplace+data ProductCodeItem = ProductCodeItem+    { productCodeItemProductCode :: Text+    }   deriving (Show, Eq) -data ImageType = Machine-               | Kernel-               | RamDisk+data ProductCodeType+    = ProductCodeDevpay+    | ProductCodeMarketplace   deriving (Show, Eq) -data Platform = Windows-              | Other+data ImageType+    = ImageTypeMachine+    | ImageTypeKernel+    | ImageTypeRamDisk   deriving (Show, Eq) +data Platform+    = PlatformWindows+    | PlatformOther+  deriving (Show, Eq)+ data StateReason = StateReason     { stateReasonCode :: Text     , stateReasonMessage :: Text@@ -181,14 +218,14 @@   deriving (Show, Eq)  data RootDeviceType-    = EBS-    | InstanceStore+    = RootDeviceTypeEBS+    | RootDeviceTypeInstanceStore   deriving (Show, Eq)  data BlockDeviceMapping = BlockDeviceMapping-    { deviceName :: Text-    , virtualName :: Maybe Text-    , ebs :: Maybe EbsBlockDevice+    { blockDeviceMappingDeviceName :: Text+    , blockDeviceMappingVirtualName :: Maybe Text+    , blockDeviceMappingEbs :: Maybe EbsBlockDevice     }   deriving (Show, Eq) @@ -200,26 +237,25 @@     }   deriving (Show, Eq) -data VolumeType = Standard-                | IO1 Int+data VolumeType+    = VolumeTypeStandard+    | VolumeTypeIO1 Int   deriving (Show, Eq) -instance Default VolumeType-  where-    def = Standard--data VirtualizationType = Paravirtual-                        | HVM+data VirtualizationType+    = VirtualizationTypeParavirtual+    | VirtualizationTypeHVM   deriving (Show, Eq)  data ResourceTag = ResourceTag-    { resourceKey :: Text-    , resourceValue :: Maybe Text+    { resourceTagKey :: Text+    , resourceTagValue :: Maybe Text     }   deriving (Show, Eq) -data Hypervisor = OVM-                | Xen+data Hypervisor+    = HypervisorOVM+    | HypervisorXen   deriving (Show, Eq)  data Region = Region@@ -232,7 +268,7 @@     { zoneName :: Text     , zoneState :: Text     , zoneRegionName :: Text-    , messageSet :: [AvailabilityZoneMessage]+    , zoneMessageSet :: [AvailabilityZoneMessage]     }   deriving (Show, Eq) @@ -240,10 +276,10 @@  data Reservation = Reservation     { reservationId :: Text-    , ownerId :: Text-    , groupSet :: [Group]-    , instanceSet :: [Instance]-    , requesterId :: Maybe Text+    , reservationOwnerId :: Text+    , reservationGroupSet :: [Group]+    , reservationInstanceSet :: [Instance]+    , reservationRequesterId :: Maybe Text     }   deriving (Show, Eq) @@ -251,84 +287,84 @@     { instanceId :: Text     , instanceImageId :: Text     , instanceState :: InstanceState-    , privateDnsName :: Text-    , dnsName :: Text-    , reason :: Text+    , instancePrivateDnsName :: Text+    , instanceDnsName :: Text+    , instanceReason :: Text     , instanceKeyName :: Maybe Text-    , amiLaunchIndex :: Text+    , instanceAmiLaunchIndex :: Text     , instanceProductCodes :: [ProductCode]     , instanceType :: Text-    , launchTime :: UTCTime+    , instanceLaunchTime :: UTCTime     , instancePlacement :: Placement     , instanceKernelId :: Maybe Text     , instanceRamdiskId :: Maybe Text     , instancePlatform :: Maybe Text     , instanceMonitoring :: InstanceMonitoringState-    , subnetId :: Maybe Text+    , instanceSubnetId :: Maybe Text     , instanceVpcId :: Maybe Text-    , privateIpAddress :: Maybe Text-    , ipAddress :: Maybe Text-    , sourceDestCheck :: Maybe Bool-    , vpcGroupSet :: [Group]+    , instancePrivateIpAddress :: Maybe Text+    , instanceIpAddress :: Maybe Text+    , instanceSourceDestCheck :: Maybe Bool+    , instancevpcGroupSet :: [Group]     , instanceStateReason :: Maybe StateReason     , instanceArchitecture :: Architecture     , instanceRootDeviceType :: RootDeviceType     , instanceRootDeviceName :: Maybe Text     , instanceBlockDeviceMappings :: [InstanceBlockDeviceMapping]     , instanceInstanceLifecycle :: InstanceLifecycle-    , spotInstanceRequestId :: Maybe Text+    , instanceSpotInstanceRequestId :: Maybe Text     , instanceVirtualizationType :: VirtualizationType-    , clientToken :: Text+    , instanceClientToken :: Text     , instanceTagSet :: [ResourceTag]     , instanceHypervisor :: Hypervisor     , instanceNetworkInterfaceSet :: [InstanceNetworkInterface]     , instanceIamInstanceProfile :: Maybe IamInstanceProfile-    , ebsOptimized :: Bool -- default: false+    , instanceEbsOptimized :: Bool -- default: false     }   deriving (Show, Eq)  data InstanceStatus = InstanceStatus-    { isInstanceId :: Text-    , isAvailabilityZone :: Text-    , isEventsSet :: [InstanceStatusEvent]-    , isInstanceState :: InstanceState-    , isSystemStatus :: InstanceStatusType-    , isInstanceStatus :: InstanceStatusType+    { instanceStatusInstanceId :: Text+    , instanceStatusAvailabilityZone :: Text+    , instanceStatusEventsSet :: [InstanceStatusEvent]+    , instanceStatusInstanceState :: InstanceState+    , instanceStatusSystemStatus :: InstanceStatusType+    , instanceStatusInstanceStatus :: InstanceStatusType     }   deriving (Show, Eq)  data InstanceStatusEvent = InstanceStatusEvent-    { iseCode :: InstanceStatusEventCode-    , iseDescription :: Text-    , iseNotBefore :: Maybe UTCTime-    , iseNotAfter :: Maybe UTCTime+    { instanceStatusEventCode :: InstanceStatusEventCode+    , instanceStatusEventDescription :: Text+    , instanceStatusEventNotBefore :: Maybe UTCTime+    , instanceStatusEventNotAfter :: Maybe UTCTime     }   deriving (Show, Eq)  data InstanceStatusEventCode-    = InstanceReboot-    | InstanceStop-    | SystemReboot-    | InstanceRetirement+    = InstanceStatusEventCodeInstanceReboot+    | InstanceStatusEventCodeInstanceStop+    | InstanceStatusEventCodeSystemReboot+    | InstanceStatusEventCodeInstanceRetirement   deriving (Show, Eq)  data InstanceStatusType = InstanceStatusType-    { isdStatus :: InstanceStatusTypeStatus-    , isdDetails :: [InstanceStatusDetail]+    { instanceStatusTypeStatus :: InstanceStatusTypeStatus+    , instanceStatusTypeDetails :: [InstanceStatusDetail]     }   deriving (Show, Eq)  data InstanceStatusTypeStatus-    = InstanceStatusOK-    | InstanceStatusImpaired-    | InstanceStatusInsufficientData-    | InstanceStatusNotApplicable+    = InstanceStatusTypeStatusOK+    | InstanceStatusTypeStatusImpaired+    | InstanceStatusTypeStatusInsufficientData+    | InstanceStatusTypeStatusNotApplicable   deriving (Show, Eq)  data InstanceStatusDetail = InstanceStatusDetail-    { isddName :: InstanceStatusDetailName-    , isddStatus :: InstanceStatusDetailStatus-    , isddImpairedSince :: Maybe UTCTime+    { instanceStatusDetailName :: InstanceStatusDetailName+    , instanceStatusDetailStatus :: InstanceStatusDetailStatus+    , instanceStatusDetailImpairedSince :: Maybe UTCTime     }   deriving (Show, Eq) @@ -343,19 +379,19 @@   deriving (Show, Eq)  data InstanceState-    = Pending-    | Running-    | ShuttingDown-    | Terminated-    | Stopping-    | Stopped-    | UnknownState Int+    = InstanceStatePending+    | InstanceStateRunning+    | InstanceStateShuttingDown+    | InstanceStateTerminated+    | InstanceStateStopping+    | InstanceStateStopped+    | InstanceStateUnknown Int   deriving (Show, Eq)  data Placement = Placement     { placementAvailabilityZone :: Text     , placementGroupName :: Text-    , tenancy :: Text+    , placementTenancy :: Text     }   deriving (Show, Eq) @@ -368,106 +404,111 @@ data Architecture = I386 | X86_64 deriving (Show, Eq)  data InstanceBlockDeviceMapping = InstanceBlockDeviceMapping-    { instanceDeviceName :: Text-    , instanceEbs :: InstanceEbsBlockDevice+    { instanceBlockDeviceMappingDeviceName :: Text+    , instanceBlockDeviceMappingEbs :: EbsInstanceBlockDevice     }   deriving (Show, Eq) -data InstanceEbsBlockDevice = InstanceEbsBlockDevice-    { instanceEbsVolumeId :: Text-    , instanceEbsState :: AttachmentSetItemResponseStatus-    , instanceEbsAttachTime :: UTCTime-    , instanceEbsDeleteOnTermination :: Bool+data EbsInstanceBlockDevice = EbsInstanceBlockDevice+    { ebsInstanceBlockDeviceVolumeId :: Text+    , ebsInstanceBlockDeviceState :: AttachmentSetItemResponseStatus+    , ebsInstanceBlockDeviceAttachTime :: UTCTime+    , ebsInstanceBlockDeviceDeleteOnTermination :: Bool     }   deriving (Show, Eq) -data InstanceLifecycle = LifecycleSpot | LifecycleNone+data InstanceLifecycle+    = LifecycleSpot+    | LifecycleNone   deriving (Show, Eq)  data InstanceNetworkInterface = InstanceNetworkInterface     { instanceNetworkInterfaceId :: Text-    , iniSubnetId :: Text-    , iniVpcId :: Text-    , iniDescription :: Text-    , iniOwnerId :: Text-    , iniStatus :: Text-    , iniPrivateIpAddress :: Text-    , iniPrivateDnsName :: Maybe Text-    , iniSourceDestCheck :: Bool-    , iniGroupSet :: [Group]-    , iniAttachment :: NetworkInterfaceAttachment-    , iniAssociation :: Maybe NetworkInterfaceAssociation-    , iniPrivateIpAddressSet :: [InstancePrivateIpAddress]+    , instanceNetworkInterfaceSubnetId :: Text+    , instanceNetworkInterfaceVpcId :: Text+    , instanceNetworkInterfaceDescription :: Text+    , instanceNetworkInterfaceOwnerId :: Text+    , instanceNetworkInterfaceStatus :: Text+    , instanceNetworkInterfacePrivateIpAddress :: Text+    , instanceNetworkInterfacePrivateDnsName :: Maybe Text+    , instanceNetworkInterfaceSourceDestCheck :: Bool+    , instanceNetworkInterfaceGroupSet :: [Group]+    , instanceNetworkInterfaceAttachment+        :: NetworkInterfaceAttachment+    , instanceNetworkInterfaceAssociation+        :: Maybe NetworkInterfaceAssociation+    , instanceNetworkInterfacePrivateIpAddressSet+        :: [InstancePrivateIpAddress]     }   deriving (Show, Eq)  data NetworkInterfaceAttachment = NetworkInterfaceAttachment-    { niatAttachmentId :: Text-    , niatDeviceIndex :: Int-    , niatStatus :: Text-    , niatAttachTime :: UTCTime-    , niatDeleteOnTermination :: Bool+    { networkInterfaceAttachmentId :: Text+    , networkInterfaceAttachmentDeviceIndex :: Int+    , networkInterfaceAttachmentStatus :: Text+    , networkInterfaceAttachmentAttachTime :: UTCTime+    , networkInterfaceAttachmentDeleteOnTermination :: Bool     }   deriving (Show, Eq)  data NetworkInterfaceAssociation = NetworkInterfaceAssociation-    { niasPublicIp :: Text-    , niasIpOwnerId :: Text+    { networkInterfaceAssociationPublicIp :: Text+    , networkInterfaceAssociationIpOwnerId :: Text     }   deriving (Show, Eq)  data InstancePrivateIpAddress = InstancePrivateIpAddress-    { iPrivateIpAddress :: Text-    , iPrimary :: Bool-    , iAssociation :: Maybe NetworkInterfaceAssociation+    { instancePrivateIpAddressAddress :: Text+    , instancePrivateIpAddressPrimary :: Bool+    , instancePrivateIpAddressAssociation :: Maybe NetworkInterfaceAssociation     }   deriving (Show, Eq)  data IamInstanceProfile = IamInstanceProfile-    { iipArn :: Text-    , iipId :: Text+    { iamInstanceProfileArn :: Text+    , iamInstanceProfileId :: Text     }   deriving (Show, Eq)  data ShutdownBehavior-    = SBStop-    | SBTerminate+    = ShutdownBehaviorStop+    | ShutdownBehaviorTerminate   deriving (Show, Eq)  data InstanceAttribute-    = IAInstanceType Text-    | IAKernelId (Maybe Text)-    | IARamdiskId (Maybe Text)-    | IAUserData (Maybe Text)-    | IADisableApiTermination Bool-    | IAShutdownBehavior ShutdownBehavior-    | IARootDeviceName (Maybe Text)-    | IABlockDeviceMapping [InstanceBlockDeviceMapping]-    | IASourceDestCheck (Maybe Bool)-    | IAGroupSet [Text]-    | IAProductCodes [ProductCode]-    | IAEbsOptimized Bool+    = 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, Eq)  data Address = Address-    { addrPublicIp :: Text-    , addrAllocationId :: Maybe Text-    , addrDomain :: AddressDomain-    , addrInstanceId :: Maybe Text-    , addrAssociationId :: Maybe Text-    , addrNetworkInterfaceId :: Maybe Text-    , addrNetworkInterfaceOwnerId :: Maybe Text-    , addrPrivateIpAddress :: Maybe Text+    { addressPublicIp :: Text+    , addressAllocationId :: Maybe Text+    , addressDomain :: AddressDomain+    , addressInstanceId :: Maybe Text+    , addressAssociationId :: Maybe Text+    , addressNetworkInterfaceId :: Maybe Text+    , addressNetworkInterfaceOwnerId :: Maybe Text+    , addressPrivateIpAddress :: Maybe Text     }   deriving (Show, Eq)  data AddressDomain = AddressDomainStandard | AddressDomainVPC   deriving (Show, Eq) -data AllocateAddressResponse = AllocateAddressResponse-    { alaPublicIp :: Text-    , alaDomain :: AddressDomain-    , alaAllocationId :: Maybe Text+data AllocateAddress = AllocateAddress+    { allocateAddressPublicIp :: Text+    , allocateAddressDomain :: AddressDomain+    , allocateAddressAllocationId :: Maybe Text     }   deriving (Show, Eq) @@ -483,395 +524,416 @@   deriving (Show, Eq)  data InstanceStateChange = InstanceStateChange-    { iscInstanceId :: Text-    , iscCurrentState :: InstanceState-    , iscPreviousState :: InstanceState+    { instanceStateChangeInstanceId :: Text+    , instanceStateChangeCurrentState :: InstanceState+    , instanceStateChangePreviousState :: InstanceState     }   deriving (Show, Eq)  data ConsoleOutput = ConsoleOutput-    { coInstanceId :: Text-    , coTimestamp :: UTCTime -- ^ The time the data was last updated.-    , coOutput :: Text+    { consoleOutputInstanceId :: Text+    , consoleOutputTimestamp :: UTCTime+        -- ^ The time the data was last updated.+    , consoleOutputOutput :: Text     }   deriving (Show, Eq)  data PasswordData = PasswordData-    { pdInstanceId :: Text-    , pdTimestamp :: UTCTime -- ^ The time the data was last updated.-    , pdPasswordData :: Text+    { passwordDataInstanceId :: Text+    , passwordDataTimestamp :: UTCTime+      -- ^ The time the data was last updated.+    , passwordDataPasswordData :: Text     }   deriving (Show, Eq)  data Snapshot = Snapshot     { snapshotId :: Text-    , ssVolumeId :: Text-    , ssStatus :: SnapshotStatus-    , ssStartTime :: UTCTime-    , ssProgress :: Text-    , ssOwnerId :: Text-    , ssVolumeSize :: Int-    , ssDescription :: Text-    , ssOwnerAlias :: Maybe Text-    , ssTagSet :: [ResourceTag]+    , snapshotVolumeId :: Text+    , snapshotStatus :: SnapshotStatus+    , snapshotStartTime :: UTCTime+    , snapshotProgress :: Text+    , snapshotOwnerId :: Text+    , snapshotVolumeSize :: Int+    , snapshotDescription :: Text+    , snapshotOwnerAlias :: Maybe Text+    , snapshotTagSet :: [ResourceTag]     }   deriving (Show, Eq) -data SnapshotStatus = SSPending | SSCompleted | SSError+data SnapshotStatus+    = SnapshotPending+    | SnapshotCompleted+    | SnapshotError   deriving (Show, Eq)  data Volume = Volume     { volumeId :: Text-    , volSize :: Int-    , volSnapshotId :: Maybe Text-    , volAvailabilityZone :: Text-    , volStatus :: VolumeState-    , volCreateTime :: UTCTime-    , volAttachmentSet :: [AttachmentSetItemResponse]-    , volTagSet :: [ResourceTag]-    , volVolumeType :: VolumeType+    , volumeSize :: Int+    , volumeSnapshotId :: Maybe Text+    , volumeAvailabilityZone :: Text+    , volumeStatus :: VolumeState+    , volumeCreateTime :: UTCTime+    , volumeAttachmentSet :: [AttachmentSetItemResponse]+    , volumeTagSet :: [ResourceTag]+    , volumeVolumeType :: VolumeType     }   deriving (Show, Eq)  data VolumeState-    = VolCreating-    | VolAvailable-    | VolInUse-    | VolDeleting-    | VolDeleted-    | VolError+    = VolumeStateCreating+    | VolumeStateAvailable+    | VolumeStateInUse+    | VolumeStateDeleting+    | VolumeStateDeleted+    | VolumeStateError   deriving (Show, Eq)  data AttachmentSetItemResponse = AttachmentSetItemResponse-    { asirVolumeId :: Text-    , asirInstanceId :: Text-    , asirDevice :: Text-    , asirStatus :: AttachmentSetItemResponseStatus-    , asirAttachTime :: UTCTime-    , asirDeleteOnTermination :: Maybe Bool+    { attachmentSetItemResponseVolumeId :: Text+    , attachmentSetItemResponseInstanceId :: Text+    , attachmentSetItemResponseDevice :: Text+    , attachmentSetItemResponseStatus+        :: AttachmentSetItemResponseStatus+    , attachmentSetItemResponseAttachTime :: UTCTime+    , attachmentSetItemResponseDeleteOnTermination :: Maybe Bool     }   deriving (Show, Eq)  data AttachmentSetItemResponseStatus-    = AsirAttaching-    | AsirAttached-    | AsirDetaching-    | AsirDetached+    = AttachmentSetItemResponseStatusAttaching+    | AttachmentSetItemResponseStatusAttached+    | AttachmentSetItemResponseStatusDetaching+    | AttachmentSetItemResponseStatusDetached   deriving (Show, Eq)  data KeyPair = KeyPair-    { keyName :: Text-    , keyFingerprint :: Text+    { keyPairName :: Text+    , keyPairFingerprint :: Text     }   deriving (Show, Eq)  data SecurityGroup = SecurityGroup-    { sgOwnerId :: Text-    , sgGroupId :: Text-    , sgGroupName :: Text-    , sgGroupDescription :: Text-    , sgVpcId :: Maybe Text-    , sgIpPermissions :: [IpPermission]-    , sgIpPermissionsEgress :: [IpPermission]-    , sgTagSet :: [ResourceTag]+    { securityGroupOwnerId :: Text+    , securityGroupId :: Text+    , securityGroupName :: Text+    , securityGroupDescription :: Text+    , securityGroupVpcId :: Maybe Text+    , securityGroupIpPermissions :: [IpPermission]+    , securityGroupIpPermissionsEgress :: [IpPermission]+    , securityGroupTagSet :: [ResourceTag]     }   deriving (Show, Eq)  data IpPermission = IpPermission-    { ippIpProtocol :: Text-    , ippFromPort :: Maybe Int-    , ippToPort :: Maybe Int-    , ippGroups :: [UserIdGroupPair]-    , ippIpRanges :: [IpRange]+    { ipPermissionIpProtocol :: Text+    , ipPermissionFromPort :: Maybe Int+    , ipPermissionToPort :: Maybe Int+    , ipPermissionGroups :: [UserIdGroupPair]+    , ipPermissionIpRanges :: [IpRange]     }   deriving (Show, Eq)  data UserIdGroupPair = UserIdGroupPair-    { uigpUserId :: Maybe Text-    , uigpGroupId :: Text-    , uigpGroupName :: Maybe Text+    { userIdGroupPairUserId :: Maybe Text+    , userIdGroupPairGroupId :: Text+    , userIdGroupPairGroupName :: Maybe Text     }   deriving (Show, Eq)  data IpRange = IpRange-    { iprCidrIp :: Text+    { ipRangeCidrIp :: Text     }   deriving (Show, Eq)  data BlockDeviceMappingParam-    = BlockDeviceMappingParamEBS-        { bdmpEbsDeviceName :: Text-        , bdmpEbsNoDevice :: Maybe Bool-        , bdmpEbsSource :: EbsSource-        , bdmpEbsDeleteOnTermination :: Maybe Bool-        , bdmpEbsVolumeType :: Maybe VolumeType+    = BlockDeviceMappingParamEbs+        { blockDeviceMappingParamEbsDeviceName :: Text+        , blockDeviceMappingParamEbsNoDevice :: Maybe Bool+        , blockDeviceMappingParamEbsSource :: EbsSource+        , blockDeviceMappingParamEbsDeleteOnTermination+            :: Maybe Bool+        , blockDeviceMappingParamEbsVolumeType :: Maybe VolumeType         }     | BlockDeviceMappingParamInstanceStore-        { bdmpIsDeviceName :: Text-        , bdmpIsNoDevice :: Maybe Bool-        , bdmpIsVirtualName :: Maybe Text+        { blockDeviceMappingParamInstanceStoreDeviceName :: Text+        , blockDeviceMappingParamInstanceStoreNoDevice+            :: Maybe Bool+        , blockDeviceMappingParamInstanceStoreVirtualName+            :: Maybe Text         }   deriving (Show, Eq)  data EbsSource-    = EbsSnapshotId Text-    | EbsVolumeSize Int+    = EbsSourceSnapshotId Text+    | EbsSourceVolumeSize Int   deriving (Show, Eq)  data NetworkInterfaceParam = NetworkInterfaceParam-    { nipInterfaceId :: Maybe Text-    , nipDeviceIndex :: Maybe Text-    , nipSubnetId :: Maybe Text-    , nipDescription :: Maybe Text-    , nipPrivateIpAddresses :: [Text]-    , nipSecurityGroupIds :: [Text]-    , nipDeleteOnTermination :: Maybe Bool+    { networkInterfaceParamInterfaceId :: Maybe Text+    , networkInterfaceParamDeviceIndex :: Maybe Text+    , networkInterfaceParamSubnetId :: Maybe Text+    , networkInterfaceParamDescription :: Maybe Text+    , networkInterfaceParamPrivateIpAddresses :: [Text]+    , networkInterfaceParamSecurityGroupIds :: [Text]+    , networkInterfaceParamDeleteOnTermination :: Maybe Bool     }   deriving (Show, Eq)  data VpnConnection = VpnConnection     { vpnConnectionId :: Text-    , vcState :: VpnConnectionState-    , vcCustomerGatewayConfiguration :: Text-    , vcType :: Text-    , vcCustomerGatewayId :: Text-    , vcVpnGatewayId :: Text-    , vcTagSet :: [ResourceTag]-    , vcVgwTelemetry :: [VpnTunnelTelemetry]-    , vcOptions :: Maybe VpnConnectionOptionsRequest-    , vcRoutes :: Maybe VpnStaticRoute+    , vpnConnectionState :: VpnConnectionState+    , vpnConnectionCustomerGatewayConfiguration :: Text+    , vpnConnectionType :: Text+    , vpnConnectionCustomerGatewayId :: Text+    , vpnConnectionVpnGatewayId :: Text+    , vpnConnectionTagSet :: [ResourceTag]+    , vpnConnectionVgwTelemetry :: [VpnTunnelTelemetry]+    , vpnConnectionOptions :: Maybe VpnConnectionOptionsRequest+    , vpnConnectionRoutes :: Maybe VpnStaticRoute     }   deriving (Show, Eq)  data VpnConnectionState-    = VCSPending-    | VCSAvailable-    | VCSDeleting-    | VCSDeleted+    = VpnConnectionStatePending+    | VpnConnectionStateAvailable+    | VpnConnectionStateDeleting+    | VpnConnectionStateDeleted   deriving (Show, Eq)  data VpnTunnelTelemetry = VpnTunnelTelemetry-    { vttOutsideIpAddress :: Text-    , vttStatus :: VpnTunnelTelemetryStatus-    , vttLastStatusChange :: UTCTime-    , vttStatusMessage :: Text-    , vttAcceptRouteCount :: Int+    { vpnTunnelTelemetryOutsideIpAddress :: Text+    , vpnTunnelTelemetryStatus :: VpnTunnelTelemetryStatus+    , vpnTunnelTelemetryLastStatusChange :: UTCTime+    , vpnTunnelTelemetryStatusMessage :: Text+    , vpnTunnelTelemetryAcceptRouteCount :: Int     }   deriving (Show, Eq)  data VpnTunnelTelemetryStatus-    = VTTSUp-    | VTTSDown+    = VpnTunnelTelemetryStatusUp+    | VpnTunnelTelemetryStatusDown   deriving (Show, Eq)  data VpnConnectionOptionsRequest = VpnConnectionOptionsRequest-    { staticRoutesOnly :: Bool+    { vpnConnectionOptionsRequestStaticRoutesOnly :: Bool     }   deriving (Show, Eq)  data VpnStaticRoute = VpnStaticRoute-    { vsrDestinationCidrBlock :: Text-    , vsrSource :: VpnStaticRouteSource-    , vsrState :: VpnStaticRouteState+    { vpnStaticRouteDestinationCidrBlock :: Text+    , vpnStaticRouteSource :: VpnStaticRouteSource+    , vpnStaticRouteState :: VpnStaticRouteState     }   deriving (Show, Eq) -data VpnStaticRouteSource = VSRStatic+data VpnStaticRouteSource = VpnStaticRouteSourceStatic   deriving (Show, Eq)  data VpnStaticRouteState-    = VSRSPending-    | VSRSAvailable-    | VSRSDeleting-    | VSRSDeleted+    = VpnStaticRouteStatePending+    | VpnStaticRouteStateAvailable+    | VpnStaticRouteStateDeleting+    | VpnStaticRouteStateDeleted   deriving (Show, Eq)  data RunInstancesRequest = RunInstancesRequest-    { riImageId :: Text -- ^ Required-    , riMinCount :: Int -- ^ Required-    , riMaxCount :: Int -- ^ Required-    , riKeyName :: Maybe Text-    , riSecurityGroupIds :: [Text]+    { runInstancesRequestImageId :: Text -- ^ Required+    , runInstancesRequestMinCount :: Int -- ^ Required+    , runInstancesRequestMaxCount :: Int -- ^ Required+    , runInstancesRequestKeyName :: Maybe Text+    , runInstancesRequestSecurityGroupIds :: [Text]       -- ^ SecurityGroupIds (Required for VPC; optional for EC2)-    , riSecurityGroups :: [Text]+    , runInstancesRequestSecurityGroups :: [Text]       -- ^ SecurityGroups (Only for EC2; either id or name is accepted)-    , riUserData :: Maybe ByteString+    , runInstancesRequestUserData :: Maybe ByteString       -- ^ UserData (Base64-encoded MIME user data)-    , riInstanceType :: Maybe Text-    , riAvailabilityZone :: Maybe Text-    , riPlacementGroup :: Maybe Text-    , riTenancy :: Maybe Text-    , riKernelId :: Maybe Text-    , riRamdiskId :: Maybe Text-    , riBlockDeviceMappings :: [BlockDeviceMappingParam]-    , riMonitoringEnabled :: Maybe Bool-    , riSubnetId :: Maybe Text-    , riDisableApiTermination :: Maybe Bool-    , riShutdownBehavior :: Maybe ShutdownBehavior-    , riPrivateIpAddresses :: [Text] -- ^ XXX: not implemented-    , riClientToken :: Maybe Text-    , riNetworkInterface :: [NetworkInterfaceParam] -- ^ XXX: not implemented-    , riIamInstanceProfile :: Maybe IamInstanceProfile-    , riEbsOptimized :: Maybe Bool+    , 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 Text+    , runInstancesRequestClientToken :: Maybe Text+    , runInstancesRequestNetworkInterface+        :: [NetworkInterfaceParam] -- ^ XXX: not implemented+    , runInstancesRequestIamInstanceProfile+        :: Maybe IamInstanceProfile+    , runInstancesRequestEbsOptimized :: Maybe Bool     }   deriving (Show, Eq)  data InstanceAttributeRequest-    = IARInstanceType-    | IARKernelId-    | IARRamdiskId-    | IARUserData-    | IARDisableApiTermination-    | IARShutdownBehavior-    | IARRootDeviceName-    | IARBlockDeviceMapping-    | IARSourceDestCheck-    | IARGroupSet-    | IARProductCodes-    | IAREbsOptimized+    = InstanceAttributeRequestInstanceType+    | InstanceAttributeRequestKernelId+    | InstanceAttributeRequestRamdiskId+    | InstanceAttributeRequestUserData+    | InstanceAttributeRequestDisableApiTermination+    | InstanceAttributeRequestShutdownBehavior+    | InstanceAttributeRequestRootDeviceName+    | InstanceAttributeRequestBlockDeviceMapping+    | InstanceAttributeRequestSourceDestCheck+    | InstanceAttributeRequestGroupSet+    | InstanceAttributeRequestProductCodes+    | InstanceAttributeRequestEbsOptimized   deriving (Show, Eq, Ord)  data ResetInstanceAttributeRequest-    = RIAPKernel-    | RIAPRamdisk-    | RIAPSourceDestCheck+    = ResetInstanceAttributeRequestKernel+    | ResetInstanceAttributeRequestRamdisk+    | ResetInstanceAttributeRequestSourceDestCheck   deriving (Show, Eq)  data ModifyInstanceAttributeRequest-    = MIAPInstanceType Text-    | MIAPKernelId Text-    | MIAPRamdiskId Text-    | MIAPUserData Text-    | MIAPDisableApiTermination Bool-    | MIAPShutdownBehavior ShutdownBehavior-    | MIAPRootDeviceName Text-    | MIAPBlockDeviceMapping [BlockDeviceMappingParam]-    | MIAPSourceDestCheck Bool-    | MIAPGroupSet [Text]-    | MIAPEbsOptimized Bool+    = ModifyInstanceAttributeRequestInstanceType Text+    | ModifyInstanceAttributeRequestKernelId Text+    | ModifyInstanceAttributeRequestRamdiskId Text+    | ModifyInstanceAttributeRequestUserData Text+    | ModifyInstanceAttributeRequestDisableApiTermination Bool+    | ModifyInstanceAttributeRequestShutdownBehavior+        ShutdownBehavior+    | ModifyInstanceAttributeRequestRootDeviceName Text+    | ModifyInstanceAttributeRequestBlockDeviceMapping+        [BlockDeviceMappingParam]+    | ModifyInstanceAttributeRequestSourceDestCheck Bool+    | ModifyInstanceAttributeRequestGroupSet [Text]+    | ModifyInstanceAttributeRequestEbsOptimized Bool   deriving (Show, Eq)  data RegisterImageRequest = RegisterImageRequest-    { rirName :: Text-    , rirImageLocation :: Maybe Text-    , rirDescription :: Maybe Text-    , rirArchitecture :: Maybe Text-    , rirKernelId :: Maybe Text-    , rirRamdiskId :: Maybe Text-    , rirRootDeviceName :: Maybe Text-    , rirBlockDeviceMappings :: [BlockDeviceMappingParam]+    { registerImageRequestName :: Text+    , registerImageRequestImageLocation :: Maybe Text+    , registerImageRequestDescription :: Maybe Text+    , registerImageRequestArchitecture :: Maybe Text+    , registerImageRequestKernelId :: Maybe Text+    , registerImageRequestRamdiskId :: Maybe Text+    , registerImageRequestRootDeviceName :: Maybe Text+    , registerImageRequestBlockDeviceMappings+        :: [BlockDeviceMappingParam]     }   deriving (Show, Eq)  data CreateVolumeRequest     = CreateNewVolume-        { cnvSize :: Int-        , cnvAvailabilityZone :: Text-        , cnvVolumeType :: Maybe VolumeType+        { createNewVolumeSize :: Int+        , createNewVolumeAvailabilityZone :: Text+        , createNewVolumeVolumeType :: Maybe VolumeType         }     | CreateFromSnapshot-        { cfsSnapshotId :: Text-        , cfsAvailabilityZone :: Text-        , cfsSize :: Maybe Int-        , cfsVolumeType :: Maybe VolumeType+        { createFromSnapshotSnapshotId :: Text+        , createFromSnapshotAvailabilityZone :: Text+        , createFromSnapshotSize :: Maybe Int+        , createFromSnapshotVolumeType :: Maybe VolumeType         }   deriving (Show, Eq)  data AssociateAddressRequest-    = AAEC2Instance-        { aaec2PublicIp :: Text-        , aaec2InstanceId :: Text+    = AssociateAddressRequestEc2+        { associateAddressRequestEc2PublicIp :: Text+        , associateAddressRequestEc2InstanceId :: Text         }-    | AAVPCInstance-        { aavpcAllocationId :: Text-        , aavpcInstanceId :: Maybe Text-        , aavpcNetworkInterfaceId :: Maybe Text-        , aavpcPrivateIpAddress :: Maybe Text-        , aavpcAllowReassociation :: Maybe Bool+    | AssociateAddressRequestVpc+        { associateAddressRequestVpcAllocationId :: Text+        , associateAddressRequestVpcInstanceId :: Maybe Text+        , associateAddressRequestVpcNetworkInterfaceId+            :: Maybe Text+        , associateAddressRequestVpcPrivateIpAddress :: Maybe Text+        , associateAddressRequestVpcAllowReassociation+            :: Maybe Bool         }   deriving (Show, Eq)  data DisassociateAddressRequest-    = DAEC2 Text -- ^ PublicIp for EC2-    | DAVPC Text -- ^ AssociationId for VPC+    = DisassociateAddressRequestEc2 Text -- ^ PublicIp for EC2+    | DisassociateAddressRequestVpc Text+      -- ^ AssociationId for VPC   deriving (Show, Eq) -data SecurityGroupRequest = GroupId Text | GroupName Text+data SecurityGroupRequest+    = SecurityGroupRequestGroupId Text+    | SecurityGroupRequestGroupName Text   deriving (Show, Eq)  data Subnet = Subnet-    { snSubnetId :: Text-    , snState :: SubnetState-    , snVpicId :: Text-    , snCidrBlock :: Text-    , snAvailableIpAddressCount :: Int-    , snCAvailabilityZone :: Text-    , snTagSet :: [ResourceTag]+    { subnetId :: Text+    , subnetState :: SubnetState+    , subnetVpicId :: Text+    , subnetCidrBlock :: Text+    , subnetAvailableIpAddressCount :: Int+    , subnetAvailabilityZone :: Text+    , subnetTagSet :: [ResourceTag]     }   deriving (Show, Eq) -data SubnetState = SubnetPending | SubnetAvailable+data SubnetState = SubnetStatePending | SubnetStateAvailable   deriving (Show, Eq)  data CreateSubnetRequest = CreateSubnetRequest-    { csrVpcId :: Text-    , csrCidrBlock :: Text-    , csrAvailabilityZone :: Maybe Text+    { createSubnetRequestVpcId :: Text+    , createSubnetRequestCidrBlock :: Text+    , createSubnetRequestAvailabilityZone :: Maybe Text     }   deriving (Show, Eq)  data VolumeStatus = VolumeStatus-    { vstVolumeId :: Text-    , vstAvailabilityZone :: Text-    , vstVolumeStatus :: VolumeStatusInfo-    , vstEventSet :: [VolumeStatusEvent]-    , vstActionSet :: [VolumeStatusAction]+    { volumeStatusVolumeId :: Text+    , volumeStatusAvailabilityZone :: Text+    , volumeStatusVolumeStatus :: VolumeStatusInfo+    , volumeStatusEventSet :: [VolumeStatusEvent]+    , volumeStatusActionSet :: [VolumeStatusAction]     }   deriving (Show, Eq)  data VolumeStatusInfo = VolumeStatusInfo-    { vsiStatus :: VolumeStatusInfoStatus-    , vsiDetails :: [VolumeStatusDetail]+    { volumeStatusInfoStatus :: VolumeStatusInfoStatus+    , volumeStatusInfoDetails :: [VolumeStatusDetail]     }   deriving (Show, Eq)  data VolumeStatusInfoStatus-    = VSIOK-    | VSIImpaired-    | VSIInsufficientData+    = VolumeStatusInfoStatusOK+    | VolumeStatusInfoStatusImpaired+    | VolumeStatusInfoStatusInsufficientData   deriving (Show, Eq)  data VolumeStatusDetail = VolumeStatusDetail-    { vsdName :: Text-    , vsdStatus :: Text+    { volumeStatusDetailName :: Text+    , volumeStatusDetailStatus :: Text     }   deriving (Show, Eq)  data VolumeStatusEvent = VolumeStatusEvent-    { vseEventType :: Text-    , vseEventId :: Text-    , vseDescription :: Text-    , vseNotBefore :: Maybe UTCTime-    , vseNotAfter :: Maybe UTCTime+    { volumeStatusEventType :: Text+    , volumeStatusEventId :: Text+    , volumeStatusEventDescription :: Text+    , volumeStatusEventNotBefore :: Maybe UTCTime+    , volumeStatusEventNotAfter :: Maybe UTCTime     }   deriving (Show, Eq)  data VolumeStatusAction = VolumeStatusAction-    { vsaCode :: Text-    , vsaEventType :: Text-    , vsaEventId :: Text-    , vsaDescription :: Text+    { volumeStatusActionCode :: Text+    , volumeStatusActionEventType :: Text+    , volumeStatusActionEventId :: Text+    , volumeStatusActionDescription :: Text     }   deriving (Show, Eq)  data VolumeAttribute-    = VAAutoEnableIO Bool-    | VAProductCodes [ProductCode]+    = VolumeAttributeAutoEnableIO Bool+    | VolumeAttributeProductCodes [ProductCode]   deriving (Show, Eq)  data VolumeAttributeRequest-    = VARAutoEnableIO-    | VARProductCodes+    = VolumeAttributeRequestAutoEnableIO+    | VolumeAttributeRequestProductCodes   deriving (Show, Eq)  data NetworkAcl = NetworkAcl@@ -922,7 +984,8 @@ data NetworkAclEntryRequest = NetworkAclEntryRequest     { networkAclEntryRequestNetworkAclId :: Text     , networkAclEntryRequestRuleNumber :: Int-    , networkAclEntryRequestProtocol :: Int -- ^ Protocol Number <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml>+    , networkAclEntryRequestProtocol :: Int+      -- ^ Protocol Number <http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml>     , networkAclEntryRequestRuleAction :: NetworkAclRuleAction     , networkAclEntryRequestEgress :: Bool     , networkAclEntryRequestCidrBlock :: Text@@ -932,23 +995,23 @@   deriving (Show, Eq)  data RouteTable = RouteTable-    { rtRouteTableId :: Text-    , rtVpcId :: Text-    , rtRouteSet :: [Route]-    , rtAssociationSet :: [RouteTableAssociation]-    , rtPropagatingVgw :: Maybe PropagatingVgw-    , rtTagSet :: [ResourceTag]+    { routeTableId :: Text+    , routeTableVpcId :: Text+    , routeTableRouteSet :: [Route]+    , routeTableAssociationSet :: [RouteTableAssociation]+    , routeTablePropagatingVgw :: Maybe PropagatingVgw+    , routeTableTagSet :: [ResourceTag]     }   deriving (Show, Eq)  data Route = Route-    { rDestinationCidrBlock :: Text-    , rGatewayId :: Maybe Text-    , rInstanceId :: Maybe Text-    , rInstanceOwnerId :: Maybe Text-    , rNetworkInterfaceId :: Maybe Text-    , rState :: RouteState-    , rOrigin :: Maybe RouteOrigin+    { routeDestinationCidrBlock :: Text+    , routeGatewayId :: Maybe Text+    , routeInstanceId :: Maybe Text+    , routeInstanceOwnerId :: Maybe Text+    , routeNetworkInterfaceId :: Maybe Text+    , routeState :: RouteState+    , routeOrigin :: Maybe RouteOrigin     }   deriving (Show, Eq) @@ -962,10 +1025,10 @@   deriving (Show, Eq)  data RouteTableAssociation = RouteTableAssociation-    { rtaRouteTableAssociationId :: Text-    , rtaRouteTableId :: Text-    , rtaSubnetId :: Maybe Text-    , rtaMain :: Maybe Bool+    { routeTableAssociationId :: Text+    , routeTableAssociationRouteTableId :: Text+    , routeTableAssociationSubnetId :: Maybe Text+    , routeTableAssociationMain :: Maybe Bool     }   deriving (Show, Eq) @@ -1022,7 +1085,7 @@     , customerGatewayType :: Text     , customerGatewayIpAddress :: Text     , customerGatewayBgpAsn :: Int-    , customerGateway :: [ResourceTag]+    , customerGatewayTagSet :: [ResourceTag]     }   deriving (Show, Eq) 
AWS/EC2/Util.hs view
@@ -7,6 +7,7 @@     , eachp     , wait     , count+    , findTag     ) where  import Data.Conduit@@ -20,8 +21,10 @@ import qualified Data.Text as T import Control.Applicative import Control.Parallel (par)+import Data.List (find)  import AWS.EC2.Internal+import AWS.EC2.Types (ResourceTag(resourceTagKey))  list     :: Monad m@@ -100,3 +103,11 @@             else do                 liftIO $ CC.threadDelay 5                 wait f g rid++findTag+    :: Text -- ^ resourceKey+    -> [ResourceTag] -- ^ TagSet+    -> Maybe ResourceTag+findTag key tags = find f tags+  where+    f t = resourceTagKey t == key
AWS/EC2/VPC.hs view
@@ -133,7 +133,7 @@     <$> do         a <- getT "vpnConnectionId"         traceShow a $ return a-    <*> getF "state" vpnConnectionState+    <*> getF "state" vpnConnectionState'     <*> getT "customerGatewayConfiguration"     <*> getT "type"     <*> getT "customerGatewayId"@@ -142,7 +142,7 @@     <*> itemsSet "vgwTelemetry"         (VpnTunnelTelemetry         <$> getT "outsideIpAddress"-        <*> getF "status" vpnTunnelTelemetryStatus+        <*> getF "status" vpnTunnelTelemetryStatus'         <*> getF "lastStatusChange" textToTime         <*> getT "statusMessage"         <*> getF "acceptedRouteCount" textToInt@@ -154,8 +154,8 @@     <*> elementM "routes"         (VpnStaticRoute         <$> getT "destinationCidrBlock"-        <*> getF "source" vpnStaticRouteSource-        <*> getF "state" vpnStaticRouteState+        <*> getF "source" vpnStaticRouteSource'+        <*> getF "state" vpnStaticRouteState'         )  ------------------------------------------------------------
AWS/EC2/Volume.hs view
@@ -10,6 +10,7 @@     , describeVolumeAttribute     , modifyVolumeAttribute     ) where+ import Data.Text (Text)  import Data.XML.Types (Event)@@ -45,7 +46,7 @@     <*> getF "size" textToInt     <*> getMT "snapshotId"     <*> getT "availabilityZone"-    <*> getF "status" volumeStatus+    <*> getF "status" volumeStatus'     <*> getF "createTime" textToTime     <*> itemsSet "attachmentSet" attachmentSink     <*> resourceTagSink@@ -56,13 +57,14 @@     <$> getT "volumeId"     <*> getT "instanceId"     <*> getT "device"-    <*> getF "status" attachmentSetItemResponseStatus+    <*> getF "status" attachmentSetItemResponseStatus'     <*> getF "attachTime" textToTime     <*> getM "deleteOnTermination" (textToBool <$>)  volumeTypeParam :: VolumeType -> [QueryParam]-volumeTypeParam Standard = [ValueParam "VolumeType" "standard"]-volumeTypeParam (IO1 iops) =+volumeTypeParam VolumeTypeStandard =+    [ValueParam "VolumeType" "standard"]+volumeTypeParam (VolumeTypeIO1 iops) =     [ ValueParam "VolumeType" "io1"     , ValueParam "Iops" $ toText iops     ]@@ -147,7 +149,7 @@     <$> getT "volumeId"     <*> getT "availabilityZone"     <*> element "volumeStatus" (VolumeStatusInfo-        <$> getF "status" volumeStatusInfoStatus+        <$> getF "status" volumeStatusInfoStatus'         <*> itemsSet "details" (VolumeStatusDetail             <$> getT "name"             <*> getT "status"@@ -204,14 +206,17 @@         [ ValueParam "VolumeId" vid         , ValueParam "Attribute" $ s attr         ]-    s VARAutoEnableIO = "autoEnableIO"-    s VARProductCodes = "productCodes"+    s VolumeAttributeRequestAutoEnableIO = "autoEnableIO"+    s VolumeAttributeRequestProductCodes = "productCodes"  volumeAttributeSink     :: MonadThrow m     => VolumeAttributeRequest     -> GLSink Event m VolumeAttribute-volumeAttributeSink VARAutoEnableIO =-    VAAutoEnableIO <$> getF "autoEnableIO" textToBool-volumeAttributeSink VARProductCodes =-    VAProductCodes <$> productCodeSink+volumeAttributeSink VolumeAttributeRequestAutoEnableIO+    = VolumeAttributeAutoEnableIO+    <$> element "autoEnableIO"+        (getF "value" textToBool)+volumeAttributeSink VolumeAttributeRequestProductCodes+    = VolumeAttributeProductCodes+    <$> productCodeSink
AWS/ELB/Internal.hs view
@@ -4,14 +4,12 @@     where  import Data.ByteString (ByteString)-import Data.Text (Text) import Data.Conduit import Control.Monad.Trans.Control (MonadBaseControl) import Data.XML.Types (Event(..))  import AWS.Class import AWS.Lib.Query-import AWS.Lib.Parser  apiVersion :: ByteString apiVersion = "2012-06-01"@@ -25,9 +23,3 @@     -> GLSink Event m a     -> AWS AWSContext m a elbQuery = commonQuery apiVersion--members :: MonadThrow m-    => Text-    -> GLSink Event m a-    -> GLSink Event m [a]-members name f = element name $ listConsumer "member" f
AWS/Lib/Parser.hs view
@@ -103,7 +103,7 @@     => Text     -> Pipe Event Event o u m a     -> Pipe Event Event o u m a-element name inner = XML.force "parse error" $ elementM name inner+element name inner = XML.force ("parse error:" ++ T.unpack name) $ elementM name inner  tagContentM :: MonadThrow m     => Text@@ -153,3 +153,9 @@         <*> getT "Message"     rid <- getT "RequestId"     lift $ monadThrow $ ClientError status c m rid++members :: MonadThrow m+    => Text+    -> GLSink Event m a+    -> GLSink Event m [a]+members name f = element name $ listConsumer "member" f
AWS/Lib/Query.hs view
@@ -1,11 +1,15 @@-{-# LANGUAGE FlexibleContexts, RankNTypes #-}+{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-} +#define DEBUG module AWS.Lib.Query     ( requestQuery     , QueryParam(..)     , Filter     , maybeParams     , commonQuery+#ifdef DEBUG+    , debugQuery+#endif     ) where  import           Data.ByteString (ByteString)@@ -32,13 +36,16 @@ import Data.Text (Text) import qualified Control.Monad.State as State import qualified Control.Monad.Reader as Reader---import qualified Data.Conduit.Binary as CB  import AWS.Class import AWS.Util import AWS.Credential import AWS.Lib.Parser +#ifdef DEBUG+import qualified Data.Conduit.Binary as CB+#endif+ type Filter = (Text, [Text])  data QueryParam@@ -86,7 +93,6 @@ toArrayParams (ArrayParams name params) = Map.fromList      [ (textToBS name <> "." <> bsShow i, textToBS param)     | (i, param) <- zip ([1..]::[Int]) params-     ] toArrayParams (FilterParams kvs) =     Map.fromList . concat . map f1 $ zip ([1..]::[Int]) kvs@@ -100,7 +106,7 @@     Map.singleton (textToBS k) (textToBS v) toArrayParams (StructArrayParams name vss) = Map.fromList l   where-    bsName = textToBS name+    bsName =  textToBS name     struct n (k, v) = (n <> "." <> textToBS k, textToBS v)     l = mconcat         [ map (struct (bsName <> "." <> bsShow i)) kvs@@ -160,7 +166,6 @@     let req = request { HTTP.checkStatus = checkStatus' }     response <- HTTP.http req mgr     let body = HTTP.responseBody response---    body $$+- CB.sinkFile "debug.txt" >> fail "debug"     let st = H.statusCode $ HTTP.responseStatus response     if st < 400         then return body@@ -184,8 +189,29 @@     ctx <- State.get     cred <- Reader.ask     rs <- lift $ requestQuery cred ctx action params apiVersion sinkError---    lift $ rs $$+- CB.sinkFile "debug.txt" >> fail "debug"     (res, rid) <- lift $ rs $$+-         XmlP.parseBytes XmlP.def =$ sinkResponse (bsToText action) sink     State.put ctx { lastRequestId = Just rid }     return res++#ifdef DEBUG+debugQuery+    :: (MonadBaseControl IO m, MonadResource m)+    => ByteString -- ^ apiVersion+    -> ByteString -- ^ Action+    -> [QueryParam]+    -> AWS AWSContext m a+debugQuery ver action params = do+    ctx <- State.get+    cred <- Reader.ask+    let mgr = manager ctx+    let ep = endpoint ctx+    time <- liftIO getCurrentTime+    let url = mkUrl ep cred time action params ver+    liftIO $ print url+    request <- liftIO $ HTTP.parseUrl (BSC.unpack url)+    let req = request { HTTP.checkStatus = checkStatus' }+    response <- lift $ HTTP.http req mgr+    lift $ HTTP.responseBody response $$+- CB.sinkFile "debug.txt"+    fail "debug"+#endif
AWS/Util.hs view
@@ -10,6 +10,7 @@ import Data.Time (UTCTime) import qualified Data.Time as Time import qualified Data.Time.Parse as TP+import System.Locale (defaultTimeLocale)  toS :: BSL.ByteString -> ByteString toS = BS.concat . BSL.toChunks@@ -35,12 +36,25 @@     fst     (TR.signed TR.decimal t) +textToDouble :: Fractional a => Text -> a+textToDouble t = either+    (const $ error "not double value")+    fst+    (TR.signed TR.rational t)+ textToTime :: Text -> UTCTime textToTime     = Time.localTimeToUTC Time.utc     . maybe (error "time format error.") fst     . TP.strptime fmt     . T.unpack+  where+    fmt = "%FT%T"++timeToText :: UTCTime -> Text+timeToText+    = T.pack+    . Time.formatTime defaultTimeLocale fmt   where     fmt = "%FT%T" 
+ Tests/Main.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import AWSTests.EC2Tests++main :: IO ()+main = do+    runInstanceTests+    runVpcTests+    runAddressTests+    runSnapshotTests+    runImageTests+    runSubnetsTests+    runVolumeTests+    runSecurityGroupTests+    runRouteTableTests+    runRegionTests+    runInstanceTests+    runAvailabilityZoneTests+    runTagTests+    runKeyPairTests
aws-sdk.cabal view
@@ -1,5 +1,5 @@ name:                aws-sdk-version:             0.6.0.0+version:             0.7.0.0 synopsis:            AWS SDK for Haskell description:         An AWS(Amazon Web Services) liblary for Haskell. license:             BSD3@@ -23,6 +23,8 @@                    , AWS.RDS.Types                    , AWS.ELB                    , AWS.ELB.Types+                   , AWS.CloudWatch+                   , AWS.CloudWatch.Types   other-modules:     AWS.Util , AWS.Credential                    , AWS.Class                    , AWS.EC2.Internal@@ -50,6 +52,8 @@                    , AWS.RDS.DBInstance                    , AWS.ELB.Internal                    , AWS.ELB.LoadBalancer+                   , AWS.CloudWatch.Internal+                   , AWS.CloudWatch.Metric   ghc-options:       -Wall                      -fno-warn-unused-do-bind   extensions: OverloadedStrings@@ -81,13 +85,21 @@  test-suite test     type:              exitcode-stdio-1.0-    main-is:           main.hs-    hs-source-dirs:    tests+    main-is:           Main.hs+    hs-source-dirs:    Tests     ghc-options:       -Wall -threaded-+    extensions: OverloadedStrings     build-depends: base+                 , aws-sdk+                 , conduit+                 , text+                 , monad-control+                 , transformers+                 , http-conduit                  , hspec                  , QuickCheck+                 , hspec+                 , HUnit  source-repository head     type:            git
− tests/main.hs
@@ -1,21 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE NoMonomorphismRestriction #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}--module Main where--import Test.Hspec (hspec)--import PropExample-import SpecExample--main :: IO ()-main = do-    propTest-    specTest--specTest :: IO ()-specTest = hspec normalSpecs--propTest :: IO ()-propTest = hspec propSpecs