[OperationContract]
[FaultContract(typeof(ValidationFaultContract))]
[SwaggerWcfTag("Catalog (common)", false)]
[SwaggerWcfPath(null, null, null, null, null, false, null, Summary = "Get all catalog entries (definitions)", Description = "Get the list of catalog definitions (basic contract) matching the provided filter criteria")]
[WebGet(UriTemplate = "/Definitions?productLines={productLines}&includeCustom={includeCustom}&excludeOfficial={excludeOfficial}", ResponseFormat = WebMessageFormat.Json)]
[SwaggerWcfResponse(StatusCode = HttpStatusCode.OK, Description = "Success")]
[SwaggerWcfResponse(StatusCode = HttpStatusCode.InternalServerError, Description = "An unexpected error occurred while processing the request.", Type = typeof(JsonErrorMessage))]
[SwaggerWcfResponse(StatusCode = HttpStatusCode.BadRequest, Description = "Fault exception", Type = typeof(JsonErrorMessage))]
CatalogChemicalProductsDefinitionContract[] GetAllCatalogDefinitions(ProductLines? productLines = ProductLines.All, bool includeCustom = false, bool excludeOfficial = false)