{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Location.Types
(
defaultService,
_AccessDeniedException,
_ConflictException,
_InternalServerException,
_ResourceNotFoundException,
_ServiceQuotaExceededException,
_ThrottlingException,
_ValidationException,
BatchItemErrorCode (..),
DimensionUnit (..),
DistanceUnit (..),
IntendedUse (..),
PositionFiltering (..),
PricingPlan (..),
RouteMatrixErrorCode (..),
TravelMode (..),
VehicleWeightUnit (..),
BatchDeleteDevicePositionHistoryError (..),
newBatchDeleteDevicePositionHistoryError,
batchDeleteDevicePositionHistoryError_deviceId,
batchDeleteDevicePositionHistoryError_error,
BatchDeleteGeofenceError (..),
newBatchDeleteGeofenceError,
batchDeleteGeofenceError_error,
batchDeleteGeofenceError_geofenceId,
BatchEvaluateGeofencesError (..),
newBatchEvaluateGeofencesError,
batchEvaluateGeofencesError_deviceId,
batchEvaluateGeofencesError_error,
batchEvaluateGeofencesError_sampleTime,
BatchGetDevicePositionError (..),
newBatchGetDevicePositionError,
batchGetDevicePositionError_deviceId,
batchGetDevicePositionError_error,
BatchItemError (..),
newBatchItemError,
batchItemError_code,
batchItemError_message,
BatchPutGeofenceError (..),
newBatchPutGeofenceError,
batchPutGeofenceError_error,
batchPutGeofenceError_geofenceId,
BatchPutGeofenceRequestEntry (..),
newBatchPutGeofenceRequestEntry,
batchPutGeofenceRequestEntry_geofenceId,
batchPutGeofenceRequestEntry_geometry,
BatchPutGeofenceSuccess (..),
newBatchPutGeofenceSuccess,
batchPutGeofenceSuccess_createTime,
batchPutGeofenceSuccess_geofenceId,
batchPutGeofenceSuccess_updateTime,
BatchUpdateDevicePositionError (..),
newBatchUpdateDevicePositionError,
batchUpdateDevicePositionError_deviceId,
batchUpdateDevicePositionError_error,
batchUpdateDevicePositionError_sampleTime,
CalculateRouteCarModeOptions (..),
newCalculateRouteCarModeOptions,
calculateRouteCarModeOptions_avoidFerries,
calculateRouteCarModeOptions_avoidTolls,
CalculateRouteMatrixSummary (..),
newCalculateRouteMatrixSummary,
calculateRouteMatrixSummary_dataSource,
calculateRouteMatrixSummary_distanceUnit,
calculateRouteMatrixSummary_errorCount,
calculateRouteMatrixSummary_routeCount,
CalculateRouteSummary (..),
newCalculateRouteSummary,
calculateRouteSummary_dataSource,
calculateRouteSummary_distance,
calculateRouteSummary_distanceUnit,
calculateRouteSummary_durationSeconds,
calculateRouteSummary_routeBBox,
CalculateRouteTruckModeOptions (..),
newCalculateRouteTruckModeOptions,
calculateRouteTruckModeOptions_avoidFerries,
calculateRouteTruckModeOptions_avoidTolls,
calculateRouteTruckModeOptions_dimensions,
calculateRouteTruckModeOptions_weight,
Circle (..),
newCircle,
circle_center,
circle_radius,
DataSourceConfiguration (..),
newDataSourceConfiguration,
dataSourceConfiguration_intendedUse,
DevicePosition (..),
newDevicePosition,
devicePosition_accuracy,
devicePosition_deviceId,
devicePosition_positionProperties,
devicePosition_position,
devicePosition_receivedTime,
devicePosition_sampleTime,
DevicePositionUpdate (..),
newDevicePositionUpdate,
devicePositionUpdate_accuracy,
devicePositionUpdate_positionProperties,
devicePositionUpdate_deviceId,
devicePositionUpdate_position,
devicePositionUpdate_sampleTime,
GeofenceGeometry (..),
newGeofenceGeometry,
geofenceGeometry_circle,
geofenceGeometry_polygon,
Leg (..),
newLeg,
leg_geometry,
leg_distance,
leg_durationSeconds,
leg_endPosition,
leg_startPosition,
leg_steps,
LegGeometry (..),
newLegGeometry,
legGeometry_lineString,
ListDevicePositionsResponseEntry (..),
newListDevicePositionsResponseEntry,
listDevicePositionsResponseEntry_accuracy,
listDevicePositionsResponseEntry_positionProperties,
listDevicePositionsResponseEntry_deviceId,
listDevicePositionsResponseEntry_position,
listDevicePositionsResponseEntry_sampleTime,
ListGeofenceCollectionsResponseEntry (..),
newListGeofenceCollectionsResponseEntry,
listGeofenceCollectionsResponseEntry_pricingPlan,
listGeofenceCollectionsResponseEntry_pricingPlanDataSource,
listGeofenceCollectionsResponseEntry_collectionName,
listGeofenceCollectionsResponseEntry_createTime,
listGeofenceCollectionsResponseEntry_description,
listGeofenceCollectionsResponseEntry_updateTime,
ListGeofenceResponseEntry (..),
newListGeofenceResponseEntry,
listGeofenceResponseEntry_createTime,
listGeofenceResponseEntry_geofenceId,
listGeofenceResponseEntry_geometry,
listGeofenceResponseEntry_status,
listGeofenceResponseEntry_updateTime,
ListMapsResponseEntry (..),
newListMapsResponseEntry,
listMapsResponseEntry_pricingPlan,
listMapsResponseEntry_createTime,
listMapsResponseEntry_dataSource,
listMapsResponseEntry_description,
listMapsResponseEntry_mapName,
listMapsResponseEntry_updateTime,
ListPlaceIndexesResponseEntry (..),
newListPlaceIndexesResponseEntry,
listPlaceIndexesResponseEntry_pricingPlan,
listPlaceIndexesResponseEntry_createTime,
listPlaceIndexesResponseEntry_dataSource,
listPlaceIndexesResponseEntry_description,
listPlaceIndexesResponseEntry_indexName,
listPlaceIndexesResponseEntry_updateTime,
ListRouteCalculatorsResponseEntry (..),
newListRouteCalculatorsResponseEntry,
listRouteCalculatorsResponseEntry_pricingPlan,
listRouteCalculatorsResponseEntry_calculatorName,
listRouteCalculatorsResponseEntry_createTime,
listRouteCalculatorsResponseEntry_dataSource,
listRouteCalculatorsResponseEntry_description,
listRouteCalculatorsResponseEntry_updateTime,
ListTrackersResponseEntry (..),
newListTrackersResponseEntry,
listTrackersResponseEntry_pricingPlan,
listTrackersResponseEntry_pricingPlanDataSource,
listTrackersResponseEntry_createTime,
listTrackersResponseEntry_description,
listTrackersResponseEntry_trackerName,
listTrackersResponseEntry_updateTime,
MapConfiguration (..),
newMapConfiguration,
mapConfiguration_style,
Place (..),
newPlace,
place_addressNumber,
place_country,
place_interpolated,
place_label,
place_municipality,
place_neighborhood,
place_postalCode,
place_region,
place_street,
place_subRegion,
place_timeZone,
place_unitNumber,
place_unitType,
place_geometry,
PlaceGeometry (..),
newPlaceGeometry,
placeGeometry_point,
PositionalAccuracy (..),
newPositionalAccuracy,
positionalAccuracy_horizontal,
RouteMatrixEntry (..),
newRouteMatrixEntry,
routeMatrixEntry_distance,
routeMatrixEntry_durationSeconds,
routeMatrixEntry_error,
RouteMatrixEntryError (..),
newRouteMatrixEntryError,
routeMatrixEntryError_message,
routeMatrixEntryError_code,
SearchForPositionResult (..),
newSearchForPositionResult,
searchForPositionResult_placeId,
searchForPositionResult_distance,
searchForPositionResult_place,
SearchForSuggestionsResult (..),
newSearchForSuggestionsResult,
searchForSuggestionsResult_placeId,
searchForSuggestionsResult_text,
SearchForTextResult (..),
newSearchForTextResult,
searchForTextResult_distance,
searchForTextResult_placeId,
searchForTextResult_relevance,
searchForTextResult_place,
SearchPlaceIndexForPositionSummary (..),
newSearchPlaceIndexForPositionSummary,
searchPlaceIndexForPositionSummary_language,
searchPlaceIndexForPositionSummary_maxResults,
searchPlaceIndexForPositionSummary_dataSource,
searchPlaceIndexForPositionSummary_position,
SearchPlaceIndexForSuggestionsSummary (..),
newSearchPlaceIndexForSuggestionsSummary,
searchPlaceIndexForSuggestionsSummary_biasPosition,
searchPlaceIndexForSuggestionsSummary_filterBBox,
searchPlaceIndexForSuggestionsSummary_filterCountries,
searchPlaceIndexForSuggestionsSummary_language,
searchPlaceIndexForSuggestionsSummary_maxResults,
searchPlaceIndexForSuggestionsSummary_dataSource,
searchPlaceIndexForSuggestionsSummary_text,
SearchPlaceIndexForTextSummary (..),
newSearchPlaceIndexForTextSummary,
searchPlaceIndexForTextSummary_biasPosition,
searchPlaceIndexForTextSummary_filterBBox,
searchPlaceIndexForTextSummary_filterCountries,
searchPlaceIndexForTextSummary_language,
searchPlaceIndexForTextSummary_maxResults,
searchPlaceIndexForTextSummary_resultBBox,
searchPlaceIndexForTextSummary_dataSource,
searchPlaceIndexForTextSummary_text,
Step (..),
newStep,
step_geometryOffset,
step_distance,
step_durationSeconds,
step_endPosition,
step_startPosition,
TimeZone (..),
newTimeZone,
timeZone_offset,
timeZone_name,
TruckDimensions (..),
newTruckDimensions,
truckDimensions_height,
truckDimensions_length,
truckDimensions_unit,
truckDimensions_width,
TruckWeight (..),
newTruckWeight,
truckWeight_total,
truckWeight_unit,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.Location.Types.BatchDeleteDevicePositionHistoryError
import Amazonka.Location.Types.BatchDeleteGeofenceError
import Amazonka.Location.Types.BatchEvaluateGeofencesError
import Amazonka.Location.Types.BatchGetDevicePositionError
import Amazonka.Location.Types.BatchItemError
import Amazonka.Location.Types.BatchItemErrorCode
import Amazonka.Location.Types.BatchPutGeofenceError
import Amazonka.Location.Types.BatchPutGeofenceRequestEntry
import Amazonka.Location.Types.BatchPutGeofenceSuccess
import Amazonka.Location.Types.BatchUpdateDevicePositionError
import Amazonka.Location.Types.CalculateRouteCarModeOptions
import Amazonka.Location.Types.CalculateRouteMatrixSummary
import Amazonka.Location.Types.CalculateRouteSummary
import Amazonka.Location.Types.CalculateRouteTruckModeOptions
import Amazonka.Location.Types.Circle
import Amazonka.Location.Types.DataSourceConfiguration
import Amazonka.Location.Types.DevicePosition
import Amazonka.Location.Types.DevicePositionUpdate
import Amazonka.Location.Types.DimensionUnit
import Amazonka.Location.Types.DistanceUnit
import Amazonka.Location.Types.GeofenceGeometry
import Amazonka.Location.Types.IntendedUse
import Amazonka.Location.Types.Leg
import Amazonka.Location.Types.LegGeometry
import Amazonka.Location.Types.ListDevicePositionsResponseEntry
import Amazonka.Location.Types.ListGeofenceCollectionsResponseEntry
import Amazonka.Location.Types.ListGeofenceResponseEntry
import Amazonka.Location.Types.ListMapsResponseEntry
import Amazonka.Location.Types.ListPlaceIndexesResponseEntry
import Amazonka.Location.Types.ListRouteCalculatorsResponseEntry
import Amazonka.Location.Types.ListTrackersResponseEntry
import Amazonka.Location.Types.MapConfiguration
import Amazonka.Location.Types.Place
import Amazonka.Location.Types.PlaceGeometry
import Amazonka.Location.Types.PositionFiltering
import Amazonka.Location.Types.PositionalAccuracy
import Amazonka.Location.Types.PricingPlan
import Amazonka.Location.Types.RouteMatrixEntry
import Amazonka.Location.Types.RouteMatrixEntryError
import Amazonka.Location.Types.RouteMatrixErrorCode
import Amazonka.Location.Types.SearchForPositionResult
import Amazonka.Location.Types.SearchForSuggestionsResult
import Amazonka.Location.Types.SearchForTextResult
import Amazonka.Location.Types.SearchPlaceIndexForPositionSummary
import Amazonka.Location.Types.SearchPlaceIndexForSuggestionsSummary
import Amazonka.Location.Types.SearchPlaceIndexForTextSummary
import Amazonka.Location.Types.Step
import Amazonka.Location.Types.TimeZone
import Amazonka.Location.Types.TravelMode
import Amazonka.Location.Types.TruckDimensions
import Amazonka.Location.Types.TruckWeight
import Amazonka.Location.Types.VehicleWeightUnit
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Sign.V4 as Sign
defaultService :: Core.Service
defaultService :: Service
defaultService =
Core.Service
{ $sel:abbrev:Service :: Abbrev
Core.abbrev = Abbrev
"Location",
$sel:signer:Service :: Signer
Core.signer = Signer
Sign.v4,
$sel:endpointPrefix:Service :: ByteString
Core.endpointPrefix = ByteString
"geo",
$sel:signingName:Service :: ByteString
Core.signingName = ByteString
"geo",
$sel:version:Service :: ByteString
Core.version = ByteString
"2020-11-19",
$sel:s3AddressingStyle:Service :: S3AddressingStyle
Core.s3AddressingStyle = S3AddressingStyle
Core.S3AddressingStyleAuto,
$sel:endpoint:Service :: Region -> Endpoint
Core.endpoint = Service -> Region -> Endpoint
Core.defaultEndpoint Service
defaultService,
$sel:timeout:Service :: Maybe Seconds
Core.timeout = forall a. a -> Maybe a
Prelude.Just Seconds
70,
$sel:check:Service :: Status -> Bool
Core.check = Status -> Bool
Core.statusSuccess,
$sel:error:Service :: Status -> [Header] -> ByteStringLazy -> Error
Core.error = Abbrev -> Status -> [Header] -> ByteStringLazy -> Error
Core.parseJSONError Abbrev
"Location",
$sel:retry:Service :: Retry
Core.retry = Retry
retry
}
where
retry :: Retry
retry =
Core.Exponential
{ $sel:base:Exponential :: Double
Core.base = Double
5.0e-2,
$sel:growth:Exponential :: Int
Core.growth = Int
2,
$sel:attempts:Exponential :: Int
Core.attempts = Int
5,
$sel:check:Exponential :: ServiceError -> Maybe Text
Core.check = forall {a}. IsString a => ServiceError -> Maybe a
check
}
check :: ServiceError -> Maybe a
check ServiceError
e
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
502) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"bad_gateway"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
504) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"gateway_timeout"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
500) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"general_server_error"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
509) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"limit_exceeded"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"RequestThrottledException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"request_throttled_exception"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
503) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"service_unavailable"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"ThrottledException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throttled_exception"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"Throttling"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throttling"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"ThrottlingException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throttling_exception"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode
ErrorCode
"ProvisionedThroughputExceededException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throughput_exceeded"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
429) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"too_many_requests"
| Bool
Prelude.otherwise = forall a. Maybe a
Prelude.Nothing
_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_AccessDeniedException :: forall a. AsError a => Fold a ServiceError
_AccessDeniedException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"AccessDeniedException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
403
_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ConflictException :: forall a. AsError a => Fold a ServiceError
_ConflictException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ConflictException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
409
_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InternalServerException :: forall a. AsError a => Fold a ServiceError
_InternalServerException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"InternalServerException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
500
_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ResourceNotFoundException :: forall a. AsError a => Fold a ServiceError
_ResourceNotFoundException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ResourceNotFoundException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
404
_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ServiceQuotaExceededException :: forall a. AsError a => Fold a ServiceError
_ServiceQuotaExceededException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ServiceQuotaExceededException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
402
_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ThrottlingException :: forall a. AsError a => Fold a ServiceError
_ThrottlingException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ThrottlingException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
429
_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ValidationException :: forall a. AsError a => Fold a ServiceError
_ValidationException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ValidationException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400