infra/modules/apim/policies/api_policy_chargeback.xml (51 lines of code) (raw):
<policies>
<inbound>
<base/>
<set-header name="X-Consumer" exists-action="override">
<value>@( context.Subscription.Name )</value>
</set-header>
<set-backend-service backend-id="proxy-backend" />
</inbound>
<backend>
<base/>
</backend>
<outbound>
<base/>
<!-- Dumping tracelogs for troubleshooting status 500 errors -->
<set-header name="X-OperationName" exists-action="override">
<value>@( context.Operation.Name )</value>
</set-header>
<set-header name="X-OperationMethod" exists-action="override">
<value>@( context.Operation.Method )</value>
</set-header>
<set-header name="X-OperationUrl" exists-action="override">
<value>@( context.Operation.UrlTemplate )</value>
</set-header>
<set-header name="X-ApiName" exists-action="override">
<value>@( context.Api.Name )</value>
</set-header>
<set-header name="X-ApiPath" exists-action="override">
<value>@( context.Api.Path )</value>
</set-header>
</outbound>
<on-error>
<base/>
<!-- Dumping tracelogs for troubleshooting status 500 errors -->
<set-header name="X-OperationName" exists-action="override">
<value>@( context.Operation.Name )</value>
</set-header>
<set-header name="X-OperationMethod" exists-action="override">
<value>@( context.Operation.Method )</value>
</set-header>
<set-header name="X-OperationUrl" exists-action="override">
<value>@( context.Operation.UrlTemplate )</value>
</set-header>
<set-header name="X-ApiName" exists-action="override">
<value>@( context.Api.Name )</value>
</set-header>
<set-header name="X-ApiPath" exists-action="override">
<value>@( context.Api.Path )</value>
</set-header>
<set-header name="X-LastErrorMessage" exists-action="override">
<value>@( context.LastError.Message )</value>
</set-header>
</on-error>
</policies>