{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.AWS.EC2.Waiters where
import Network.AWS.EC2.DescribeBundleTasks
import Network.AWS.EC2.DescribeConversionTasks
import Network.AWS.EC2.DescribeConversionTasks
import Network.AWS.EC2.DescribeConversionTasks
import Network.AWS.EC2.DescribeCustomerGateways
import Network.AWS.EC2.DescribeExportTasks
import Network.AWS.EC2.DescribeExportTasks
import Network.AWS.EC2.DescribeImages
import Network.AWS.EC2.DescribeInstances
import Network.AWS.EC2.DescribeInstances
import Network.AWS.EC2.DescribeInstances
import Network.AWS.EC2.DescribeInstances
import Network.AWS.EC2.DescribeInstanceStatus
import Network.AWS.EC2.DescribeInstanceStatus
import Network.AWS.EC2.DescribeNatGateways
import Network.AWS.EC2.DescribeNetworkInterfaces
import Network.AWS.EC2.DescribeSnapshots
import Network.AWS.EC2.DescribeSpotInstanceRequests
import Network.AWS.EC2.DescribeSubnets
import Network.AWS.EC2.DescribeVolumes
import Network.AWS.EC2.DescribeVolumes
import Network.AWS.EC2.DescribeVolumes
import Network.AWS.EC2.DescribeVPCPeeringConnections
import Network.AWS.EC2.DescribeVPCPeeringConnections
import Network.AWS.EC2.DescribeVPCs
import Network.AWS.EC2.DescribeVPCs
import Network.AWS.EC2.DescribeVPNConnections
import Network.AWS.EC2.DescribeVPNConnections
import Network.AWS.EC2.GetPasswordData
import Network.AWS.EC2.Types
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Waiter
instanceTerminated :: Wait DescribeInstances
instanceTerminated =
Wait
{ _waitName = "InstanceTerminated"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"terminated"
AcceptSuccess
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"pending"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"stopping"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
]
}
volumeInUse :: Wait DescribeVolumes
volumeInUse =
Wait
{ _waitName = "VolumeInUse"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"in-use"
AcceptSuccess
(folding (concatOf dvvrsVolumes) . vState . to toTextCI)
, matchAny
"deleted"
AcceptFailure
(folding (concatOf dvvrsVolumes) . vState . to toTextCI)
]
}
natGatewayAvailable :: Wait DescribeNatGateways
natGatewayAvailable =
Wait
{ _waitName = "NatGatewayAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)
, matchAny
"failed"
AcceptFailure
(folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)
, matchAny
"deleting"
AcceptFailure
(folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)
, matchAny
"deleted"
AcceptFailure
(folding (concatOf dngrsNatGateways) . ngState . _Just . to toTextCI)
, matchError "NatGatewayNotFound" AcceptRetry
]
}
subnetAvailable :: Wait DescribeSubnets
subnetAvailable =
Wait
{ _waitName = "SubnetAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dsrsSubnets) . subState . to toTextCI)
]
}
networkInterfaceAvailable :: Wait DescribeNetworkInterfaces
networkInterfaceAvailable =
Wait
{ _waitName = "NetworkInterfaceAvailable"
, _waitAttempts = 10
, _waitDelay = 20
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dnirsNetworkInterfaces) .
niStatus . _Just . to toTextCI)
, matchError "InvalidNetworkInterfaceID.NotFound" AcceptFailure
]
}
systemStatusOK :: Wait DescribeInstanceStatus
systemStatusOK =
Wait
{ _waitName = "SystemStatusOk"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"ok"
AcceptSuccess
(folding (concatOf disrsInstanceStatuses) .
isSystemStatus . _Just . issStatus . to toTextCI)
]
}
customerGatewayAvailable :: Wait DescribeCustomerGateways
customerGatewayAvailable =
Wait
{ _waitName = "CustomerGatewayAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dcgrsCustomerGateways) . cgState . to toTextCI)
, matchAny
"deleted"
AcceptFailure
(folding (concatOf dcgrsCustomerGateways) . cgState . to toTextCI)
, matchAny
"deleting"
AcceptFailure
(folding (concatOf dcgrsCustomerGateways) . cgState . to toTextCI)
]
}
conversionTaskCompleted :: Wait DescribeConversionTasks
conversionTaskCompleted =
Wait
{ _waitName = "ConversionTaskCompleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"completed"
AcceptSuccess
(folding (concatOf dctrsConversionTasks) .
ctState . _Just . to toTextCI)
, matchAny
"cancelled"
AcceptFailure
(folding (concatOf dctrsConversionTasks) .
ctState . _Just . to toTextCI)
, matchAny
"cancelling"
AcceptFailure
(folding (concatOf dctrsConversionTasks) .
ctState . _Just . to toTextCI)
]
}
instanceStopped :: Wait DescribeInstances
instanceStopped =
Wait
{ _waitName = "InstanceStopped"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"stopped"
AcceptSuccess
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"pending"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"terminated"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
]
}
conversionTaskDeleted :: Wait DescribeConversionTasks
conversionTaskDeleted =
Wait
{ _waitName = "ConversionTaskDeleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"deleted"
AcceptSuccess
(folding (concatOf dctrsConversionTasks) .
ctState . _Just . to toTextCI)
]
}
passwordDataAvailable :: Wait GetPasswordData
passwordDataAvailable =
Wait
{ _waitName = "PasswordDataAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[matchAll True AcceptSuccess (nonEmptyText gpdrsPasswordData)]
}
instanceRunning :: Wait DescribeInstances
instanceRunning =
Wait
{ _waitName = "InstanceRunning"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"running"
AcceptSuccess
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"shutting-down"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"terminated"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchAny
"stopping"
AcceptFailure
(folding (concatOf dirsReservations) .
folding (concatOf rInstances) . insState . isName . to toTextCI)
, matchError "InvalidInstanceID.NotFound" AcceptRetry
]
}
spotInstanceRequestFulfilled :: Wait DescribeSpotInstanceRequests
spotInstanceRequestFulfilled =
Wait
{ _waitName = "SpotInstanceRequestFulfilled"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"fulfilled"
AcceptSuccess
(folding (concatOf dsirrsSpotInstanceRequests) .
sirStatus . _Just . sisCode . _Just . to toTextCI)
, matchAll
"request-canceled-and-instance-running"
AcceptSuccess
(folding (concatOf dsirrsSpotInstanceRequests) .
sirStatus . _Just . sisCode . _Just . to toTextCI)
, matchAny
"schedule-expired"
AcceptFailure
(folding (concatOf dsirrsSpotInstanceRequests) .
sirStatus . _Just . sisCode . _Just . to toTextCI)
, matchAny
"canceled-before-fulfillment"
AcceptFailure
(folding (concatOf dsirrsSpotInstanceRequests) .
sirStatus . _Just . sisCode . _Just . to toTextCI)
, matchAny
"bad-parameters"
AcceptFailure
(folding (concatOf dsirrsSpotInstanceRequests) .
sirStatus . _Just . sisCode . _Just . to toTextCI)
, matchAny
"system-error"
AcceptFailure
(folding (concatOf dsirrsSpotInstanceRequests) .
sirStatus . _Just . sisCode . _Just . to toTextCI)
, matchError "InvalidSpotInstanceRequestID.NotFound" AcceptRetry
]
}
vpcAvailable :: Wait DescribeVPCs
vpcAvailable =
Wait
{ _waitName = "VpcAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dvrsVPCs) . vpcState . to toTextCI)
]
}
exportTaskCompleted :: Wait DescribeExportTasks
exportTaskCompleted =
Wait
{ _waitName = "ExportTaskCompleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"completed"
AcceptSuccess
(folding (concatOf detrsExportTasks) . etState . to toTextCI)
]
}
vpcPeeringConnectionDeleted :: Wait DescribeVPCPeeringConnections
vpcPeeringConnectionDeleted =
Wait
{ _waitName = "VpcPeeringConnectionDeleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"deleted"
AcceptSuccess
(folding (concatOf dvpcpcrsVPCPeeringConnections) .
vpcpcStatus . _Just . vpcsrCode . _Just . to toTextCI)
, matchError "InvalidVpcPeeringConnectionID.NotFound" AcceptSuccess
]
}
vpnConnectionAvailable :: Wait DescribeVPNConnections
vpnConnectionAvailable =
Wait
{ _waitName = "VpnConnectionAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)
, matchAny
"deleting"
AcceptFailure
(folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)
, matchAny
"deleted"
AcceptFailure
(folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)
]
}
exportTaskCancelled :: Wait DescribeExportTasks
exportTaskCancelled =
Wait
{ _waitName = "ExportTaskCancelled"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"cancelled"
AcceptSuccess
(folding (concatOf detrsExportTasks) . etState . to toTextCI)
]
}
volumeDeleted :: Wait DescribeVolumes
volumeDeleted =
Wait
{ _waitName = "VolumeDeleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"deleted"
AcceptSuccess
(folding (concatOf dvvrsVolumes) . vState . to toTextCI)
, matchError "InvalidVolume.NotFound" AcceptSuccess
]
}
vpcExists :: Wait DescribeVPCs
vpcExists =
Wait
{ _waitName = "VpcExists"
, _waitAttempts = 5
, _waitDelay = 1
, _waitAcceptors =
[ matchStatus 200 AcceptSuccess
, matchError "InvalidVpcID.NotFound" AcceptRetry
]
}
bundleTaskComplete :: Wait DescribeBundleTasks
bundleTaskComplete =
Wait
{ _waitName = "BundleTaskComplete"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"complete"
AcceptSuccess
(folding (concatOf dbtrsBundleTasks) . btState . to toTextCI)
, matchAny
"failed"
AcceptFailure
(folding (concatOf dbtrsBundleTasks) . btState . to toTextCI)
]
}
vpnConnectionDeleted :: Wait DescribeVPNConnections
vpnConnectionDeleted =
Wait
{ _waitName = "VpnConnectionDeleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"deleted"
AcceptSuccess
(folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)
, matchAny
"pending"
AcceptFailure
(folding (concatOf dvcrsVPNConnections) . vcState . to toTextCI)
]
}
conversionTaskCancelled :: Wait DescribeConversionTasks
conversionTaskCancelled =
Wait
{ _waitName = "ConversionTaskCancelled"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"cancelled"
AcceptSuccess
(folding (concatOf dctrsConversionTasks) .
ctState . _Just . to toTextCI)
]
}
imageAvailable :: Wait DescribeImages
imageAvailable =
Wait
{ _waitName = "ImageAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf diirsImages) . iState . to toTextCI)
, matchAny
"deregistered"
AcceptFailure
(folding (concatOf diirsImages) . iState . to toTextCI)
]
}
vpcPeeringConnectionExists :: Wait DescribeVPCPeeringConnections
vpcPeeringConnectionExists =
Wait
{ _waitName = "VpcPeeringConnectionExists"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchStatus 200 AcceptSuccess
, matchError "InvalidVpcPeeringConnectionID.NotFound" AcceptRetry
]
}
snapshotCompleted :: Wait DescribeSnapshots
snapshotCompleted =
Wait
{ _waitName = "SnapshotCompleted"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"completed"
AcceptSuccess
(folding (concatOf dssrsSnapshots) . sState . to toTextCI)
]
}
instanceExists :: Wait DescribeInstances
instanceExists =
Wait
{ _waitName = "InstanceExists"
, _waitAttempts = 40
, _waitDelay = 5
, _waitAcceptors =
[ matchStatus 200 AcceptSuccess
, matchError "InvalidInstanceIDNotFound" AcceptRetry
]
}
instanceStatusOK :: Wait DescribeInstanceStatus
instanceStatusOK =
Wait
{ _waitName = "InstanceStatusOk"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"ok"
AcceptSuccess
(folding (concatOf disrsInstanceStatuses) .
isInstanceStatus . _Just . issStatus . to toTextCI)
, matchError "InvalidInstanceID.NotFound" AcceptRetry
]
}
volumeAvailable :: Wait DescribeVolumes
volumeAvailable =
Wait
{ _waitName = "VolumeAvailable"
, _waitAttempts = 40
, _waitDelay = 15
, _waitAcceptors =
[ matchAll
"available"
AcceptSuccess
(folding (concatOf dvvrsVolumes) . vState . to toTextCI)
, matchAny
"deleted"
AcceptFailure
(folding (concatOf dvvrsVolumes) . vState . to toTextCI)
]
}