<ProxyEndpoint name="default">
<Description/>
<FaultRules>
<FaultRule name="Spike Arrest Fault">
<Step>
<Name>AM-RateLimitErrorSet429</Name>
<Condition>
(fault.name = "SpikeArrestViolation") or
(fault.name = "InvalidMessageWeight") or
(fault.name = "ErrorLoadingProperties") or
(fault.name = "InvalidAllowedRate") or
(fault.name = "FailedToResolveSpikeArrestRate")
</Condition>
</Step>
</FaultRule>
<FaultRule name="Quota Fault">
<Step>
<Name>AM-RateLimitErrorSet429</Name>
<Condition>
(fault.name = "QuotaViolation") or
(fault.name = "InvalidMessageWeight") or
(fault.name = "InvalidQuotaInterval") or
(fault.name = "FailedToResolveQuota\IntervalReference") or
(fault.name = "FailedToResolveQuota\IntervalTimeUnitReference") or
(fault.name = "InvalidQuotaTimeUnit")
</Condition>
</Step>
</FaultRule>
<FaultRule name="Forbidden Fault">
<Condition>(error.status.code = 403)</Condition>
<Step>
<Name>AM-SetForbidden</Name>
</Step>
</FaultRule>
<FaultRule name="InvalidBasicAuthenticationSource">
<Condition>(fault.name = "InvalidBasicAuthenticationSource") || (fault.name = InvalidApiKeyForGivenResource)</Condition>
<Step>
<Name>AM-SetUnathorizedVariables</Name>
</Step>
</FaultRule>
<FaultRule name="InvalidApiKey">
<Step>
<Name>AM-SetUnathorizedVariables</Name>
<Condition>(fault.name = "DeveloperStatusNotActive") || (fault.name = "FailedToResolveAPIKey") || (fault.name == "InvalidApiKey") || (oauthV2.VA-VerifyApiKey.failed = true)</Condition>
</Step>
<Step>
<Name>AM-SetUnathorizedVariables</Name>
<Condition>verifyapikey.VA-VerifyApiKey.client_secret != private.apisecret</Condition>
</Step>
</FaultRule>
<FaultRule name="servicecallout Fault">
<Condition>(servicecallout.SC-GetTokenFunctionBarramento.failed = true)</Condition>
<Step>
<Name>AM-SetInternalServerErrorVariables</Name>
</Step>
</FaultRule>
<FaultRule name="NotFound Fault">
<Condition>(error.reason.phrase = "Not Found")</Condition>
<Step>
<Name>AM-SetNotFound</Name>
</Step>
</FaultRule>
<FaultRule name="Bad-Request-Fault">
<Condition>
(raisefault.RF-BadRequestPacienteHeader.failed = true) or
(error.reason.phrase = "Bad Request") or
(error.status.code = 400)
</Condition>
<Step>
<Name>AM-SetBadRequest</Name>
</Step>
</FaultRule>
<FaultRule name="Bad Request Fault">
<Condition>
(fault.name = "ExceededContainerDepth") or
(fault.name = "ExceededObjectEntryCount") or
(fault.name = "ExceededArrayElementCount") or
(fault.name = "ExceededObjectEntryNameLength") or
(fault.name = "ExceededStringValueLength") or
(fault.name = "SourceUnavailable") or
(fault.name = "NonMessageVariable") or
(fault.name = "ExecutionFailed") or
(raisefault.RF-BadRequest.failed = true) or
(error.reason.phrase = "Bad Request")
</Condition>
<Step>
<Name>AM-SetBadRequest</Name>
</Step>
</FaultRule>
<FaultRule name="Invalid Access Token">
<Condition>
(fault.name = "FailedToResolveAccessToken") or
(raisefault.RF-Unauthorized.failed = true) or
(fault.name = "FailedToResolveToken") or
(fault.name = "FailedToResolveAuthorizationCode") or
(fault.name = "InsufficientScope") or
(fault.name = "InvalidAccessToken") or
(raisefault.RF-Unauthorized.failed = true) or
(verifyapikey.VA-VerifyApiKey.failed = true) or
(fault.name = "InvalidOperation")
</Condition>
<Step>
<Name>AM-SetUnathorizedVariables</Name>
</Step>
</FaultRule>
<FaultRule name="Internal server error">
<Step>
<Name>AM-SetInternalServerErrorVariables</Name>
<Condition>
(fault.name = "UnresolvedVariable") or
(fault.name = "SetVariableFailed") or
(fault.name = "InvalidVariableName") or
(fault.name = "ScriptExecutionFailed") or
(fault.name = "SourceMessageNotAvailable") or
(raisefault.RF-Unauthorized.failed = true) or
(verifyapikey.VA-VerifyApiKey.failed = true) or
(fault.name = "InvalidPayload")
</Condition>
</Step>
</FaultRule>
<FaultRule name="Bad-Request-Fault">
<Condition>
(raisefault.RF-BadRequest.failed = true) or
(raisefault.RF-BadRequestPacienteHeader.failed = true) or
(error.reason.phrase = "Bad Request") or
(error.status.code = 400)
</Condition>
<Step>
<Name>AM-SetBadRequest</Name>
</Step>
</FaultRule>
<FaultRule name="Bad Request Fault">
<Condition>
(fault.name = "ExceededContainerDepth") or
(fault.name = "ExceededObjectEntryCount") or
(fault.name = "ExceededArrayElementCount") or
(fault.name = "ExceededObjectEntryNameLength") or
(fault.name = "ExceededStringValueLength") or
(fault.name = "SourceUnavailable") or
(fault.name = "NonMessageVariable") or
(fault.name = "ExecutionFailed") or
(raisefault.RF-BadRequest.failed = true) or
(error.reason.phrase = "Bad Request")
</Condition>
<Step>
<Name>AM-SetBadRequest</Name>
</Step>
</FaultRule>
</FaultRules>
<DefaultFaultRule name="fault-rule">
<AlwaysEnforce>true</AlwaysEnforce>
<Step>
<Condition>(flow.error.code = null) and (fault.name = null)</Condition>
<Name>AM-SetInternalServerErrorVariables</Name>
</Step>
<Step>
<Condition>(fault.name != "ErrorResponseCode")</Condition>
<Name>RF-JsonError</Name>
</Step>
</DefaultFaultRule>
<PreFlow name="PreFlow">