describeInstanceStatus
    :: (MonadResource m, MonadBaseControl IO m)
    => [Text] -- ^ InstanceIds
    -> Bool  -- ^ is all instance? 'False': running instance only.
    -> [Filter] -- ^ Filters
    -> Maybe Text -- ^ next token
    -> EC2 m (ResumableSource m InstanceStatus)
describeInstanceStatus instanceIds isAll filters token =
    ec2QuerySource' "DescribeInstanceStatus" params token path $
        itemConduit instanceStatusConv
  where
    path = itemsPath "instanceStatusSet"
    params =
        [ "InstanceId" |.#= instanceIds
        , "IncludeAllInstances" |= isAll
        , filtersParam filters
        ]
describeInstanceStatus
    :: (MonadResource m, MonadBaseControl IO m)
    => [Text] -- ^ InstanceIds
    -> Bool  -- ^ is all instance? 'False': running instance only.
    -> [Filter] -- ^ Filters
    -> Maybe Text -- ^ next token
    -> EC2 m (ResumableSource m InstanceStatus)
describeInstanceStatus instanceIds isAll filters token =
    ec2QuerySource' "DescribeInstanceStatus" params token path $
        itemConduit instanceStatusConv
  where
    path = itemsPath "instanceStatusSet"
    params =
        [ "InstanceId" |.#= instanceIds
        , "IncludeAllInstances" |= isAll
        , filtersParam filters
        ]
describeInstanceStatus instanceIds isAll filters token =
    ec2QuerySource' "DescribeInstanceStatus" params token path $
        itemConduit instanceStatusConv
  where
    path = itemsPath "instanceStatusSet"
    params =
        [ "InstanceId" |.#= instanceIds
        , "IncludeAllInstances" |= isAll
        , filtersParam filters
        ]