{
  "kind": "discovery#restDescription",
  "etag": "",
  "discoveryVersion": "v1alpha1",
  "id": "dogfood:v1alpha1",
  "name": "dogfood",
  "version": "v1alpha1",
  "revision": "20140802",
  "title": "xTuple ERP REST API for all business objects.",
  "description": "Lets you get and manipulate xTuple ERP business objects.",
  "icons": {
    "x16": "https://mobile.xtuple.com/dogfood/assets/api/api-16.png",
    "x32": "https://mobile.xtuple.com/dogfood/assets/api/api-32.png"
  },
  "documentationLink": "https://dev.xtuple.com/",
  "protocol": "rest",
  "baseUrl": "https://mobile.xtuple.com/dogfood/api/v1alpha1/",
  "basePath": "/dogfood/api/v1alpha1/",
  "rootUrl": "https://mobile.xtuple.com/",
  "servicePath": "dogfood/api/v1alpha1/",
  "batchPath": "batch",
  "parameters": {
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    }
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://mobile.xtuple.com/dogfood/auth": {
          "description": "Full access to all 'dogfood' resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account": {
          "description": "Manage Account resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account-address-list-item": {
          "description": "Manage AccountAddressListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account-address-list-item.readonly": {
          "description": "View AccountAddressListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account-list-item": {
          "description": "Manage AccountListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account-list-item.readonly": {
          "description": "View AccountListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account-relation": {
          "description": "Manage AccountRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/account-relation.readonly": {
          "description": "View AccountRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/activity-list-item": {
          "description": "Manage ActivityListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/activity-list-item.readonly": {
          "description": "View ActivityListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/activity-relation": {
          "description": "Manage ActivityRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/activity-relation.readonly": {
          "description": "View ActivityRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/address": {
          "description": "Manage Address resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/address-info": {
          "description": "Manage AddressInfo resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/agent": {
          "description": "Manage Agent resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/agent.readonly": {
          "description": "View Agent resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/bank-account": {
          "description": "Manage BankAccount resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/bank-account-relation": {
          "description": "Manage BankAccountRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/bank-account-relation.readonly": {
          "description": "View BankAccountRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt": {
          "description": "Manage CashReceipt resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line": {
          "description": "Manage CashReceiptLine resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item": {
          "description": "Manage CashReceiptLineListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending": {
          "description": "Manage CashReceiptLinePending resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending.readonly": {
          "description": "View CashReceiptLinePending resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item": {
          "description": "Manage CashReceiptListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item.readonly": {
          "description": "View CashReceiptListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable": {
          "description": "Manage CashReceiptReceivable resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable.readonly": {
          "description": "View CashReceiptReceivable resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation": {
          "description": "Manage CashReceiptRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation.readonly": {
          "description": "View CashReceiptRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/characteristic": {
          "description": "Manage Characteristic resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/class-code": {
          "description": "Manage ClassCode resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/comment-type": {
          "description": "Manage CommentType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/contact": {
          "description": "Manage Contact resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/contact-info": {
          "description": "Manage ContactInfo resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/contact-list-item": {
          "description": "Manage ContactListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/contact-list-item.readonly": {
          "description": "View ContactListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/contact-relation": {
          "description": "Manage ContactRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/contact-relation.readonly": {
          "description": "View ContactRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/cost-category": {
          "description": "Manage CostCategory resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/country": {
          "description": "Manage Country resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/currency": {
          "description": "Manage Currency resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/currency-rate": {
          "description": "Manage CurrencyRate resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer": {
          "description": "Manage Customer resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-email-profile": {
          "description": "Manage CustomerEmailProfile resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-group": {
          "description": "Manage CustomerGroup resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-list-item": {
          "description": "Manage CustomerListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-list-item.readonly": {
          "description": "View CustomerListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item": {
          "description": "Manage CustomerProspectListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item.readonly": {
          "description": "View CustomerProspectListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation": {
          "description": "Manage CustomerProspectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation.readonly": {
          "description": "View CustomerProspectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-relation": {
          "description": "Manage CustomerRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-relation.readonly": {
          "description": "View CustomerRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation": {
          "description": "Manage CustomerShiptoRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation.readonly": {
          "description": "View CustomerShiptoRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/customer-type": {
          "description": "Manage CustomerType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/department": {
          "description": "Manage Department resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/employee": {
          "description": "Manage Employee resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation": {
          "description": "Manage EmployeeEmployeeRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation.readonly": {
          "description": "View EmployeeEmployeeRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/employee-group": {
          "description": "Manage EmployeeGroup resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/employee-relation": {
          "description": "Manage EmployeeRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/employee-relation.readonly": {
          "description": "View EmployeeRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/expense-category": {
          "description": "Manage ExpenseCategory resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/file": {
          "description": "Manage File resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/file-relation": {
          "description": "Manage FileRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/file-relation.readonly": {
          "description": "View FileRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/freight-class": {
          "description": "Manage FreightClass resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/honorific": {
          "description": "Manage Honorific resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident": {
          "description": "Manage Incident resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-category": {
          "description": "Manage IncidentCategory resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-email-profile": {
          "description": "Manage IncidentEmailProfile resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-list-item": {
          "description": "Manage IncidentListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-list-item.readonly": {
          "description": "View IncidentListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-relation": {
          "description": "Manage IncidentRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-relation.readonly": {
          "description": "View IncidentRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-resolution": {
          "description": "Manage IncidentResolution resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/incident-severity": {
          "description": "Manage IncidentSeverity resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice": {
          "description": "Manage Invoice resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-allocation": {
          "description": "Manage InvoiceAllocation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-line": {
          "description": "Manage InvoiceLine resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax": {
          "description": "Manage InvoiceLineTax resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-list-item": {
          "description": "Manage InvoiceListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-list-item.readonly": {
          "description": "View InvoiceListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-relation": {
          "description": "Manage InvoiceRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-relation.readonly": {
          "description": "View InvoiceRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/invoice-tax": {
          "description": "Manage InvoiceTax resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item": {
          "description": "Manage Item resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation": {
          "description": "Manage ItemItemSiteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation.readonly": {
          "description": "View ItemItemSiteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-list-item": {
          "description": "Manage ItemListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-list-item.readonly": {
          "description": "View ItemListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-relation": {
          "description": "Manage ItemRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-relation.readonly": {
          "description": "View ItemRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-site": {
          "description": "Manage ItemSite resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-site-list-item": {
          "description": "Manage ItemSiteListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-site-list-item.readonly": {
          "description": "View ItemSiteListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-site-relation": {
          "description": "Manage ItemSiteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/item-site-relation.readonly": {
          "description": "View ItemSiteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/language": {
          "description": "Manage Language resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/language.readonly": {
          "description": "View Language resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/locale": {
          "description": "Manage Locale resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity": {
          "description": "Manage Opportunity resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item": {
          "description": "Manage OpportunityListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item.readonly": {
          "description": "View OpportunityListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-relation": {
          "description": "Manage OpportunityRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-relation.readonly": {
          "description": "View OpportunityRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-source": {
          "description": "Manage OpportunitySource resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-stage": {
          "description": "Manage OpportunityStage resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/opportunity-type": {
          "description": "Manage OpportunityType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/planner-code": {
          "description": "Manage PlannerCode resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/priority": {
          "description": "Manage Priority resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/privilege": {
          "description": "Manage Privilege resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/privilege.readonly": {
          "description": "View Privilege resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/product-category": {
          "description": "Manage ProductCategory resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project": {
          "description": "Manage Project resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project-email-profile": {
          "description": "Manage ProjectEmailProfile resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project-list-item": {
          "description": "Manage ProjectListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project-list-item.readonly": {
          "description": "View ProjectListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project-relation": {
          "description": "Manage ProjectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project-relation.readonly": {
          "description": "View ProjectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/project-type": {
          "description": "Manage ProjectType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/prospect": {
          "description": "Manage Prospect resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/prospect-relation": {
          "description": "Manage ProspectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/prospect-relation.readonly": {
          "description": "View ProspectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/quote": {
          "description": "Manage Quote resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/quote-line": {
          "description": "Manage QuoteLine resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/quote-list-item": {
          "description": "Manage QuoteListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/quote-list-item.readonly": {
          "description": "View QuoteListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/quote-relation": {
          "description": "Manage QuoteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/reason-code": {
          "description": "Manage ReasonCode resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/receivable": {
          "description": "Manage Receivable resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/receivable-list-item": {
          "description": "Manage ReceivableListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/receivable-list-item.readonly": {
          "description": "View ReceivableListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/receivable-relation": {
          "description": "Manage ReceivableRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/receivable-relation.readonly": {
          "description": "View ReceivableRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/remit-to": {
          "description": "Manage RemitTo resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/remit-to.readonly": {
          "description": "View RemitTo resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return": {
          "description": "Manage Return resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-allocation": {
          "description": "Manage ReturnAllocation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-line": {
          "description": "Manage ReturnLine resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-line-tax": {
          "description": "Manage ReturnLineTax resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-list-item": {
          "description": "Manage ReturnListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-list-item.readonly": {
          "description": "View ReturnListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-relation": {
          "description": "Manage ReturnRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-relation.readonly": {
          "description": "View ReturnRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/return-tax": {
          "description": "Manage ReturnTax resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-category": {
          "description": "Manage SalesCategory resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation": {
          "description": "Manage SalesCustomerShiptoRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation.readonly": {
          "description": "View SalesCustomerShiptoRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-email-profile": {
          "description": "Manage SalesEmailProfile resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-order": {
          "description": "Manage SalesOrder resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item": {
          "description": "Manage SalesOrderListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item.readonly": {
          "description": "View SalesOrderListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-order-relation": {
          "description": "Manage SalesOrderRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sales-rep": {
          "description": "Manage SalesRep resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/sale-type": {
          "description": "Manage SaleType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/shift": {
          "description": "Manage Shift resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/ship-charge": {
          "description": "Manage ShipCharge resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/ship-via": {
          "description": "Manage ShipVia resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/ship-zone": {
          "description": "Manage ShipZone resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site": {
          "description": "Manage Site resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-list-item": {
          "description": "Manage SiteListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-list-item.readonly": {
          "description": "View SiteListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-relation": {
          "description": "Manage SiteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-relation.readonly": {
          "description": "View SiteRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-type": {
          "description": "Manage SiteType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-zone-relation": {
          "description": "Manage SiteZoneRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/site-zone-relation.readonly": {
          "description": "View SiteZoneRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/source": {
          "description": "Manage Source resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/source.readonly": {
          "description": "View Source resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/state": {
          "description": "Manage State resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/task-project-relation": {
          "description": "Manage TaskProjectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/task-project-relation.readonly": {
          "description": "View TaskProjectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-assignment": {
          "description": "Manage TaxAssignment resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-authority": {
          "description": "Manage TaxAuthority resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation": {
          "description": "Manage TaxAuthorityRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation.readonly": {
          "description": "View TaxAuthorityRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-class": {
          "description": "Manage TaxClass resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-code": {
          "description": "Manage TaxCode resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-rate": {
          "description": "Manage TaxRate resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-type": {
          "description": "Manage TaxType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/tax-zone": {
          "description": "Manage TaxZone resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/terms": {
          "description": "Manage Terms resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/to-do": {
          "description": "Manage ToDo resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/to-do-list-item": {
          "description": "Manage ToDoListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/to-do-list-item.readonly": {
          "description": "View ToDoListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/to-do-relation": {
          "description": "Manage ToDoRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/to-do-relation.readonly": {
          "description": "View ToDoRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item": {
          "description": "Manage TransferOrderItemListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item.readonly": {
          "description": "View TransferOrderItemListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation": {
          "description": "Manage TransferOrderItemRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation.readonly": {
          "description": "View TransferOrderItemRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/unit": {
          "description": "Manage Unit resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/url": {
          "description": "Manage Url resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/user-account": {
          "description": "Manage UserAccount resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/user-account-relation": {
          "description": "Manage UserAccountRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/user-account-relation.readonly": {
          "description": "View UserAccountRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/user-account-role": {
          "description": "Manage UserAccountRole resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/vendor": {
          "description": "Manage Vendor resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/vendor-list-item": {
          "description": "Manage VendorListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/vendor-list-item.readonly": {
          "description": "View VendorListItem resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/vendor-relation": {
          "description": "Manage VendorRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/vendor-relation.readonly": {
          "description": "View VendorRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/vendor-type": {
          "description": "Manage VendorType resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation": {
          "description": "Manage WorksheetProjectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation.readonly": {
          "description": "View WorksheetProjectRelation resources"
        },
        "https://mobile.xtuple.com/dogfood/auth/model": {
          "description": "Use Model services"
        }
      }
    }
  },
  "schemas": {
    "Account": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "description": "Long name of this CRM Account.",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "description": "This CRM Account is available for new activity.",
          "type": "boolean"
        },
        "accountType": {
          "title": "Account Type",
          "required": true,
          "description": "This indicates whether the CRM Account represents an organization or an individual person.",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "parent": {
          "title": "Parent",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "notes": {
          "title": "Notes",
          "description": "Free-form comments pertaining to the CRM Account.",
          "type": "string"
        },
        "primaryContact": {
          "title": "Primary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "secondaryContact": {
          "title": "Secondary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "contactRelations": {
          "title": "Contact Relations",
          "type": "array",
          "items": {
            "$ref": "ContactRelation/number"
          }
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "userAccount": {
          "title": "User Account",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "employee": {
          "title": "Employee",
          "type": "object",
          "$ref": "EmployeeRelation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "taxAuthority": {
          "title": "Tax Authority",
          "type": "object",
          "$ref": "TaxAuthorityRelation"
        },
        "partner": {
          "title": "Partner",
          "description": "For now, > 0 indicates this CRM Account is a partner. Eventually this may become a foreign key to a table of partners.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "competitor": {
          "title": "Competitor",
          "description": "For now, > 0 indicates this CRM Account is a competitor. Eventually this may become a foreign key to a table of competitors.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "AccountComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "AccountCharacteristic"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "AccountContact"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "AccountIncident"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "AccountItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "AccountFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "AccountUrl"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "AccountAccount"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "AccountOpportunity"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "AccountToDo"
          }
        },
        "incidentRelations": {
          "title": "Incident Relations",
          "type": "array",
          "items": {
            "$ref": "IncidentRelation/number"
          }
        },
        "opportunityRelations": {
          "title": "Opportunity Relations",
          "type": "array",
          "items": {
            "$ref": "OpportunityRelation/number"
          }
        },
        "toDoRelations": {
          "title": "To Do Relations",
          "type": "array",
          "items": {
            "$ref": "ToDoRelation/uuid"
          }
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "AccountProject"
          }
        },
        "projectRelations": {
          "title": "Project Relations",
          "type": "array",
          "items": {
            "$ref": "ProjectRelation/number"
          }
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "prospect": {
          "title": "Prospect",
          "type": "object",
          "$ref": "ProspectRelation"
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "AccountCustomer"
          }
        }
      }
    },
    "AccountAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountAddressListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "line1": {
          "title": "Line1",
          "type": "string"
        },
        "line2": {
          "title": "Line2",
          "type": "string"
        },
        "line3": {
          "title": "Line3",
          "type": "string"
        },
        "city": {
          "title": "City",
          "type": "string"
        },
        "state": {
          "title": "State",
          "type": "string"
        },
        "postalCode": {
          "title": "Postal Code",
          "type": "string"
        },
        "country": {
          "title": "Country",
          "type": "string"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        }
      }
    },
    "AccountCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "AccountComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "AccountContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "description": "Long name of this CRM Account.",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "description": "This CRM Account is available for new activity.",
          "type": "boolean"
        },
        "primaryContact": {
          "title": "Primary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "AccountListItemCharacteristic"
          }
        }
      }
    },
    "AccountListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "AccountOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "description": "Long name of this CRM Account.",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "description": "This CRM Account is available for new activity.",
          "type": "boolean"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "prospect": {
          "title": "Prospect",
          "type": "object",
          "$ref": "ProspectRelation"
        }
      }
    },
    "AccountToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "AccountUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ActivityListItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "activityType": {
          "title": "Activity Type",
          "type": "string"
        },
        "activityAction": {
          "title": "Activity Action",
          "type": "string"
        },
        "editorKey": {
          "title": "Editor Key",
          "type": "string"
        },
        "parent": {
          "title": "Parent",
          "type": "object",
          "$ref": "ActivityRelation"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": null,
          "maxLength": null
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        }
      }
    },
    "ActivityRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "activityType": {
          "title": "Activity Type",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        }
      }
    },
    "Address": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "line1": {
          "title": "Line1",
          "type": "string"
        },
        "line2": {
          "title": "Line2",
          "type": "string"
        },
        "line3": {
          "title": "Line3",
          "type": "string"
        },
        "city": {
          "title": "City",
          "type": "string"
        },
        "state": {
          "title": "State",
          "type": "string"
        },
        "postalCode": {
          "title": "Postal Code",
          "type": "string"
        },
        "country": {
          "title": "Country",
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "AddressComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "AddressCharacteristic"
          }
        }
      }
    },
    "AddressCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name"
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "AddressComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name"
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "AddressInfo": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "line1": {
          "title": "Line1",
          "type": "string"
        },
        "line2": {
          "title": "Line2",
          "type": "string"
        },
        "line3": {
          "title": "Line3",
          "type": "string"
        },
        "city": {
          "title": "City",
          "type": "string"
        },
        "state": {
          "title": "State",
          "type": "string"
        },
        "postalCode": {
          "title": "Postal Code",
          "type": "string"
        },
        "country": {
          "title": "Country",
          "type": "string"
        }
      }
    },
    "Agent": {
      "properties": {
        "username": {
          "title": "Username",
          "isKey": true,
          "required": true,
          "type": "string"
        }
      }
    },
    "BankAccount": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "bankName": {
          "title": "Bank Name",
          "type": "string"
        },
        "accountNumber": {
          "title": "Account Number",
          "type": "string"
        },
        "bankAccountType": {
          "title": "Bank Account Type",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "isUsedByBilling": {
          "title": "Is Used By Billing",
          "type": "boolean"
        },
        "isUsedByPayments": {
          "title": "Is Used By Payments",
          "type": "boolean"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        }
      }
    },
    "BankAccountRelation": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "isUsedByBilling": {
          "title": "Is Used By Billing",
          "type": "boolean"
        },
        "isUsedByPayments": {
          "title": "Is Used By Payments",
          "type": "boolean"
        }
      }
    },
    "BillingCustomer": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "customerType": {
          "title": "Customer Type",
          "type": "String",
          "$ref": "CustomerType/code",
          "required": true
        },
        "customerGroups": {
          "title": "Customer Groups",
          "type": "object",
          "items": {
            "$ref": "CustomerCustomerGroup"
          }
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "billingContact": {
          "title": "Billing Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number",
          "required": true
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code",
          "required": true
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "isFreeFormBillto": {
          "title": "Is Free Form Billto",
          "required": true,
          "type": "boolean"
        },
        "shiptos": {
          "title": "Shiptos",
          "type": "object",
          "items": {
            "$ref": "CustomerShipto"
          }
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "emailProfile": {
          "title": "Email Profile",
          "type": "String",
          "$ref": "CustomerEmailProfile/name"
        }
      }
    },
    "CashReceipt": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "documentNumber": {
          "title": "Document Number",
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "SalesCustomer",
          "required": true
        },
        "useCustomerDeposit": {
          "title": "Use Customer Deposit",
          "required": true,
          "type": "boolean"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation",
          "required": true
        },
        "currencyRate": {
          "title": "Currency Rate",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "fundsType": {
          "title": "Funds Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "documentDate": {
          "title": "Document Date",
          "type": "string",
          "format": "date"
        },
        "bankAccount": {
          "title": "Bank Account",
          "type": "object",
          "$ref": "BankAccountRelation",
          "required": true
        },
        "distributionDate": {
          "title": "Distribution Date",
          "type": "string",
          "format": "date"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "applicationDate": {
          "title": "Application Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "lineItems": {
          "title": "Line Items",
          "type": "object",
          "items": {
            "$ref": "CashReceiptLineListItem"
          }
        }
      }
    },
    "CashReceiptLine": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "discountAmount": {
          "title": "Discount Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "cashReceipt": {
          "title": "Cash Receipt",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "cashReceiptReceivable": {
          "title": "Cash Receipt Receivable",
          "type": "object",
          "$ref": "CashReceiptReceivable"
        }
      }
    },
    "CashReceiptLineListItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "discountAmount": {
          "title": "Discount Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "cashReceipt": {
          "title": "Cash Receipt",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "cashReceiptReceivable": {
          "title": "Cash Receipt Receivable",
          "type": "object",
          "$ref": "CashReceiptReceivable"
        }
      }
    },
    "CashReceiptLinePending": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "isApplied": {
          "title": "Is Applied",
          "type": "boolean"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "discountAmount": {
          "title": "Discount Amount",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "CashReceiptListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "documentNumber": {
          "title": "Document Number",
          "type": "string"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "currency": {
          "title": "Currency",
          "type": "object",
          "$ref": "Currency"
        },
        "fundsType": {
          "title": "Funds Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "bankAccount": {
          "title": "Bank Account",
          "type": "object",
          "$ref": "BankAccountRelation"
        },
        "distributionDate": {
          "title": "Distribution Date",
          "type": "string",
          "format": "date"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        }
      }
    },
    "CashReceiptReceivable": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "pendingApplications": {
          "title": "Pending Applications",
          "type": "object",
          "items": {
            "$ref": "CashReceiptLinePending"
          }
        },
        "receivable": {
          "title": "Receivable",
          "type": "object",
          "$ref": "ReceivableRelation"
        }
      }
    },
    "CashReceiptRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation",
          "required": true
        },
        "currencyRate": {
          "title": "Currency Rate",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation",
          "required": true
        }
      }
    },
    "Characteristic": {
      "properties": {
        "name": {
          "title": "Name",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "characteristicType": {
          "title": "Characteristic Type",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "isSearchable": {
          "title": "Is Searchable",
          "required": true,
          "type": "boolean"
        },
        "order": {
          "title": "Order",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "mask": {
          "title": "Mask",
          "type": "string"
        },
        "validator": {
          "title": "Validator",
          "type": "string"
        },
        "options": {
          "title": "Options",
          "type": "object",
          "items": {
            "$ref": "CharacteristicOption"
          }
        },
        "isAddresses": {
          "title": "Is Addresses",
          "required": true,
          "type": "boolean"
        },
        "isContacts": {
          "title": "Is Contacts",
          "required": true,
          "type": "boolean"
        },
        "isAccounts": {
          "title": "Is Accounts",
          "type": "boolean"
        },
        "isItems": {
          "title": "Is Items",
          "required": true,
          "type": "boolean"
        },
        "isCustomers": {
          "title": "Is Customers",
          "required": true,
          "type": "boolean"
        },
        "isInvoices": {
          "title": "Is Invoices",
          "required": true,
          "type": "boolean"
        },
        "isEmployees": {
          "title": "Is Employees",
          "required": true,
          "type": "boolean"
        },
        "isSalesOrders": {
          "title": "Is Sales Orders",
          "type": "boolean"
        },
        "isIncidents": {
          "title": "Is Incidents",
          "type": "boolean"
        },
        "isOpportunities": {
          "title": "Is Opportunities",
          "type": "boolean"
        },
        "isProjects": {
          "title": "Is Projects",
          "type": "boolean"
        },
        "isTasks": {
          "title": "Is Tasks",
          "type": "boolean"
        }
      }
    },
    "CharacteristicOption": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "value": {
          "title": "Value",
          "description": "Option value",
          "required": true,
          "type": "string"
        },
        "order": {
          "title": "Order",
          "required": true,
          "description": "Option sort order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "ClassCode": {
      "properties": {
        "code": {
          "title": "Code",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "CommentType": {
      "properties": {
        "name": {
          "title": "Name",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        },
        "isSystem": {
          "title": "Is System",
          "required": true,
          "type": "boolean"
        },
        "commentsEditable": {
          "title": "Comments Editable",
          "required": true,
          "type": "boolean"
        },
        "order": {
          "title": "Order",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "sources": {
          "title": "Sources",
          "type": "object",
          "items": {
            "$ref": "CommentTypeSource"
          }
        }
      }
    },
    "CommentTypeSource": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "source": {
          "title": "Source",
          "type": "String",
          "$ref": "Source/name"
        }
      }
    },
    "Contact": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "honorific": {
          "title": "Honorific",
          "type": "string"
        },
        "firstName": {
          "title": "First Name",
          "type": "string"
        },
        "middleName": {
          "title": "Middle Name",
          "type": "string"
        },
        "lastName": {
          "title": "Last Name",
          "type": "string"
        },
        "suffix": {
          "title": "Suffix",
          "type": "string"
        },
        "jobTitle": {
          "title": "Job Title",
          "type": "string"
        },
        "initials": {
          "title": "Initials",
          "type": "string"
        },
        "phone": {
          "title": "Phone",
          "type": "string"
        },
        "alternate": {
          "title": "Alternate",
          "type": "string"
        },
        "fax": {
          "title": "Fax",
          "type": "string"
        },
        "primaryEmail": {
          "title": "Primary Email",
          "type": "string"
        },
        "webAddress": {
          "title": "Web Address",
          "type": "string"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "email": {
          "title": "Email",
          "type": "object",
          "items": {
            "$ref": "ContactEmail"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "ContactComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ContactCharacteristic"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "ContactAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "ContactContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "ContactItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "ContactFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "ContactUrl"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "ContactCustomer"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "ContactIncident"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "ContactOpportunity"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "ContactToDo"
          }
        },
        "incidentRelations": {
          "title": "Incident Relations",
          "type": "array",
          "items": {
            "$ref": "IncidentRelation/number"
          }
        },
        "opportunityRelations": {
          "title": "Opportunity Relations",
          "type": "array",
          "items": {
            "$ref": "OpportunityRelation/number"
          }
        },
        "toDoRelations": {
          "title": "To Do Relations",
          "type": "array",
          "items": {
            "$ref": "ToDoRelation/uuid"
          }
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "ContactProject"
          }
        },
        "projectRelations": {
          "title": "Project Relations",
          "type": "array",
          "items": {
            "$ref": "ProjectRelation/number"
          }
        }
      }
    },
    "ContactAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "ContactComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "ContactContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactEmail": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "email": {
          "title": "Email",
          "required": true,
          "description": "Alternate information",
          "type": "string"
        }
      }
    },
    "ContactFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactInfo": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "honorific": {
          "title": "Honorific",
          "type": "string"
        },
        "firstName": {
          "title": "First Name",
          "type": "string"
        },
        "middleName": {
          "title": "Middle Name",
          "type": "string"
        },
        "lastName": {
          "title": "Last Name",
          "type": "string"
        },
        "suffix": {
          "title": "Suffix",
          "type": "string"
        },
        "jobTitle": {
          "title": "Job Title",
          "type": "string"
        },
        "initials": {
          "title": "Initials",
          "type": "string"
        },
        "phone": {
          "title": "Phone",
          "type": "string"
        },
        "alternate": {
          "title": "Alternate",
          "type": "string"
        },
        "fax": {
          "title": "Fax",
          "type": "string"
        },
        "primaryEmail": {
          "title": "Primary Email",
          "type": "string"
        },
        "webAddress": {
          "title": "Web Address",
          "type": "string"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "email": {
          "title": "Email",
          "type": "object",
          "items": {
            "$ref": "ContactEmail"
          }
        }
      }
    },
    "ContactItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "firstName": {
          "title": "First Name",
          "type": "string"
        },
        "lastName": {
          "title": "Last Name",
          "type": "string"
        },
        "jobTitle": {
          "title": "Job Title",
          "type": "string"
        },
        "phone": {
          "title": "Phone",
          "type": "string"
        },
        "alternate": {
          "title": "Alternate",
          "type": "string"
        },
        "fax": {
          "title": "Fax",
          "type": "string"
        },
        "primaryEmail": {
          "title": "Primary Email",
          "type": "string"
        },
        "webAddress": {
          "title": "Web Address",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ContactListItemCharacteristic"
          }
        },
        "accountParent": {
          "title": "Account Parent",
          "type": "string"
        }
      }
    },
    "ContactListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "ContactOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "honorific": {
          "title": "Honorific",
          "type": "string"
        },
        "firstName": {
          "title": "First Name",
          "type": "string"
        },
        "middleName": {
          "title": "Middle Name",
          "type": "string"
        },
        "lastName": {
          "title": "Last Name",
          "type": "string"
        },
        "suffix": {
          "title": "Suffix",
          "type": "string"
        },
        "jobTitle": {
          "title": "Job Title",
          "type": "string"
        },
        "phone": {
          "title": "Phone",
          "type": "string"
        },
        "alternate": {
          "title": "Alternate",
          "type": "string"
        },
        "fax": {
          "title": "Fax",
          "type": "string"
        },
        "primaryEmail": {
          "title": "Primary Email",
          "type": "string"
        },
        "webAddress": {
          "title": "Web Address",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "accountParent": {
          "title": "Account Parent",
          "type": "string"
        }
      }
    },
    "ContactToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ContactUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CostCategory": {
      "properties": {
        "code": {
          "title": "Code",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "Country": {
      "properties": {
        "abbreviation": {
          "title": "Abbreviation",
          "required": true,
          "isKey": true,
          "type": "string",
          "minLength": "2",
          "maxLength": "2"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "currencyName": {
          "title": "Currency Name",
          "type": "string"
        },
        "currencySymbol": {
          "title": "Currency Symbol",
          "type": "string",
          "maxLength": "9"
        },
        "currencyAbbreviation": {
          "title": "Currency Abbreviation",
          "required": true,
          "type": "string",
          "minLength": "3",
          "maxLength": "3"
        },
        "currencyNumber": {
          "title": "Currency Number",
          "type": "string",
          "minLength": "3",
          "maxLength": "3"
        }
      }
    },
    "CreditCard": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "sequence": {
          "title": "Sequence",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "customer": {
          "title": "Customer",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "address1": {
          "title": "Address1",
          "type": "string"
        },
        "address2": {
          "title": "Address2",
          "type": "string"
        },
        "city": {
          "title": "City",
          "type": "string"
        },
        "state": {
          "title": "State",
          "type": "string"
        },
        "zip": {
          "title": "Zip",
          "type": "string"
        },
        "country": {
          "title": "Country",
          "type": "string"
        },
        "number": {
          "title": "Number",
          "required": true,
          "type": "string"
        },
        "monthExpired": {
          "title": "Month Expired",
          "required": true,
          "type": "string"
        },
        "yearExpired": {
          "title": "Year Expired",
          "required": true,
          "type": "string"
        },
        "isDebit": {
          "title": "Is Debit",
          "type": "boolean"
        },
        "creditCardType": {
          "title": "Credit Card Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        }
      }
    },
    "Currency": {
      "properties": {
        "name": {
          "title": "Name",
          "required": true,
          "type": "string",
          "maxLength": "50"
        },
        "symbol": {
          "title": "Symbol",
          "required": true,
          "type": "string",
          "maxLength": "9"
        },
        "abbreviation": {
          "title": "Abbreviation",
          "isKey": true,
          "required": true,
          "type": "string",
          "maxLength": "3"
        },
        "isBase": {
          "title": "Is Base",
          "required": true,
          "type": "boolean"
        }
      }
    },
    "CurrencyRate": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "rate": {
          "title": "Rate",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "effective": {
          "title": "Effective",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "expires": {
          "title": "Expires",
          "required": true,
          "type": "string",
          "format": "date"
        }
      }
    },
    "Customer": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "customerType": {
          "title": "Customer Type",
          "type": "String",
          "$ref": "CustomerType/code",
          "required": true
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "billingContact": {
          "title": "Billing Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "correspondenceContact": {
          "title": "Correspondence Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number",
          "required": true
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name",
          "required": true
        },
        "isFreeFormShipto": {
          "title": "Is Free Form Shipto",
          "required": true,
          "type": "boolean"
        },
        "isFreeFormBillto": {
          "title": "Is Free Form Billto",
          "required": true,
          "type": "boolean"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code",
          "required": true
        },
        "discount": {
          "title": "Discount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "creditStatus": {
          "title": "Credit Status",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "balanceMethod": {
          "title": "Balance Method",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "creditLimit": {
          "title": "Credit Limit",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "creditLimitCurrency": {
          "title": "Credit Limit Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "creditRating": {
          "title": "Credit Rating",
          "type": "string"
        },
        "graceDays": {
          "title": "Grace Days",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "shiptos": {
          "title": "Shiptos",
          "type": "object",
          "items": {
            "$ref": "CustomerShipto"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "CustomerComment"
          }
        },
        "taxRegistration": {
          "title": "Tax Registration",
          "type": "object",
          "items": {
            "$ref": "CustomerTaxRegistration"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "CustomerCharacteristic"
          }
        },
        "backorder": {
          "title": "Backorder",
          "required": true,
          "type": "boolean"
        },
        "partialShip": {
          "title": "Partial Ship",
          "required": true,
          "type": "boolean"
        },
        "blanketPurchaseOrders": {
          "title": "Blanket Purchase Orders",
          "required": true,
          "type": "boolean"
        },
        "usesPurchaseOrders": {
          "title": "Uses Purchase Orders",
          "required": true,
          "type": "boolean"
        },
        "autoUpdateStatus": {
          "title": "Auto Update Status",
          "required": true,
          "type": "boolean"
        },
        "autoHoldOrders": {
          "title": "Auto Hold Orders",
          "required": true,
          "type": "boolean"
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "CustomerAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "CustomerContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "CustomerItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "CustomerFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "CustomerUrl"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "CustomerCustomer"
          }
        },
        "preferredSite": {
          "title": "Preferred Site",
          "type": "String",
          "$ref": "SiteRelation/code"
        },
        "creditCards": {
          "title": "Credit Cards",
          "type": "object",
          "items": {
            "$ref": "CreditCard"
          }
        },
        "emailProfile": {
          "title": "Email Profile",
          "type": "String",
          "$ref": "CustomerEmailProfile/name"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "contactRelations": {
          "title": "Contact Relations",
          "type": "array",
          "items": {
            "$ref": "CustomerContactRelation/number"
          }
        },
        "incidentRelations": {
          "title": "Incident Relations",
          "type": "array",
          "items": {
            "$ref": "CustomerIncidentRelation/number"
          }
        },
        "opportunityRelations": {
          "title": "Opportunity Relations",
          "type": "array",
          "items": {
            "$ref": "CustomerOpportunityRelation/number"
          }
        },
        "toDoRelations": {
          "title": "To Do Relations",
          "type": "array",
          "items": {
            "$ref": "CustomerToDoRelation/uuid"
          }
        },
        "isSpecifiedRate": {
          "title": "Is Specified Rate",
          "type": "boolean"
        },
        "billingRate": {
          "title": "Billing Rate",
          "type": "number",
          "format": "float"
        },
        "billingCurrency": {
          "title": "Billing Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "quoteRelations": {
          "title": "Quote Relations",
          "type": "array",
          "items": {
            "$ref": "QuoteRelation/number"
          }
        },
        "salesOrderRelations": {
          "title": "Sales Order Relations",
          "type": "array",
          "items": {
            "$ref": "SalesOrderRelation/number"
          }
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "CustomerProject"
          }
        }
      }
    },
    "CustomerAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CustomerCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "CustomerComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "CustomerContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CustomerContactRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "firstName": {
          "title": "First Name",
          "type": "string"
        },
        "lastName": {
          "title": "Last Name",
          "type": "string"
        },
        "jobTitle": {
          "title": "Job Title",
          "type": "string"
        },
        "phone": {
          "title": "Phone",
          "type": "string"
        },
        "alternate": {
          "title": "Alternate",
          "type": "string"
        },
        "fax": {
          "title": "Fax",
          "type": "string"
        },
        "primaryEmail": {
          "title": "Primary Email",
          "type": "string"
        },
        "webAddress": {
          "title": "Web Address",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "accountParent": {
          "title": "Account Parent",
          "type": "string"
        }
      }
    },
    "CustomerCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CustomerCustomerGroup": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "customerGroup": {
          "title": "Customer Group",
          "type": "object",
          "$ref": "CustomerGroup"
        }
      }
    },
    "CustomerEmailProfile": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "from": {
          "title": "From",
          "type": "string"
        },
        "replyTo": {
          "title": "Reply To",
          "type": "string"
        },
        "to": {
          "title": "To",
          "type": "string"
        },
        "cc": {
          "title": "Cc",
          "type": "string"
        },
        "bcc": {
          "title": "Bcc",
          "type": "string"
        },
        "subject": {
          "title": "Subject",
          "type": "string"
        },
        "body": {
          "title": "Body",
          "type": "string"
        }
      }
    },
    "CustomerFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CustomerGroup": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "CustomerGroupCustomer"
          }
        }
      }
    },
    "CustomerGroupCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        }
      }
    },
    "CustomerIncidentRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "updated": {
          "title": "Updated",
          "type": "string",
          "format": "date-time"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        }
      }
    },
    "CustomerItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CustomerListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "billingContact": {
          "title": "Billing Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "shipto": {
          "title": "Shipto",
          "type": "object",
          "$ref": "CustomerShipto"
        }
      }
    },
    "CustomerOpportunityRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "opportunityStage": {
          "title": "Opportunity Stage",
          "type": "String",
          "$ref": "OpportunityStage/name"
        },
        "targetClose": {
          "title": "Target Close",
          "type": "string",
          "format": "date"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        }
      }
    },
    "CustomerProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "CustomerProspectListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "customerType": {
          "title": "Customer Type",
          "type": "String",
          "$ref": "CustomerType/code"
        }
      }
    },
    "CustomerProspectRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "billingContact": {
          "title": "Billing Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "isFreeFormShipto": {
          "title": "Is Free Form Shipto",
          "type": "boolean"
        },
        "isFreeFormBillto": {
          "title": "Is Free Form Billto",
          "required": true,
          "type": "boolean"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code"
        },
        "creditStatus": {
          "title": "Credit Status",
          "type": "string",
          "minLength": null,
          "maxLength": null
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "discount": {
          "title": "Discount",
          "type": "number",
          "format": "float"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name"
        },
        "preferredSite": {
          "title": "Preferred Site",
          "type": "String",
          "$ref": "Site/code"
        },
        "shiptos": {
          "title": "Shiptos",
          "type": "object",
          "items": {
            "$ref": "SalesCustomerShiptoRelation"
          }
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "customerType": {
          "title": "Customer Type",
          "type": "String",
          "$ref": "CustomerType/code"
        },
        "account": {
          "title": "Account",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "CustomerRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "shipto": {
          "title": "Shipto",
          "type": "object",
          "$ref": "CustomerShipto"
        },
        "account": {
          "title": "Account",
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        }
      }
    },
    "CustomerShipto": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "isDefault": {
          "title": "Is Default",
          "type": "boolean"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "commission": {
          "title": "Commission",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "shipZone": {
          "title": "Ship Zone",
          "type": "String",
          "$ref": "ShipZone/name"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name",
          "required": true
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "shippingNotes": {
          "title": "Shipping Notes",
          "type": "string"
        }
      }
    },
    "CustomerShiptoRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "String",
          "$ref": "CustomerRelation/number"
        },
        "number": {
          "title": "Number",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "isDefault": {
          "title": "Is Default",
          "type": "boolean"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "commission": {
          "title": "Commission",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "shipZone": {
          "title": "Ship Zone",
          "type": "String",
          "$ref": "ShipZone/name"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        }
      }
    },
    "CustomerTaxRegistration": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "taxAuthority": {
          "title": "Tax Authority",
          "type": "String",
          "$ref": "TaxAuthority/code"
        },
        "number": {
          "title": "Number",
          "required": true,
          "type": "string"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "effective": {
          "title": "Effective",
          "type": "string",
          "format": "date"
        },
        "expires": {
          "title": "Expires",
          "type": "string",
          "format": "date"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        }
      }
    },
    "CustomerToDoRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "priorityOrder": {
          "title": "Priority Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "CustomerType": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        }
      }
    },
    "CustomerUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "Department": {
      "properties": {
        "number": {
          "title": "Number",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        }
      }
    },
    "Employee": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
          "required": true,
          "type": "string"
        },
        "number": {
          "title": "Number",
          "required": true,
          "description": "Official employee number. This might be used for ID badges, payroll accounting, or other purposes.",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "site": {
          "title": "Site",
          "type": "String",
          "$ref": "SiteRelation/code"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccount"
        },
        "manager": {
          "title": "Manager",
          "type": "object",
          "$ref": "EmployeeRelation"
        },
        "department": {
          "title": "Department",
          "type": "object",
          "$ref": "Department"
        },
        "shift": {
          "title": "Shift",
          "type": "object",
          "$ref": "Shift"
        },
        "wageType": {
          "title": "Wage Type",
          "required": true,
          "description": "The nature of the wage or employment agreement. 'H' indicates this employee is paid on an hourly basis (or some other period) while 'S' indicates this employee is salaried.",
          "type": "string"
        },
        "wage": {
          "title": "Wage",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "wageCurrency": {
          "title": "Wage Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "wagePeriod": {
          "title": "Wage Period",
          "required": true,
          "description": "The periodicity of wage payment: 'H' for hourly, 'D' for daily, 'W' for weekly, 'BW' for biweekly, 'M' for monthly, 'Y' for yearly.",
          "type": "string"
        },
        "billingRate": {
          "title": "Billing Rate",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "billingPeriod": {
          "title": "Billing Period",
          "required": true,
          "description": "The periodicity of external rate payment: 'H' for hourly, 'D' for daily, 'W' for weekly, 'BW' for biweekly, 'M' for monthly, 'Y' for yearly.",
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "EmployeeComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "EmployeeCharacteristic"
          }
        },
        "groups": {
          "title": "Groups",
          "type": "object",
          "items": {
            "$ref": "EmployeeGroupGroup"
          }
        },
        "isContractor": {
          "title": "Is Contractor",
          "type": "boolean"
        }
      }
    },
    "EmployeeCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "EmployeeComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "EmployeeEmployeeRelation": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        }
      }
    },
    "EmployeeGroup": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        },
        "employees": {
          "title": "Employees",
          "type": "object",
          "items": {
            "$ref": "EmployeeGroupEmployee"
          }
        }
      }
    },
    "EmployeeGroupEmployee": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "employee": {
          "title": "Employee",
          "type": "object",
          "$ref": "EmployeeRelation"
        }
      }
    },
    "EmployeeGroupGroup": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "employeeGroup": {
          "title": "Employee Group",
          "type": "object",
          "$ref": "EmployeeGroup"
        }
      }
    },
    "EmployeeRelation": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "manager": {
          "title": "Manager",
          "type": "object",
          "$ref": "EmployeeEmployeeRelation"
        },
        "department": {
          "title": "Department",
          "type": "object",
          "$ref": "Department"
        },
        "shift": {
          "title": "Shift",
          "type": "object",
          "$ref": "Shift"
        },
        "site": {
          "title": "Site",
          "type": "String",
          "$ref": "SiteRelation/code"
        },
        "isContractor": {
          "title": "Is Contractor",
          "type": "boolean"
        }
      }
    },
    "ExpenseCategory": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        }
      }
    },
    "Extension": {
      "properties": {
        "id": {
          "title": "Id",
          "isKey": true,
          "required": true,
          "type": "integer",
          "format": "uint32",
          "minimum": "1",
          "maximum": "2147483647"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "location": {
          "title": "Location",
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "loadOrder": {
          "title": "Load Order",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "dependencies": {
          "title": "Dependencies",
          "type": "object",
          "items": {
            "$ref": "ExtensionDependency"
          }
        }
      }
    },
    "ExtensionDependency": {
      "properties": {
        "id": {
          "title": "Id",
          "isKey": true,
          "required": true,
          "type": "integer",
          "format": "uint32",
          "minimum": "1",
          "maximum": "2147483647"
        },
        "fromExtension": {
          "title": "From Extension",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "toExtension": {
          "title": "To Extension",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "File": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        },
        "data": {
          "title": "Data",
          "type": "string"
        }
      }
    },
    "FileRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        }
      }
    },
    "FreightClass": {
      "properties": {
        "code": {
          "title": "Code",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "Honorific": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        }
      }
    },
    "Incident": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        },
        "category": {
          "title": "Category",
          "type": "String",
          "$ref": "IncidentCategory/name",
          "required": true
        },
        "isPublic": {
          "title": "Is Public",
          "type": "boolean"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation",
          "required": true
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation",
          "required": true
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "status": {
          "title": "Status",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "resolution": {
          "title": "Resolution",
          "type": "String",
          "$ref": "IncidentResolution/name"
        },
        "severity": {
          "title": "Severity",
          "type": "String",
          "$ref": "IncidentSeverity/name"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "recurrences": {
          "title": "Recurrences",
          "type": "object",
          "items": {
            "$ref": "IncidentRecurrence"
          }
        },
        "created": {
          "title": "Created",
          "required": true,
          "type": "string",
          "format": "date-time"
        },
        "updated": {
          "title": "Updated",
          "type": "string",
          "format": "date-time"
        },
        "alarms": {
          "title": "Alarms",
          "type": "object",
          "items": {
            "$ref": "IncidentAlarm"
          }
        },
        "history": {
          "title": "History",
          "type": "object",
          "items": {
            "$ref": "IncidentHistory"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "IncidentComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "IncidentCharacteristic"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "IncidentContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "IncidentItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "IncidentFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "IncidentUrl"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "IncidentAccount"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "IncidentIncident"
          }
        },
        "uuid": {
          "title": "Uuid",
          "type": "string",
          "format": "uuid"
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "IncidentCustomer"
          }
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "IncidentProject"
          }
        },
        "foundIn": {
          "title": "Found In",
          "type": "String",
          "$ref": "ProjectVersionRelation/uuid"
        },
        "fixedIn": {
          "title": "Fixed In",
          "type": "String",
          "$ref": "ProjectVersionRelation/uuid"
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "IncidentOpportunity"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "IncidentToDo"
          }
        },
        "toDoRelations": {
          "title": "To Do Relations",
          "type": "array",
          "items": {
            "$ref": "ToDoRelation/uuid"
          }
        }
      }
    },
    "IncidentAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentAlarm": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "type": "string"
        },
        "isEvent": {
          "title": "Is Event",
          "required": true,
          "type": "boolean"
        },
        "eventRecipient": {
          "title": "Event Recipient",
          "type": "string"
        },
        "isMessage": {
          "title": "Is Message",
          "required": true,
          "type": "boolean"
        },
        "messageRecipient": {
          "title": "Message Recipient",
          "type": "string"
        },
        "offset": {
          "title": "Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "qualifier": {
          "title": "Qualifier",
          "type": "string"
        },
        "time": {
          "title": "Time",
          "type": "string",
          "format": "date-time"
        },
        "trigger": {
          "title": "Trigger",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "IncidentCategory": {
      "properties": {
        "description": {
          "title": "Description",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "order": {
          "title": "Order",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "emailProfile": {
          "title": "Email Profile",
          "type": "String",
          "$ref": "IncidentEmailProfile/name"
        }
      }
    },
    "IncidentCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "IncidentComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "isPublic": {
          "title": "Is Public",
          "type": "boolean"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "IncidentContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentEmailProfile": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "from": {
          "title": "From",
          "type": "string"
        },
        "replyTo": {
          "title": "Reply To",
          "type": "string"
        },
        "to": {
          "title": "To",
          "type": "string"
        },
        "cc": {
          "title": "Cc",
          "type": "string"
        },
        "bcc": {
          "title": "Bcc",
          "type": "string"
        },
        "subject": {
          "title": "Subject",
          "type": "string"
        },
        "body": {
          "title": "Body",
          "type": "string"
        }
      }
    },
    "IncidentFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentHistory": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "required": true,
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "required": true,
          "type": "string"
        }
      }
    },
    "IncidentIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "category": {
          "title": "Category",
          "type": "String",
          "$ref": "IncidentCategory/name"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "severity": {
          "title": "Severity",
          "type": "String",
          "$ref": "IncidentSeverity/name"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "resolution": {
          "title": "Resolution",
          "type": "String",
          "$ref": "IncidentResolution/name"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "updated": {
          "title": "Updated",
          "type": "string",
          "format": "date-time"
        },
        "priorityOrder": {
          "title": "Priority Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "statusOrder": {
          "title": "Status Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "IncidentListItemCharacteristic"
          }
        },
        "project": {
          "title": "Project",
          "type": "String",
          "$ref": "ProjectRelation/number"
        },
        "foundIn": {
          "title": "Found In",
          "type": "String",
          "$ref": "ProjectVersion/uuid"
        },
        "fixedIn": {
          "title": "Fixed In",
          "type": "String",
          "$ref": "ProjectVersion/uuid"
        }
      }
    },
    "IncidentListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "IncidentOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentRecurrence": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "period": {
          "title": "Period",
          "description": "With recur_freq, how often this event recurs. Values are \"m\" for every minute, \"H\" for every hour, \"D\" for daily, \"W\" for weekly, \"M\" for monthly, \"Y\" for yearly, and \"C\" for customized or complex.",
          "required": true,
          "type": "string"
        },
        "frequency": {
          "title": "Frequency",
          "description": "With recur_period, how often this event recurs. Values are integers counts of recur_periods. For example, if recur_freq = 2 and recur_period = w then the event recurs every 2 weeks.",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "startDate": {
          "title": "Start Date",
          "description": "The first date/time when the event should occur.",
          "type": "string",
          "format": "date-time"
        },
        "endDate": {
          "title": "End Date",
          "description": "The last date/time when the event should occur. NULL means there is no end date/time and the event should recur forever.",
          "type": "string",
          "format": "date-time"
        },
        "maximum": {
          "title": "Maximum",
          "description": "The maximum number of recurrence events to create at one time. If this is NULL then when new events are created, a system-wide default will limit the number.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "IncidentRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "updated": {
          "title": "Updated",
          "type": "string",
          "format": "date-time"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        },
        "project": {
          "title": "Project",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "IncidentResolution": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "order": {
          "title": "Order",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "IncidentSeverity": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "order": {
          "title": "Order",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "IncidentToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "IncidentUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InventoryAdjustment": {
      "properties": {
        "itemSite": {
          "title": "Item Site",
          "description": "UUID of itemSite",
          "type": "string",
          "$ref": "ItemSite/uuid",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number",
          "required": true
        },
        "options": {
          "title": "Options",
          "type": "object",
          "$ref": "InventoryAdjustmentOptions"
        }
      }
    },
    "InventoryAdjustmentOptions": {
      "properties": {
        "detail": {
          "title": "Detail",
          "description": "Distribution Detail",
          "type": "object",
          "items": {
            "$ref": "InventoryAdjustmentOptionsDetails"
          }
        },
        "asOf": {
          "title": "As Of",
          "description": "Transaction Timestamp, default to now()",
          "type": "string",
          "format": "date-time"
        },
        "docNumber": {
          "title": "Document Number",
          "description": "Document Number",
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "description": "Notes",
          "type": "string"
        },
        "value": {
          "title": "Value",
          "description": "Value",
          "type": "string"
        }
      }
    },
    "InventoryAdjustmentOptionsDetails": {
      "properties": {
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number"
        },
        "location": {
          "title": "Location",
          "description": "UUID of location",
          "type": "string"
        },
        "trace": {
          "title": "Trace",
          "description": "Trace (Lot or Serial) Number",
          "type": "string"
        },
        "expiration": {
          "title": "Expiration",
          "description": "Perishable expiration date",
          "type": "string",
          "format": "date"
        },
        "warranty": {
          "title": "Warranty",
          "description": "Warranty expire date",
          "type": "string",
          "format": "date"
        }
      }
    },
    "InventoryIssueToShipping": {
      "properties": {
        "orderLines": {
          "title": "OrderLines",
          "type": "object",
          "$ref": "InventoryIssueToShippingOrderLine"
        }
      }
    },
    "InventoryIssueToShippingOptions": {
      "properties": {
        "detail": {
          "title": "Detail",
          "description": "Distribution Detail",
          "type": "object",
          "items": {
            "$ref": "InventoryIssueToShippingOptionsDetails"
          }
        },
        "asOf": {
          "title": "As Of",
          "description": "Transaction Timestamp, default to now()",
          "type": "string",
          "format": "date-time"
        },
        "expressCheckout": {
          "title": "Express Checkout",
          "description": "Ship, Select for Billing, Invoice",
          "type": "Boolean"
        }
      }
    },
    "InventoryIssueToShippingOptionsDetails": {
      "properties": {
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number"
        },
        "location": {
          "title": "Location",
          "description": "UUID of location",
          "type": "string"
        },
        "trace": {
          "title": "Trace",
          "description": "Trace (Lot or Serial) Number",
          "type": "string"
        }
      }
    },
    "InventoryIssueToShippingOrderLine": {
      "properties": {
        "orderLine": {
          "title": "Order Line",
          "description": "UUID of order document line item",
          "type": "string",
          "$ref": "OrderLine/uuid",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number",
          "required": true
        },
        "options": {
          "title": "Options",
          "type": "object",
          "$ref": "InventoryIssueToShippingOptions"
        }
      }
    },
    "InventoryPostReceipt": {
      "properties": {
        "receiptLines": {
          "title": "ReceiptLines",
          "type": "object",
          "$ref": "InventoryPostReceiptLine"
        }
      }
    },
    "InventoryPostReceiptLine": {
      "properties": {
        "receiptLine": {
          "title": "Receipt Line",
          "description": "UUID of receipt line",
          "type": "string",
          "$ref": "OrderLine/uuid",
          "required": true
        }
      }
    },
    "InventoryRecallShipment": {
      "properties": {
        "orderLine": {
          "title": "Shipment",
          "description": "Number of shipment",
          "type": "string",
          "$ref": "Shipment/number",
          "required": true
        }
      }
    },
    "InventoryReceipt": {
      "properties": {
        "orderLines": {
          "title": "OrderLines",
          "type": "object",
          "$ref": "InventoryReceiptOrderLine"
        }
      }
    },
    "InventoryReceiptOptions": {
      "properties": {
        "detail": {
          "title": "Detail",
          "description": "Distribution Detail",
          "type": "object",
          "items": {
            "$ref": "InventoryReceiptOptionsDetails"
          }
        },
        "asOf": {
          "title": "As Of",
          "description": "Transaction Timestamp, default to now()",
          "type": "string",
          "format": "date-time"
        },
        "post": {
          "title": "Post",
          "description": "Post transaction immediatley",
          "type": "boolean"
        }
      }
    },
    "InventoryReceiptOptionsDetails": {
      "properties": {
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number"
        },
        "location": {
          "title": "Location",
          "description": "UUID of location",
          "type": "string"
        },
        "trace": {
          "title": "Trace",
          "description": "Trace (Lot or Serial) Number",
          "type": "string"
        },
        "expiration": {
          "title": "Expiration",
          "description": "Perishable expiration date",
          "type": "string",
          "format": "date"
        },
        "warranty": {
          "title": "Warranty",
          "description": "Warranty expire date",
          "type": "string",
          "format": "date"
        }
      }
    },
    "InventoryReceiptOrderLine": {
      "properties": {
        "orderLine": {
          "title": "Order Line",
          "description": "UUID of order document line item",
          "type": "string",
          "$ref": "OrderLine/uuid",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number",
          "required": true
        },
        "options": {
          "title": "Options",
          "type": "object",
          "$ref": "InventoryReceiptOptions"
        }
      }
    },
    "InventoryReturnFromShipping": {
      "properties": {
        "orderLine": {
          "title": "OrderLine",
          "description": "UUID of order document line item",
          "type": "string",
          "$ref": "OrderLine/uuid",
          "required": true
        }
      }
    },
    "InventoryShipShipment": {
      "properties": {
        "shipment": {
          "title": "Shipment",
          "description": "Number of shipment",
          "type": "string",
          "$ref": "Shipment/number",
          "required": true
        },
        "shipDate": {
          "title": "Ship Date",
          "description": "Ship Date",
          "type": "date"
        },
        "approveForBilling": {
          "title": "Approve for Billing",
          "type": "boolean"
        },
        "createInvoice": {
          "title": "Create Invoice for Shipment",
          "type": "boolean"
        }
      }
    },
    "Invoice": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "invoiceDate": {
          "title": "Invoice Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "discountDate": {
          "title": "Discount Date",
          "type": "string",
          "format": "date"
        },
        "isPrinted": {
          "title": "Is Printed",
          "required": true,
          "type": "boolean"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "isVoid": {
          "title": "Is Void",
          "required": true,
          "type": "boolean"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "BillingCustomer",
          "required": true
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoAddress1": {
          "title": "Billto Address1",
          "type": "string"
        },
        "billtoAddress2": {
          "title": "Billto Address2",
          "type": "string"
        },
        "billtoAddress3": {
          "title": "Billto Address3",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoPostalCode": {
          "title": "Billto Postal Code",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "billtoPhone": {
          "title": "Billto Phone",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "terms": {
          "title": "Terms",
          "type": "object",
          "$ref": "Terms"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "commission": {
          "title": "Commission",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "saleType": {
          "title": "Sale Type",
          "type": "String",
          "$ref": "SaleType/code"
        },
        "customerPurchaseOrderNumber": {
          "title": "Customer Purchase Order Number",
          "type": "string"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "miscCharge": {
          "title": "Misc Charge",
          "type": "number",
          "format": "float"
        },
        "recurringInvoice": {
          "title": "Recurring Invoice",
          "type": "String",
          "$ref": "InvoiceRelation/number"
        },
        "allocatedCredit": {
          "title": "Allocated Credit",
          "type": "number",
          "format": "float"
        },
        "outstandingCredit": {
          "title": "Outstanding Credit",
          "type": "number",
          "format": "float"
        },
        "subtotal": {
          "title": "Subtotal",
          "type": "number",
          "format": "float"
        },
        "taxTotal": {
          "title": "Tax Total",
          "type": "number",
          "format": "float"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "balance": {
          "title": "Balance",
          "type": "number",
          "format": "float"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "InvoiceCharacteristic"
          }
        },
        "lineItems": {
          "title": "Line Items",
          "type": "object",
          "items": {
            "$ref": "InvoiceLine"
          }
        },
        "taxAdjustments": {
          "title": "Tax Adjustments",
          "type": "object",
          "items": {
            "$ref": "InvoiceTax"
          }
        },
        "allocations": {
          "title": "Allocations",
          "type": "object",
          "items": {
            "$ref": "InvoiceAllocation"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "InvoiceContact"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "InvoiceAccount"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "InvoiceCustomer"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "InvoiceFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "InvoiceUrl"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "InvoiceItem"
          }
        },
        "crmaccountUsers": {
          "title": "Crmaccount Users",
          "type": "array",
          "items": {
            "$ref": "ShareUsers/username"
          }
        },
        "project": {
          "title": "Project",
          "type": "String",
          "$ref": "ProjectRelation/number"
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "InvoiceProject"
          }
        },
        "authorizedCredit": {
          "title": "Authorized Credit",
          "type": "number",
          "format": "float"
        },
        "orderNumber": {
          "title": "Order Number",
          "type": "string"
        },
        "orderDate": {
          "title": "Order Date",
          "type": "string",
          "format": "date"
        },
        "salesOrders": {
          "title": "Sales Orders",
          "type": "object",
          "items": {
            "$ref": "InvoiceSalesOrder"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "InvoiceIncident"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "InvoiceOpportunity"
          }
        }
      }
    },
    "InvoiceAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceAllocation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        }
      }
    },
    "InvoiceCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "InvoiceContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceLine": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "lineNumber": {
          "title": "Line Number",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation",
          "required": true
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation",
          "required": true
        },
        "customerPartNumber": {
          "title": "Customer Part Number",
          "type": "string"
        },
        "isMiscellaneous": {
          "title": "Is Miscellaneous",
          "type": "boolean"
        },
        "itemNumber": {
          "title": "Item Number",
          "type": "string"
        },
        "itemDescription": {
          "title": "Item Description",
          "type": "string"
        },
        "quantity": {
          "title": "Quantity",
          "type": "number",
          "format": "float"
        },
        "quantityUnit": {
          "title": "Quantity Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "quantityUnitRatio": {
          "title": "Quantity Unit Ratio",
          "type": "number",
          "format": "float"
        },
        "billed": {
          "title": "Billed",
          "type": "number",
          "format": "float"
        },
        "customerPrice": {
          "title": "Customer Price",
          "type": "number",
          "format": "float"
        },
        "price": {
          "title": "Price",
          "type": "number",
          "format": "float"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "priceUnitRatio": {
          "title": "Price Unit Ratio",
          "type": "number",
          "format": "float"
        },
        "extendedPrice": {
          "title": "Extended Price",
          "type": "number",
          "format": "float"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "taxTotal": {
          "title": "Tax Total",
          "type": "number",
          "format": "float"
        },
        "taxes": {
          "title": "Taxes",
          "type": "object",
          "items": {
            "$ref": "InvoiceLineTax"
          }
        },
        "salesCategory": {
          "title": "Sales Category",
          "type": "String",
          "$ref": "SalesCategory/name"
        }
      }
    },
    "InvoiceLineTax": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "taxCode": {
          "title": "Tax Code",
          "type": "String",
          "$ref": "TaxCode/code",
          "required": true
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        }
      }
    },
    "InvoiceListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "invoiceDate": {
          "title": "Invoice Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "isPrinted": {
          "title": "Is Printed",
          "required": true,
          "type": "boolean"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "isVoid": {
          "title": "Is Void",
          "required": true,
          "type": "boolean"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "BillingCustomer",
          "required": true
        },
        "crmaccountUsers": {
          "title": "Crmaccount Users",
          "type": "array",
          "items": {
            "$ref": "ShareUsers/username"
          }
        },
        "orderNumber": {
          "title": "Order Number",
          "type": "string"
        }
      }
    },
    "InvoiceOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "invoiceDate": {
          "title": "Invoice Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "isVoid": {
          "title": "Is Void",
          "required": true,
          "type": "boolean"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation",
          "required": true
        }
      }
    },
    "InvoiceSalesOrder": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "salesOrder": {
          "title": "Sales Order",
          "type": "object",
          "$ref": "SalesOrderRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "InvoiceTax": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "taxCode": {
          "title": "Tax Code",
          "type": "String",
          "$ref": "TaxCode/code",
          "required": true
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "basis": {
          "title": "Basis",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "percent": {
          "title": "Percent",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "taxRateAmount": {
          "title": "Tax Rate Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "documentDate": {
          "title": "Document Date",
          "required": true,
          "type": "string",
          "format": "date"
        }
      }
    },
    "InvoiceUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "Item": {
      "properties": {
        "number": {
          "title": "Number",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "description1": {
          "title": "Description1",
          "required": true,
          "type": "string"
        },
        "description2": {
          "title": "Description2",
          "required": true,
          "type": "string"
        },
        "itemType": {
          "title": "Item Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "classCode": {
          "title": "Class Code",
          "type": "String",
          "$ref": "ClassCode/code",
          "required": true
        },
        "inventoryUnit": {
          "title": "Inventory Unit",
          "type": "String",
          "$ref": "Unit/name",
          "required": true
        },
        "isFractional": {
          "title": "Is Fractional",
          "required": true,
          "type": "boolean"
        },
        "isConfigured": {
          "title": "Is Configured",
          "type": "boolean"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "extendedDescription": {
          "title": "Extended Description",
          "type": "string"
        },
        "isSold": {
          "title": "Is Sold",
          "required": true,
          "type": "boolean"
        },
        "productCategory": {
          "title": "Product Category",
          "type": "String",
          "$ref": "ProductCategory/code"
        },
        "freightClass": {
          "title": "Freight Class",
          "type": "String",
          "$ref": "FreightClass/code"
        },
        "barcode": {
          "title": "Barcode",
          "type": "string"
        },
        "listPrice": {
          "title": "List Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "wholesalePrice": {
          "title": "Wholesale Price",
          "description": "List cost for item.  Basis for markup pricing.",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name",
          "required": true
        },
        "isExclusive": {
          "title": "Is Exclusive",
          "required": true,
          "type": "boolean"
        },
        "productWeight": {
          "title": "Product Weight",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "packageWeight": {
          "title": "Package Weight",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "aliases": {
          "title": "Aliases",
          "type": "object",
          "items": {
            "$ref": "ItemAlias"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "ItemComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ItemCharacteristic"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "ContactAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "ItemContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "ItemItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "ItemFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "ItemUrl"
          }
        },
        "itemSites": {
          "title": "Item Sites",
          "type": "object",
          "items": {
            "$ref": "ItemItemSiteRelation"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "ItemCustomer"
          }
        },
        "projectExpenseMethod": {
          "title": "Project Expense Method",
          "type": "string"
        },
        "projectExpenseCategory": {
          "title": "Project Expense Category",
          "type": "object",
          "$ref": "ExpenseCategory"
        },
        "projectExpenseLedgerAccount": {
          "title": "Project Expense Ledger Account",
          "type": "object",
          "$ref": "LedgerAccountRelation"
        }
      }
    },
    "ItemAlias": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "aliasNumber": {
          "title": "Alias Number",
          "required": true,
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "useDescription": {
          "title": "Use Description",
          "required": true,
          "type": "boolean"
        },
        "description1": {
          "title": "Description1",
          "type": "string"
        },
        "description2": {
          "title": "Description2",
          "type": "string"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        }
      }
    },
    "ItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        },
        "isDefault": {
          "title": "Is Default",
          "required": true,
          "type": "boolean"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "ItemComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "ItemContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ItemCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ItemFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ItemItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ItemItemSiteRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "controlMethod": {
          "title": "Control Method",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        }
      }
    },
    "ItemListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "description1": {
          "title": "Description1",
          "required": true,
          "type": "string"
        },
        "description2": {
          "title": "Description2",
          "required": true,
          "type": "string"
        },
        "itemType": {
          "title": "Item Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "classCode": {
          "title": "Class Code",
          "type": "String",
          "$ref": "ClassCode/code"
        },
        "inventoryUnit": {
          "title": "Inventory Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "isFractional": {
          "title": "Is Fractional",
          "required": true,
          "type": "boolean"
        },
        "isSold": {
          "title": "Is Sold",
          "required": true,
          "type": "boolean"
        },
        "productCategory": {
          "title": "Product Category",
          "type": "String",
          "$ref": "ProductCategory/code"
        },
        "barcode": {
          "title": "Barcode",
          "type": "string"
        },
        "listPrice": {
          "title": "List Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ItemListItemCharacteristic"
          }
        },
        "projectExpenseMethod": {
          "title": "Project Expense Method",
          "type": "string"
        }
      }
    },
    "ItemListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        },
        "isDefault": {
          "title": "Is Default",
          "required": true,
          "type": "boolean"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "ItemPrice": {
      "properties": {
        "attributes": {
          "title": "Service request attributes",
          "description": "An array of attributes needed to get a price quote.",
          "type": "array",
          "items": [
            {
              "title": "Customer Id Key",
              "description": "The Customer Number natural key",
              "type": "string",
              "$ref": "Customer/number",
              "required": true
            },
            {
              "title": "Item Id Key",
              "description": "The Item Number natural key",
              "type": "string",
              "$ref": "Item/number",
              "required": true
            },
            {
              "title": "Quantity",
              "description": "Quantity",
              "type": "number",
              "required": true
            },
            {
              "title": "Options",
              "type": "object",
              "$ref": "ItemPriceOptions"
            }
          ],
          "minItems": 3,
          "maxItems": 4,
          "required": true
        }
      }
    },
    "ItemPriceOptions": {
      "properties": {
        "asOf": {
          "title": "As Of",
          "description": "Transaction Timestamp, default to now()",
          "type": "string",
          "format": "date-time"
        },
        "shiptoId": {
          "title": "Ship To Id Key",
          "description": "The Ship To Number natural key",
          "type": "string",
          "$ref": "CustomerShipto/number",
          "required": true
        },
        "quantityUnitId": {
          "title": "Quantity Unit Id",
          "description": "The UOM Id for the quantity value.",
          "type": "number",
          "required": true
        },
        "priceUnitId": {
          "title": "Price Unit Id",
          "description": "The UOM Id for the price value.",
          "type": "number",
          "required": true
        },
        "currencyId": {
          "title": "Currency Id",
          "description": "The Currency Id for the price quote.",
          "type": "number",
          "required": true
        },
        "effective": {
          "title": "Effective Date",
          "description": "Transaction Timestamp, default to now()",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "ItemRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "description1": {
          "title": "Description1",
          "required": true,
          "type": "string"
        },
        "description2": {
          "title": "Description2",
          "required": true,
          "type": "string"
        },
        "itemType": {
          "title": "Item Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "inventoryUnit": {
          "title": "Inventory Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "isFractional": {
          "title": "Is Fractional",
          "required": true,
          "type": "boolean"
        },
        "classCode": {
          "title": "Class Code",
          "type": "String",
          "$ref": "ClassCode/code"
        },
        "isSold": {
          "title": "Is Sold",
          "required": true,
          "type": "boolean"
        },
        "isConfigured": {
          "title": "Is Configured",
          "type": "boolean"
        },
        "freightClass": {
          "title": "Freight Class",
          "type": "String",
          "$ref": "FreightClass/code"
        },
        "barcode": {
          "title": "Barcode",
          "type": "string"
        },
        "listPrice": {
          "title": "List Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "wholesalePrice": {
          "title": "Wholesale Price",
          "description": "List cost for item.  Basis for markup pricing.",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "productWeight": {
          "title": "Product Weight",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "packageWeight": {
          "title": "Package Weight",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "aliases": {
          "title": "Aliases",
          "type": "object",
          "items": {
            "$ref": "ItemRelationAlias"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ItemRelationCharacteristic"
          }
        },
        "projectExpenseMethod": {
          "title": "Project Expense Method",
          "type": "string"
        }
      }
    },
    "ItemRelationAlias": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "aliasNumber": {
          "title": "Alias Number",
          "required": true,
          "type": "string"
        }
      }
    },
    "ItemRelationCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        },
        "isDefault": {
          "title": "Is Default",
          "required": true,
          "type": "boolean"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "ItemSite": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation",
          "required": true
        },
        "site": {
          "title": "Site",
          "type": "String",
          "$ref": "SiteRelation/code",
          "required": true
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "isSold": {
          "title": "Is Sold",
          "type": "boolean"
        },
        "soldRanking": {
          "title": "Sold Ranking",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "plannerCode": {
          "title": "Planner Code",
          "type": "String",
          "$ref": "PlannerCode/code",
          "required": true
        },
        "costCategory": {
          "title": "Cost Category",
          "type": "String",
          "$ref": "CostCategory/code",
          "required": true
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "ItemSiteComment"
          }
        },
        "quantityOnHand": {
          "title": "Quantity On Hand",
          "type": "number",
          "format": "float"
        }
      }
    },
    "ItemSiteComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "ItemSiteListItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "isSold": {
          "title": "Is Sold",
          "required": true,
          "type": "boolean"
        },
        "plannerCode": {
          "title": "Planner Code",
          "type": "String",
          "$ref": "PlannerCode/code"
        },
        "costCategory": {
          "title": "Cost Category",
          "type": "String",
          "$ref": "CostCategory/code"
        }
      }
    },
    "ItemSiteListItemOptions": {
      "properties": {
        "query": {
          "title": "query",
          "description": "The query to perform.",
          "type": "array",
          "items": [
            {
              "title": "column",
              "type": "object"
            }
          ],
          "minItems": 1
        },
        "orderby": {
          "title": "Order By",
          "description": "The query order by.",
          "type": "array",
          "items": [
            {
              "title": "column",
              "type": "object"
            }
          ]
        },
        "rowlimit": {
          "title": "Row Limit",
          "description": "The query for paged results.",
          "type": "integer"
        },
        "maxresults": {
          "title": "Max Results",
          "description": "The query limit for total results.",
          "type": "integer"
        },
        "pagetoken": {
          "title": "Page Token",
          "description": "The query offset page token.",
          "type": "integer"
        },
        "count": {
          "title": "Count",
          "description": "Set to true to return only the count of results for this query.",
          "type": "boolean"
        }
      }
    },
    "ItemSiteListItemQuery": {
      "properties": {
        "attributes": {
          "title": "ItemSiteListItem Service request attributes",
          "description": "An array of attributes needed to perform a ItemSiteListItem query.",
          "type": "array",
          "items": [
            {
              "title": "Options",
              "type": "object",
              "$ref": "ItemSiteListItemOptions"
            }
          ],
          "minItems": 1,
          "maxItems": 1,
          "required": true
        }
      }
    },
    "ItemSiteRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "isSold": {
          "title": "Is Sold",
          "type": "boolean"
        },
        "number": {
          "title": "Number",
          "type": "string"
        },
        "barcode": {
          "title": "Barcode",
          "type": "string"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation"
        },
        "costCategory": {
          "title": "Cost Category",
          "type": "String",
          "$ref": "CostCategory/code"
        },
        "plannerCode": {
          "title": "Planner Code",
          "type": "String",
          "$ref": "PlannerCode/code"
        },
        "unitCost": {
          "title": "Unit Cost",
          "type": "number",
          "format": "float"
        }
      }
    },
    "ItemUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "Language": {
      "properties": {
        "name": {
          "title": "Name",
          "required": true,
          "isKey": true,
          "description": "Name of a human language, taken from the ISO 639-2 documentation",
          "type": "string"
        },
        "abbreviationShort": {
          "title": "Abbreviation Short",
          "description": "ISO 639-1 code for language",
          "type": "string"
        },
        "abbreviationLong": {
          "title": "Abbreviation Long",
          "description": "ISO 639-2 code for language. Where there is a choice between bibliographic (B) and terminology (T) usage, this value is the T code",
          "type": "string"
        }
      }
    },
    "LedgerAccountRelation": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "accountType": {
          "title": "Account Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        }
      }
    },
    "Locale": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "language": {
          "title": "Language",
          "type": "String",
          "$ref": "Language/name"
        },
        "country": {
          "title": "Country",
          "type": "String",
          "$ref": "Country/abbreviation"
        },
        "errorColor": {
          "title": "Error Color",
          "required": true,
          "description": "Color to use to mark data that require immediate attention.",
          "type": "string"
        },
        "warningColor": {
          "title": "Warning Color",
          "required": true,
          "description": "Color to use to mark data that require attention soon.",
          "type": "string"
        },
        "emphasisColor": {
          "title": "Emphasis Color",
          "required": true,
          "description": "Color to use to mark data that need to stand out but are not in error.",
          "type": "string"
        },
        "altEmphasisColor": {
          "title": "Alt Emphasis Color",
          "required": true,
          "description": "Color to use to mark data that need to stand out and be differentiated from other emphasized data.",
          "type": "string"
        },
        "expiredColor": {
          "title": "Expired Color",
          "required": true,
          "description": "Color to use to mark data that are no longer current.",
          "type": "string"
        },
        "futureColor": {
          "title": "Future Color",
          "required": true,
          "description": "Color to use to mark data that will not be effective until some point in the future.",
          "type": "string"
        },
        "currencyScale": {
          "title": "Currency Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Currency values.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "salesPriceScale": {
          "title": "Sales Price Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Sales Prices.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "purchasePriceScale": {
          "title": "Purchase Price Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Purchase Prices.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "extendedPriceScale": {
          "title": "Extended Price Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Extended Prices.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "costScale": {
          "title": "Cost Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Costs.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "quantityScale": {
          "title": "Quantity Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Quantities.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "quantityPerScale": {
          "title": "Quantity Per Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying Quantities Per.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "unitRatioScale": {
          "title": "Unit Ratio Scale",
          "required": true,
          "description": "Number of decimal places to show when displaying UOM Ratios.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "percentScale": {
          "title": "Percent Scale",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "weightScale": {
          "title": "Weight Scale",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "hoursScale": {
          "title": "Hours Scale",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "ManufacturingIssueMaterial": {
      "properties": {
        "orderLines": {
          "title": "OrderLines",
          "type": "object",
          "$ref": "ManufacturingIssueMaterialOrderLine"
        }
      }
    },
    "ManufacturingIssueMaterialOptions": {
      "properties": {
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number"
        },
        "location": {
          "title": "Location",
          "description": "UUID of location",
          "type": "string"
        },
        "trace": {
          "title": "Trace",
          "description": "Trace (Lot or Serial) Number",
          "type": "string"
        }
      }
    },
    "ManufacturingIssueMaterialOrderLine": {
      "properties": {
        "orderLine": {
          "title": "Order Line",
          "description": "UUID of order document line item",
          "type": "string",
          "$ref": "OrderLine/uuid",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number",
          "required": true
        },
        "options": {
          "title": "Options",
          "type": "object",
          "$ref": "ManufacturingIssueMaterialOptions"
        }
      }
    },
    "ManufacturingPostProduction": {
      "properties": {
        "order": {
          "title": "Work Order",
          "description": "Work Order Id",
          "type": "String",
          "$ref": "Order/uuid",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number",
          "required": true
        },
        "options": {
          "title": "Options",
          "type": "object",
          "$ref": "ManufacturingPostProductionOptions"
        }
      }
    },
    "ManufacturingPostProductionOptions": {
      "properties": {
        "detail": {
          "title": "Detail",
          "description": "Distribution Detail",
          "type": "object",
          "items": {
            "$ref": "ManufacturingPostProductionOptionsDetails"
          }
        },
        "asOf": {
          "title": "As Of",
          "description": "Transaction Timestamp, default to now()",
          "type": "string",
          "format": "date-time"
        },
        "backflush": {
          "title": "Backflush Materials",
          "description": "Backflush Materials checkbox",
          "type": "Boolean"
        },
        "close": {
          "title": "Close Work Order",
          "description": "Close Work Order checkbox",
          "type": "Boolean"
        }
      }
    },
    "ManufacturingPostProductionOptionsDetails": {
      "properties": {
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number"
        },
        "location": {
          "title": "Location",
          "description": "UUID of location",
          "type": "string"
        },
        "trace": {
          "title": "Trace",
          "description": "Trace (Lot or Serial) Number",
          "type": "string"
        }
      }
    },
    "ManufacturingReturnMaterial": {
      "properties": {
        "orderLines": {
          "title": "OrderLines",
          "type": "object",
          "$ref": "ManufacturingReturnMaterialOrderLine"
        }
      }
    },
    "ManufacturingReturnMaterialOptions": {
      "properties": {
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "number"
        },
        "location": {
          "title": "Location",
          "description": "UUID of location",
          "type": "string"
        },
        "trace": {
          "title": "Trace",
          "description": "Trace (Lot or Serial) Number",
          "type": "string"
        }
      }
    },
    "ManufacturingReturnMaterialOrderLine": {
      "properties": {
        "orderLine": {
          "title": "Order Line",
          "description": "UUID of order document line item",
          "type": "string",
          "$ref": "OrderLine/uuid",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "description": "Quantity",
          "type": "Number"
        },
        "options": {
          "title": "Options",
          "type": "object",
          "$ref": "ManufacturingReturnMaterialOptions"
        }
      }
    },
    "Opportunity": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation",
          "required": true
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "opportunityStage": {
          "title": "Opportunity Stage",
          "type": "String",
          "$ref": "OpportunityStage/name",
          "required": true
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "opportunitySource": {
          "title": "Opportunity Source",
          "type": "String",
          "$ref": "OpportunitySource/name",
          "required": true
        },
        "opportunityType": {
          "title": "Opportunity Type",
          "type": "String",
          "$ref": "OpportunityType/name",
          "required": true
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "probability": {
          "title": "Probability",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "targetClose": {
          "title": "Target Close",
          "type": "string",
          "format": "date"
        },
        "actualClose": {
          "title": "Actual Close",
          "type": "string",
          "format": "date"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "OpportunityComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "OpportunityCharacteristic"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "OpportunityContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "OpportunityItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "OpportunityFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "OpportunityUrl"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "OpportunityAccount"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "OpportunityOpportunity"
          }
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "OpportunityProject"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "OpportunityCustomer"
          }
        },
        "quoteRelations": {
          "title": "Quote Relations",
          "type": "array",
          "items": {
            "$ref": "QuoteRelation/number"
          }
        },
        "salesOrderRelations": {
          "title": "Sales Order Relations",
          "type": "array",
          "items": {
            "$ref": "SalesOrderRelation/number"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "OpportunityIncident"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "OpportunityToDo"
          }
        },
        "toDoRelations": {
          "title": "To Do Relations",
          "type": "array",
          "items": {
            "$ref": "ToDoRelation/uuid"
          }
        }
      }
    },
    "OpportunityAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "OpportunityComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "OpportunityContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "targetClose": {
          "title": "Target Close",
          "type": "string",
          "format": "date"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "actualDate": {
          "title": "Actual Date",
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "opportunityStage": {
          "title": "Opportunity Stage",
          "type": "String",
          "$ref": "OpportunityStage/name"
        },
        "opportunityType": {
          "title": "Opportunity Type",
          "type": "String",
          "$ref": "OpportunityType/name"
        },
        "opportunitySource": {
          "title": "Opportunity Source",
          "type": "String",
          "$ref": "OpportunitySource/name"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "priorityOrder": {
          "title": "Priority Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "OpportunityListItemCharacteristic"
          }
        }
      }
    },
    "OpportunityListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "OpportunityOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "opportunityStage": {
          "title": "Opportunity Stage",
          "type": "String",
          "$ref": "OpportunityStage/name"
        },
        "targetClose": {
          "title": "Target Close",
          "type": "string",
          "format": "date"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        }
      }
    },
    "OpportunitySource": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "OpportunityStage": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "deactivate": {
          "title": "Deactivate",
          "required": true,
          "type": "boolean"
        }
      }
    },
    "OpportunityToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "OpportunityType": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "OpportunityUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "PlannerCode": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        }
      }
    },
    "Priority": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "order": {
          "title": "Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "Privilege": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "type": "string"
        },
        "module": {
          "title": "Module",
          "type": "string"
        }
      }
    },
    "ProductCategory": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "Project": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "projectType": {
          "title": "Project Type",
          "type": "String",
          "$ref": "ProjectType/code"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "status": {
          "title": "Status",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "recurrences": {
          "title": "Recurrences",
          "type": "object",
          "items": {
            "$ref": "ProjectRecurrence"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "ProjectComment"
          }
        },
        "tasks": {
          "title": "Tasks",
          "type": "object",
          "items": {
            "$ref": "ProjectTask"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ProjectCharacteristic"
          }
        },
        "workflow": {
          "title": "Workflow",
          "type": "object",
          "items": {
            "$ref": "ProjectWorkflow"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "ProjectAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "ProjectContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "ProjectItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "ProjectFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "ProjectUrl"
          }
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "ProjectProject"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "ProjectOpportunity"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "ProjectIncident"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "ProjectToDo"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "ProjectCustomer"
          }
        },
        "department": {
          "title": "Department",
          "type": "String",
          "$ref": "Department/number"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "percentComplete": {
          "title": "Percent Complete",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "isSpecifiedRate": {
          "title": "Is Specified Rate",
          "type": "boolean"
        },
        "billingRate": {
          "title": "Billing Rate",
          "type": "number",
          "format": "float"
        },
        "billingCurrency": {
          "title": "Billing Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "versions": {
          "title": "Versions",
          "type": "object",
          "items": {
            "$ref": "ProjectVersion"
          }
        }
      }
    },
    "ProjectAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "ProjectComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "ProjectContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectEmailProfile": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "from": {
          "title": "From",
          "type": "string"
        },
        "replyTo": {
          "title": "Reply To",
          "type": "string"
        },
        "to": {
          "title": "To",
          "type": "string"
        },
        "cc": {
          "title": "Cc",
          "type": "string"
        },
        "bcc": {
          "title": "Bcc",
          "type": "string"
        },
        "subject": {
          "title": "Subject",
          "type": "string"
        },
        "body": {
          "title": "Body",
          "type": "string"
        }
      }
    },
    "ProjectFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "projectType": {
          "title": "Project Type",
          "type": "String",
          "$ref": "ProjectType/code"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "budgetedHours": {
          "title": "Budgeted Hours",
          "type": "number",
          "format": "float"
        },
        "actualHours": {
          "title": "Actual Hours",
          "type": "number",
          "format": "float"
        },
        "balanceHours": {
          "title": "Balance Hours",
          "type": "number",
          "format": "float"
        },
        "budgetedExpenses": {
          "title": "Budgeted Expenses",
          "type": "number",
          "format": "float"
        },
        "actualExpenses": {
          "title": "Actual Expenses",
          "type": "number",
          "format": "float"
        },
        "balanceExpenses": {
          "title": "Balance Expenses",
          "type": "number",
          "format": "float"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ProjectListItemCharacteristic"
          }
        },
        "department": {
          "title": "Department",
          "type": "String",
          "$ref": "Department/number"
        },
        "priority": {
          "title": "Priority",
          "type": "object",
          "$ref": "Priority"
        },
        "percentComplete": {
          "title": "Percent Complete",
          "type": "number",
          "format": "float"
        }
      }
    },
    "ProjectListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "ProjectOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectRecurrence": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "period": {
          "title": "Period",
          "description": "With recur_freq, how often this event recurs. Values are \"m\" for every minute, \"H\" for every hour, \"D\" for daily, \"W\" for weekly, \"M\" for monthly, \"Y\" for yearly, and \"C\" for customized or complex.",
          "required": true,
          "type": "string"
        },
        "frequency": {
          "title": "Frequency",
          "description": "With recur_period, how often this event recurs. Values are integers counts of recur_periods. For example, if recur_freq = 2 and recur_period = w then the event recurs every 2 weeks.",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "startDate": {
          "title": "Start Date",
          "description": "The first date/time when the event should occur.",
          "type": "string",
          "format": "date-time"
        },
        "endDate": {
          "title": "End Date",
          "description": "The last date/time when the event should occur. NULL means there is no end date/time and the event should recur forever.",
          "type": "string",
          "format": "date-time"
        },
        "maximum": {
          "title": "Maximum",
          "description": "The maximum number of recurrence events to create at one time. If this is NULL then when new events are created, a system-wide default will limit the number.",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "ProjectRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        }
      }
    },
    "ProjectTask": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "budgetedHours": {
          "title": "Budgeted Hours",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "actualHours": {
          "title": "Actual Hours",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "budgetedExpenses": {
          "title": "Budgeted Expenses",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "actualExpenses": {
          "title": "Actual Expenses",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "ProjectTaskComment"
          }
        },
        "alarms": {
          "title": "Alarms",
          "type": "object",
          "items": {
            "$ref": "ProjectTaskAlarm"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ProjectTaskCharacteristic"
          }
        },
        "resources": {
          "title": "Resources",
          "type": "object",
          "items": {
            "$ref": "TaskResource"
          }
        },
        "projectAssignedTo": {
          "title": "Project Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "projectOwner": {
          "title": "Project Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "percentComplete": {
          "title": "Percent Complete",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "isSpecifiedRate": {
          "title": "Is Specified Rate",
          "type": "boolean"
        },
        "billingRate": {
          "title": "Billing Rate",
          "type": "number",
          "format": "float"
        },
        "billingCurrency": {
          "title": "Billing Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        }
      }
    },
    "ProjectTaskAlarm": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "type": "string"
        },
        "projectTask": {
          "title": "Project Task",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "isEvent": {
          "title": "Is Event",
          "required": true,
          "type": "boolean"
        },
        "eventRecipient": {
          "title": "Event Recipient",
          "type": "string"
        },
        "isMessage": {
          "title": "Is Message",
          "required": true,
          "type": "boolean"
        },
        "messageRecipient": {
          "title": "Message Recipient",
          "type": "string"
        },
        "offset": {
          "title": "Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "qualifier": {
          "title": "Qualifier",
          "type": "string"
        },
        "time": {
          "title": "Time",
          "type": "string",
          "format": "date-time"
        },
        "trigger": {
          "title": "Trigger",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "ProjectTaskCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "ProjectTaskComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "projectTask": {
          "title": "Project Task",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "ProjectTaskRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "status": {
          "title": "Status",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        }
      }
    },
    "ProjectToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectType": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "ProjectTypeCharacteristic"
          }
        },
        "workflow": {
          "title": "Workflow",
          "type": "object",
          "items": {
            "$ref": "ProjectTypeWorkflow"
          }
        },
        "emailProfile": {
          "title": "Email Profile",
          "type": "String",
          "$ref": "ProjectEmailProfile/name"
        }
      }
    },
    "ProjectTypeCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "ProjectTypeWorkflow": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "startSet": {
          "title": "Start Set",
          "type": "boolean"
        },
        "startOffset": {
          "title": "Start Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "dueSet": {
          "title": "Due Set",
          "type": "boolean"
        },
        "dueOffset": {
          "title": "Due Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name",
          "required": true
        },
        "sequence": {
          "title": "Sequence",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "completedParentStatus": {
          "title": "Completed Parent Status",
          "type": "string"
        },
        "deferredParentStatus": {
          "title": "Deferred Parent Status",
          "type": "string"
        },
        "completedSuccessors": {
          "title": "Completed Successors",
          "type": "string"
        },
        "deferredSuccessors": {
          "title": "Deferred Successors",
          "type": "string"
        }
      }
    },
    "ProjectUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ProjectVersion": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "version": {
          "title": "Version",
          "required": true,
          "type": "string"
        }
      }
    },
    "ProjectVersionRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "VersionProjectRelation"
        },
        "version": {
          "title": "Version",
          "required": true,
          "type": "string"
        }
      }
    },
    "ProjectWorkflow": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "required": true,
          "type": "string"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name",
          "required": true
        },
        "sequence": {
          "title": "Sequence",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "completedParentStatus": {
          "title": "Completed Parent Status",
          "type": "string"
        },
        "deferredParentStatus": {
          "title": "Deferred Parent Status",
          "type": "string"
        },
        "completedSuccessors": {
          "title": "Completed Successors",
          "type": "string"
        },
        "deferredSuccessors": {
          "title": "Deferred Successors",
          "type": "string"
        }
      }
    },
    "Prospect": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "site": {
          "title": "Site",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "description": "This CRM Account is available for new activity.",
          "type": "boolean"
        },
        "quoteRelations": {
          "title": "Quote Relations",
          "type": "array",
          "items": {
            "$ref": "QuoteRelation/number"
          }
        },
        "account": {
          "title": "Account",
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        }
      }
    },
    "ProspectRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "isActive": {
          "title": "Is Active",
          "description": "This CRM Account is available for new activity.",
          "type": "boolean"
        }
      }
    },
    "Query": {
      "properties": {
        "attributes": {
          "title": "Service request attributes",
          "description": "An array of attributes needed to perform a complex query.",
          "type": "array",
          "items": [
            {
              "title": "Resource",
              "description": "The resource to query.",
              "type": "string",
              "required": true
            },
            {
              "title": "Options",
              "type": "object",
              "$ref": "QueryOptions"
            }
          ],
          "minItems": 2,
          "maxItems": 2,
          "required": true
        }
      }
    },
    "QueryOptions": {
      "properties": {
        "query": {
          "title": "query",
          "description": "The query to perform.",
          "type": "object",
          "$ref": "QueryOptionsQuery"
        }
      }
    },
    "QueryOptionsOrderBy": {
      "properties": {
        "attribute": {
          "title": "Attribute",
          "description": "The column name used to construct the query's ORDER BY.",
          "type": "string",
          "required": true
        },
        "descending": {
          "title": "Direction",
          "description": "Set to true so the query's ORDER BY will be DESC.",
          "type": "boolean"
        }
      }
    },
    "QueryOptionsParameters": {
      "properties": {
        "attribute": {
          "title": "Attribute",
          "description": "The column name used to construct the query's WHERE clasues.",
          "type": "string",
          "required": true
        },
        "operator": {
          "title": "Operator",
          "description": "The operator used to construct the query's WHERE clasues.",
          "type": "string"
        },
        "value": {
          "title": "Value",
          "description": "The value used to construct the query's WHERE clasues.",
          "required": true
        }
      }
    },
    "QueryOptionsQuery": {
      "properties": {
        "parameters": {
          "title": "Parameters",
          "description": "The query parameters.",
          "type": "array",
          "items": [
            {
              "title": "Attribute",
              "type": "object",
              "$ref": "QueryOptionsParameters"
            }
          ],
          "minItems": 1
        },
        "orderBy": {
          "title": "Order By",
          "description": "The query order by.",
          "type": "array",
          "items": [
            {
              "title": "Attribute",
              "type": "object",
              "$ref": "QueryOptionsOrderBy"
            }
          ]
        },
        "rowlimit": {
          "title": "Row Limit",
          "description": "The query for paged results.",
          "type": "integer"
        },
        "maxresults": {
          "title": "Max Results",
          "description": "The query limit for total results.",
          "type": "integer"
        },
        "pagetoken": {
          "title": "Page Token",
          "description": "The query offset page token.",
          "type": "integer"
        },
        "count": {
          "title": "Count",
          "description": "Set to true to return only the count of results for this query.",
          "type": "boolean"
        }
      }
    },
    "Quote": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerProspectRelation",
          "required": true
        },
        "customerPurchaseOrderNumber": {
          "title": "Customer Purchase Order Number",
          "type": "string"
        },
        "quoteDate": {
          "title": "Quote Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "packDate": {
          "title": "Pack Date",
          "type": "string",
          "format": "date"
        },
        "scheduleDate": {
          "title": "Schedule Date",
          "type": "string",
          "format": "date"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code",
          "required": true
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number",
          "required": true
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "site": {
          "title": "Site",
          "type": "String",
          "$ref": "Site/code"
        },
        "saleType": {
          "title": "Sale Type",
          "type": "String",
          "$ref": "SaleType/code"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "expireDate": {
          "title": "Expire Date",
          "type": "string",
          "format": "date"
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoAddress1": {
          "title": "Billto Address1",
          "type": "string"
        },
        "billtoAddress2": {
          "title": "Billto Address2",
          "type": "string"
        },
        "billtoAddress3": {
          "title": "Billto Address3",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "billtoPostalCode": {
          "title": "Billto Postal Code",
          "type": "string"
        },
        "billtoContact": {
          "title": "Billto Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "billtoContactHonorific": {
          "title": "Billto Contact Honorific",
          "type": "string"
        },
        "billtoContactFirstName": {
          "title": "Billto Contact First Name",
          "type": "string"
        },
        "billtoContactMiddleName": {
          "title": "Billto Contact Middle Name",
          "type": "string"
        },
        "billtoContactLastName": {
          "title": "Billto Contact Last Name",
          "type": "string"
        },
        "billtoContactSuffix": {
          "title": "Billto Contact Suffix",
          "type": "string"
        },
        "billtoContactPhone": {
          "title": "Billto Contact Phone",
          "type": "string"
        },
        "billtoContactTitle": {
          "title": "Billto Contact Title",
          "type": "string"
        },
        "billtoContactFax": {
          "title": "Billto Contact Fax",
          "type": "string"
        },
        "billtoContactEmail": {
          "title": "Billto Contact Email",
          "type": "string"
        },
        "shipto": {
          "title": "Shipto",
          "type": "object",
          "$ref": "CustomerShiptoRelation"
        },
        "shiptoName": {
          "title": "Shipto Name",
          "type": "string"
        },
        "shiptoAddress1": {
          "title": "Shipto Address1",
          "type": "string"
        },
        "shiptoAddress2": {
          "title": "Shipto Address2",
          "type": "string"
        },
        "shiptoAddress3": {
          "title": "Shipto Address3",
          "type": "string"
        },
        "shiptoCity": {
          "title": "Shipto City",
          "type": "string"
        },
        "shiptoState": {
          "title": "Shipto State",
          "type": "string"
        },
        "shiptoCountry": {
          "title": "Shipto Country",
          "type": "string"
        },
        "shiptoPostalCode": {
          "title": "Shipto Postal Code",
          "type": "string"
        },
        "shiptoContact": {
          "title": "Shipto Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "shiptoContactHonorific": {
          "title": "Shipto Contact Honorific",
          "type": "string"
        },
        "shiptoContactFirstName": {
          "title": "Shipto Contact First Name",
          "type": "string"
        },
        "shiptoContactMiddleName": {
          "title": "Shipto Contact Middle Name",
          "type": "string"
        },
        "shiptoContactLastName": {
          "title": "Shipto Contact Last Name",
          "type": "string"
        },
        "shiptoContactSuffix": {
          "title": "Shipto Contact Suffix",
          "type": "string"
        },
        "shiptoContactPhone": {
          "title": "Shipto Contact Phone",
          "type": "string"
        },
        "shiptoContactTitle": {
          "title": "Shipto Contact Title",
          "type": "string"
        },
        "shiptoContactFax": {
          "title": "Shipto Contact Fax",
          "type": "string"
        },
        "shiptoContactEmail": {
          "title": "Shipto Contact Email",
          "type": "string"
        },
        "orderNotes": {
          "title": "Order Notes",
          "type": "string"
        },
        "shipNotes": {
          "title": "Ship Notes",
          "type": "string"
        },
        "fob": {
          "title": "Fob",
          "type": "string"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "calculateFreight": {
          "title": "Calculate Freight",
          "required": true,
          "type": "boolean"
        },
        "shipZone": {
          "title": "Ship Zone",
          "type": "String",
          "$ref": "ShipZone/name"
        },
        "margin": {
          "title": "Margin",
          "type": "number",
          "format": "float"
        },
        "freightWeight": {
          "title": "Freight Weight",
          "type": "number",
          "format": "float"
        },
        "subtotal": {
          "title": "Subtotal",
          "type": "number",
          "format": "float"
        },
        "taxTotal": {
          "title": "Tax Total",
          "type": "number",
          "format": "float"
        },
        "miscCharge": {
          "title": "Misc Charge",
          "type": "number",
          "format": "float"
        },
        "freight": {
          "title": "Freight",
          "type": "number",
          "format": "float"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "lineItems": {
          "title": "Line Items",
          "type": "object",
          "items": {
            "$ref": "QuoteLine"
          }
        },
        "comments": {
          "title": "Comments",
          "required": true,
          "type": "object",
          "items": {
            "$ref": "QuoteComment"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "QuoteFile"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "QuoteAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "QuoteContact"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "QuoteUrl"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "QuoteItem"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "QuoteOpportunity"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "QuoteIncident"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "QuoteToDo"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "QuoteCustomer"
          }
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "project": {
          "title": "Project",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "QuoteProject"
          }
        }
      }
    },
    "QuoteAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "QuoteContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerProspectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteLine": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "quote": {
          "title": "Quote",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "lineNumber": {
          "title": "Line Number",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation",
          "required": true
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation"
        },
        "unitCost": {
          "title": "Unit Cost",
          "type": "number",
          "format": "float"
        },
        "quantity": {
          "title": "Quantity",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "quantityUnit": {
          "title": "Quantity Unit",
          "type": "String",
          "$ref": "Unit/name",
          "required": true
        },
        "quantityUnitRatio": {
          "title": "Quantity Unit Ratio",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "basePrice": {
          "title": "Base Price",
          "type": "number",
          "format": "float"
        },
        "customerPrice": {
          "title": "Customer Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "discount": {
          "title": "Discount",
          "type": "number",
          "format": "float"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "scheduleDate": {
          "title": "Schedule Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "promiseDate": {
          "title": "Promise Date",
          "type": "string",
          "format": "date"
        },
        "markup": {
          "title": "Markup",
          "type": "number",
          "format": "float"
        },
        "listPrice": {
          "title": "List Price",
          "type": "number",
          "format": "float"
        },
        "listPriceDiscount": {
          "title": "List Price Discount",
          "type": "number",
          "format": "float"
        },
        "customerPartNumber": {
          "title": "Customer Part Number",
          "type": "string"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name",
          "required": true
        },
        "priceUnitRatio": {
          "title": "Price Unit Ratio",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "extendedPrice": {
          "title": "Extended Price",
          "type": "number",
          "format": "float"
        },
        "margin": {
          "title": "Margin",
          "type": "number",
          "format": "float"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "tax": {
          "title": "Tax",
          "type": "number",
          "format": "float"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "QuoteLineComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "QuoteLineCharacteristic"
          }
        }
      }
    },
    "QuoteLineCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "QuoteLineComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "QuoteListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerProspectRelation"
        },
        "customerPurchaseOrderNumber": {
          "title": "Customer Purchase Order Number",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "quoteDate": {
          "title": "Quote Date",
          "type": "string",
          "format": "date"
        },
        "expireDate": {
          "title": "Expire Date",
          "type": "string",
          "format": "date"
        },
        "orderNotes": {
          "title": "Order Notes",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "shiptoName": {
          "title": "Shipto Name",
          "type": "string"
        },
        "shiptoCity": {
          "title": "Shipto City",
          "type": "string"
        },
        "shiptoState": {
          "title": "Shipto State",
          "type": "string"
        },
        "shiptoCountry": {
          "title": "Shipto Country",
          "type": "string"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        }
      }
    },
    "QuoteOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "string"
        },
        "quoteDate": {
          "title": "Quote Date",
          "type": "string",
          "format": "date"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "string"
        }
      }
    },
    "QuoteToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "QuoteUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ReasonCode": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "documentType": {
          "title": "Document Type",
          "type": "string"
        }
      }
    },
    "Receivable": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "SalesCustomer",
          "required": true
        },
        "documentDate": {
          "title": "Document Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "documentType": {
          "title": "Document Type",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "documentNumber": {
          "title": "Document Number",
          "type": "string"
        },
        "orderNumber": {
          "title": "Order Number",
          "type": "string"
        },
        "reasonCode": {
          "title": "Reason Code",
          "type": "String",
          "$ref": "ReasonCode/code"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation",
          "required": true
        },
        "paid": {
          "title": "Paid",
          "type": "number",
          "format": "float"
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "taxes": {
          "title": "Taxes",
          "type": "object",
          "items": {
            "$ref": "ReceivableTax"
          }
        },
        "applications": {
          "title": "Applications",
          "type": "object",
          "items": {
            "$ref": "ReceivableApplication"
          }
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "journalNumber": {
          "title": "Journal Number",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "balance": {
          "title": "Balance",
          "type": "number",
          "format": "float"
        },
        "taxTotal": {
          "title": "Tax Total",
          "type": "number",
          "format": "float"
        }
      }
    },
    "ReceivableApplication": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "applicationType": {
          "title": "Application Type",
          "type": "string"
        },
        "documentNumber": {
          "title": "Document Number",
          "type": "string"
        },
        "applicationDate": {
          "title": "Application Date",
          "type": "string",
          "format": "date"
        },
        "distributionDate": {
          "title": "Distribution Date",
          "type": "string",
          "format": "date"
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        },
        "baseAmount": {
          "title": "Base Amount",
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        }
      }
    },
    "ReceivableListItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string"
        },
        "documentType": {
          "title": "Document Type",
          "type": "string",
          "minLength": null,
          "maxLength": null
        },
        "documentNumber": {
          "title": "Document Number",
          "type": "string"
        },
        "isPosted": {
          "title": "Is Posted",
          "type": "boolean"
        },
        "isOpen": {
          "title": "Is Open",
          "type": "boolean"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "SalesCustomer"
        },
        "documentDate": {
          "title": "Document Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "closeDate": {
          "title": "Close Date",
          "type": "string",
          "format": "date"
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        },
        "baseAmount": {
          "title": "Base Amount",
          "type": "number",
          "format": "float"
        },
        "paid": {
          "title": "Paid",
          "type": "number",
          "format": "float"
        },
        "balance": {
          "title": "Balance",
          "type": "number",
          "format": "float"
        },
        "basePaid": {
          "title": "Base Paid",
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        }
      }
    },
    "ReceivableRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation",
          "required": true
        },
        "customer": {
          "title": "Customer",
          "type": "String",
          "$ref": "CustomerRelation/number"
        },
        "isOpen": {
          "title": "Is Open",
          "type": "boolean"
        },
        "documentType": {
          "title": "Document Type",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "documentNumber": {
          "title": "Document Number",
          "type": "string"
        },
        "orderNumber": {
          "title": "Order Number",
          "type": "string"
        },
        "dueDate": {
          "title": "Due Date",
          "required": true,
          "type": "string",
          "format": "date"
        }
      }
    },
    "ReceivableTax": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "taxCode": {
          "title": "Tax Code",
          "type": "String",
          "$ref": "TaxCode/code"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "taxAmount": {
          "title": "Tax Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "basis": {
          "title": "Basis",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "percent": {
          "title": "Percent",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "documentDate": {
          "title": "Document Date",
          "required": true,
          "type": "string",
          "format": "date"
        }
      }
    },
    "RemitTo": {
      "properties": {
        "key": {
          "title": "Key",
          "isKey": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "string"
        }
      }
    },
    "Resource": {
      "properties": {
        "id": {
          "title": "Id",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "code": {
          "title": "Code",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        }
      }
    },
    "RestQuery": {
      "properties": {
        "attributes": {
          "title": "Service request attributes",
          "description": "An array of attributes needed to perform a complex query.",
          "type": "array",
          "items": [
            {
              "title": "Resource",
              "description": "The resource to query.",
              "type": "string",
              "required": true
            },
            {
              "title": "Options",
              "type": "object",
              "$ref": "RestQueryOptions"
            }
          ],
          "minItems": 2,
          "maxItems": 2,
          "required": true
        }
      }
    },
    "RestQueryOptions": {
      "properties": {
        "query": {
          "title": "query",
          "description": "The query to perform.",
          "type": "array",
          "items": [
            {
              "title": "column",
              "type": "object"
            }
          ],
          "minItems": 1
        },
        "orderby": {
          "title": "Order By",
          "description": "The query order by.",
          "type": "array",
          "items": [
            {
              "title": "column",
              "type": "object"
            }
          ]
        },
        "rowlimit": {
          "title": "Row Limit",
          "description": "The query for paged results.",
          "type": "integer"
        },
        "maxresults": {
          "title": "Max Results",
          "description": "The query limit for total results.",
          "type": "integer"
        },
        "pagetoken": {
          "title": "Page Token",
          "description": "The query offset page token.",
          "type": "integer"
        },
        "count": {
          "title": "Count",
          "description": "Set to true to return only the count of results for this query.",
          "type": "boolean"
        }
      }
    },
    "Return": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "returnDate": {
          "title": "Return Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "isVoid": {
          "title": "Is Void",
          "required": true,
          "type": "boolean"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "BillingCustomer",
          "required": true
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoAddress1": {
          "title": "Billto Address1",
          "type": "string"
        },
        "billtoAddress2": {
          "title": "Billto Address2",
          "type": "string"
        },
        "billtoAddress3": {
          "title": "Billto Address3",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoPostalCode": {
          "title": "Billto Postal Code",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "commission": {
          "title": "Commission",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "saleType": {
          "title": "Sale Type",
          "type": "String",
          "$ref": "SaleType/code"
        },
        "customerPurchaseOrderNumber": {
          "title": "Customer Purchase Order Number",
          "type": "string"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "miscCharge": {
          "title": "Misc Charge",
          "type": "number",
          "format": "float"
        },
        "lineItems": {
          "title": "Line Items",
          "type": "object",
          "items": {
            "$ref": "ReturnLine"
          }
        },
        "taxAdjustments": {
          "title": "Tax Adjustments",
          "type": "object",
          "items": {
            "$ref": "ReturnTax"
          }
        },
        "allocations": {
          "title": "Allocations",
          "type": "object",
          "items": {
            "$ref": "ReturnAllocation"
          }
        }
      }
    },
    "ReturnAllocation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        }
      }
    },
    "ReturnLine": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "lineNumber": {
          "title": "Line Number",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation",
          "required": true
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation",
          "required": true
        },
        "quantity": {
          "title": "Quantity",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "credited": {
          "title": "Credited",
          "type": "number",
          "format": "float"
        },
        "quantityUnit": {
          "title": "Quantity Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "quantityUnitRatio": {
          "title": "Quantity Unit Ratio",
          "type": "number",
          "format": "float"
        },
        "price": {
          "title": "Price",
          "type": "number",
          "format": "float"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "priceUnitRatio": {
          "title": "Price Unit Ratio",
          "type": "number",
          "format": "float"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "taxes": {
          "title": "Taxes",
          "type": "object",
          "items": {
            "$ref": "ReturnLineTax"
          }
        }
      }
    },
    "ReturnLineTax": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "taxCode": {
          "title": "Tax Code",
          "type": "String",
          "$ref": "TaxCode/code",
          "required": true
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        }
      }
    },
    "ReturnListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "returnDate": {
          "title": "Return Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "isVoid": {
          "title": "Is Void",
          "required": true,
          "type": "boolean"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "BillingCustomer",
          "required": true
        }
      }
    },
    "ReturnRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "returnDate": {
          "title": "Return Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "isPosted": {
          "title": "Is Posted",
          "required": true,
          "type": "boolean"
        },
        "isVoid": {
          "title": "Is Void",
          "required": true,
          "type": "boolean"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation",
          "required": true
        }
      }
    },
    "ReturnTax": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "taxCode": {
          "title": "Tax Code",
          "type": "String",
          "$ref": "TaxCode/code",
          "required": true
        },
        "amount": {
          "title": "Amount",
          "type": "number",
          "format": "float"
        },
        "basis": {
          "title": "Basis",
          "type": "number",
          "format": "float"
        },
        "percent": {
          "title": "Percent",
          "type": "number",
          "format": "float"
        },
        "taxRateAmount": {
          "title": "Tax Rate Amount",
          "type": "number",
          "format": "float"
        },
        "documentDate": {
          "title": "Document Date",
          "type": "string",
          "format": "date"
        }
      }
    },
    "SaleType": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "description": "User defined identifier for sale type.",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "description": "Description for sale type.",
          "type": "string"
        },
        "workflow": {
          "title": "Workflow",
          "type": "object",
          "items": {
            "$ref": "SaleTypeWorkflow"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "SaleTypeCharacteristic"
          }
        },
        "isActive": {
          "title": "Is Active",
          "description": "Boolean to deactivate a sale type.",
          "required": true,
          "type": "boolean"
        },
        "emailProfile": {
          "title": "Email Profile",
          "type": "String",
          "$ref": "SalesEmailProfile/name"
        },
        "defaultHoldType": {
          "title": "Default Hold Type",
          "type": "string"
        }
      }
    },
    "SaleTypeCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "SaleTypeWorkflow": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string"
        },
        "startSet": {
          "title": "Start Set",
          "type": "boolean"
        },
        "startOffset": {
          "title": "Start Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "dueSet": {
          "title": "Due Set",
          "type": "boolean"
        },
        "dueOffset": {
          "title": "Due Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name",
          "required": true
        },
        "sequence": {
          "title": "Sequence",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "workflowType": {
          "title": "Workflow Type",
          "type": "string"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "completedParentStatus": {
          "title": "Completed Parent Status",
          "type": "string"
        },
        "deferredParentStatus": {
          "title": "Deferred Parent Status",
          "type": "string"
        },
        "completedSuccessors": {
          "title": "Completed Successors",
          "type": "string"
        },
        "deferredSuccessors": {
          "title": "Deferred Successors",
          "type": "string"
        }
      }
    },
    "SalesCategory": {
      "properties": {
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "name": {
          "title": "Name",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "required": true,
          "type": "string"
        }
      }
    },
    "SalesCustomer": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "customerType": {
          "title": "Customer Type",
          "type": "String",
          "$ref": "CustomerType/code",
          "required": true
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "billingContact": {
          "title": "Billing Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "correspondenceContact": {
          "title": "Correspondence Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number",
          "required": true
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name",
          "required": true
        },
        "isFreeFormShipto": {
          "title": "Is Free Form Shipto",
          "required": true,
          "type": "boolean"
        },
        "isFreeFormBillto": {
          "title": "Is Free Form Billto",
          "required": true,
          "type": "boolean"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code",
          "required": true
        },
        "discount": {
          "title": "Discount",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "creditStatus": {
          "title": "Credit Status",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "balanceMethod": {
          "title": "Balance Method",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "creditLimit": {
          "title": "Credit Limit",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "creditLimitCurrency": {
          "title": "Credit Limit Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "creditRating": {
          "title": "Credit Rating",
          "type": "string"
        },
        "graceDays": {
          "title": "Grace Days",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "shiptos": {
          "title": "Shiptos",
          "type": "object",
          "items": {
            "$ref": "CustomerShipto"
          }
        },
        "backorder": {
          "title": "Backorder",
          "required": true,
          "type": "boolean"
        },
        "partialShip": {
          "title": "Partial Ship",
          "required": true,
          "type": "boolean"
        },
        "blanketPurchaseOrders": {
          "title": "Blanket Purchase Orders",
          "required": true,
          "type": "boolean"
        },
        "usesPurchaseOrders": {
          "title": "Uses Purchase Orders",
          "required": true,
          "type": "boolean"
        },
        "autoUpdateStatus": {
          "title": "Auto Update Status",
          "required": true,
          "type": "boolean"
        },
        "autoHoldOrders": {
          "title": "Auto Hold Orders",
          "required": true,
          "type": "boolean"
        },
        "preferredSite": {
          "title": "Preferred Site",
          "type": "String",
          "$ref": "SiteRelation/code"
        },
        "creditCards": {
          "title": "Credit Cards",
          "type": "object",
          "items": {
            "$ref": "CreditCard"
          }
        }
      }
    },
    "SalesCustomerShiptoRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "number": {
          "title": "Number",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "isDefault": {
          "title": "Is Default",
          "type": "boolean"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number"
        },
        "commission": {
          "title": "Commission",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "shipZone": {
          "title": "Ship Zone",
          "type": "String",
          "$ref": "ShipZone/name"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        }
      }
    },
    "SalesEmailProfile": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "from": {
          "title": "From",
          "type": "string"
        },
        "replyTo": {
          "title": "Reply To",
          "type": "string"
        },
        "to": {
          "title": "To",
          "type": "string"
        },
        "cc": {
          "title": "Cc",
          "type": "string"
        },
        "bcc": {
          "title": "Bcc",
          "type": "string"
        },
        "subject": {
          "title": "Subject",
          "type": "string"
        },
        "body": {
          "title": "Body",
          "type": "string"
        }
      }
    },
    "SalesOrder": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "uuid": {
          "title": "Uuid",
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "SalesCustomer",
          "required": true
        },
        "customerPurchaseOrderNumber": {
          "title": "Customer Purchase Order Number",
          "type": "string"
        },
        "orderDate": {
          "title": "Order Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "packDate": {
          "title": "Pack Date",
          "type": "string",
          "format": "date"
        },
        "scheduleDate": {
          "title": "Schedule Date",
          "type": "string",
          "format": "date"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code",
          "required": true
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "String",
          "$ref": "SalesRep/number",
          "required": true
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "site": {
          "title": "Site",
          "type": "String",
          "$ref": "Site/code"
        },
        "saleType": {
          "title": "Sale Type",
          "type": "String",
          "$ref": "SaleType/code"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoAddress1": {
          "title": "Billto Address1",
          "type": "string"
        },
        "billtoAddress2": {
          "title": "Billto Address2",
          "type": "string"
        },
        "billtoAddress3": {
          "title": "Billto Address3",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "billtoPostalCode": {
          "title": "Billto Postal Code",
          "type": "string"
        },
        "billtoContact": {
          "title": "Billto Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "billtoContactHonorific": {
          "title": "Billto Contact Honorific",
          "type": "string"
        },
        "billtoContactFirstName": {
          "title": "Billto Contact First Name",
          "type": "string"
        },
        "billtoContactMiddleName": {
          "title": "Billto Contact Middle Name",
          "type": "string"
        },
        "billtoContactLastName": {
          "title": "Billto Contact Last Name",
          "type": "string"
        },
        "billtoContactSuffix": {
          "title": "Billto Contact Suffix",
          "type": "string"
        },
        "billtoContactPhone": {
          "title": "Billto Contact Phone",
          "type": "string"
        },
        "billtoContactTitle": {
          "title": "Billto Contact Title",
          "type": "string"
        },
        "billtoContactFax": {
          "title": "Billto Contact Fax",
          "type": "string"
        },
        "billtoContactEmail": {
          "title": "Billto Contact Email",
          "type": "string"
        },
        "shipto": {
          "title": "Shipto",
          "type": "object",
          "$ref": "CustomerShiptoRelation"
        },
        "shiptoName": {
          "title": "Shipto Name",
          "type": "string"
        },
        "shiptoAddress1": {
          "title": "Shipto Address1",
          "type": "string"
        },
        "shiptoAddress2": {
          "title": "Shipto Address2",
          "type": "string"
        },
        "shiptoAddress3": {
          "title": "Shipto Address3",
          "type": "string"
        },
        "shiptoCity": {
          "title": "Shipto City",
          "type": "string"
        },
        "shiptoState": {
          "title": "Shipto State",
          "type": "string"
        },
        "shiptoCountry": {
          "title": "Shipto Country",
          "type": "string"
        },
        "shiptoPostalCode": {
          "title": "Shipto Postal Code",
          "type": "string"
        },
        "shiptoContact": {
          "title": "Shipto Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "shiptoContactHonorific": {
          "title": "Shipto Contact Honorific",
          "type": "string"
        },
        "shiptoContactFirstName": {
          "title": "Shipto Contact First Name",
          "type": "string"
        },
        "shiptoContactMiddleName": {
          "title": "Shipto Contact Middle Name",
          "type": "string"
        },
        "shiptoContactLastName": {
          "title": "Shipto Contact Last Name",
          "type": "string"
        },
        "shiptoContactSuffix": {
          "title": "Shipto Contact Suffix",
          "type": "string"
        },
        "shiptoContactPhone": {
          "title": "Shipto Contact Phone",
          "type": "string"
        },
        "shiptoContactTitle": {
          "title": "Shipto Contact Title",
          "type": "string"
        },
        "shiptoContactFax": {
          "title": "Shipto Contact Fax",
          "type": "string"
        },
        "shiptoContactEmail": {
          "title": "Shipto Contact Email",
          "type": "string"
        },
        "orderNotes": {
          "title": "Order Notes",
          "type": "string"
        },
        "shipNotes": {
          "title": "Ship Notes",
          "type": "string"
        },
        "fob": {
          "title": "Fob",
          "type": "string"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "object",
          "$ref": "Currency",
          "required": true
        },
        "calculateFreight": {
          "title": "Calculate Freight",
          "required": true,
          "type": "boolean"
        },
        "shipZone": {
          "title": "Ship Zone",
          "type": "String",
          "$ref": "ShipZone/name"
        },
        "shipCharge": {
          "title": "Ship Charge",
          "type": "String",
          "$ref": "ShipCharge/name"
        },
        "holdType": {
          "title": "Hold Type",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "wasQuote": {
          "title": "Was Quote",
          "required": true,
          "type": "boolean"
        },
        "shipComplete": {
          "title": "Ship Complete",
          "type": "boolean"
        },
        "quoteNumber": {
          "title": "Quote Number",
          "type": "string"
        },
        "allocatedCredit": {
          "title": "Allocated Credit",
          "type": "number",
          "format": "float"
        },
        "authorizedCredit": {
          "title": "Authorized Credit",
          "type": "number",
          "format": "float"
        },
        "outstandingCredit": {
          "title": "Outstanding Credit",
          "type": "number",
          "format": "float"
        },
        "balance": {
          "title": "Balance",
          "type": "number",
          "format": "float"
        },
        "margin": {
          "title": "Margin",
          "type": "number",
          "format": "float"
        },
        "freightWeight": {
          "title": "Freight Weight",
          "type": "number",
          "format": "float"
        },
        "subtotal": {
          "title": "Subtotal",
          "type": "number",
          "format": "float"
        },
        "taxTotal": {
          "title": "Tax Total",
          "type": "number",
          "format": "float"
        },
        "miscCharge": {
          "title": "Misc Charge",
          "type": "number",
          "format": "float"
        },
        "freight": {
          "title": "Freight",
          "type": "number",
          "format": "float"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "lineItems": {
          "title": "Line Items",
          "type": "object",
          "items": {
            "$ref": "SalesOrderLine"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "SalesOrderComment"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "SalesOrderFile"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "SalesOrderAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "SalesOrderContact"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "SalesOrderUrl"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "SalesOrderItem"
          }
        },
        "workflow": {
          "title": "Workflow",
          "type": "object",
          "items": {
            "$ref": "SalesOrderWorkflow"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "SalesOrderCharacteristic"
          }
        },
        "crmaccountUsers": {
          "title": "Crmaccount Users",
          "type": "array",
          "items": {
            "$ref": "ShareUsers/username"
          }
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "SalesOrderProject"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "SalesOrderCustomer"
          }
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "SalesOrderOpportunity"
          }
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "SalesOrderIncident"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "SalesOrderToDo"
          }
        }
      }
    },
    "SalesOrderAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "SalesOrderComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "SalesOrderContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerProspectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderLine": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "lineNumber": {
          "title": "Line Number",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "subNumber": {
          "title": "Sub Number",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation",
          "required": true
        },
        "site": {
          "title": "Site",
          "type": "object",
          "$ref": "SiteRelation",
          "required": true
        },
        "unitCost": {
          "title": "Unit Cost",
          "type": "number",
          "format": "float"
        },
        "quantity": {
          "title": "Quantity",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "quantityUnit": {
          "title": "Quantity Unit",
          "type": "String",
          "$ref": "Unit/name",
          "required": true
        },
        "quantityUnitRatio": {
          "title": "Quantity Unit Ratio",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "basePrice": {
          "title": "Base Price",
          "type": "number",
          "format": "float"
        },
        "customerPrice": {
          "title": "Customer Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "discount": {
          "title": "Discount",
          "type": "number",
          "format": "float"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "scheduleDate": {
          "title": "Schedule Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "promiseDate": {
          "title": "Promise Date",
          "type": "string",
          "format": "date"
        },
        "markup": {
          "title": "Markup",
          "type": "number",
          "format": "float"
        },
        "listPrice": {
          "title": "List Price",
          "type": "number",
          "format": "float"
        },
        "listPriceDiscount": {
          "title": "List Price Discount",
          "type": "number",
          "format": "float"
        },
        "customerPartNumber": {
          "title": "Customer Part Number",
          "type": "string"
        },
        "priceUnit": {
          "title": "Price Unit",
          "type": "String",
          "$ref": "Unit/name",
          "required": true
        },
        "priceUnitRatio": {
          "title": "Price Unit Ratio",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "extendedPrice": {
          "title": "Extended Price",
          "type": "number",
          "format": "float"
        },
        "margin": {
          "title": "Margin",
          "type": "number",
          "format": "float"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "tax": {
          "title": "Tax",
          "type": "number",
          "format": "float"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "substituteItem": {
          "title": "Substitute Item",
          "type": "String",
          "$ref": "Item/number"
        },
        "firm": {
          "title": "Firm",
          "required": true,
          "type": "boolean"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "SalesOrderLineComment"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "SalesOrderLineCharacteristic"
          }
        }
      }
    },
    "SalesOrderLineCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        },
        "price": {
          "title": "Price",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "SalesOrderLineComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "SalesOrderListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "uuid": {
          "title": "Uuid",
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "customerPurchaseOrderNumber": {
          "title": "Customer Purchase Order Number",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "scheduleDate": {
          "title": "Schedule Date",
          "type": "string",
          "format": "date"
        },
        "orderDate": {
          "title": "Order Date",
          "type": "string",
          "format": "date"
        },
        "orderNotes": {
          "title": "Order Notes",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "salesRep": {
          "title": "Sales Rep",
          "type": "object",
          "$ref": "SalesRep"
        },
        "billtoName": {
          "title": "Billto Name",
          "type": "string"
        },
        "billtoCity": {
          "title": "Billto City",
          "type": "string"
        },
        "billtoState": {
          "title": "Billto State",
          "type": "string"
        },
        "billtoCountry": {
          "title": "Billto Country",
          "type": "string"
        },
        "shiptoName": {
          "title": "Shipto Name",
          "type": "string"
        },
        "shiptoCity": {
          "title": "Shipto City",
          "type": "string"
        },
        "shiptoState": {
          "title": "Shipto State",
          "type": "string"
        },
        "shiptoCountry": {
          "title": "Shipto Country",
          "type": "string"
        },
        "crmaccountUsers": {
          "title": "Crmaccount Users",
          "type": "array",
          "items": {
            "$ref": "ShareUsers/username"
          }
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        }
      }
    },
    "SalesOrderOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "customer": {
          "title": "Customer",
          "type": "string"
        },
        "orderDate": {
          "title": "Order Date",
          "type": "string",
          "format": "date"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "total": {
          "title": "Total",
          "type": "number",
          "format": "float"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "string"
        }
      }
    },
    "SalesOrderToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "SalesOrderWorkflow": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "workflowType": {
          "title": "Workflow Type",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "required": true,
          "type": "string"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name",
          "required": true
        },
        "sequence": {
          "title": "Sequence",
          "required": true,
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "completedParentStatus": {
          "title": "Completed Parent Status",
          "type": "string"
        },
        "deferredParentStatus": {
          "title": "Deferred Parent Status",
          "type": "string"
        },
        "completedSuccessors": {
          "title": "Completed Successors",
          "type": "string"
        },
        "deferredSuccessors": {
          "title": "Deferred Successors",
          "type": "string"
        }
      }
    },
    "SalesRep": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "commission": {
          "title": "Commission",
          "type": "number",
          "format": "float"
        },
        "account": {
          "title": "Account",
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        }
      }
    },
    "ShareUsers": {
      "properties": {
        "username": {
          "title": "Username",
          "isKey": true,
          "type": "string"
        }
      }
    },
    "Shift": {
      "properties": {
        "number": {
          "title": "Number",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        }
      }
    },
    "ShipCharge": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "isCustomerPay": {
          "title": "Is Customer Pay",
          "type": "boolean"
        }
      }
    },
    "ShipVia": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "ShipZone": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "Site": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "type": "string"
        },
        "siteType": {
          "title": "Site Type",
          "type": "object",
          "$ref": "SiteType"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "incoterms": {
          "title": "Incoterms",
          "type": "string"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "SiteComment"
          }
        }
      }
    },
    "SiteComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "SiteListItem": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "siteType": {
          "title": "Site Type",
          "type": "String",
          "$ref": "SiteType/name"
        }
      }
    },
    "SiteRelation": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "incoterms": {
          "title": "Incoterms",
          "type": "string"
        }
      }
    },
    "SiteType": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "SiteZoneRelation": {
      "properties": {
        "site": {
          "title": "Site",
          "type": "String",
          "$ref": "SiteRelation/code"
        },
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "Source": {
      "properties": {
        "module": {
          "title": "Module",
          "description": "Application module",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "isKey": true,
          "description": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "description": "Description",
          "type": "string"
        }
      }
    },
    "State": {
      "properties": {
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "abbreviation": {
          "title": "Abbreviation",
          "required": true,
          "isKey": true,
          "type": "string"
        },
        "country": {
          "title": "Country",
          "type": "String",
          "$ref": "Country/abbreviation",
          "required": true
        }
      }
    },
    "TaskProjectRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        }
      }
    },
    "TaskResource": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "task": {
          "title": "Task",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "resource": {
          "title": "Resource",
          "type": "String",
          "$ref": "Resource/id",
          "required": true
        },
        "percent": {
          "title": "Percent",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "TaxAssignment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "taxType": {
          "title": "Tax Type",
          "type": "String",
          "$ref": "TaxType/name"
        },
        "tax": {
          "title": "Tax",
          "type": "String",
          "$ref": "TaxCode/code",
          "required": true
        }
      }
    },
    "TaxAuthority": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "externalReference": {
          "title": "External Reference",
          "type": "string"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "county": {
          "title": "County",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "account": {
          "title": "Account",
          "description": "Abbreviated human-readable identifier for this CRM Account.",
          "type": "string"
        }
      }
    },
    "TaxAuthorityRelation": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        }
      }
    },
    "TaxClass": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "description": "Code",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "description": "Description",
          "type": "string"
        },
        "sequence": {
          "title": "Sequence",
          "description": "Group sequence",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "TaxCode": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "class": {
          "title": "Class",
          "type": "String",
          "$ref": "TaxClass/code"
        },
        "authority": {
          "title": "Authority",
          "type": "String",
          "$ref": "TaxAuthority/code"
        },
        "basis": {
          "title": "Basis",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "TaxRate": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "tax": {
          "title": "Tax",
          "type": "String",
          "$ref": "TaxCode/code",
          "required": true
        },
        "percent": {
          "title": "Percent",
          "required": true,
          "description": "Tax rate percentage.",
          "type": "number",
          "format": "float"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation",
          "required": true
        },
        "amount": {
          "title": "Amount",
          "required": true,
          "description": "Flat tax rate amount.",
          "type": "number",
          "format": "float"
        },
        "effectiveDate": {
          "title": "Effective Date",
          "required": true,
          "description": "The effective date of the tax rate.  NULL value means always.",
          "type": "string",
          "format": "date"
        },
        "expirationDate": {
          "title": "Expiration Date",
          "required": true,
          "description": "The expire date of the tax rate.  NULL value means never.",
          "type": "string",
          "format": "date"
        }
      }
    },
    "TaxType": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "isSystem": {
          "title": "Is System",
          "required": true,
          "type": "boolean"
        }
      }
    },
    "TaxZone": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "description": "Code",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "description": "Description",
          "type": "string"
        }
      }
    },
    "Terms": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "termsType": {
          "title": "Terms Type",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "dueDays": {
          "title": "Due Days",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "discountDays": {
          "title": "Discount Days",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "discountPercent": {
          "title": "Discount Percent",
          "type": "number",
          "format": "float"
        },
        "cutOffDay": {
          "title": "Cut Off Day",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "isUsedByBilling": {
          "title": "Is Used By Billing",
          "type": "boolean"
        },
        "isUsedByPayments": {
          "title": "Is Used By Payments",
          "type": "boolean"
        }
      }
    },
    "ToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "statusProxy": {
          "title": "Status Proxy",
          "type": "string",
          "minLength": null,
          "maxLength": null
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "required": true,
          "type": "string",
          "format": "date"
        },
        "assignDate": {
          "title": "Assign Date",
          "type": "string",
          "format": "date"
        },
        "completeDate": {
          "title": "Complete Date",
          "type": "string",
          "format": "date"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "alarms": {
          "title": "Alarms",
          "type": "object",
          "items": {
            "$ref": "ToDoAlarm"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "ToDoComment"
          }
        },
        "accounts": {
          "title": "Accounts",
          "type": "object",
          "items": {
            "$ref": "ToDoAccount"
          }
        },
        "contacts": {
          "title": "Contacts",
          "type": "object",
          "items": {
            "$ref": "ToDoContact"
          }
        },
        "items": {
          "title": "Items",
          "type": "object",
          "items": {
            "$ref": "ToDoItem"
          }
        },
        "files": {
          "title": "Files",
          "type": "object",
          "items": {
            "$ref": "ToDoFile"
          }
        },
        "urls": {
          "title": "Urls",
          "type": "object",
          "items": {
            "$ref": "ToDoUrl"
          }
        },
        "toDos": {
          "title": "To Dos",
          "type": "object",
          "items": {
            "$ref": "ToDoToDo"
          }
        },
        "projects": {
          "title": "Projects",
          "type": "object",
          "items": {
            "$ref": "ToDoProject"
          }
        },
        "customers": {
          "title": "Customers",
          "type": "object",
          "items": {
            "$ref": "ToDoCustomer"
          }
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "incidents": {
          "title": "Incidents",
          "type": "object",
          "items": {
            "$ref": "ToDoIncident"
          }
        },
        "opportunities": {
          "title": "Opportunities",
          "type": "object",
          "items": {
            "$ref": "ToDoOpportunity"
          }
        }
      }
    },
    "ToDoAccount": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoAlarm": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "number": {
          "title": "Number",
          "type": "string"
        },
        "isEvent": {
          "title": "Is Event",
          "required": true,
          "type": "boolean"
        },
        "eventRecipient": {
          "title": "Event Recipient",
          "type": "string"
        },
        "isMessage": {
          "title": "Is Message",
          "required": true,
          "type": "boolean"
        },
        "messageRecipient": {
          "title": "Message Recipient",
          "type": "string"
        },
        "offset": {
          "title": "Offset",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "qualifier": {
          "title": "Qualifier",
          "type": "string"
        },
        "time": {
          "title": "Time",
          "type": "string",
          "format": "date-time"
        },
        "trigger": {
          "title": "Trigger",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "ToDoComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "ToDoContact": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoCustomer": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoFile": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "file": {
          "title": "File",
          "type": "object",
          "$ref": "FileRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoIncident": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "incident": {
          "title": "Incident",
          "type": "object",
          "$ref": "IncidentRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "item": {
          "title": "Item",
          "type": "object",
          "$ref": "ItemRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoListItem": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "startDate": {
          "title": "Start Date",
          "type": "string",
          "format": "date"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "object",
          "$ref": "AccountRelation"
        },
        "priorityOrder": {
          "title": "Priority Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "incident": {
          "title": "Incident",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        }
      }
    },
    "ToDoOpportunity": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "object",
          "$ref": "OpportunityRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoProject": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "project": {
          "title": "Project",
          "type": "object",
          "$ref": "ProjectRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoRelation": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "priority": {
          "title": "Priority",
          "type": "String",
          "$ref": "Priority/name"
        },
        "priorityOrder": {
          "title": "Priority Order",
          "type": "integer",
          "format": "int32",
          "minimum": "-2147483648",
          "maximum": "2147483647"
        },
        "incident": {
          "title": "Incident",
          "type": "string"
        },
        "opportunity": {
          "title": "Opportunity",
          "type": "string"
        }
      }
    },
    "ToDoToDo": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "toDo": {
          "title": "To Do",
          "type": "object",
          "$ref": "ToDoRelation"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "ToDoUrl": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "url": {
          "title": "Url",
          "type": "object",
          "$ref": "Url"
        },
        "purpose": {
          "title": "Purpose",
          "type": "string",
          "minLength": null,
          "maxLength": null
        }
      }
    },
    "TransferOrderItemListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "description1": {
          "title": "Description1",
          "required": true,
          "type": "string"
        },
        "description2": {
          "title": "Description2",
          "required": true,
          "type": "string"
        },
        "itemType": {
          "title": "Item Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "inventoryUnit": {
          "title": "Inventory Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "classCode": {
          "title": "Class Code",
          "type": "String",
          "$ref": "ClassCode/code"
        },
        "freightClass": {
          "title": "Freight Class",
          "type": "String",
          "$ref": "FreightClass/code"
        },
        "barcode": {
          "title": "Barcode",
          "type": "string"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "TransferOrderItemListItemCharacteristic"
          }
        }
      }
    },
    "TransferOrderItemListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "TransferOrderItemRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "required": true,
          "type": "boolean"
        },
        "description1": {
          "title": "Description1",
          "required": true,
          "type": "string"
        },
        "description2": {
          "title": "Description2",
          "required": true,
          "type": "string"
        },
        "itemType": {
          "title": "Item Type",
          "required": true,
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "inventoryUnit": {
          "title": "Inventory Unit",
          "type": "String",
          "$ref": "Unit/name"
        },
        "isFractional": {
          "title": "Is Fractional",
          "required": true,
          "type": "boolean"
        },
        "barcode": {
          "title": "Barcode",
          "type": "string"
        },
        "productWeight": {
          "title": "Product Weight",
          "required": true,
          "type": "number",
          "format": "float"
        },
        "packageWeight": {
          "title": "Package Weight",
          "required": true,
          "type": "number",
          "format": "float"
        }
      }
    },
    "Unit": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "isItemWeight": {
          "title": "Is Item Weight",
          "required": true,
          "type": "boolean"
        }
      }
    },
    "Url": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        },
        "path": {
          "title": "Path",
          "required": true,
          "type": "string"
        }
      }
    },
    "UserAccount": {
      "properties": {
        "username": {
          "title": "Username",
          "isKey": true,
          "type": "string"
        },
        "password": {
          "title": "Password",
          "type": "string"
        },
        "properName": {
          "title": "Proper Name",
          "type": "string"
        },
        "useEnhancedAuth": {
          "title": "Use Enhanced Auth",
          "type": "boolean"
        },
        "disableExport": {
          "title": "Disable Export",
          "type": "boolean"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "initials": {
          "title": "Initials",
          "type": "string"
        },
        "email": {
          "title": "Email",
          "type": "string"
        },
        "organization": {
          "title": "Organization",
          "type": "string"
        },
        "locale": {
          "title": "Locale",
          "type": "String",
          "$ref": "Locale/code",
          "required": true
        },
        "isAgent": {
          "title": "Is Agent",
          "required": true,
          "type": "boolean"
        },
        "grantedPrivileges": {
          "title": "Granted Privileges",
          "type": "object",
          "items": {
            "$ref": "UserAccountPrivilegeAssignment"
          }
        },
        "userAccountRoles": {
          "title": "User Account Roles",
          "type": "object",
          "items": {
            "$ref": "UserAccountRole"
          }
        },
        "grantedUserAccountRoles": {
          "title": "Granted User Account Roles",
          "type": "object",
          "items": {
            "$ref": "UserAccountUserAccountRoleAssignment"
          }
        },
        "grantedExtensions": {
          "title": "Granted Extensions",
          "type": "object",
          "items": {
            "$ref": "UserAccountExtension"
          }
        }
      }
    },
    "UserAccountExtension": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "extension": {
          "title": "Extension",
          "type": "object",
          "$ref": "Extension"
        }
      }
    },
    "UserAccountPrivilegeAssignment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "privilege": {
          "title": "Privilege",
          "type": "String",
          "$ref": "Privilege/name",
          "required": true
        }
      }
    },
    "UserAccountRelation": {
      "properties": {
        "username": {
          "title": "Username",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "propername": {
          "title": "Propername",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "disableExport": {
          "title": "Disable Export",
          "type": "boolean"
        },
        "email": {
          "title": "Email",
          "type": "string"
        }
      }
    },
    "UserAccountRole": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "grantedPrivileges": {
          "title": "Granted Privileges",
          "type": "object",
          "items": {
            "$ref": "UserAccountRolePrivilegeAssignment"
          }
        },
        "grantedExtensions": {
          "title": "Granted Extensions",
          "type": "object",
          "items": {
            "$ref": "UserAccountRoleExtension"
          }
        }
      }
    },
    "UserAccountRoleExtension": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "extension": {
          "title": "Extension",
          "type": "object",
          "$ref": "Extension"
        }
      }
    },
    "UserAccountRoleListItem": {
      "properties": {
        "name": {
          "title": "Name",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "UserAccountRolePrivilegeAssignment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "privilege": {
          "title": "Privilege",
          "type": "String",
          "$ref": "Privilege/name"
        }
      }
    },
    "UserAccountUserAccountRoleAssignment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "userAccountRole": {
          "title": "User Account Role",
          "type": "String",
          "$ref": "UserAccountRole/name"
        }
      }
    },
    "Vendor": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "primaryContact": {
          "title": "Primary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "secondaryContact": {
          "title": "Secondary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "address": {
          "title": "Address",
          "type": "String",
          "$ref": "Address/number"
        },
        "vendorType": {
          "title": "Vendor Type",
          "type": "object",
          "$ref": "VendorType"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code"
        },
        "taxZone": {
          "title": "Tax Zone",
          "type": "String",
          "$ref": "TaxZone/code"
        },
        "account": {
          "title": "Account",
          "type": "String",
          "$ref": "AccountRelation/number"
        },
        "expenseCategory": {
          "title": "Expense Category",
          "type": "String",
          "$ref": "ExpenseCategory/code"
        },
        "shipVia": {
          "title": "Ship Via",
          "type": "string"
        },
        "alternateAddresses": {
          "title": "Alternate Addresses",
          "type": "object",
          "items": {
            "$ref": "VendorAddress"
          }
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "VendorCharacteristic"
          }
        },
        "comments": {
          "title": "Comments",
          "type": "object",
          "items": {
            "$ref": "VendorComment"
          }
        }
      }
    },
    "VendorAddress": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "code": {
          "title": "Code",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "address": {
          "title": "Address",
          "type": "object",
          "$ref": "AddressInfo"
        },
        "contact": {
          "title": "Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "notes": {
          "title": "Notes",
          "type": "string"
        }
      }
    },
    "VendorCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name",
          "required": true
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "VendorComment": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "type": "string",
          "format": "uuid"
        },
        "commentType": {
          "title": "Comment Type",
          "type": "String",
          "$ref": "CommentType/name",
          "required": true
        },
        "text": {
          "title": "Text",
          "type": "string"
        },
        "created": {
          "title": "Created",
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "title": "Created By",
          "type": "string"
        }
      }
    },
    "VendorListItem": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "primaryContact": {
          "title": "Primary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "secondaryContact": {
          "title": "Secondary Contact",
          "type": "object",
          "$ref": "ContactRelation"
        },
        "address": {
          "title": "Address",
          "type": "String",
          "$ref": "Address/number"
        },
        "vendorType": {
          "title": "Vendor Type",
          "type": "object",
          "$ref": "VendorType"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        },
        "terms": {
          "title": "Terms",
          "type": "String",
          "$ref": "Terms/code"
        },
        "characteristics": {
          "title": "Characteristics",
          "type": "object",
          "items": {
            "$ref": "VendorListItemCharacteristic"
          }
        }
      }
    },
    "VendorListItemCharacteristic": {
      "properties": {
        "uuid": {
          "title": "Uuid",
          "isKey": true,
          "description": "Added by xt the web-mobile package.",
          "type": "string",
          "format": "uuid"
        },
        "characteristic": {
          "title": "Characteristic",
          "type": "String",
          "$ref": "Characteristic/name"
        },
        "value": {
          "title": "Value",
          "type": "string"
        }
      }
    },
    "VendorRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "isActive": {
          "title": "Is Active",
          "type": "boolean"
        },
        "currency": {
          "title": "Currency",
          "type": "String",
          "$ref": "Currency/abbreviation"
        }
      }
    },
    "VendorType": {
      "properties": {
        "code": {
          "title": "Code",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      }
    },
    "VersionProjectRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "required": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "required": true,
          "type": "string"
        }
      }
    },
    "WorksheetProjectRelation": {
      "properties": {
        "number": {
          "title": "Number",
          "isKey": true,
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "status": {
          "title": "Status",
          "type": "string",
          "minLength": "1",
          "maxLength": "1"
        },
        "dueDate": {
          "title": "Due Date",
          "type": "string",
          "format": "date"
        },
        "assignedTo": {
          "title": "Assigned To",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "owner": {
          "title": "Owner",
          "type": "object",
          "$ref": "UserAccountRelation"
        },
        "account": {
          "title": "Account",
          "type": "string"
        },
        "contact": {
          "title": "Contact",
          "type": "string"
        },
        "tasks": {
          "title": "Tasks",
          "type": "object",
          "items": {
            "$ref": "ProjectTaskRelation"
          }
        },
        "customer": {
          "title": "Customer",
          "type": "object",
          "$ref": "CustomerRelation"
        }
      }
    }
  },
  "resources": {
    "Account": {
      "methods": {
        "delete": {
          "id": "Account.delete",
          "path": "resources/account/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Account record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Account.get",
          "path": "resources/account/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Account record.",
          "response": {
            "$ref": "Account"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account",
            "https://mobile.xtuple.com/dogfood/auth/account.readonly"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Account.head",
          "path": "resources/account/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Account record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account",
            "https://mobile.xtuple.com/dogfood/auth/account.readonly"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Account.insert",
          "path": "resources/account",
          "httpMethod": "POST",
          "description": "Add a single Account record.",
          "request": {
            "$ref": "Account"
          },
          "response": {
            "$ref": "Account"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account"
          ]
        },
        "list": {
          "id": "Account.list",
          "path": "resources/account",
          "httpMethod": "GET",
          "description": "Returns a list of Account records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "AccountListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account",
            "https://mobile.xtuple.com/dogfood/auth/account.readonly"
          ]
        },
        "listhead": {
          "id": "Account.listhead",
          "path": "resources/account",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Account records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account",
            "https://mobile.xtuple.com/dogfood/auth/account.readonly"
          ]
        },
        "patch": {
          "id": "Account.patch",
          "path": "resources/account/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Account record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Account"
          },
          "response": {
            "$ref": "Account"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "AccountAddressListItem": {
      "methods": {
        "get": {
          "id": "AccountAddressListItem.get",
          "path": "resources/account-address-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single AccountAddressListItem record.",
          "response": {
            "$ref": "AccountAddressListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "AccountAddressListItem.head",
          "path": "resources/account-address-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single AccountAddressListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "AccountAddressListItem.list",
          "path": "resources/account-address-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of AccountAddressListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "AccountAddressListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "AccountAddressListItem.listhead",
          "path": "resources/account-address-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of AccountAddressListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-address-list-item.readonly"
          ]
        }
      }
    },
    "AccountListItem": {
      "methods": {
        "get": {
          "id": "AccountListItem.get",
          "path": "resources/account-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single AccountListItem record.",
          "response": {
            "$ref": "AccountListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "AccountListItem.head",
          "path": "resources/account-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single AccountListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "AccountListItem.list",
          "path": "resources/account-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of AccountListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "AccountListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "AccountListItem.listhead",
          "path": "resources/account-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of AccountListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item",
            "https://mobile.xtuple.com/dogfood/auth/account-list-item.readonly"
          ]
        }
      }
    },
    "AccountRelation": {
      "methods": {
        "get": {
          "id": "AccountRelation.get",
          "path": "resources/account-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single AccountRelation record.",
          "response": {
            "$ref": "AccountRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-relation",
            "https://mobile.xtuple.com/dogfood/auth/account-relation.readonly"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "AccountRelation.head",
          "path": "resources/account-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single AccountRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-relation",
            "https://mobile.xtuple.com/dogfood/auth/account-relation.readonly"
          ],
          "parameters": {
            "number": {
              "description": "Abbreviated human-readable identifier for this CRM Account.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "AccountRelation.list",
          "path": "resources/account-relation",
          "httpMethod": "GET",
          "description": "Returns a list of AccountRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "AccountRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-relation",
            "https://mobile.xtuple.com/dogfood/auth/account-relation.readonly"
          ]
        },
        "listhead": {
          "id": "AccountRelation.listhead",
          "path": "resources/account-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of AccountRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/account-relation",
            "https://mobile.xtuple.com/dogfood/auth/account-relation.readonly"
          ]
        }
      }
    },
    "ActivityListItem": {
      "methods": {
        "get": {
          "id": "ActivityListItem.get",
          "path": "resources/activity-list-item/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ActivityListItem record.",
          "response": {
            "$ref": "ActivityListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ActivityListItem.head",
          "path": "resources/activity-list-item/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ActivityListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ActivityListItem.list",
          "path": "resources/activity-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ActivityListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ActivityListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ActivityListItem.listhead",
          "path": "resources/activity-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ActivityListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/activity-list-item.readonly"
          ]
        }
      }
    },
    "ActivityRelation": {
      "methods": {
        "get": {
          "id": "ActivityRelation.get",
          "path": "resources/activity-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ActivityRelation record.",
          "response": {
            "$ref": "ActivityRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ActivityRelation.head",
          "path": "resources/activity-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ActivityRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ActivityRelation.list",
          "path": "resources/activity-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ActivityRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ActivityRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ActivityRelation.listhead",
          "path": "resources/activity-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ActivityRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation",
            "https://mobile.xtuple.com/dogfood/auth/activity-relation.readonly"
          ]
        }
      }
    },
    "Address": {
      "methods": {
        "delete": {
          "id": "Address.delete",
          "path": "resources/address/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Address record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Address.get",
          "path": "resources/address/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Address record.",
          "response": {
            "$ref": "Address"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address",
            "https://mobile.xtuple.com/dogfood/auth/address.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Address.head",
          "path": "resources/address/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Address record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address",
            "https://mobile.xtuple.com/dogfood/auth/address.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Address.insert",
          "path": "resources/address",
          "httpMethod": "POST",
          "description": "Add a single Address record.",
          "request": {
            "$ref": "Address"
          },
          "response": {
            "$ref": "Address"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address"
          ]
        },
        "list": {
          "id": "Address.list",
          "path": "resources/address",
          "httpMethod": "GET",
          "description": "Returns a list of Address records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Address"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address",
            "https://mobile.xtuple.com/dogfood/auth/address.readonly"
          ]
        },
        "listhead": {
          "id": "Address.listhead",
          "path": "resources/address",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Address records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address",
            "https://mobile.xtuple.com/dogfood/auth/address.readonly"
          ]
        },
        "patch": {
          "id": "Address.patch",
          "path": "resources/address/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Address record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Address"
          },
          "response": {
            "$ref": "Address"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "AddressInfo": {
      "methods": {
        "delete": {
          "id": "AddressInfo.delete",
          "path": "resources/address-info/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single AddressInfo record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "AddressInfo.get",
          "path": "resources/address-info/{number}",
          "httpMethod": "GET",
          "description": "Gets a single AddressInfo record.",
          "response": {
            "$ref": "AddressInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info",
            "https://mobile.xtuple.com/dogfood/auth/address-info.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "AddressInfo.head",
          "path": "resources/address-info/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single AddressInfo record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info",
            "https://mobile.xtuple.com/dogfood/auth/address-info.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "AddressInfo.insert",
          "path": "resources/address-info",
          "httpMethod": "POST",
          "description": "Add a single AddressInfo record.",
          "request": {
            "$ref": "AddressInfo"
          },
          "response": {
            "$ref": "AddressInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info"
          ]
        },
        "list": {
          "id": "AddressInfo.list",
          "path": "resources/address-info",
          "httpMethod": "GET",
          "description": "Returns a list of AddressInfo records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "AddressInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info",
            "https://mobile.xtuple.com/dogfood/auth/address-info.readonly"
          ]
        },
        "listhead": {
          "id": "AddressInfo.listhead",
          "path": "resources/address-info",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of AddressInfo records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info",
            "https://mobile.xtuple.com/dogfood/auth/address-info.readonly"
          ]
        },
        "patch": {
          "id": "AddressInfo.patch",
          "path": "resources/address-info/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single AddressInfo record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "AddressInfo"
          },
          "response": {
            "$ref": "AddressInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/address-info"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "Agent": {
      "methods": {
        "get": {
          "id": "Agent.get",
          "path": "resources/agent/{username}",
          "httpMethod": "GET",
          "description": "Gets a single Agent record.",
          "response": {
            "$ref": "Agent"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/agent",
            "https://mobile.xtuple.com/dogfood/auth/agent.readonly"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        },
        "head": {
          "id": "Agent.head",
          "path": "resources/agent/{username}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Agent record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/agent",
            "https://mobile.xtuple.com/dogfood/auth/agent.readonly"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        },
        "list": {
          "id": "Agent.list",
          "path": "resources/agent",
          "httpMethod": "GET",
          "description": "Returns a list of Agent records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Agent"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/agent",
            "https://mobile.xtuple.com/dogfood/auth/agent.readonly"
          ]
        },
        "listhead": {
          "id": "Agent.listhead",
          "path": "resources/agent",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Agent records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/agent",
            "https://mobile.xtuple.com/dogfood/auth/agent.readonly"
          ]
        }
      }
    },
    "BankAccount": {
      "methods": {
        "delete": {
          "id": "BankAccount.delete",
          "path": "resources/bank-account/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single BankAccount record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "BankAccount.get",
          "path": "resources/bank-account/{name}",
          "httpMethod": "GET",
          "description": "Gets a single BankAccount record.",
          "response": {
            "$ref": "BankAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account",
            "https://mobile.xtuple.com/dogfood/auth/bank-account.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "BankAccount.head",
          "path": "resources/bank-account/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single BankAccount record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account",
            "https://mobile.xtuple.com/dogfood/auth/bank-account.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "BankAccount.insert",
          "path": "resources/bank-account",
          "httpMethod": "POST",
          "description": "Add a single BankAccount record.",
          "request": {
            "$ref": "BankAccount"
          },
          "response": {
            "$ref": "BankAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account"
          ]
        },
        "list": {
          "id": "BankAccount.list",
          "path": "resources/bank-account",
          "httpMethod": "GET",
          "description": "Returns a list of BankAccount records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "BankAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account",
            "https://mobile.xtuple.com/dogfood/auth/bank-account.readonly"
          ]
        },
        "listhead": {
          "id": "BankAccount.listhead",
          "path": "resources/bank-account",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of BankAccount records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account",
            "https://mobile.xtuple.com/dogfood/auth/bank-account.readonly"
          ]
        },
        "patch": {
          "id": "BankAccount.patch",
          "path": "resources/bank-account/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single BankAccount record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "BankAccount"
          },
          "response": {
            "$ref": "BankAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "BankAccountRelation": {
      "methods": {
        "get": {
          "id": "BankAccountRelation.get",
          "path": "resources/bank-account-relation/{name}",
          "httpMethod": "GET",
          "description": "Gets a single BankAccountRelation record.",
          "response": {
            "$ref": "BankAccountRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "BankAccountRelation.head",
          "path": "resources/bank-account-relation/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single BankAccountRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "list": {
          "id": "BankAccountRelation.list",
          "path": "resources/bank-account-relation",
          "httpMethod": "GET",
          "description": "Returns a list of BankAccountRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "BankAccountRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation.readonly"
          ]
        },
        "listhead": {
          "id": "BankAccountRelation.listhead",
          "path": "resources/bank-account-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of BankAccountRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/bank-account-relation.readonly"
          ]
        }
      }
    },
    "CashReceipt": {
      "methods": {
        "delete": {
          "id": "CashReceipt.delete",
          "path": "resources/cash-receipt/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CashReceipt record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "CashReceipt.get",
          "path": "resources/cash-receipt/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceipt record.",
          "response": {
            "$ref": "CashReceipt"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CashReceipt.head",
          "path": "resources/cash-receipt/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceipt record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "CashReceipt.insert",
          "path": "resources/cash-receipt",
          "httpMethod": "POST",
          "description": "Add a single CashReceipt record.",
          "request": {
            "$ref": "CashReceipt"
          },
          "response": {
            "$ref": "CashReceipt"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt"
          ]
        },
        "list": {
          "id": "CashReceipt.list",
          "path": "resources/cash-receipt",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceipt records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceipt.listhead",
          "path": "resources/cash-receipt",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceipt records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt.readonly"
          ]
        },
        "patch": {
          "id": "CashReceipt.patch",
          "path": "resources/cash-receipt/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CashReceipt record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CashReceipt"
          },
          "response": {
            "$ref": "CashReceipt"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "CashReceiptLine": {
      "methods": {
        "delete": {
          "id": "CashReceiptLine.delete",
          "path": "resources/cash-receipt-line/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CashReceiptLine record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "CashReceiptLine.get",
          "path": "resources/cash-receipt-line/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceiptLine record.",
          "response": {
            "$ref": "CashReceiptLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "CashReceiptLine.head",
          "path": "resources/cash-receipt-line/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceiptLine record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "CashReceiptLine.insert",
          "path": "resources/cash-receipt-line",
          "httpMethod": "POST",
          "description": "Add a single CashReceiptLine record.",
          "request": {
            "$ref": "CashReceiptLine"
          },
          "response": {
            "$ref": "CashReceiptLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line"
          ]
        },
        "list": {
          "id": "CashReceiptLine.list",
          "path": "resources/cash-receipt-line",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceiptLine records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptLineListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceiptLine.listhead",
          "path": "resources/cash-receipt-line",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceiptLine records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line.readonly"
          ]
        },
        "patch": {
          "id": "CashReceiptLine.patch",
          "path": "resources/cash-receipt-line/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CashReceiptLine record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CashReceiptLine"
          },
          "response": {
            "$ref": "CashReceiptLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "CashReceiptLineListItem": {
      "methods": {
        "delete": {
          "id": "CashReceiptLineListItem.delete",
          "path": "resources/cash-receipt-line-list-item/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CashReceiptLineListItem record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "CashReceiptLineListItem.get",
          "path": "resources/cash-receipt-line-list-item/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceiptLineListItem record.",
          "response": {
            "$ref": "CashReceiptLineListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "CashReceiptLineListItem.head",
          "path": "resources/cash-receipt-line-list-item/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceiptLineListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "CashReceiptLineListItem.insert",
          "path": "resources/cash-receipt-line-list-item",
          "httpMethod": "POST",
          "description": "Add a single CashReceiptLineListItem record.",
          "request": {
            "$ref": "CashReceiptLineListItem"
          },
          "response": {
            "$ref": "CashReceiptLineListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item"
          ]
        },
        "list": {
          "id": "CashReceiptLineListItem.list",
          "path": "resources/cash-receipt-line-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceiptLineListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptLineListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceiptLineListItem.listhead",
          "path": "resources/cash-receipt-line-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceiptLineListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item.readonly"
          ]
        },
        "patch": {
          "id": "CashReceiptLineListItem.patch",
          "path": "resources/cash-receipt-line-list-item/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CashReceiptLineListItem record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CashReceiptLineListItem"
          },
          "response": {
            "$ref": "CashReceiptLineListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-list-item"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "CashReceiptLinePending": {
      "methods": {
        "get": {
          "id": "CashReceiptLinePending.get",
          "path": "resources/cash-receipt-line-pending/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceiptLinePending record.",
          "response": {
            "$ref": "CashReceiptLinePending"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "CashReceiptLinePending.head",
          "path": "resources/cash-receipt-line-pending/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceiptLinePending record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "CashReceiptLinePending.list",
          "path": "resources/cash-receipt-line-pending",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceiptLinePending records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptLinePending"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceiptLinePending.listhead",
          "path": "resources/cash-receipt-line-pending",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceiptLinePending records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-line-pending.readonly"
          ]
        }
      }
    },
    "CashReceiptListItem": {
      "methods": {
        "get": {
          "id": "CashReceiptListItem.get",
          "path": "resources/cash-receipt-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceiptListItem record.",
          "response": {
            "$ref": "CashReceiptListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CashReceiptListItem.head",
          "path": "resources/cash-receipt-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceiptListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "CashReceiptListItem.list",
          "path": "resources/cash-receipt-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceiptListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceiptListItem.listhead",
          "path": "resources/cash-receipt-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceiptListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-list-item.readonly"
          ]
        }
      }
    },
    "CashReceiptReceivable": {
      "methods": {
        "get": {
          "id": "CashReceiptReceivable.get",
          "path": "resources/cash-receipt-receivable/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceiptReceivable record.",
          "response": {
            "$ref": "CashReceiptReceivable"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "CashReceiptReceivable.head",
          "path": "resources/cash-receipt-receivable/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceiptReceivable record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "CashReceiptReceivable.list",
          "path": "resources/cash-receipt-receivable",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceiptReceivable records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptReceivable"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceiptReceivable.listhead",
          "path": "resources/cash-receipt-receivable",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceiptReceivable records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-receivable.readonly"
          ]
        }
      }
    },
    "CashReceiptRelation": {
      "methods": {
        "get": {
          "id": "CashReceiptRelation.get",
          "path": "resources/cash-receipt-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CashReceiptRelation record.",
          "response": {
            "$ref": "CashReceiptRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CashReceiptRelation.head",
          "path": "resources/cash-receipt-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CashReceiptRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "CashReceiptRelation.list",
          "path": "resources/cash-receipt-relation",
          "httpMethod": "GET",
          "description": "Returns a list of CashReceiptRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CashReceiptRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation.readonly"
          ]
        },
        "listhead": {
          "id": "CashReceiptRelation.listhead",
          "path": "resources/cash-receipt-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CashReceiptRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation",
            "https://mobile.xtuple.com/dogfood/auth/cash-receipt-relation.readonly"
          ]
        }
      }
    },
    "Characteristic": {
      "methods": {
        "delete": {
          "id": "Characteristic.delete",
          "path": "resources/characteristic/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Characteristic record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "Characteristic.get",
          "path": "resources/characteristic/{name}",
          "httpMethod": "GET",
          "description": "Gets a single Characteristic record.",
          "response": {
            "$ref": "Characteristic"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic",
            "https://mobile.xtuple.com/dogfood/auth/characteristic.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "Characteristic.head",
          "path": "resources/characteristic/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Characteristic record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic",
            "https://mobile.xtuple.com/dogfood/auth/characteristic.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "Characteristic.insert",
          "path": "resources/characteristic",
          "httpMethod": "POST",
          "description": "Add a single Characteristic record.",
          "request": {
            "$ref": "Characteristic"
          },
          "response": {
            "$ref": "Characteristic"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic"
          ]
        },
        "list": {
          "id": "Characteristic.list",
          "path": "resources/characteristic",
          "httpMethod": "GET",
          "description": "Returns a list of Characteristic records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Characteristic"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic",
            "https://mobile.xtuple.com/dogfood/auth/characteristic.readonly"
          ]
        },
        "listhead": {
          "id": "Characteristic.listhead",
          "path": "resources/characteristic",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Characteristic records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic",
            "https://mobile.xtuple.com/dogfood/auth/characteristic.readonly"
          ]
        },
        "patch": {
          "id": "Characteristic.patch",
          "path": "resources/characteristic/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Characteristic record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Characteristic"
          },
          "response": {
            "$ref": "Characteristic"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/characteristic"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "ClassCode": {
      "methods": {
        "delete": {
          "id": "ClassCode.delete",
          "path": "resources/class-code/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ClassCode record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "ClassCode.get",
          "path": "resources/class-code/{code}",
          "httpMethod": "GET",
          "description": "Gets a single ClassCode record.",
          "response": {
            "$ref": "ClassCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code",
            "https://mobile.xtuple.com/dogfood/auth/class-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "ClassCode.head",
          "path": "resources/class-code/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ClassCode record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code",
            "https://mobile.xtuple.com/dogfood/auth/class-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "ClassCode.insert",
          "path": "resources/class-code",
          "httpMethod": "POST",
          "description": "Add a single ClassCode record.",
          "request": {
            "$ref": "ClassCode"
          },
          "response": {
            "$ref": "ClassCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code"
          ]
        },
        "list": {
          "id": "ClassCode.list",
          "path": "resources/class-code",
          "httpMethod": "GET",
          "description": "Returns a list of ClassCode records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ClassCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code",
            "https://mobile.xtuple.com/dogfood/auth/class-code.readonly"
          ]
        },
        "listhead": {
          "id": "ClassCode.listhead",
          "path": "resources/class-code",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ClassCode records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code",
            "https://mobile.xtuple.com/dogfood/auth/class-code.readonly"
          ]
        },
        "patch": {
          "id": "ClassCode.patch",
          "path": "resources/class-code/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ClassCode record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ClassCode"
          },
          "response": {
            "$ref": "ClassCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/class-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "CommentType": {
      "methods": {
        "delete": {
          "id": "CommentType.delete",
          "path": "resources/comment-type/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CommentType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "CommentType.get",
          "path": "resources/comment-type/{name}",
          "httpMethod": "GET",
          "description": "Gets a single CommentType record.",
          "response": {
            "$ref": "CommentType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type",
            "https://mobile.xtuple.com/dogfood/auth/comment-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "CommentType.head",
          "path": "resources/comment-type/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CommentType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type",
            "https://mobile.xtuple.com/dogfood/auth/comment-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "CommentType.insert",
          "path": "resources/comment-type",
          "httpMethod": "POST",
          "description": "Add a single CommentType record.",
          "request": {
            "$ref": "CommentType"
          },
          "response": {
            "$ref": "CommentType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type"
          ]
        },
        "list": {
          "id": "CommentType.list",
          "path": "resources/comment-type",
          "httpMethod": "GET",
          "description": "Returns a list of CommentType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CommentType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type",
            "https://mobile.xtuple.com/dogfood/auth/comment-type.readonly"
          ]
        },
        "listhead": {
          "id": "CommentType.listhead",
          "path": "resources/comment-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CommentType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type",
            "https://mobile.xtuple.com/dogfood/auth/comment-type.readonly"
          ]
        },
        "patch": {
          "id": "CommentType.patch",
          "path": "resources/comment-type/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CommentType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CommentType"
          },
          "response": {
            "$ref": "CommentType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/comment-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "Contact": {
      "methods": {
        "delete": {
          "id": "Contact.delete",
          "path": "resources/contact/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Contact record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Contact.get",
          "path": "resources/contact/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Contact record.",
          "response": {
            "$ref": "Contact"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact",
            "https://mobile.xtuple.com/dogfood/auth/contact.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Contact.head",
          "path": "resources/contact/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Contact record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact",
            "https://mobile.xtuple.com/dogfood/auth/contact.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Contact.insert",
          "path": "resources/contact",
          "httpMethod": "POST",
          "description": "Add a single Contact record.",
          "request": {
            "$ref": "Contact"
          },
          "response": {
            "$ref": "Contact"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact"
          ]
        },
        "list": {
          "id": "Contact.list",
          "path": "resources/contact",
          "httpMethod": "GET",
          "description": "Returns a list of Contact records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ContactListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact",
            "https://mobile.xtuple.com/dogfood/auth/contact.readonly"
          ]
        },
        "listhead": {
          "id": "Contact.listhead",
          "path": "resources/contact",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Contact records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact",
            "https://mobile.xtuple.com/dogfood/auth/contact.readonly"
          ]
        },
        "patch": {
          "id": "Contact.patch",
          "path": "resources/contact/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Contact record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Contact"
          },
          "response": {
            "$ref": "Contact"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ContactInfo": {
      "methods": {
        "delete": {
          "id": "ContactInfo.delete",
          "path": "resources/contact-info/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ContactInfo record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "ContactInfo.get",
          "path": "resources/contact-info/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ContactInfo record.",
          "response": {
            "$ref": "ContactInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info",
            "https://mobile.xtuple.com/dogfood/auth/contact-info.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ContactInfo.head",
          "path": "resources/contact-info/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ContactInfo record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info",
            "https://mobile.xtuple.com/dogfood/auth/contact-info.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "ContactInfo.insert",
          "path": "resources/contact-info",
          "httpMethod": "POST",
          "description": "Add a single ContactInfo record.",
          "request": {
            "$ref": "ContactInfo"
          },
          "response": {
            "$ref": "ContactInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info"
          ]
        },
        "list": {
          "id": "ContactInfo.list",
          "path": "resources/contact-info",
          "httpMethod": "GET",
          "description": "Returns a list of ContactInfo records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ContactInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info",
            "https://mobile.xtuple.com/dogfood/auth/contact-info.readonly"
          ]
        },
        "listhead": {
          "id": "ContactInfo.listhead",
          "path": "resources/contact-info",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ContactInfo records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info",
            "https://mobile.xtuple.com/dogfood/auth/contact-info.readonly"
          ]
        },
        "patch": {
          "id": "ContactInfo.patch",
          "path": "resources/contact-info/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ContactInfo record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ContactInfo"
          },
          "response": {
            "$ref": "ContactInfo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-info"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ContactListItem": {
      "methods": {
        "get": {
          "id": "ContactListItem.get",
          "path": "resources/contact-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ContactListItem record.",
          "response": {
            "$ref": "ContactListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ContactListItem.head",
          "path": "resources/contact-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ContactListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ContactListItem.list",
          "path": "resources/contact-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ContactListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ContactListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ContactListItem.listhead",
          "path": "resources/contact-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ContactListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item",
            "https://mobile.xtuple.com/dogfood/auth/contact-list-item.readonly"
          ]
        }
      }
    },
    "ContactRelation": {
      "methods": {
        "get": {
          "id": "ContactRelation.get",
          "path": "resources/contact-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ContactRelation record.",
          "response": {
            "$ref": "ContactRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ContactRelation.head",
          "path": "resources/contact-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ContactRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ContactRelation.list",
          "path": "resources/contact-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ContactRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ContactRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ContactRelation.listhead",
          "path": "resources/contact-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ContactRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation",
            "https://mobile.xtuple.com/dogfood/auth/contact-relation.readonly"
          ]
        }
      }
    },
    "CostCategory": {
      "methods": {
        "delete": {
          "id": "CostCategory.delete",
          "path": "resources/cost-category/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CostCategory record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "CostCategory.get",
          "path": "resources/cost-category/{code}",
          "httpMethod": "GET",
          "description": "Gets a single CostCategory record.",
          "response": {
            "$ref": "CostCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category",
            "https://mobile.xtuple.com/dogfood/auth/cost-category.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "CostCategory.head",
          "path": "resources/cost-category/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CostCategory record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category",
            "https://mobile.xtuple.com/dogfood/auth/cost-category.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "CostCategory.insert",
          "path": "resources/cost-category",
          "httpMethod": "POST",
          "description": "Add a single CostCategory record.",
          "request": {
            "$ref": "CostCategory"
          },
          "response": {
            "$ref": "CostCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category"
          ]
        },
        "list": {
          "id": "CostCategory.list",
          "path": "resources/cost-category",
          "httpMethod": "GET",
          "description": "Returns a list of CostCategory records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CostCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category",
            "https://mobile.xtuple.com/dogfood/auth/cost-category.readonly"
          ]
        },
        "listhead": {
          "id": "CostCategory.listhead",
          "path": "resources/cost-category",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CostCategory records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category",
            "https://mobile.xtuple.com/dogfood/auth/cost-category.readonly"
          ]
        },
        "patch": {
          "id": "CostCategory.patch",
          "path": "resources/cost-category/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CostCategory record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CostCategory"
          },
          "response": {
            "$ref": "CostCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/cost-category"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Country": {
      "methods": {
        "delete": {
          "id": "Country.delete",
          "path": "resources/country/{abbreviation}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Country record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "minLength": "2",
              "maxLength": "2",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "get": {
          "id": "Country.get",
          "path": "resources/country/{abbreviation}",
          "httpMethod": "GET",
          "description": "Gets a single Country record.",
          "response": {
            "$ref": "Country"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country",
            "https://mobile.xtuple.com/dogfood/auth/country.readonly"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "minLength": "2",
              "maxLength": "2",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "head": {
          "id": "Country.head",
          "path": "resources/country/{abbreviation}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Country record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country",
            "https://mobile.xtuple.com/dogfood/auth/country.readonly"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "minLength": "2",
              "maxLength": "2",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "insert": {
          "id": "Country.insert",
          "path": "resources/country",
          "httpMethod": "POST",
          "description": "Add a single Country record.",
          "request": {
            "$ref": "Country"
          },
          "response": {
            "$ref": "Country"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country"
          ]
        },
        "list": {
          "id": "Country.list",
          "path": "resources/country",
          "httpMethod": "GET",
          "description": "Returns a list of Country records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Country"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country",
            "https://mobile.xtuple.com/dogfood/auth/country.readonly"
          ]
        },
        "listhead": {
          "id": "Country.listhead",
          "path": "resources/country",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Country records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country",
            "https://mobile.xtuple.com/dogfood/auth/country.readonly"
          ]
        },
        "patch": {
          "id": "Country.patch",
          "path": "resources/country/{abbreviation}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Country record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Country"
          },
          "response": {
            "$ref": "Country"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/country"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "minLength": "2",
              "maxLength": "2",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        }
      }
    },
    "Currency": {
      "methods": {
        "delete": {
          "id": "Currency.delete",
          "path": "resources/currency/{abbreviation}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Currency record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "maxLength": "3",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "get": {
          "id": "Currency.get",
          "path": "resources/currency/{abbreviation}",
          "httpMethod": "GET",
          "description": "Gets a single Currency record.",
          "response": {
            "$ref": "Currency"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency",
            "https://mobile.xtuple.com/dogfood/auth/currency.readonly"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "maxLength": "3",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "head": {
          "id": "Currency.head",
          "path": "resources/currency/{abbreviation}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Currency record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency",
            "https://mobile.xtuple.com/dogfood/auth/currency.readonly"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "maxLength": "3",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "insert": {
          "id": "Currency.insert",
          "path": "resources/currency",
          "httpMethod": "POST",
          "description": "Add a single Currency record.",
          "request": {
            "$ref": "Currency"
          },
          "response": {
            "$ref": "Currency"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency"
          ]
        },
        "list": {
          "id": "Currency.list",
          "path": "resources/currency",
          "httpMethod": "GET",
          "description": "Returns a list of Currency records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Currency"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency",
            "https://mobile.xtuple.com/dogfood/auth/currency.readonly"
          ]
        },
        "listhead": {
          "id": "Currency.listhead",
          "path": "resources/currency",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Currency records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency",
            "https://mobile.xtuple.com/dogfood/auth/currency.readonly"
          ]
        },
        "patch": {
          "id": "Currency.patch",
          "path": "resources/currency/{abbreviation}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Currency record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Currency"
          },
          "response": {
            "$ref": "Currency"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "maxLength": "3",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        }
      }
    },
    "CurrencyRate": {
      "methods": {
        "delete": {
          "id": "CurrencyRate.delete",
          "path": "resources/currency-rate/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CurrencyRate record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "CurrencyRate.get",
          "path": "resources/currency-rate/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single CurrencyRate record.",
          "response": {
            "$ref": "CurrencyRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "CurrencyRate.head",
          "path": "resources/currency-rate/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CurrencyRate record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "CurrencyRate.insert",
          "path": "resources/currency-rate",
          "httpMethod": "POST",
          "description": "Add a single CurrencyRate record.",
          "request": {
            "$ref": "CurrencyRate"
          },
          "response": {
            "$ref": "CurrencyRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate"
          ]
        },
        "list": {
          "id": "CurrencyRate.list",
          "path": "resources/currency-rate",
          "httpMethod": "GET",
          "description": "Returns a list of CurrencyRate records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CurrencyRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate.readonly"
          ]
        },
        "listhead": {
          "id": "CurrencyRate.listhead",
          "path": "resources/currency-rate",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CurrencyRate records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate.readonly"
          ]
        },
        "patch": {
          "id": "CurrencyRate.patch",
          "path": "resources/currency-rate/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CurrencyRate record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CurrencyRate"
          },
          "response": {
            "$ref": "CurrencyRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/currency-rate"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "Customer": {
      "methods": {
        "delete": {
          "id": "Customer.delete",
          "path": "resources/customer/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Customer record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Customer.get",
          "path": "resources/customer/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Customer record.",
          "response": {
            "$ref": "Customer"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer",
            "https://mobile.xtuple.com/dogfood/auth/customer.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Customer.head",
          "path": "resources/customer/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Customer record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer",
            "https://mobile.xtuple.com/dogfood/auth/customer.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Customer.insert",
          "path": "resources/customer",
          "httpMethod": "POST",
          "description": "Add a single Customer record.",
          "request": {
            "$ref": "Customer"
          },
          "response": {
            "$ref": "Customer"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer"
          ]
        },
        "list": {
          "id": "Customer.list",
          "path": "resources/customer",
          "httpMethod": "GET",
          "description": "Returns a list of Customer records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer",
            "https://mobile.xtuple.com/dogfood/auth/customer.readonly"
          ]
        },
        "listhead": {
          "id": "Customer.listhead",
          "path": "resources/customer",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Customer records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer",
            "https://mobile.xtuple.com/dogfood/auth/customer.readonly"
          ]
        },
        "patch": {
          "id": "Customer.patch",
          "path": "resources/customer/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Customer record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Customer"
          },
          "response": {
            "$ref": "Customer"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "itemPrice": {
          "id": "Customer.itemPrice",
          "path": "services/customer/item-price",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer"
          ],
          "description": "Perform an item price quote for a given Customer, Item, Qty, Ship To, Date and Warehouse.",
          "request": {
            "$ref": "ItemPrice"
          }
        }
      }
    },
    "CustomerEmailProfile": {
      "methods": {
        "delete": {
          "id": "CustomerEmailProfile.delete",
          "path": "resources/customer-email-profile/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CustomerEmailProfile record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "CustomerEmailProfile.get",
          "path": "resources/customer-email-profile/{name}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerEmailProfile record.",
          "response": {
            "$ref": "CustomerEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "CustomerEmailProfile.head",
          "path": "resources/customer-email-profile/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerEmailProfile record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "CustomerEmailProfile.insert",
          "path": "resources/customer-email-profile",
          "httpMethod": "POST",
          "description": "Add a single CustomerEmailProfile record.",
          "request": {
            "$ref": "CustomerEmailProfile"
          },
          "response": {
            "$ref": "CustomerEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile"
          ]
        },
        "list": {
          "id": "CustomerEmailProfile.list",
          "path": "resources/customer-email-profile",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerEmailProfile records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerEmailProfile.listhead",
          "path": "resources/customer-email-profile",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerEmailProfile records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile.readonly"
          ]
        },
        "patch": {
          "id": "CustomerEmailProfile.patch",
          "path": "resources/customer-email-profile/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CustomerEmailProfile record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CustomerEmailProfile"
          },
          "response": {
            "$ref": "CustomerEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "CustomerGroup": {
      "methods": {
        "delete": {
          "id": "CustomerGroup.delete",
          "path": "resources/customer-group/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CustomerGroup record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "CustomerGroup.get",
          "path": "resources/customer-group/{name}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerGroup record.",
          "response": {
            "$ref": "CustomerGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group",
            "https://mobile.xtuple.com/dogfood/auth/customer-group.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "CustomerGroup.head",
          "path": "resources/customer-group/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerGroup record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group",
            "https://mobile.xtuple.com/dogfood/auth/customer-group.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "CustomerGroup.insert",
          "path": "resources/customer-group",
          "httpMethod": "POST",
          "description": "Add a single CustomerGroup record.",
          "request": {
            "$ref": "CustomerGroup"
          },
          "response": {
            "$ref": "CustomerGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group"
          ]
        },
        "list": {
          "id": "CustomerGroup.list",
          "path": "resources/customer-group",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerGroup records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group",
            "https://mobile.xtuple.com/dogfood/auth/customer-group.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerGroup.listhead",
          "path": "resources/customer-group",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerGroup records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group",
            "https://mobile.xtuple.com/dogfood/auth/customer-group.readonly"
          ]
        },
        "patch": {
          "id": "CustomerGroup.patch",
          "path": "resources/customer-group/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CustomerGroup record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CustomerGroup"
          },
          "response": {
            "$ref": "CustomerGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-group"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "CustomerListItem": {
      "methods": {
        "get": {
          "id": "CustomerListItem.get",
          "path": "resources/customer-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerListItem record.",
          "response": {
            "$ref": "CustomerListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CustomerListItem.head",
          "path": "resources/customer-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "CustomerListItem.list",
          "path": "resources/customer-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerListItem.listhead",
          "path": "resources/customer-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-list-item.readonly"
          ]
        }
      }
    },
    "CustomerProspectListItem": {
      "methods": {
        "get": {
          "id": "CustomerProspectListItem.get",
          "path": "resources/customer-prospect-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerProspectListItem record.",
          "response": {
            "$ref": "CustomerProspectListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CustomerProspectListItem.head",
          "path": "resources/customer-prospect-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerProspectListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "CustomerProspectListItem.list",
          "path": "resources/customer-prospect-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerProspectListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerProspectListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerProspectListItem.listhead",
          "path": "resources/customer-prospect-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerProspectListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-list-item.readonly"
          ]
        }
      }
    },
    "CustomerProspectRelation": {
      "methods": {
        "get": {
          "id": "CustomerProspectRelation.get",
          "path": "resources/customer-prospect-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerProspectRelation record.",
          "response": {
            "$ref": "CustomerProspectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CustomerProspectRelation.head",
          "path": "resources/customer-prospect-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerProspectRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "CustomerProspectRelation.list",
          "path": "resources/customer-prospect-relation",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerProspectRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerProspectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerProspectRelation.listhead",
          "path": "resources/customer-prospect-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerProspectRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-prospect-relation.readonly"
          ]
        }
      }
    },
    "CustomerRelation": {
      "methods": {
        "get": {
          "id": "CustomerRelation.get",
          "path": "resources/customer-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerRelation record.",
          "response": {
            "$ref": "CustomerRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "CustomerRelation.head",
          "path": "resources/customer-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "CustomerRelation.list",
          "path": "resources/customer-relation",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerRelation.listhead",
          "path": "resources/customer-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-relation.readonly"
          ]
        }
      }
    },
    "CustomerShiptoRelation": {
      "methods": {
        "get": {
          "id": "CustomerShiptoRelation.get",
          "path": "resources/customer-shipto-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerShiptoRelation record.",
          "response": {
            "$ref": "CustomerShiptoRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "CustomerShiptoRelation.head",
          "path": "resources/customer-shipto-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerShiptoRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "CustomerShiptoRelation.list",
          "path": "resources/customer-shipto-relation",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerShiptoRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerShiptoRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerShiptoRelation.listhead",
          "path": "resources/customer-shipto-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerShiptoRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/customer-shipto-relation.readonly"
          ]
        }
      }
    },
    "CustomerType": {
      "methods": {
        "delete": {
          "id": "CustomerType.delete",
          "path": "resources/customer-type/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single CustomerType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "CustomerType.get",
          "path": "resources/customer-type/{code}",
          "httpMethod": "GET",
          "description": "Gets a single CustomerType record.",
          "response": {
            "$ref": "CustomerType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type",
            "https://mobile.xtuple.com/dogfood/auth/customer-type.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "CustomerType.head",
          "path": "resources/customer-type/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single CustomerType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type",
            "https://mobile.xtuple.com/dogfood/auth/customer-type.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "CustomerType.insert",
          "path": "resources/customer-type",
          "httpMethod": "POST",
          "description": "Add a single CustomerType record.",
          "request": {
            "$ref": "CustomerType"
          },
          "response": {
            "$ref": "CustomerType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type"
          ]
        },
        "list": {
          "id": "CustomerType.list",
          "path": "resources/customer-type",
          "httpMethod": "GET",
          "description": "Returns a list of CustomerType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "CustomerType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type",
            "https://mobile.xtuple.com/dogfood/auth/customer-type.readonly"
          ]
        },
        "listhead": {
          "id": "CustomerType.listhead",
          "path": "resources/customer-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of CustomerType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type",
            "https://mobile.xtuple.com/dogfood/auth/customer-type.readonly"
          ]
        },
        "patch": {
          "id": "CustomerType.patch",
          "path": "resources/customer-type/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single CustomerType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "CustomerType"
          },
          "response": {
            "$ref": "CustomerType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/customer-type"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Department": {
      "methods": {
        "delete": {
          "id": "Department.delete",
          "path": "resources/department/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Department record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Department.get",
          "path": "resources/department/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Department record.",
          "response": {
            "$ref": "Department"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department",
            "https://mobile.xtuple.com/dogfood/auth/department.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Department.head",
          "path": "resources/department/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Department record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department",
            "https://mobile.xtuple.com/dogfood/auth/department.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Department.insert",
          "path": "resources/department",
          "httpMethod": "POST",
          "description": "Add a single Department record.",
          "request": {
            "$ref": "Department"
          },
          "response": {
            "$ref": "Department"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department"
          ]
        },
        "list": {
          "id": "Department.list",
          "path": "resources/department",
          "httpMethod": "GET",
          "description": "Returns a list of Department records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Department"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department",
            "https://mobile.xtuple.com/dogfood/auth/department.readonly"
          ]
        },
        "listhead": {
          "id": "Department.listhead",
          "path": "resources/department",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Department records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department",
            "https://mobile.xtuple.com/dogfood/auth/department.readonly"
          ]
        },
        "patch": {
          "id": "Department.patch",
          "path": "resources/department/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Department record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Department"
          },
          "response": {
            "$ref": "Department"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/department"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "Employee": {
      "methods": {
        "delete": {
          "id": "Employee.delete",
          "path": "resources/employee/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Employee record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "Employee.get",
          "path": "resources/employee/{code}",
          "httpMethod": "GET",
          "description": "Gets a single Employee record.",
          "response": {
            "$ref": "Employee"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee",
            "https://mobile.xtuple.com/dogfood/auth/employee.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "Employee.head",
          "path": "resources/employee/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Employee record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee",
            "https://mobile.xtuple.com/dogfood/auth/employee.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "Employee.insert",
          "path": "resources/employee",
          "httpMethod": "POST",
          "description": "Add a single Employee record.",
          "request": {
            "$ref": "Employee"
          },
          "response": {
            "$ref": "Employee"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee"
          ]
        },
        "list": {
          "id": "Employee.list",
          "path": "resources/employee",
          "httpMethod": "GET",
          "description": "Returns a list of Employee records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Employee"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee",
            "https://mobile.xtuple.com/dogfood/auth/employee.readonly"
          ]
        },
        "listhead": {
          "id": "Employee.listhead",
          "path": "resources/employee",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Employee records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee",
            "https://mobile.xtuple.com/dogfood/auth/employee.readonly"
          ]
        },
        "patch": {
          "id": "Employee.patch",
          "path": "resources/employee/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Employee record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Employee"
          },
          "response": {
            "$ref": "Employee"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "EmployeeEmployeeRelation": {
      "methods": {
        "get": {
          "id": "EmployeeEmployeeRelation.get",
          "path": "resources/employee-employee-relation/{code}",
          "httpMethod": "GET",
          "description": "Gets a single EmployeeEmployeeRelation record.",
          "response": {
            "$ref": "EmployeeEmployeeRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "EmployeeEmployeeRelation.head",
          "path": "resources/employee-employee-relation/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single EmployeeEmployeeRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "list": {
          "id": "EmployeeEmployeeRelation.list",
          "path": "resources/employee-employee-relation",
          "httpMethod": "GET",
          "description": "Returns a list of EmployeeEmployeeRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "EmployeeEmployeeRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation.readonly"
          ]
        },
        "listhead": {
          "id": "EmployeeEmployeeRelation.listhead",
          "path": "resources/employee-employee-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of EmployeeEmployeeRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-employee-relation.readonly"
          ]
        }
      }
    },
    "EmployeeGroup": {
      "methods": {
        "delete": {
          "id": "EmployeeGroup.delete",
          "path": "resources/employee-group/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single EmployeeGroup record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "EmployeeGroup.get",
          "path": "resources/employee-group/{name}",
          "httpMethod": "GET",
          "description": "Gets a single EmployeeGroup record.",
          "response": {
            "$ref": "EmployeeGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group",
            "https://mobile.xtuple.com/dogfood/auth/employee-group.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "EmployeeGroup.head",
          "path": "resources/employee-group/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single EmployeeGroup record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group",
            "https://mobile.xtuple.com/dogfood/auth/employee-group.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "EmployeeGroup.insert",
          "path": "resources/employee-group",
          "httpMethod": "POST",
          "description": "Add a single EmployeeGroup record.",
          "request": {
            "$ref": "EmployeeGroup"
          },
          "response": {
            "$ref": "EmployeeGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group"
          ]
        },
        "list": {
          "id": "EmployeeGroup.list",
          "path": "resources/employee-group",
          "httpMethod": "GET",
          "description": "Returns a list of EmployeeGroup records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "EmployeeGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group",
            "https://mobile.xtuple.com/dogfood/auth/employee-group.readonly"
          ]
        },
        "listhead": {
          "id": "EmployeeGroup.listhead",
          "path": "resources/employee-group",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of EmployeeGroup records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group",
            "https://mobile.xtuple.com/dogfood/auth/employee-group.readonly"
          ]
        },
        "patch": {
          "id": "EmployeeGroup.patch",
          "path": "resources/employee-group/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single EmployeeGroup record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "EmployeeGroup"
          },
          "response": {
            "$ref": "EmployeeGroup"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-group"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "EmployeeRelation": {
      "methods": {
        "get": {
          "id": "EmployeeRelation.get",
          "path": "resources/employee-relation/{code}",
          "httpMethod": "GET",
          "description": "Gets a single EmployeeRelation record.",
          "response": {
            "$ref": "EmployeeRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "EmployeeRelation.head",
          "path": "resources/employee-relation/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single EmployeeRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Short, human-readable name for employee. This value is kept synchronized with usr_username and salesrep_number, and so is unique across all three tables emp, usr, and salesrep.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "list": {
          "id": "EmployeeRelation.list",
          "path": "resources/employee-relation",
          "httpMethod": "GET",
          "description": "Returns a list of EmployeeRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "EmployeeRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation.readonly"
          ]
        },
        "listhead": {
          "id": "EmployeeRelation.listhead",
          "path": "resources/employee-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of EmployeeRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation",
            "https://mobile.xtuple.com/dogfood/auth/employee-relation.readonly"
          ]
        }
      }
    },
    "ExpenseCategory": {
      "methods": {
        "delete": {
          "id": "ExpenseCategory.delete",
          "path": "resources/expense-category/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ExpenseCategory record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "ExpenseCategory.get",
          "path": "resources/expense-category/{code}",
          "httpMethod": "GET",
          "description": "Gets a single ExpenseCategory record.",
          "response": {
            "$ref": "ExpenseCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category",
            "https://mobile.xtuple.com/dogfood/auth/expense-category.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "ExpenseCategory.head",
          "path": "resources/expense-category/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ExpenseCategory record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category",
            "https://mobile.xtuple.com/dogfood/auth/expense-category.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "ExpenseCategory.insert",
          "path": "resources/expense-category",
          "httpMethod": "POST",
          "description": "Add a single ExpenseCategory record.",
          "request": {
            "$ref": "ExpenseCategory"
          },
          "response": {
            "$ref": "ExpenseCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category"
          ]
        },
        "list": {
          "id": "ExpenseCategory.list",
          "path": "resources/expense-category",
          "httpMethod": "GET",
          "description": "Returns a list of ExpenseCategory records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ExpenseCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category",
            "https://mobile.xtuple.com/dogfood/auth/expense-category.readonly"
          ]
        },
        "listhead": {
          "id": "ExpenseCategory.listhead",
          "path": "resources/expense-category",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ExpenseCategory records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category",
            "https://mobile.xtuple.com/dogfood/auth/expense-category.readonly"
          ]
        },
        "patch": {
          "id": "ExpenseCategory.patch",
          "path": "resources/expense-category/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ExpenseCategory record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ExpenseCategory"
          },
          "response": {
            "$ref": "ExpenseCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/expense-category"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "File": {
      "methods": {
        "delete": {
          "id": "File.delete",
          "path": "resources/file/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single File record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "File.get",
          "path": "resources/file/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single File record.",
          "response": {
            "$ref": "File"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file",
            "https://mobile.xtuple.com/dogfood/auth/file.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "File.head",
          "path": "resources/file/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single File record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file",
            "https://mobile.xtuple.com/dogfood/auth/file.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "File.insert",
          "path": "resources/file",
          "httpMethod": "POST",
          "description": "Add a single File record.",
          "request": {
            "$ref": "File"
          },
          "response": {
            "$ref": "File"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file"
          ]
        },
        "list": {
          "id": "File.list",
          "path": "resources/file",
          "httpMethod": "GET",
          "description": "Returns a list of File records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "File"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file",
            "https://mobile.xtuple.com/dogfood/auth/file.readonly"
          ]
        },
        "listhead": {
          "id": "File.listhead",
          "path": "resources/file",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of File records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file",
            "https://mobile.xtuple.com/dogfood/auth/file.readonly"
          ]
        },
        "patch": {
          "id": "File.patch",
          "path": "resources/file/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single File record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "File"
          },
          "response": {
            "$ref": "File"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "FileRelation": {
      "methods": {
        "get": {
          "id": "FileRelation.get",
          "path": "resources/file-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single FileRelation record.",
          "response": {
            "$ref": "FileRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file-relation",
            "https://mobile.xtuple.com/dogfood/auth/file-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "FileRelation.head",
          "path": "resources/file-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single FileRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file-relation",
            "https://mobile.xtuple.com/dogfood/auth/file-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "FileRelation.list",
          "path": "resources/file-relation",
          "httpMethod": "GET",
          "description": "Returns a list of FileRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "FileRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file-relation",
            "https://mobile.xtuple.com/dogfood/auth/file-relation.readonly"
          ]
        },
        "listhead": {
          "id": "FileRelation.listhead",
          "path": "resources/file-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of FileRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/file-relation",
            "https://mobile.xtuple.com/dogfood/auth/file-relation.readonly"
          ]
        }
      }
    },
    "FreightClass": {
      "methods": {
        "delete": {
          "id": "FreightClass.delete",
          "path": "resources/freight-class/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single FreightClass record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "FreightClass.get",
          "path": "resources/freight-class/{code}",
          "httpMethod": "GET",
          "description": "Gets a single FreightClass record.",
          "response": {
            "$ref": "FreightClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class",
            "https://mobile.xtuple.com/dogfood/auth/freight-class.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "FreightClass.head",
          "path": "resources/freight-class/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single FreightClass record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class",
            "https://mobile.xtuple.com/dogfood/auth/freight-class.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "FreightClass.insert",
          "path": "resources/freight-class",
          "httpMethod": "POST",
          "description": "Add a single FreightClass record.",
          "request": {
            "$ref": "FreightClass"
          },
          "response": {
            "$ref": "FreightClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class"
          ]
        },
        "list": {
          "id": "FreightClass.list",
          "path": "resources/freight-class",
          "httpMethod": "GET",
          "description": "Returns a list of FreightClass records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "FreightClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class",
            "https://mobile.xtuple.com/dogfood/auth/freight-class.readonly"
          ]
        },
        "listhead": {
          "id": "FreightClass.listhead",
          "path": "resources/freight-class",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of FreightClass records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class",
            "https://mobile.xtuple.com/dogfood/auth/freight-class.readonly"
          ]
        },
        "patch": {
          "id": "FreightClass.patch",
          "path": "resources/freight-class/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single FreightClass record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "FreightClass"
          },
          "response": {
            "$ref": "FreightClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/freight-class"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Honorific": {
      "methods": {
        "delete": {
          "id": "Honorific.delete",
          "path": "resources/honorific/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Honorific record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "Honorific.get",
          "path": "resources/honorific/{code}",
          "httpMethod": "GET",
          "description": "Gets a single Honorific record.",
          "response": {
            "$ref": "Honorific"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific",
            "https://mobile.xtuple.com/dogfood/auth/honorific.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "Honorific.head",
          "path": "resources/honorific/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Honorific record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific",
            "https://mobile.xtuple.com/dogfood/auth/honorific.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "Honorific.insert",
          "path": "resources/honorific",
          "httpMethod": "POST",
          "description": "Add a single Honorific record.",
          "request": {
            "$ref": "Honorific"
          },
          "response": {
            "$ref": "Honorific"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific"
          ]
        },
        "list": {
          "id": "Honorific.list",
          "path": "resources/honorific",
          "httpMethod": "GET",
          "description": "Returns a list of Honorific records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Honorific"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific",
            "https://mobile.xtuple.com/dogfood/auth/honorific.readonly"
          ]
        },
        "listhead": {
          "id": "Honorific.listhead",
          "path": "resources/honorific",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Honorific records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific",
            "https://mobile.xtuple.com/dogfood/auth/honorific.readonly"
          ]
        },
        "patch": {
          "id": "Honorific.patch",
          "path": "resources/honorific/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Honorific record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Honorific"
          },
          "response": {
            "$ref": "Honorific"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/honorific"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Incident": {
      "methods": {
        "delete": {
          "id": "Incident.delete",
          "path": "resources/incident/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Incident record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Incident.get",
          "path": "resources/incident/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Incident record.",
          "response": {
            "$ref": "Incident"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident",
            "https://mobile.xtuple.com/dogfood/auth/incident.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Incident.head",
          "path": "resources/incident/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Incident record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident",
            "https://mobile.xtuple.com/dogfood/auth/incident.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Incident.insert",
          "path": "resources/incident",
          "httpMethod": "POST",
          "description": "Add a single Incident record.",
          "request": {
            "$ref": "Incident"
          },
          "response": {
            "$ref": "Incident"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident"
          ]
        },
        "list": {
          "id": "Incident.list",
          "path": "resources/incident",
          "httpMethod": "GET",
          "description": "Returns a list of Incident records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident",
            "https://mobile.xtuple.com/dogfood/auth/incident.readonly"
          ]
        },
        "listhead": {
          "id": "Incident.listhead",
          "path": "resources/incident",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Incident records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident",
            "https://mobile.xtuple.com/dogfood/auth/incident.readonly"
          ]
        },
        "patch": {
          "id": "Incident.patch",
          "path": "resources/incident/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Incident record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Incident"
          },
          "response": {
            "$ref": "Incident"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "IncidentCategory": {
      "methods": {
        "delete": {
          "id": "IncidentCategory.delete",
          "path": "resources/incident-category/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single IncidentCategory record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "IncidentCategory.get",
          "path": "resources/incident-category/{name}",
          "httpMethod": "GET",
          "description": "Gets a single IncidentCategory record.",
          "response": {
            "$ref": "IncidentCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category",
            "https://mobile.xtuple.com/dogfood/auth/incident-category.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "IncidentCategory.head",
          "path": "resources/incident-category/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single IncidentCategory record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category",
            "https://mobile.xtuple.com/dogfood/auth/incident-category.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "IncidentCategory.insert",
          "path": "resources/incident-category",
          "httpMethod": "POST",
          "description": "Add a single IncidentCategory record.",
          "request": {
            "$ref": "IncidentCategory"
          },
          "response": {
            "$ref": "IncidentCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category"
          ]
        },
        "list": {
          "id": "IncidentCategory.list",
          "path": "resources/incident-category",
          "httpMethod": "GET",
          "description": "Returns a list of IncidentCategory records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category",
            "https://mobile.xtuple.com/dogfood/auth/incident-category.readonly"
          ]
        },
        "listhead": {
          "id": "IncidentCategory.listhead",
          "path": "resources/incident-category",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of IncidentCategory records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category",
            "https://mobile.xtuple.com/dogfood/auth/incident-category.readonly"
          ]
        },
        "patch": {
          "id": "IncidentCategory.patch",
          "path": "resources/incident-category/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single IncidentCategory record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "IncidentCategory"
          },
          "response": {
            "$ref": "IncidentCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-category"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "IncidentEmailProfile": {
      "methods": {
        "delete": {
          "id": "IncidentEmailProfile.delete",
          "path": "resources/incident-email-profile/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single IncidentEmailProfile record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "IncidentEmailProfile.get",
          "path": "resources/incident-email-profile/{name}",
          "httpMethod": "GET",
          "description": "Gets a single IncidentEmailProfile record.",
          "response": {
            "$ref": "IncidentEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "IncidentEmailProfile.head",
          "path": "resources/incident-email-profile/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single IncidentEmailProfile record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "IncidentEmailProfile.insert",
          "path": "resources/incident-email-profile",
          "httpMethod": "POST",
          "description": "Add a single IncidentEmailProfile record.",
          "request": {
            "$ref": "IncidentEmailProfile"
          },
          "response": {
            "$ref": "IncidentEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile"
          ]
        },
        "list": {
          "id": "IncidentEmailProfile.list",
          "path": "resources/incident-email-profile",
          "httpMethod": "GET",
          "description": "Returns a list of IncidentEmailProfile records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile.readonly"
          ]
        },
        "listhead": {
          "id": "IncidentEmailProfile.listhead",
          "path": "resources/incident-email-profile",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of IncidentEmailProfile records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile.readonly"
          ]
        },
        "patch": {
          "id": "IncidentEmailProfile.patch",
          "path": "resources/incident-email-profile/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single IncidentEmailProfile record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "IncidentEmailProfile"
          },
          "response": {
            "$ref": "IncidentEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "IncidentListItem": {
      "methods": {
        "get": {
          "id": "IncidentListItem.get",
          "path": "resources/incident-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single IncidentListItem record.",
          "response": {
            "$ref": "IncidentListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "IncidentListItem.head",
          "path": "resources/incident-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single IncidentListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "IncidentListItem.list",
          "path": "resources/incident-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of IncidentListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "IncidentListItem.listhead",
          "path": "resources/incident-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of IncidentListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item",
            "https://mobile.xtuple.com/dogfood/auth/incident-list-item.readonly"
          ]
        }
      }
    },
    "IncidentRelation": {
      "methods": {
        "get": {
          "id": "IncidentRelation.get",
          "path": "resources/incident-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single IncidentRelation record.",
          "response": {
            "$ref": "IncidentRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "IncidentRelation.head",
          "path": "resources/incident-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single IncidentRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "IncidentRelation.list",
          "path": "resources/incident-relation",
          "httpMethod": "GET",
          "description": "Returns a list of IncidentRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation.readonly"
          ]
        },
        "listhead": {
          "id": "IncidentRelation.listhead",
          "path": "resources/incident-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of IncidentRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation",
            "https://mobile.xtuple.com/dogfood/auth/incident-relation.readonly"
          ]
        }
      }
    },
    "IncidentResolution": {
      "methods": {
        "delete": {
          "id": "IncidentResolution.delete",
          "path": "resources/incident-resolution/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single IncidentResolution record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "IncidentResolution.get",
          "path": "resources/incident-resolution/{name}",
          "httpMethod": "GET",
          "description": "Gets a single IncidentResolution record.",
          "response": {
            "$ref": "IncidentResolution"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "IncidentResolution.head",
          "path": "resources/incident-resolution/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single IncidentResolution record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "IncidentResolution.insert",
          "path": "resources/incident-resolution",
          "httpMethod": "POST",
          "description": "Add a single IncidentResolution record.",
          "request": {
            "$ref": "IncidentResolution"
          },
          "response": {
            "$ref": "IncidentResolution"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution"
          ]
        },
        "list": {
          "id": "IncidentResolution.list",
          "path": "resources/incident-resolution",
          "httpMethod": "GET",
          "description": "Returns a list of IncidentResolution records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentResolution"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution.readonly"
          ]
        },
        "listhead": {
          "id": "IncidentResolution.listhead",
          "path": "resources/incident-resolution",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of IncidentResolution records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution.readonly"
          ]
        },
        "patch": {
          "id": "IncidentResolution.patch",
          "path": "resources/incident-resolution/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single IncidentResolution record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "IncidentResolution"
          },
          "response": {
            "$ref": "IncidentResolution"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-resolution"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "IncidentSeverity": {
      "methods": {
        "delete": {
          "id": "IncidentSeverity.delete",
          "path": "resources/incident-severity/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single IncidentSeverity record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "IncidentSeverity.get",
          "path": "resources/incident-severity/{name}",
          "httpMethod": "GET",
          "description": "Gets a single IncidentSeverity record.",
          "response": {
            "$ref": "IncidentSeverity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "IncidentSeverity.head",
          "path": "resources/incident-severity/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single IncidentSeverity record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "IncidentSeverity.insert",
          "path": "resources/incident-severity",
          "httpMethod": "POST",
          "description": "Add a single IncidentSeverity record.",
          "request": {
            "$ref": "IncidentSeverity"
          },
          "response": {
            "$ref": "IncidentSeverity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity"
          ]
        },
        "list": {
          "id": "IncidentSeverity.list",
          "path": "resources/incident-severity",
          "httpMethod": "GET",
          "description": "Returns a list of IncidentSeverity records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "IncidentSeverity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity.readonly"
          ]
        },
        "listhead": {
          "id": "IncidentSeverity.listhead",
          "path": "resources/incident-severity",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of IncidentSeverity records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity.readonly"
          ]
        },
        "patch": {
          "id": "IncidentSeverity.patch",
          "path": "resources/incident-severity/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single IncidentSeverity record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "IncidentSeverity"
          },
          "response": {
            "$ref": "IncidentSeverity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/incident-severity"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "Invoice": {
      "methods": {
        "delete": {
          "id": "Invoice.delete",
          "path": "resources/invoice/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Invoice record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Invoice.get",
          "path": "resources/invoice/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Invoice record.",
          "response": {
            "$ref": "Invoice"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice",
            "https://mobile.xtuple.com/dogfood/auth/invoice.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Invoice.head",
          "path": "resources/invoice/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Invoice record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice",
            "https://mobile.xtuple.com/dogfood/auth/invoice.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Invoice.insert",
          "path": "resources/invoice",
          "httpMethod": "POST",
          "description": "Add a single Invoice record.",
          "request": {
            "$ref": "Invoice"
          },
          "response": {
            "$ref": "Invoice"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice"
          ]
        },
        "list": {
          "id": "Invoice.list",
          "path": "resources/invoice",
          "httpMethod": "GET",
          "description": "Returns a list of Invoice records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice",
            "https://mobile.xtuple.com/dogfood/auth/invoice.readonly"
          ]
        },
        "listhead": {
          "id": "Invoice.listhead",
          "path": "resources/invoice",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Invoice records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice",
            "https://mobile.xtuple.com/dogfood/auth/invoice.readonly"
          ]
        },
        "patch": {
          "id": "Invoice.patch",
          "path": "resources/invoice/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Invoice record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Invoice"
          },
          "response": {
            "$ref": "Invoice"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "InvoiceAllocation": {
      "methods": {
        "delete": {
          "id": "InvoiceAllocation.delete",
          "path": "resources/invoice-allocation/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single InvoiceAllocation record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "InvoiceAllocation.get",
          "path": "resources/invoice-allocation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single InvoiceAllocation record.",
          "response": {
            "$ref": "InvoiceAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "InvoiceAllocation.head",
          "path": "resources/invoice-allocation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single InvoiceAllocation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "InvoiceAllocation.insert",
          "path": "resources/invoice-allocation",
          "httpMethod": "POST",
          "description": "Add a single InvoiceAllocation record.",
          "request": {
            "$ref": "InvoiceAllocation"
          },
          "response": {
            "$ref": "InvoiceAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation"
          ]
        },
        "list": {
          "id": "InvoiceAllocation.list",
          "path": "resources/invoice-allocation",
          "httpMethod": "GET",
          "description": "Returns a list of InvoiceAllocation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation.readonly"
          ]
        },
        "listhead": {
          "id": "InvoiceAllocation.listhead",
          "path": "resources/invoice-allocation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of InvoiceAllocation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation.readonly"
          ]
        },
        "patch": {
          "id": "InvoiceAllocation.patch",
          "path": "resources/invoice-allocation/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single InvoiceAllocation record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "InvoiceAllocation"
          },
          "response": {
            "$ref": "InvoiceAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-allocation"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "InvoiceLine": {
      "methods": {
        "delete": {
          "id": "InvoiceLine.delete",
          "path": "resources/invoice-line/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single InvoiceLine record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "InvoiceLine.get",
          "path": "resources/invoice-line/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single InvoiceLine record.",
          "response": {
            "$ref": "InvoiceLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "InvoiceLine.head",
          "path": "resources/invoice-line/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single InvoiceLine record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "InvoiceLine.insert",
          "path": "resources/invoice-line",
          "httpMethod": "POST",
          "description": "Add a single InvoiceLine record.",
          "request": {
            "$ref": "InvoiceLine"
          },
          "response": {
            "$ref": "InvoiceLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line"
          ]
        },
        "list": {
          "id": "InvoiceLine.list",
          "path": "resources/invoice-line",
          "httpMethod": "GET",
          "description": "Returns a list of InvoiceLine records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line.readonly"
          ]
        },
        "listhead": {
          "id": "InvoiceLine.listhead",
          "path": "resources/invoice-line",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of InvoiceLine records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line.readonly"
          ]
        },
        "patch": {
          "id": "InvoiceLine.patch",
          "path": "resources/invoice-line/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single InvoiceLine record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "InvoiceLine"
          },
          "response": {
            "$ref": "InvoiceLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "InvoiceLineTax": {
      "methods": {
        "delete": {
          "id": "InvoiceLineTax.delete",
          "path": "resources/invoice-line-tax/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single InvoiceLineTax record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "InvoiceLineTax.get",
          "path": "resources/invoice-line-tax/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single InvoiceLineTax record.",
          "response": {
            "$ref": "InvoiceLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "InvoiceLineTax.head",
          "path": "resources/invoice-line-tax/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single InvoiceLineTax record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "InvoiceLineTax.insert",
          "path": "resources/invoice-line-tax",
          "httpMethod": "POST",
          "description": "Add a single InvoiceLineTax record.",
          "request": {
            "$ref": "InvoiceLineTax"
          },
          "response": {
            "$ref": "InvoiceLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax"
          ]
        },
        "list": {
          "id": "InvoiceLineTax.list",
          "path": "resources/invoice-line-tax",
          "httpMethod": "GET",
          "description": "Returns a list of InvoiceLineTax records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax.readonly"
          ]
        },
        "listhead": {
          "id": "InvoiceLineTax.listhead",
          "path": "resources/invoice-line-tax",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of InvoiceLineTax records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax.readonly"
          ]
        },
        "patch": {
          "id": "InvoiceLineTax.patch",
          "path": "resources/invoice-line-tax/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single InvoiceLineTax record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "InvoiceLineTax"
          },
          "response": {
            "$ref": "InvoiceLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-line-tax"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "InvoiceListItem": {
      "methods": {
        "get": {
          "id": "InvoiceListItem.get",
          "path": "resources/invoice-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single InvoiceListItem record.",
          "response": {
            "$ref": "InvoiceListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "InvoiceListItem.head",
          "path": "resources/invoice-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single InvoiceListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "InvoiceListItem.list",
          "path": "resources/invoice-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of InvoiceListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "InvoiceListItem.listhead",
          "path": "resources/invoice-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of InvoiceListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item",
            "https://mobile.xtuple.com/dogfood/auth/invoice-list-item.readonly"
          ]
        }
      }
    },
    "InvoiceRelation": {
      "methods": {
        "get": {
          "id": "InvoiceRelation.get",
          "path": "resources/invoice-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single InvoiceRelation record.",
          "response": {
            "$ref": "InvoiceRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "InvoiceRelation.head",
          "path": "resources/invoice-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single InvoiceRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "InvoiceRelation.list",
          "path": "resources/invoice-relation",
          "httpMethod": "GET",
          "description": "Returns a list of InvoiceRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation.readonly"
          ]
        },
        "listhead": {
          "id": "InvoiceRelation.listhead",
          "path": "resources/invoice-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of InvoiceRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation",
            "https://mobile.xtuple.com/dogfood/auth/invoice-relation.readonly"
          ]
        }
      }
    },
    "InvoiceTax": {
      "methods": {
        "delete": {
          "id": "InvoiceTax.delete",
          "path": "resources/invoice-tax/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single InvoiceTax record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "InvoiceTax.get",
          "path": "resources/invoice-tax/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single InvoiceTax record.",
          "response": {
            "$ref": "InvoiceTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "InvoiceTax.head",
          "path": "resources/invoice-tax/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single InvoiceTax record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "InvoiceTax.insert",
          "path": "resources/invoice-tax",
          "httpMethod": "POST",
          "description": "Add a single InvoiceTax record.",
          "request": {
            "$ref": "InvoiceTax"
          },
          "response": {
            "$ref": "InvoiceTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax"
          ]
        },
        "list": {
          "id": "InvoiceTax.list",
          "path": "resources/invoice-tax",
          "httpMethod": "GET",
          "description": "Returns a list of InvoiceTax records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "InvoiceTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax.readonly"
          ]
        },
        "listhead": {
          "id": "InvoiceTax.listhead",
          "path": "resources/invoice-tax",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of InvoiceTax records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax.readonly"
          ]
        },
        "patch": {
          "id": "InvoiceTax.patch",
          "path": "resources/invoice-tax/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single InvoiceTax record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "InvoiceTax"
          },
          "response": {
            "$ref": "InvoiceTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/invoice-tax"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "Item": {
      "methods": {
        "delete": {
          "id": "Item.delete",
          "path": "resources/item/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Item record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Item.get",
          "path": "resources/item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Item record.",
          "response": {
            "$ref": "Item"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item",
            "https://mobile.xtuple.com/dogfood/auth/item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Item.head",
          "path": "resources/item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Item record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item",
            "https://mobile.xtuple.com/dogfood/auth/item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Item.insert",
          "path": "resources/item",
          "httpMethod": "POST",
          "description": "Add a single Item record.",
          "request": {
            "$ref": "Item"
          },
          "response": {
            "$ref": "Item"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item"
          ]
        },
        "list": {
          "id": "Item.list",
          "path": "resources/item",
          "httpMethod": "GET",
          "description": "Returns a list of Item records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item",
            "https://mobile.xtuple.com/dogfood/auth/item.readonly"
          ]
        },
        "listhead": {
          "id": "Item.listhead",
          "path": "resources/item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Item records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item",
            "https://mobile.xtuple.com/dogfood/auth/item.readonly"
          ]
        },
        "patch": {
          "id": "Item.patch",
          "path": "resources/item/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Item record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Item"
          },
          "response": {
            "$ref": "Item"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ItemItemSiteRelation": {
      "methods": {
        "get": {
          "id": "ItemItemSiteRelation.get",
          "path": "resources/item-item-site-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ItemItemSiteRelation record.",
          "response": {
            "$ref": "ItemItemSiteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ItemItemSiteRelation.head",
          "path": "resources/item-item-site-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ItemItemSiteRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ItemItemSiteRelation.list",
          "path": "resources/item-item-site-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ItemItemSiteRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemItemSiteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ItemItemSiteRelation.listhead",
          "path": "resources/item-item-site-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ItemItemSiteRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-item-site-relation.readonly"
          ]
        }
      }
    },
    "ItemListItem": {
      "methods": {
        "get": {
          "id": "ItemListItem.get",
          "path": "resources/item-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ItemListItem record.",
          "response": {
            "$ref": "ItemListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ItemListItem.head",
          "path": "resources/item-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ItemListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ItemListItem.list",
          "path": "resources/item-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ItemListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ItemListItem.listhead",
          "path": "resources/item-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ItemListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-list-item.readonly"
          ]
        }
      }
    },
    "ItemRelation": {
      "methods": {
        "get": {
          "id": "ItemRelation.get",
          "path": "resources/item-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ItemRelation record.",
          "response": {
            "$ref": "ItemRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ItemRelation.head",
          "path": "resources/item-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ItemRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ItemRelation.list",
          "path": "resources/item-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ItemRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ItemRelation.listhead",
          "path": "resources/item-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ItemRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-relation.readonly"
          ]
        }
      }
    },
    "ItemSite": {
      "methods": {
        "delete": {
          "id": "ItemSite.delete",
          "path": "resources/item-site/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ItemSite record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "ItemSite.get",
          "path": "resources/item-site/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ItemSite record.",
          "response": {
            "$ref": "ItemSite"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site",
            "https://mobile.xtuple.com/dogfood/auth/item-site.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ItemSite.head",
          "path": "resources/item-site/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ItemSite record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site",
            "https://mobile.xtuple.com/dogfood/auth/item-site.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "ItemSite.insert",
          "path": "resources/item-site",
          "httpMethod": "POST",
          "description": "Add a single ItemSite record.",
          "request": {
            "$ref": "ItemSite"
          },
          "response": {
            "$ref": "ItemSite"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site"
          ]
        },
        "list": {
          "id": "ItemSite.list",
          "path": "resources/item-site",
          "httpMethod": "GET",
          "description": "Returns a list of ItemSite records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemSiteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site",
            "https://mobile.xtuple.com/dogfood/auth/item-site.readonly"
          ]
        },
        "listhead": {
          "id": "ItemSite.listhead",
          "path": "resources/item-site",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ItemSite records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site",
            "https://mobile.xtuple.com/dogfood/auth/item-site.readonly"
          ]
        },
        "patch": {
          "id": "ItemSite.patch",
          "path": "resources/item-site/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ItemSite record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ItemSite"
          },
          "response": {
            "$ref": "ItemSite"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "ItemSiteListItem": {
      "methods": {
        "get": {
          "id": "ItemSiteListItem.get",
          "path": "resources/item-site-list-item/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ItemSiteListItem record.",
          "response": {
            "$ref": "ItemSiteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ItemSiteListItem.head",
          "path": "resources/item-site-list-item/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ItemSiteListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ItemSiteListItem.list",
          "path": "resources/item-site-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ItemSiteListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemSiteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ItemSiteListItem.listhead",
          "path": "resources/item-site-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ItemSiteListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item.readonly"
          ]
        },
        "restFetch": {
          "id": "ItemSiteListItem.restFetch",
          "path": "services/item-site-list-item/rest-fetch",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-list-item"
          ],
          "description": "Returns ItemSiteListItems with additional special support for exclusive item rules, to filter on only items with associated item sources and Cross check on `alias` and `barcode` attributes for item numbers.",
          "request": {
            "$ref": "ItemSiteListItemQuery"
          }
        }
      }
    },
    "ItemSiteRelation": {
      "methods": {
        "get": {
          "id": "ItemSiteRelation.get",
          "path": "resources/item-site-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ItemSiteRelation record.",
          "response": {
            "$ref": "ItemSiteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ItemSiteRelation.head",
          "path": "resources/item-site-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ItemSiteRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ItemSiteRelation.list",
          "path": "resources/item-site-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ItemSiteRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ItemSiteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ItemSiteRelation.listhead",
          "path": "resources/item-site-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ItemSiteRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation",
            "https://mobile.xtuple.com/dogfood/auth/item-site-relation.readonly"
          ]
        }
      }
    },
    "Language": {
      "methods": {
        "get": {
          "id": "Language.get",
          "path": "resources/language/{name}",
          "httpMethod": "GET",
          "description": "Gets a single Language record.",
          "response": {
            "$ref": "Language"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/language",
            "https://mobile.xtuple.com/dogfood/auth/language.readonly"
          ],
          "parameters": {
            "name": {
              "description": "Name of a human language, taken from the ISO 639-2 documentation",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "Language.head",
          "path": "resources/language/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Language record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/language",
            "https://mobile.xtuple.com/dogfood/auth/language.readonly"
          ],
          "parameters": {
            "name": {
              "description": "Name of a human language, taken from the ISO 639-2 documentation",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "list": {
          "id": "Language.list",
          "path": "resources/language",
          "httpMethod": "GET",
          "description": "Returns a list of Language records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Language"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/language",
            "https://mobile.xtuple.com/dogfood/auth/language.readonly"
          ]
        },
        "listhead": {
          "id": "Language.listhead",
          "path": "resources/language",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Language records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/language",
            "https://mobile.xtuple.com/dogfood/auth/language.readonly"
          ]
        }
      }
    },
    "Locale": {
      "methods": {
        "delete": {
          "id": "Locale.delete",
          "path": "resources/locale/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Locale record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "Locale.get",
          "path": "resources/locale/{code}",
          "httpMethod": "GET",
          "description": "Gets a single Locale record.",
          "response": {
            "$ref": "Locale"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale",
            "https://mobile.xtuple.com/dogfood/auth/locale.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "Locale.head",
          "path": "resources/locale/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Locale record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale",
            "https://mobile.xtuple.com/dogfood/auth/locale.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "Locale.insert",
          "path": "resources/locale",
          "httpMethod": "POST",
          "description": "Add a single Locale record.",
          "request": {
            "$ref": "Locale"
          },
          "response": {
            "$ref": "Locale"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale"
          ]
        },
        "list": {
          "id": "Locale.list",
          "path": "resources/locale",
          "httpMethod": "GET",
          "description": "Returns a list of Locale records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Locale"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale",
            "https://mobile.xtuple.com/dogfood/auth/locale.readonly"
          ]
        },
        "listhead": {
          "id": "Locale.listhead",
          "path": "resources/locale",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Locale records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale",
            "https://mobile.xtuple.com/dogfood/auth/locale.readonly"
          ]
        },
        "patch": {
          "id": "Locale.patch",
          "path": "resources/locale/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Locale record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Locale"
          },
          "response": {
            "$ref": "Locale"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/locale"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Opportunity": {
      "methods": {
        "delete": {
          "id": "Opportunity.delete",
          "path": "resources/opportunity/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Opportunity record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Opportunity.get",
          "path": "resources/opportunity/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Opportunity record.",
          "response": {
            "$ref": "Opportunity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity",
            "https://mobile.xtuple.com/dogfood/auth/opportunity.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Opportunity.head",
          "path": "resources/opportunity/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Opportunity record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity",
            "https://mobile.xtuple.com/dogfood/auth/opportunity.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Opportunity.insert",
          "path": "resources/opportunity",
          "httpMethod": "POST",
          "description": "Add a single Opportunity record.",
          "request": {
            "$ref": "Opportunity"
          },
          "response": {
            "$ref": "Opportunity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity"
          ]
        },
        "list": {
          "id": "Opportunity.list",
          "path": "resources/opportunity",
          "httpMethod": "GET",
          "description": "Returns a list of Opportunity records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "OpportunityListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity",
            "https://mobile.xtuple.com/dogfood/auth/opportunity.readonly"
          ]
        },
        "listhead": {
          "id": "Opportunity.listhead",
          "path": "resources/opportunity",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Opportunity records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity",
            "https://mobile.xtuple.com/dogfood/auth/opportunity.readonly"
          ]
        },
        "patch": {
          "id": "Opportunity.patch",
          "path": "resources/opportunity/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Opportunity record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Opportunity"
          },
          "response": {
            "$ref": "Opportunity"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "OpportunityListItem": {
      "methods": {
        "get": {
          "id": "OpportunityListItem.get",
          "path": "resources/opportunity-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single OpportunityListItem record.",
          "response": {
            "$ref": "OpportunityListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "OpportunityListItem.head",
          "path": "resources/opportunity-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single OpportunityListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "OpportunityListItem.list",
          "path": "resources/opportunity-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of OpportunityListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "OpportunityListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "OpportunityListItem.listhead",
          "path": "resources/opportunity-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of OpportunityListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-list-item.readonly"
          ]
        }
      }
    },
    "OpportunityRelation": {
      "methods": {
        "get": {
          "id": "OpportunityRelation.get",
          "path": "resources/opportunity-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single OpportunityRelation record.",
          "response": {
            "$ref": "OpportunityRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "OpportunityRelation.head",
          "path": "resources/opportunity-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single OpportunityRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "OpportunityRelation.list",
          "path": "resources/opportunity-relation",
          "httpMethod": "GET",
          "description": "Returns a list of OpportunityRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "OpportunityRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation.readonly"
          ]
        },
        "listhead": {
          "id": "OpportunityRelation.listhead",
          "path": "resources/opportunity-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of OpportunityRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-relation.readonly"
          ]
        }
      }
    },
    "OpportunitySource": {
      "methods": {
        "delete": {
          "id": "OpportunitySource.delete",
          "path": "resources/opportunity-source/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single OpportunitySource record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "OpportunitySource.get",
          "path": "resources/opportunity-source/{name}",
          "httpMethod": "GET",
          "description": "Gets a single OpportunitySource record.",
          "response": {
            "$ref": "OpportunitySource"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "OpportunitySource.head",
          "path": "resources/opportunity-source/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single OpportunitySource record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "OpportunitySource.insert",
          "path": "resources/opportunity-source",
          "httpMethod": "POST",
          "description": "Add a single OpportunitySource record.",
          "request": {
            "$ref": "OpportunitySource"
          },
          "response": {
            "$ref": "OpportunitySource"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source"
          ]
        },
        "list": {
          "id": "OpportunitySource.list",
          "path": "resources/opportunity-source",
          "httpMethod": "GET",
          "description": "Returns a list of OpportunitySource records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "OpportunitySource"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source.readonly"
          ]
        },
        "listhead": {
          "id": "OpportunitySource.listhead",
          "path": "resources/opportunity-source",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of OpportunitySource records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source.readonly"
          ]
        },
        "patch": {
          "id": "OpportunitySource.patch",
          "path": "resources/opportunity-source/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single OpportunitySource record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "OpportunitySource"
          },
          "response": {
            "$ref": "OpportunitySource"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-source"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "OpportunityStage": {
      "methods": {
        "delete": {
          "id": "OpportunityStage.delete",
          "path": "resources/opportunity-stage/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single OpportunityStage record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "OpportunityStage.get",
          "path": "resources/opportunity-stage/{name}",
          "httpMethod": "GET",
          "description": "Gets a single OpportunityStage record.",
          "response": {
            "$ref": "OpportunityStage"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "OpportunityStage.head",
          "path": "resources/opportunity-stage/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single OpportunityStage record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "OpportunityStage.insert",
          "path": "resources/opportunity-stage",
          "httpMethod": "POST",
          "description": "Add a single OpportunityStage record.",
          "request": {
            "$ref": "OpportunityStage"
          },
          "response": {
            "$ref": "OpportunityStage"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage"
          ]
        },
        "list": {
          "id": "OpportunityStage.list",
          "path": "resources/opportunity-stage",
          "httpMethod": "GET",
          "description": "Returns a list of OpportunityStage records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "OpportunityStage"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage.readonly"
          ]
        },
        "listhead": {
          "id": "OpportunityStage.listhead",
          "path": "resources/opportunity-stage",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of OpportunityStage records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage.readonly"
          ]
        },
        "patch": {
          "id": "OpportunityStage.patch",
          "path": "resources/opportunity-stage/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single OpportunityStage record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "OpportunityStage"
          },
          "response": {
            "$ref": "OpportunityStage"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-stage"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "OpportunityType": {
      "methods": {
        "delete": {
          "id": "OpportunityType.delete",
          "path": "resources/opportunity-type/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single OpportunityType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "OpportunityType.get",
          "path": "resources/opportunity-type/{name}",
          "httpMethod": "GET",
          "description": "Gets a single OpportunityType record.",
          "response": {
            "$ref": "OpportunityType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "OpportunityType.head",
          "path": "resources/opportunity-type/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single OpportunityType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "OpportunityType.insert",
          "path": "resources/opportunity-type",
          "httpMethod": "POST",
          "description": "Add a single OpportunityType record.",
          "request": {
            "$ref": "OpportunityType"
          },
          "response": {
            "$ref": "OpportunityType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type"
          ]
        },
        "list": {
          "id": "OpportunityType.list",
          "path": "resources/opportunity-type",
          "httpMethod": "GET",
          "description": "Returns a list of OpportunityType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "OpportunityType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type.readonly"
          ]
        },
        "listhead": {
          "id": "OpportunityType.listhead",
          "path": "resources/opportunity-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of OpportunityType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type.readonly"
          ]
        },
        "patch": {
          "id": "OpportunityType.patch",
          "path": "resources/opportunity-type/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single OpportunityType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "OpportunityType"
          },
          "response": {
            "$ref": "OpportunityType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/opportunity-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "PlannerCode": {
      "methods": {
        "delete": {
          "id": "PlannerCode.delete",
          "path": "resources/planner-code/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single PlannerCode record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "PlannerCode.get",
          "path": "resources/planner-code/{code}",
          "httpMethod": "GET",
          "description": "Gets a single PlannerCode record.",
          "response": {
            "$ref": "PlannerCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code",
            "https://mobile.xtuple.com/dogfood/auth/planner-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "PlannerCode.head",
          "path": "resources/planner-code/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single PlannerCode record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code",
            "https://mobile.xtuple.com/dogfood/auth/planner-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "PlannerCode.insert",
          "path": "resources/planner-code",
          "httpMethod": "POST",
          "description": "Add a single PlannerCode record.",
          "request": {
            "$ref": "PlannerCode"
          },
          "response": {
            "$ref": "PlannerCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code"
          ]
        },
        "list": {
          "id": "PlannerCode.list",
          "path": "resources/planner-code",
          "httpMethod": "GET",
          "description": "Returns a list of PlannerCode records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "PlannerCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code",
            "https://mobile.xtuple.com/dogfood/auth/planner-code.readonly"
          ]
        },
        "listhead": {
          "id": "PlannerCode.listhead",
          "path": "resources/planner-code",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of PlannerCode records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code",
            "https://mobile.xtuple.com/dogfood/auth/planner-code.readonly"
          ]
        },
        "patch": {
          "id": "PlannerCode.patch",
          "path": "resources/planner-code/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single PlannerCode record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "PlannerCode"
          },
          "response": {
            "$ref": "PlannerCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/planner-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Priority": {
      "methods": {
        "delete": {
          "id": "Priority.delete",
          "path": "resources/priority/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Priority record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "Priority.get",
          "path": "resources/priority/{name}",
          "httpMethod": "GET",
          "description": "Gets a single Priority record.",
          "response": {
            "$ref": "Priority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority",
            "https://mobile.xtuple.com/dogfood/auth/priority.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "Priority.head",
          "path": "resources/priority/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Priority record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority",
            "https://mobile.xtuple.com/dogfood/auth/priority.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "Priority.insert",
          "path": "resources/priority",
          "httpMethod": "POST",
          "description": "Add a single Priority record.",
          "request": {
            "$ref": "Priority"
          },
          "response": {
            "$ref": "Priority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority"
          ]
        },
        "list": {
          "id": "Priority.list",
          "path": "resources/priority",
          "httpMethod": "GET",
          "description": "Returns a list of Priority records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Priority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority",
            "https://mobile.xtuple.com/dogfood/auth/priority.readonly"
          ]
        },
        "listhead": {
          "id": "Priority.listhead",
          "path": "resources/priority",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Priority records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority",
            "https://mobile.xtuple.com/dogfood/auth/priority.readonly"
          ]
        },
        "patch": {
          "id": "Priority.patch",
          "path": "resources/priority/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Priority record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Priority"
          },
          "response": {
            "$ref": "Priority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/priority"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "Privilege": {
      "methods": {
        "get": {
          "id": "Privilege.get",
          "path": "resources/privilege/{name}",
          "httpMethod": "GET",
          "description": "Gets a single Privilege record.",
          "response": {
            "$ref": "Privilege"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/privilege",
            "https://mobile.xtuple.com/dogfood/auth/privilege.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "Privilege.head",
          "path": "resources/privilege/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Privilege record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/privilege",
            "https://mobile.xtuple.com/dogfood/auth/privilege.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "list": {
          "id": "Privilege.list",
          "path": "resources/privilege",
          "httpMethod": "GET",
          "description": "Returns a list of Privilege records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Privilege"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/privilege",
            "https://mobile.xtuple.com/dogfood/auth/privilege.readonly"
          ]
        },
        "listhead": {
          "id": "Privilege.listhead",
          "path": "resources/privilege",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Privilege records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/privilege",
            "https://mobile.xtuple.com/dogfood/auth/privilege.readonly"
          ]
        }
      }
    },
    "ProductCategory": {
      "methods": {
        "delete": {
          "id": "ProductCategory.delete",
          "path": "resources/product-category/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ProductCategory record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "ProductCategory.get",
          "path": "resources/product-category/{code}",
          "httpMethod": "GET",
          "description": "Gets a single ProductCategory record.",
          "response": {
            "$ref": "ProductCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category",
            "https://mobile.xtuple.com/dogfood/auth/product-category.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "ProductCategory.head",
          "path": "resources/product-category/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ProductCategory record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category",
            "https://mobile.xtuple.com/dogfood/auth/product-category.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "ProductCategory.insert",
          "path": "resources/product-category",
          "httpMethod": "POST",
          "description": "Add a single ProductCategory record.",
          "request": {
            "$ref": "ProductCategory"
          },
          "response": {
            "$ref": "ProductCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category"
          ]
        },
        "list": {
          "id": "ProductCategory.list",
          "path": "resources/product-category",
          "httpMethod": "GET",
          "description": "Returns a list of ProductCategory records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProductCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category",
            "https://mobile.xtuple.com/dogfood/auth/product-category.readonly"
          ]
        },
        "listhead": {
          "id": "ProductCategory.listhead",
          "path": "resources/product-category",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ProductCategory records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category",
            "https://mobile.xtuple.com/dogfood/auth/product-category.readonly"
          ]
        },
        "patch": {
          "id": "ProductCategory.patch",
          "path": "resources/product-category/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ProductCategory record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ProductCategory"
          },
          "response": {
            "$ref": "ProductCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/product-category"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Project": {
      "methods": {
        "delete": {
          "id": "Project.delete",
          "path": "resources/project/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Project record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Project.get",
          "path": "resources/project/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Project record.",
          "response": {
            "$ref": "Project"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project",
            "https://mobile.xtuple.com/dogfood/auth/project.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Project.head",
          "path": "resources/project/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Project record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project",
            "https://mobile.xtuple.com/dogfood/auth/project.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Project.insert",
          "path": "resources/project",
          "httpMethod": "POST",
          "description": "Add a single Project record.",
          "request": {
            "$ref": "Project"
          },
          "response": {
            "$ref": "Project"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project"
          ]
        },
        "list": {
          "id": "Project.list",
          "path": "resources/project",
          "httpMethod": "GET",
          "description": "Returns a list of Project records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProjectListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project",
            "https://mobile.xtuple.com/dogfood/auth/project.readonly"
          ]
        },
        "listhead": {
          "id": "Project.listhead",
          "path": "resources/project",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Project records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project",
            "https://mobile.xtuple.com/dogfood/auth/project.readonly"
          ]
        },
        "patch": {
          "id": "Project.patch",
          "path": "resources/project/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Project record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Project"
          },
          "response": {
            "$ref": "Project"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ProjectEmailProfile": {
      "methods": {
        "delete": {
          "id": "ProjectEmailProfile.delete",
          "path": "resources/project-email-profile/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ProjectEmailProfile record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "ProjectEmailProfile.get",
          "path": "resources/project-email-profile/{name}",
          "httpMethod": "GET",
          "description": "Gets a single ProjectEmailProfile record.",
          "response": {
            "$ref": "ProjectEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "ProjectEmailProfile.head",
          "path": "resources/project-email-profile/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ProjectEmailProfile record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "ProjectEmailProfile.insert",
          "path": "resources/project-email-profile",
          "httpMethod": "POST",
          "description": "Add a single ProjectEmailProfile record.",
          "request": {
            "$ref": "ProjectEmailProfile"
          },
          "response": {
            "$ref": "ProjectEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile"
          ]
        },
        "list": {
          "id": "ProjectEmailProfile.list",
          "path": "resources/project-email-profile",
          "httpMethod": "GET",
          "description": "Returns a list of ProjectEmailProfile records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProjectEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile.readonly"
          ]
        },
        "listhead": {
          "id": "ProjectEmailProfile.listhead",
          "path": "resources/project-email-profile",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ProjectEmailProfile records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile.readonly"
          ]
        },
        "patch": {
          "id": "ProjectEmailProfile.patch",
          "path": "resources/project-email-profile/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ProjectEmailProfile record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ProjectEmailProfile"
          },
          "response": {
            "$ref": "ProjectEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "ProjectListItem": {
      "methods": {
        "get": {
          "id": "ProjectListItem.get",
          "path": "resources/project-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ProjectListItem record.",
          "response": {
            "$ref": "ProjectListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ProjectListItem.head",
          "path": "resources/project-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ProjectListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ProjectListItem.list",
          "path": "resources/project-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ProjectListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProjectListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ProjectListItem.listhead",
          "path": "resources/project-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ProjectListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item",
            "https://mobile.xtuple.com/dogfood/auth/project-list-item.readonly"
          ]
        }
      }
    },
    "ProjectRelation": {
      "methods": {
        "get": {
          "id": "ProjectRelation.get",
          "path": "resources/project-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ProjectRelation record.",
          "response": {
            "$ref": "ProjectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-relation",
            "https://mobile.xtuple.com/dogfood/auth/project-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ProjectRelation.head",
          "path": "resources/project-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ProjectRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-relation",
            "https://mobile.xtuple.com/dogfood/auth/project-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ProjectRelation.list",
          "path": "resources/project-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ProjectRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProjectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-relation",
            "https://mobile.xtuple.com/dogfood/auth/project-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ProjectRelation.listhead",
          "path": "resources/project-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ProjectRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-relation",
            "https://mobile.xtuple.com/dogfood/auth/project-relation.readonly"
          ]
        }
      }
    },
    "ProjectType": {
      "methods": {
        "delete": {
          "id": "ProjectType.delete",
          "path": "resources/project-type/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ProjectType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "ProjectType.get",
          "path": "resources/project-type/{code}",
          "httpMethod": "GET",
          "description": "Gets a single ProjectType record.",
          "response": {
            "$ref": "ProjectType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type",
            "https://mobile.xtuple.com/dogfood/auth/project-type.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "ProjectType.head",
          "path": "resources/project-type/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ProjectType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type",
            "https://mobile.xtuple.com/dogfood/auth/project-type.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "ProjectType.insert",
          "path": "resources/project-type",
          "httpMethod": "POST",
          "description": "Add a single ProjectType record.",
          "request": {
            "$ref": "ProjectType"
          },
          "response": {
            "$ref": "ProjectType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type"
          ]
        },
        "list": {
          "id": "ProjectType.list",
          "path": "resources/project-type",
          "httpMethod": "GET",
          "description": "Returns a list of ProjectType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProjectType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type",
            "https://mobile.xtuple.com/dogfood/auth/project-type.readonly"
          ]
        },
        "listhead": {
          "id": "ProjectType.listhead",
          "path": "resources/project-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ProjectType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type",
            "https://mobile.xtuple.com/dogfood/auth/project-type.readonly"
          ]
        },
        "patch": {
          "id": "ProjectType.patch",
          "path": "resources/project-type/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ProjectType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ProjectType"
          },
          "response": {
            "$ref": "ProjectType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/project-type"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Prospect": {
      "methods": {
        "delete": {
          "id": "Prospect.delete",
          "path": "resources/prospect/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Prospect record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Prospect.get",
          "path": "resources/prospect/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Prospect record.",
          "response": {
            "$ref": "Prospect"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect",
            "https://mobile.xtuple.com/dogfood/auth/prospect.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Prospect.head",
          "path": "resources/prospect/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Prospect record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect",
            "https://mobile.xtuple.com/dogfood/auth/prospect.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Prospect.insert",
          "path": "resources/prospect",
          "httpMethod": "POST",
          "description": "Add a single Prospect record.",
          "request": {
            "$ref": "Prospect"
          },
          "response": {
            "$ref": "Prospect"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect"
          ]
        },
        "list": {
          "id": "Prospect.list",
          "path": "resources/prospect",
          "httpMethod": "GET",
          "description": "Returns a list of Prospect records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Prospect"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect",
            "https://mobile.xtuple.com/dogfood/auth/prospect.readonly"
          ]
        },
        "listhead": {
          "id": "Prospect.listhead",
          "path": "resources/prospect",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Prospect records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect",
            "https://mobile.xtuple.com/dogfood/auth/prospect.readonly"
          ]
        },
        "patch": {
          "id": "Prospect.patch",
          "path": "resources/prospect/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Prospect record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Prospect"
          },
          "response": {
            "$ref": "Prospect"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ProspectRelation": {
      "methods": {
        "get": {
          "id": "ProspectRelation.get",
          "path": "resources/prospect-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ProspectRelation record.",
          "response": {
            "$ref": "ProspectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ProspectRelation.head",
          "path": "resources/prospect-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ProspectRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ProspectRelation.list",
          "path": "resources/prospect-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ProspectRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ProspectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ProspectRelation.listhead",
          "path": "resources/prospect-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ProspectRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation",
            "https://mobile.xtuple.com/dogfood/auth/prospect-relation.readonly"
          ]
        }
      }
    },
    "Quote": {
      "methods": {
        "delete": {
          "id": "Quote.delete",
          "path": "resources/quote/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Quote record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Quote.get",
          "path": "resources/quote/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Quote record.",
          "response": {
            "$ref": "Quote"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote",
            "https://mobile.xtuple.com/dogfood/auth/quote.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Quote.head",
          "path": "resources/quote/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Quote record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote",
            "https://mobile.xtuple.com/dogfood/auth/quote.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Quote.insert",
          "path": "resources/quote",
          "httpMethod": "POST",
          "description": "Add a single Quote record.",
          "request": {
            "$ref": "Quote"
          },
          "response": {
            "$ref": "Quote"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote"
          ]
        },
        "list": {
          "id": "Quote.list",
          "path": "resources/quote",
          "httpMethod": "GET",
          "description": "Returns a list of Quote records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "QuoteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote",
            "https://mobile.xtuple.com/dogfood/auth/quote.readonly"
          ]
        },
        "listhead": {
          "id": "Quote.listhead",
          "path": "resources/quote",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Quote records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote",
            "https://mobile.xtuple.com/dogfood/auth/quote.readonly"
          ]
        },
        "patch": {
          "id": "Quote.patch",
          "path": "resources/quote/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Quote record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Quote"
          },
          "response": {
            "$ref": "Quote"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "QuoteLine": {
      "methods": {
        "delete": {
          "id": "QuoteLine.delete",
          "path": "resources/quote-line/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single QuoteLine record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "QuoteLine.get",
          "path": "resources/quote-line/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single QuoteLine record.",
          "response": {
            "$ref": "QuoteLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line",
            "https://mobile.xtuple.com/dogfood/auth/quote-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "QuoteLine.head",
          "path": "resources/quote-line/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single QuoteLine record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line",
            "https://mobile.xtuple.com/dogfood/auth/quote-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "QuoteLine.insert",
          "path": "resources/quote-line",
          "httpMethod": "POST",
          "description": "Add a single QuoteLine record.",
          "request": {
            "$ref": "QuoteLine"
          },
          "response": {
            "$ref": "QuoteLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line"
          ]
        },
        "list": {
          "id": "QuoteLine.list",
          "path": "resources/quote-line",
          "httpMethod": "GET",
          "description": "Returns a list of QuoteLine records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "QuoteLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line",
            "https://mobile.xtuple.com/dogfood/auth/quote-line.readonly"
          ]
        },
        "listhead": {
          "id": "QuoteLine.listhead",
          "path": "resources/quote-line",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of QuoteLine records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line",
            "https://mobile.xtuple.com/dogfood/auth/quote-line.readonly"
          ]
        },
        "patch": {
          "id": "QuoteLine.patch",
          "path": "resources/quote-line/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single QuoteLine record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "QuoteLine"
          },
          "response": {
            "$ref": "QuoteLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "QuoteListItem": {
      "methods": {
        "get": {
          "id": "QuoteListItem.get",
          "path": "resources/quote-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single QuoteListItem record.",
          "response": {
            "$ref": "QuoteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "QuoteListItem.head",
          "path": "resources/quote-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single QuoteListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "QuoteListItem.list",
          "path": "resources/quote-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of QuoteListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "QuoteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "QuoteListItem.listhead",
          "path": "resources/quote-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of QuoteListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item",
            "https://mobile.xtuple.com/dogfood/auth/quote-list-item.readonly"
          ]
        }
      }
    },
    "QuoteRelation": {
      "methods": {
        "delete": {
          "id": "QuoteRelation.delete",
          "path": "resources/quote-relation/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single QuoteRelation record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "QuoteRelation.get",
          "path": "resources/quote-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single QuoteRelation record.",
          "response": {
            "$ref": "QuoteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "QuoteRelation.head",
          "path": "resources/quote-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single QuoteRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "QuoteRelation.insert",
          "path": "resources/quote-relation",
          "httpMethod": "POST",
          "description": "Add a single QuoteRelation record.",
          "request": {
            "$ref": "QuoteRelation"
          },
          "response": {
            "$ref": "QuoteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation"
          ]
        },
        "list": {
          "id": "QuoteRelation.list",
          "path": "resources/quote-relation",
          "httpMethod": "GET",
          "description": "Returns a list of QuoteRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "QuoteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation.readonly"
          ]
        },
        "listhead": {
          "id": "QuoteRelation.listhead",
          "path": "resources/quote-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of QuoteRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation.readonly"
          ]
        },
        "patch": {
          "id": "QuoteRelation.patch",
          "path": "resources/quote-relation/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single QuoteRelation record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "QuoteRelation"
          },
          "response": {
            "$ref": "QuoteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/quote-relation"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ReasonCode": {
      "methods": {
        "delete": {
          "id": "ReasonCode.delete",
          "path": "resources/reason-code/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ReasonCode record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "ReasonCode.get",
          "path": "resources/reason-code/{code}",
          "httpMethod": "GET",
          "description": "Gets a single ReasonCode record.",
          "response": {
            "$ref": "ReasonCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code",
            "https://mobile.xtuple.com/dogfood/auth/reason-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "ReasonCode.head",
          "path": "resources/reason-code/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReasonCode record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code",
            "https://mobile.xtuple.com/dogfood/auth/reason-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "ReasonCode.insert",
          "path": "resources/reason-code",
          "httpMethod": "POST",
          "description": "Add a single ReasonCode record.",
          "request": {
            "$ref": "ReasonCode"
          },
          "response": {
            "$ref": "ReasonCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code"
          ]
        },
        "list": {
          "id": "ReasonCode.list",
          "path": "resources/reason-code",
          "httpMethod": "GET",
          "description": "Returns a list of ReasonCode records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReasonCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code",
            "https://mobile.xtuple.com/dogfood/auth/reason-code.readonly"
          ]
        },
        "listhead": {
          "id": "ReasonCode.listhead",
          "path": "resources/reason-code",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReasonCode records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code",
            "https://mobile.xtuple.com/dogfood/auth/reason-code.readonly"
          ]
        },
        "patch": {
          "id": "ReasonCode.patch",
          "path": "resources/reason-code/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ReasonCode record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ReasonCode"
          },
          "response": {
            "$ref": "ReasonCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/reason-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Receivable": {
      "methods": {
        "delete": {
          "id": "Receivable.delete",
          "path": "resources/receivable/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Receivable record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "Receivable.get",
          "path": "resources/receivable/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single Receivable record.",
          "response": {
            "$ref": "Receivable"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable",
            "https://mobile.xtuple.com/dogfood/auth/receivable.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "Receivable.head",
          "path": "resources/receivable/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Receivable record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable",
            "https://mobile.xtuple.com/dogfood/auth/receivable.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "Receivable.insert",
          "path": "resources/receivable",
          "httpMethod": "POST",
          "description": "Add a single Receivable record.",
          "request": {
            "$ref": "Receivable"
          },
          "response": {
            "$ref": "Receivable"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable"
          ]
        },
        "list": {
          "id": "Receivable.list",
          "path": "resources/receivable",
          "httpMethod": "GET",
          "description": "Returns a list of Receivable records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReceivableListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable",
            "https://mobile.xtuple.com/dogfood/auth/receivable.readonly"
          ]
        },
        "listhead": {
          "id": "Receivable.listhead",
          "path": "resources/receivable",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Receivable records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable",
            "https://mobile.xtuple.com/dogfood/auth/receivable.readonly"
          ]
        },
        "patch": {
          "id": "Receivable.patch",
          "path": "resources/receivable/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Receivable record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Receivable"
          },
          "response": {
            "$ref": "Receivable"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "ReceivableListItem": {
      "methods": {
        "get": {
          "id": "ReceivableListItem.get",
          "path": "resources/receivable-list-item/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ReceivableListItem record.",
          "response": {
            "$ref": "ReceivableListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ReceivableListItem.head",
          "path": "resources/receivable-list-item/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReceivableListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ReceivableListItem.list",
          "path": "resources/receivable-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ReceivableListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReceivableListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ReceivableListItem.listhead",
          "path": "resources/receivable-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReceivableListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item",
            "https://mobile.xtuple.com/dogfood/auth/receivable-list-item.readonly"
          ]
        }
      }
    },
    "ReceivableRelation": {
      "methods": {
        "get": {
          "id": "ReceivableRelation.get",
          "path": "resources/receivable-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ReceivableRelation record.",
          "response": {
            "$ref": "ReceivableRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ReceivableRelation.head",
          "path": "resources/receivable-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReceivableRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ReceivableRelation.list",
          "path": "resources/receivable-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ReceivableRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReceivableRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ReceivableRelation.listhead",
          "path": "resources/receivable-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReceivableRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation",
            "https://mobile.xtuple.com/dogfood/auth/receivable-relation.readonly"
          ]
        }
      }
    },
    "RemitTo": {
      "methods": {
        "get": {
          "id": "RemitTo.get",
          "path": "resources/remit-to/{key}",
          "httpMethod": "GET",
          "description": "Gets a single RemitTo record.",
          "response": {
            "$ref": "RemitTo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/remit-to",
            "https://mobile.xtuple.com/dogfood/auth/remit-to.readonly"
          ],
          "parameters": {
            "key": {
              "type": "integer",
              "format": "int32",
              "minimum": "-2147483648",
              "maximum": "2147483647",
              "location": "path"
            }
          },
          "parameterOrder": [
            "key"
          ]
        },
        "head": {
          "id": "RemitTo.head",
          "path": "resources/remit-to/{key}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single RemitTo record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/remit-to",
            "https://mobile.xtuple.com/dogfood/auth/remit-to.readonly"
          ],
          "parameters": {
            "key": {
              "type": "integer",
              "format": "int32",
              "minimum": "-2147483648",
              "maximum": "2147483647",
              "location": "path"
            }
          },
          "parameterOrder": [
            "key"
          ]
        },
        "list": {
          "id": "RemitTo.list",
          "path": "resources/remit-to",
          "httpMethod": "GET",
          "description": "Returns a list of RemitTo records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "RemitTo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/remit-to",
            "https://mobile.xtuple.com/dogfood/auth/remit-to.readonly"
          ]
        },
        "listhead": {
          "id": "RemitTo.listhead",
          "path": "resources/remit-to",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of RemitTo records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/remit-to",
            "https://mobile.xtuple.com/dogfood/auth/remit-to.readonly"
          ]
        }
      }
    },
    "Return": {
      "methods": {
        "delete": {
          "id": "Return.delete",
          "path": "resources/return/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Return record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Return.get",
          "path": "resources/return/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Return record.",
          "response": {
            "$ref": "Return"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return",
            "https://mobile.xtuple.com/dogfood/auth/return.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Return.head",
          "path": "resources/return/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Return record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return",
            "https://mobile.xtuple.com/dogfood/auth/return.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Return.insert",
          "path": "resources/return",
          "httpMethod": "POST",
          "description": "Add a single Return record.",
          "request": {
            "$ref": "Return"
          },
          "response": {
            "$ref": "Return"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return"
          ]
        },
        "list": {
          "id": "Return.list",
          "path": "resources/return",
          "httpMethod": "GET",
          "description": "Returns a list of Return records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return",
            "https://mobile.xtuple.com/dogfood/auth/return.readonly"
          ]
        },
        "listhead": {
          "id": "Return.listhead",
          "path": "resources/return",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Return records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return",
            "https://mobile.xtuple.com/dogfood/auth/return.readonly"
          ]
        },
        "patch": {
          "id": "Return.patch",
          "path": "resources/return/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Return record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Return"
          },
          "response": {
            "$ref": "Return"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ReturnAllocation": {
      "methods": {
        "delete": {
          "id": "ReturnAllocation.delete",
          "path": "resources/return-allocation/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ReturnAllocation record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "ReturnAllocation.get",
          "path": "resources/return-allocation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ReturnAllocation record.",
          "response": {
            "$ref": "ReturnAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ReturnAllocation.head",
          "path": "resources/return-allocation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReturnAllocation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "ReturnAllocation.insert",
          "path": "resources/return-allocation",
          "httpMethod": "POST",
          "description": "Add a single ReturnAllocation record.",
          "request": {
            "$ref": "ReturnAllocation"
          },
          "response": {
            "$ref": "ReturnAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation"
          ]
        },
        "list": {
          "id": "ReturnAllocation.list",
          "path": "resources/return-allocation",
          "httpMethod": "GET",
          "description": "Returns a list of ReturnAllocation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation.readonly"
          ]
        },
        "listhead": {
          "id": "ReturnAllocation.listhead",
          "path": "resources/return-allocation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReturnAllocation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation.readonly"
          ]
        },
        "patch": {
          "id": "ReturnAllocation.patch",
          "path": "resources/return-allocation/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ReturnAllocation record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ReturnAllocation"
          },
          "response": {
            "$ref": "ReturnAllocation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-allocation"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "ReturnLine": {
      "methods": {
        "delete": {
          "id": "ReturnLine.delete",
          "path": "resources/return-line/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ReturnLine record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "ReturnLine.get",
          "path": "resources/return-line/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ReturnLine record.",
          "response": {
            "$ref": "ReturnLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line",
            "https://mobile.xtuple.com/dogfood/auth/return-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ReturnLine.head",
          "path": "resources/return-line/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReturnLine record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line",
            "https://mobile.xtuple.com/dogfood/auth/return-line.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "ReturnLine.insert",
          "path": "resources/return-line",
          "httpMethod": "POST",
          "description": "Add a single ReturnLine record.",
          "request": {
            "$ref": "ReturnLine"
          },
          "response": {
            "$ref": "ReturnLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line"
          ]
        },
        "list": {
          "id": "ReturnLine.list",
          "path": "resources/return-line",
          "httpMethod": "GET",
          "description": "Returns a list of ReturnLine records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line",
            "https://mobile.xtuple.com/dogfood/auth/return-line.readonly"
          ]
        },
        "listhead": {
          "id": "ReturnLine.listhead",
          "path": "resources/return-line",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReturnLine records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line",
            "https://mobile.xtuple.com/dogfood/auth/return-line.readonly"
          ]
        },
        "patch": {
          "id": "ReturnLine.patch",
          "path": "resources/return-line/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ReturnLine record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ReturnLine"
          },
          "response": {
            "$ref": "ReturnLine"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "ReturnLineTax": {
      "methods": {
        "delete": {
          "id": "ReturnLineTax.delete",
          "path": "resources/return-line-tax/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ReturnLineTax record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "ReturnLineTax.get",
          "path": "resources/return-line-tax/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ReturnLineTax record.",
          "response": {
            "$ref": "ReturnLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ReturnLineTax.head",
          "path": "resources/return-line-tax/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReturnLineTax record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "ReturnLineTax.insert",
          "path": "resources/return-line-tax",
          "httpMethod": "POST",
          "description": "Add a single ReturnLineTax record.",
          "request": {
            "$ref": "ReturnLineTax"
          },
          "response": {
            "$ref": "ReturnLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax"
          ]
        },
        "list": {
          "id": "ReturnLineTax.list",
          "path": "resources/return-line-tax",
          "httpMethod": "GET",
          "description": "Returns a list of ReturnLineTax records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax.readonly"
          ]
        },
        "listhead": {
          "id": "ReturnLineTax.listhead",
          "path": "resources/return-line-tax",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReturnLineTax records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax.readonly"
          ]
        },
        "patch": {
          "id": "ReturnLineTax.patch",
          "path": "resources/return-line-tax/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ReturnLineTax record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ReturnLineTax"
          },
          "response": {
            "$ref": "ReturnLineTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-line-tax"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "ReturnListItem": {
      "methods": {
        "get": {
          "id": "ReturnListItem.get",
          "path": "resources/return-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ReturnListItem record.",
          "response": {
            "$ref": "ReturnListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ReturnListItem.head",
          "path": "resources/return-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReturnListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ReturnListItem.list",
          "path": "resources/return-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ReturnListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ReturnListItem.listhead",
          "path": "resources/return-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReturnListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item",
            "https://mobile.xtuple.com/dogfood/auth/return-list-item.readonly"
          ]
        }
      }
    },
    "ReturnRelation": {
      "methods": {
        "get": {
          "id": "ReturnRelation.get",
          "path": "resources/return-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single ReturnRelation record.",
          "response": {
            "$ref": "ReturnRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-relation",
            "https://mobile.xtuple.com/dogfood/auth/return-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "ReturnRelation.head",
          "path": "resources/return-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReturnRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-relation",
            "https://mobile.xtuple.com/dogfood/auth/return-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "ReturnRelation.list",
          "path": "resources/return-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ReturnRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-relation",
            "https://mobile.xtuple.com/dogfood/auth/return-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ReturnRelation.listhead",
          "path": "resources/return-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReturnRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-relation",
            "https://mobile.xtuple.com/dogfood/auth/return-relation.readonly"
          ]
        }
      }
    },
    "ReturnTax": {
      "methods": {
        "delete": {
          "id": "ReturnTax.delete",
          "path": "resources/return-tax/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ReturnTax record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "ReturnTax.get",
          "path": "resources/return-tax/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ReturnTax record.",
          "response": {
            "$ref": "ReturnTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ReturnTax.head",
          "path": "resources/return-tax/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ReturnTax record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-tax.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "ReturnTax.insert",
          "path": "resources/return-tax",
          "httpMethod": "POST",
          "description": "Add a single ReturnTax record.",
          "request": {
            "$ref": "ReturnTax"
          },
          "response": {
            "$ref": "ReturnTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax"
          ]
        },
        "list": {
          "id": "ReturnTax.list",
          "path": "resources/return-tax",
          "httpMethod": "GET",
          "description": "Returns a list of ReturnTax records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ReturnTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-tax.readonly"
          ]
        },
        "listhead": {
          "id": "ReturnTax.listhead",
          "path": "resources/return-tax",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ReturnTax records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax",
            "https://mobile.xtuple.com/dogfood/auth/return-tax.readonly"
          ]
        },
        "patch": {
          "id": "ReturnTax.patch",
          "path": "resources/return-tax/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ReturnTax record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ReturnTax"
          },
          "response": {
            "$ref": "ReturnTax"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/return-tax"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "SalesCategory": {
      "methods": {
        "delete": {
          "id": "SalesCategory.delete",
          "path": "resources/sales-category/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SalesCategory record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "SalesCategory.get",
          "path": "resources/sales-category/{name}",
          "httpMethod": "GET",
          "description": "Gets a single SalesCategory record.",
          "response": {
            "$ref": "SalesCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category",
            "https://mobile.xtuple.com/dogfood/auth/sales-category.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "SalesCategory.head",
          "path": "resources/sales-category/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesCategory record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category",
            "https://mobile.xtuple.com/dogfood/auth/sales-category.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "SalesCategory.insert",
          "path": "resources/sales-category",
          "httpMethod": "POST",
          "description": "Add a single SalesCategory record.",
          "request": {
            "$ref": "SalesCategory"
          },
          "response": {
            "$ref": "SalesCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category"
          ]
        },
        "list": {
          "id": "SalesCategory.list",
          "path": "resources/sales-category",
          "httpMethod": "GET",
          "description": "Returns a list of SalesCategory records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category",
            "https://mobile.xtuple.com/dogfood/auth/sales-category.readonly"
          ]
        },
        "listhead": {
          "id": "SalesCategory.listhead",
          "path": "resources/sales-category",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesCategory records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category",
            "https://mobile.xtuple.com/dogfood/auth/sales-category.readonly"
          ]
        },
        "patch": {
          "id": "SalesCategory.patch",
          "path": "resources/sales-category/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SalesCategory record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SalesCategory"
          },
          "response": {
            "$ref": "SalesCategory"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-category"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "SalesCustomerShiptoRelation": {
      "methods": {
        "get": {
          "id": "SalesCustomerShiptoRelation.get",
          "path": "resources/sales-customer-shipto-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single SalesCustomerShiptoRelation record.",
          "response": {
            "$ref": "SalesCustomerShiptoRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "SalesCustomerShiptoRelation.head",
          "path": "resources/sales-customer-shipto-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesCustomerShiptoRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "SalesCustomerShiptoRelation.list",
          "path": "resources/sales-customer-shipto-relation",
          "httpMethod": "GET",
          "description": "Returns a list of SalesCustomerShiptoRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesCustomerShiptoRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation.readonly"
          ]
        },
        "listhead": {
          "id": "SalesCustomerShiptoRelation.listhead",
          "path": "resources/sales-customer-shipto-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesCustomerShiptoRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-customer-shipto-relation.readonly"
          ]
        }
      }
    },
    "SalesEmailProfile": {
      "methods": {
        "delete": {
          "id": "SalesEmailProfile.delete",
          "path": "resources/sales-email-profile/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SalesEmailProfile record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "SalesEmailProfile.get",
          "path": "resources/sales-email-profile/{name}",
          "httpMethod": "GET",
          "description": "Gets a single SalesEmailProfile record.",
          "response": {
            "$ref": "SalesEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "SalesEmailProfile.head",
          "path": "resources/sales-email-profile/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesEmailProfile record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "SalesEmailProfile.insert",
          "path": "resources/sales-email-profile",
          "httpMethod": "POST",
          "description": "Add a single SalesEmailProfile record.",
          "request": {
            "$ref": "SalesEmailProfile"
          },
          "response": {
            "$ref": "SalesEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile"
          ]
        },
        "list": {
          "id": "SalesEmailProfile.list",
          "path": "resources/sales-email-profile",
          "httpMethod": "GET",
          "description": "Returns a list of SalesEmailProfile records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile.readonly"
          ]
        },
        "listhead": {
          "id": "SalesEmailProfile.listhead",
          "path": "resources/sales-email-profile",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesEmailProfile records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile.readonly"
          ]
        },
        "patch": {
          "id": "SalesEmailProfile.patch",
          "path": "resources/sales-email-profile/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SalesEmailProfile record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SalesEmailProfile"
          },
          "response": {
            "$ref": "SalesEmailProfile"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-email-profile"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "SalesOrder": {
      "methods": {
        "delete": {
          "id": "SalesOrder.delete",
          "path": "resources/sales-order/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SalesOrder record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "SalesOrder.get",
          "path": "resources/sales-order/{number}",
          "httpMethod": "GET",
          "description": "Gets a single SalesOrder record.",
          "response": {
            "$ref": "SalesOrder"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order",
            "https://mobile.xtuple.com/dogfood/auth/sales-order.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "SalesOrder.head",
          "path": "resources/sales-order/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesOrder record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order",
            "https://mobile.xtuple.com/dogfood/auth/sales-order.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "SalesOrder.insert",
          "path": "resources/sales-order",
          "httpMethod": "POST",
          "description": "Add a single SalesOrder record.",
          "request": {
            "$ref": "SalesOrder"
          },
          "response": {
            "$ref": "SalesOrder"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order"
          ]
        },
        "list": {
          "id": "SalesOrder.list",
          "path": "resources/sales-order",
          "httpMethod": "GET",
          "description": "Returns a list of SalesOrder records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesOrderListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order",
            "https://mobile.xtuple.com/dogfood/auth/sales-order.readonly"
          ]
        },
        "listhead": {
          "id": "SalesOrder.listhead",
          "path": "resources/sales-order",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesOrder records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order",
            "https://mobile.xtuple.com/dogfood/auth/sales-order.readonly"
          ]
        },
        "patch": {
          "id": "SalesOrder.patch",
          "path": "resources/sales-order/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SalesOrder record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SalesOrder"
          },
          "response": {
            "$ref": "SalesOrder"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "SalesOrderListItem": {
      "methods": {
        "get": {
          "id": "SalesOrderListItem.get",
          "path": "resources/sales-order-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single SalesOrderListItem record.",
          "response": {
            "$ref": "SalesOrderListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "SalesOrderListItem.head",
          "path": "resources/sales-order-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesOrderListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "SalesOrderListItem.list",
          "path": "resources/sales-order-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of SalesOrderListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesOrderListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "SalesOrderListItem.listhead",
          "path": "resources/sales-order-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesOrderListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-list-item.readonly"
          ]
        }
      }
    },
    "SalesOrderRelation": {
      "methods": {
        "delete": {
          "id": "SalesOrderRelation.delete",
          "path": "resources/sales-order-relation/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SalesOrderRelation record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "SalesOrderRelation.get",
          "path": "resources/sales-order-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single SalesOrderRelation record.",
          "response": {
            "$ref": "SalesOrderRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "SalesOrderRelation.head",
          "path": "resources/sales-order-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesOrderRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "SalesOrderRelation.insert",
          "path": "resources/sales-order-relation",
          "httpMethod": "POST",
          "description": "Add a single SalesOrderRelation record.",
          "request": {
            "$ref": "SalesOrderRelation"
          },
          "response": {
            "$ref": "SalesOrderRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation"
          ]
        },
        "list": {
          "id": "SalesOrderRelation.list",
          "path": "resources/sales-order-relation",
          "httpMethod": "GET",
          "description": "Returns a list of SalesOrderRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesOrderRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation.readonly"
          ]
        },
        "listhead": {
          "id": "SalesOrderRelation.listhead",
          "path": "resources/sales-order-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesOrderRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation.readonly"
          ]
        },
        "patch": {
          "id": "SalesOrderRelation.patch",
          "path": "resources/sales-order-relation/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SalesOrderRelation record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SalesOrderRelation"
          },
          "response": {
            "$ref": "SalesOrderRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-order-relation"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "SalesRep": {
      "methods": {
        "delete": {
          "id": "SalesRep.delete",
          "path": "resources/sales-rep/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SalesRep record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "SalesRep.get",
          "path": "resources/sales-rep/{number}",
          "httpMethod": "GET",
          "description": "Gets a single SalesRep record.",
          "response": {
            "$ref": "SalesRep"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "SalesRep.head",
          "path": "resources/sales-rep/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SalesRep record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "SalesRep.insert",
          "path": "resources/sales-rep",
          "httpMethod": "POST",
          "description": "Add a single SalesRep record.",
          "request": {
            "$ref": "SalesRep"
          },
          "response": {
            "$ref": "SalesRep"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep"
          ]
        },
        "list": {
          "id": "SalesRep.list",
          "path": "resources/sales-rep",
          "httpMethod": "GET",
          "description": "Returns a list of SalesRep records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SalesRep"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep.readonly"
          ]
        },
        "listhead": {
          "id": "SalesRep.listhead",
          "path": "resources/sales-rep",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SalesRep records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep.readonly"
          ]
        },
        "patch": {
          "id": "SalesRep.patch",
          "path": "resources/sales-rep/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SalesRep record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SalesRep"
          },
          "response": {
            "$ref": "SalesRep"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales-rep"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "SaleType": {
      "methods": {
        "delete": {
          "id": "SaleType.delete",
          "path": "resources/sale-type/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SaleType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type"
          ],
          "parameters": {
            "code": {
              "description": "User defined identifier for sale type.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "SaleType.get",
          "path": "resources/sale-type/{code}",
          "httpMethod": "GET",
          "description": "Gets a single SaleType record.",
          "response": {
            "$ref": "SaleType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type",
            "https://mobile.xtuple.com/dogfood/auth/sale-type.readonly"
          ],
          "parameters": {
            "code": {
              "description": "User defined identifier for sale type.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "SaleType.head",
          "path": "resources/sale-type/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SaleType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type",
            "https://mobile.xtuple.com/dogfood/auth/sale-type.readonly"
          ],
          "parameters": {
            "code": {
              "description": "User defined identifier for sale type.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "SaleType.insert",
          "path": "resources/sale-type",
          "httpMethod": "POST",
          "description": "Add a single SaleType record.",
          "request": {
            "$ref": "SaleType"
          },
          "response": {
            "$ref": "SaleType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type"
          ]
        },
        "list": {
          "id": "SaleType.list",
          "path": "resources/sale-type",
          "httpMethod": "GET",
          "description": "Returns a list of SaleType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SaleType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type",
            "https://mobile.xtuple.com/dogfood/auth/sale-type.readonly"
          ]
        },
        "listhead": {
          "id": "SaleType.listhead",
          "path": "resources/sale-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SaleType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type",
            "https://mobile.xtuple.com/dogfood/auth/sale-type.readonly"
          ]
        },
        "patch": {
          "id": "SaleType.patch",
          "path": "resources/sale-type/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SaleType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SaleType"
          },
          "response": {
            "$ref": "SaleType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sale-type"
          ],
          "parameters": {
            "code": {
              "description": "User defined identifier for sale type.",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Shift": {
      "methods": {
        "delete": {
          "id": "Shift.delete",
          "path": "resources/shift/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Shift record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Shift.get",
          "path": "resources/shift/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Shift record.",
          "response": {
            "$ref": "Shift"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift",
            "https://mobile.xtuple.com/dogfood/auth/shift.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Shift.head",
          "path": "resources/shift/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Shift record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift",
            "https://mobile.xtuple.com/dogfood/auth/shift.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Shift.insert",
          "path": "resources/shift",
          "httpMethod": "POST",
          "description": "Add a single Shift record.",
          "request": {
            "$ref": "Shift"
          },
          "response": {
            "$ref": "Shift"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift"
          ]
        },
        "list": {
          "id": "Shift.list",
          "path": "resources/shift",
          "httpMethod": "GET",
          "description": "Returns a list of Shift records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Shift"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift",
            "https://mobile.xtuple.com/dogfood/auth/shift.readonly"
          ]
        },
        "listhead": {
          "id": "Shift.listhead",
          "path": "resources/shift",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Shift records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift",
            "https://mobile.xtuple.com/dogfood/auth/shift.readonly"
          ]
        },
        "patch": {
          "id": "Shift.patch",
          "path": "resources/shift/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Shift record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Shift"
          },
          "response": {
            "$ref": "Shift"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/shift"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "ShipCharge": {
      "methods": {
        "delete": {
          "id": "ShipCharge.delete",
          "path": "resources/ship-charge/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ShipCharge record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "ShipCharge.get",
          "path": "resources/ship-charge/{name}",
          "httpMethod": "GET",
          "description": "Gets a single ShipCharge record.",
          "response": {
            "$ref": "ShipCharge"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "ShipCharge.head",
          "path": "resources/ship-charge/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ShipCharge record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "ShipCharge.insert",
          "path": "resources/ship-charge",
          "httpMethod": "POST",
          "description": "Add a single ShipCharge record.",
          "request": {
            "$ref": "ShipCharge"
          },
          "response": {
            "$ref": "ShipCharge"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge"
          ]
        },
        "list": {
          "id": "ShipCharge.list",
          "path": "resources/ship-charge",
          "httpMethod": "GET",
          "description": "Returns a list of ShipCharge records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ShipCharge"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge.readonly"
          ]
        },
        "listhead": {
          "id": "ShipCharge.listhead",
          "path": "resources/ship-charge",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ShipCharge records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge.readonly"
          ]
        },
        "patch": {
          "id": "ShipCharge.patch",
          "path": "resources/ship-charge/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ShipCharge record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ShipCharge"
          },
          "response": {
            "$ref": "ShipCharge"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-charge"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "ShipVia": {
      "methods": {
        "delete": {
          "id": "ShipVia.delete",
          "path": "resources/ship-via/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ShipVia record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "ShipVia.get",
          "path": "resources/ship-via/{code}",
          "httpMethod": "GET",
          "description": "Gets a single ShipVia record.",
          "response": {
            "$ref": "ShipVia"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via",
            "https://mobile.xtuple.com/dogfood/auth/ship-via.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "ShipVia.head",
          "path": "resources/ship-via/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ShipVia record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via",
            "https://mobile.xtuple.com/dogfood/auth/ship-via.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "ShipVia.insert",
          "path": "resources/ship-via",
          "httpMethod": "POST",
          "description": "Add a single ShipVia record.",
          "request": {
            "$ref": "ShipVia"
          },
          "response": {
            "$ref": "ShipVia"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via"
          ]
        },
        "list": {
          "id": "ShipVia.list",
          "path": "resources/ship-via",
          "httpMethod": "GET",
          "description": "Returns a list of ShipVia records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ShipVia"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via",
            "https://mobile.xtuple.com/dogfood/auth/ship-via.readonly"
          ]
        },
        "listhead": {
          "id": "ShipVia.listhead",
          "path": "resources/ship-via",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ShipVia records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via",
            "https://mobile.xtuple.com/dogfood/auth/ship-via.readonly"
          ]
        },
        "patch": {
          "id": "ShipVia.patch",
          "path": "resources/ship-via/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ShipVia record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ShipVia"
          },
          "response": {
            "$ref": "ShipVia"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-via"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "ShipZone": {
      "methods": {
        "delete": {
          "id": "ShipZone.delete",
          "path": "resources/ship-zone/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ShipZone record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "ShipZone.get",
          "path": "resources/ship-zone/{name}",
          "httpMethod": "GET",
          "description": "Gets a single ShipZone record.",
          "response": {
            "$ref": "ShipZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "ShipZone.head",
          "path": "resources/ship-zone/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ShipZone record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "ShipZone.insert",
          "path": "resources/ship-zone",
          "httpMethod": "POST",
          "description": "Add a single ShipZone record.",
          "request": {
            "$ref": "ShipZone"
          },
          "response": {
            "$ref": "ShipZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone"
          ]
        },
        "list": {
          "id": "ShipZone.list",
          "path": "resources/ship-zone",
          "httpMethod": "GET",
          "description": "Returns a list of ShipZone records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ShipZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone.readonly"
          ]
        },
        "listhead": {
          "id": "ShipZone.listhead",
          "path": "resources/ship-zone",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ShipZone records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone.readonly"
          ]
        },
        "patch": {
          "id": "ShipZone.patch",
          "path": "resources/ship-zone/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ShipZone record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ShipZone"
          },
          "response": {
            "$ref": "ShipZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/ship-zone"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "Site": {
      "methods": {
        "delete": {
          "id": "Site.delete",
          "path": "resources/site/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Site record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "Site.get",
          "path": "resources/site/{code}",
          "httpMethod": "GET",
          "description": "Gets a single Site record.",
          "response": {
            "$ref": "Site"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site",
            "https://mobile.xtuple.com/dogfood/auth/site.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "Site.head",
          "path": "resources/site/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Site record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site",
            "https://mobile.xtuple.com/dogfood/auth/site.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "Site.insert",
          "path": "resources/site",
          "httpMethod": "POST",
          "description": "Add a single Site record.",
          "request": {
            "$ref": "Site"
          },
          "response": {
            "$ref": "Site"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site"
          ]
        },
        "list": {
          "id": "Site.list",
          "path": "resources/site",
          "httpMethod": "GET",
          "description": "Returns a list of Site records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SiteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site",
            "https://mobile.xtuple.com/dogfood/auth/site.readonly"
          ]
        },
        "listhead": {
          "id": "Site.listhead",
          "path": "resources/site",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Site records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site",
            "https://mobile.xtuple.com/dogfood/auth/site.readonly"
          ]
        },
        "patch": {
          "id": "Site.patch",
          "path": "resources/site/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Site record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Site"
          },
          "response": {
            "$ref": "Site"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "SiteListItem": {
      "methods": {
        "get": {
          "id": "SiteListItem.get",
          "path": "resources/site-list-item/{code}",
          "httpMethod": "GET",
          "description": "Gets a single SiteListItem record.",
          "response": {
            "$ref": "SiteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "SiteListItem.head",
          "path": "resources/site-list-item/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SiteListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "list": {
          "id": "SiteListItem.list",
          "path": "resources/site-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of SiteListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SiteListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "SiteListItem.listhead",
          "path": "resources/site-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SiteListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item",
            "https://mobile.xtuple.com/dogfood/auth/site-list-item.readonly"
          ]
        }
      }
    },
    "SiteRelation": {
      "methods": {
        "get": {
          "id": "SiteRelation.get",
          "path": "resources/site-relation/{code}",
          "httpMethod": "GET",
          "description": "Gets a single SiteRelation record.",
          "response": {
            "$ref": "SiteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-relation.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "SiteRelation.head",
          "path": "resources/site-relation/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SiteRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-relation.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "list": {
          "id": "SiteRelation.list",
          "path": "resources/site-relation",
          "httpMethod": "GET",
          "description": "Returns a list of SiteRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SiteRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-relation.readonly"
          ]
        },
        "listhead": {
          "id": "SiteRelation.listhead",
          "path": "resources/site-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SiteRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-relation.readonly"
          ]
        }
      }
    },
    "SiteType": {
      "methods": {
        "delete": {
          "id": "SiteType.delete",
          "path": "resources/site-type/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single SiteType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "SiteType.get",
          "path": "resources/site-type/{name}",
          "httpMethod": "GET",
          "description": "Gets a single SiteType record.",
          "response": {
            "$ref": "SiteType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type",
            "https://mobile.xtuple.com/dogfood/auth/site-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "SiteType.head",
          "path": "resources/site-type/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SiteType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type",
            "https://mobile.xtuple.com/dogfood/auth/site-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "SiteType.insert",
          "path": "resources/site-type",
          "httpMethod": "POST",
          "description": "Add a single SiteType record.",
          "request": {
            "$ref": "SiteType"
          },
          "response": {
            "$ref": "SiteType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type"
          ]
        },
        "list": {
          "id": "SiteType.list",
          "path": "resources/site-type",
          "httpMethod": "GET",
          "description": "Returns a list of SiteType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SiteType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type",
            "https://mobile.xtuple.com/dogfood/auth/site-type.readonly"
          ]
        },
        "listhead": {
          "id": "SiteType.listhead",
          "path": "resources/site-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SiteType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type",
            "https://mobile.xtuple.com/dogfood/auth/site-type.readonly"
          ]
        },
        "patch": {
          "id": "SiteType.patch",
          "path": "resources/site-type/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single SiteType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "SiteType"
          },
          "response": {
            "$ref": "SiteType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "SiteZoneRelation": {
      "methods": {
        "get": {
          "id": "SiteZoneRelation.get",
          "path": "resources/site-zone-relation/{name}",
          "httpMethod": "GET",
          "description": "Gets a single SiteZoneRelation record.",
          "response": {
            "$ref": "SiteZoneRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "SiteZoneRelation.head",
          "path": "resources/site-zone-relation/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single SiteZoneRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "list": {
          "id": "SiteZoneRelation.list",
          "path": "resources/site-zone-relation",
          "httpMethod": "GET",
          "description": "Returns a list of SiteZoneRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "SiteZoneRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation.readonly"
          ]
        },
        "listhead": {
          "id": "SiteZoneRelation.listhead",
          "path": "resources/site-zone-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of SiteZoneRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation",
            "https://mobile.xtuple.com/dogfood/auth/site-zone-relation.readonly"
          ]
        }
      }
    },
    "Source": {
      "methods": {
        "get": {
          "id": "Source.get",
          "path": "resources/source/{name}",
          "httpMethod": "GET",
          "description": "Gets a single Source record.",
          "response": {
            "$ref": "Source"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/source",
            "https://mobile.xtuple.com/dogfood/auth/source.readonly"
          ],
          "parameters": {
            "name": {
              "description": "Name",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "Source.head",
          "path": "resources/source/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Source record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/source",
            "https://mobile.xtuple.com/dogfood/auth/source.readonly"
          ],
          "parameters": {
            "name": {
              "description": "Name",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "list": {
          "id": "Source.list",
          "path": "resources/source",
          "httpMethod": "GET",
          "description": "Returns a list of Source records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Source"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/source",
            "https://mobile.xtuple.com/dogfood/auth/source.readonly"
          ]
        },
        "listhead": {
          "id": "Source.listhead",
          "path": "resources/source",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Source records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/source",
            "https://mobile.xtuple.com/dogfood/auth/source.readonly"
          ]
        }
      }
    },
    "State": {
      "methods": {
        "delete": {
          "id": "State.delete",
          "path": "resources/state/{abbreviation}",
          "httpMethod": "DELETE",
          "description": "Deletes a single State record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "get": {
          "id": "State.get",
          "path": "resources/state/{abbreviation}",
          "httpMethod": "GET",
          "description": "Gets a single State record.",
          "response": {
            "$ref": "State"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state",
            "https://mobile.xtuple.com/dogfood/auth/state.readonly"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "head": {
          "id": "State.head",
          "path": "resources/state/{abbreviation}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single State record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state",
            "https://mobile.xtuple.com/dogfood/auth/state.readonly"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        },
        "insert": {
          "id": "State.insert",
          "path": "resources/state",
          "httpMethod": "POST",
          "description": "Add a single State record.",
          "request": {
            "$ref": "State"
          },
          "response": {
            "$ref": "State"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state"
          ]
        },
        "list": {
          "id": "State.list",
          "path": "resources/state",
          "httpMethod": "GET",
          "description": "Returns a list of State records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "State"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state",
            "https://mobile.xtuple.com/dogfood/auth/state.readonly"
          ]
        },
        "listhead": {
          "id": "State.listhead",
          "path": "resources/state",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of State records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state",
            "https://mobile.xtuple.com/dogfood/auth/state.readonly"
          ]
        },
        "patch": {
          "id": "State.patch",
          "path": "resources/state/{abbreviation}",
          "httpMethod": "PATCH",
          "description": "Modifies a single State record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "State"
          },
          "response": {
            "$ref": "State"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/state"
          ],
          "parameters": {
            "abbreviation": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "abbreviation"
          ]
        }
      }
    },
    "TaskProjectRelation": {
      "methods": {
        "get": {
          "id": "TaskProjectRelation.get",
          "path": "resources/task-project-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single TaskProjectRelation record.",
          "response": {
            "$ref": "TaskProjectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "TaskProjectRelation.head",
          "path": "resources/task-project-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaskProjectRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "TaskProjectRelation.list",
          "path": "resources/task-project-relation",
          "httpMethod": "GET",
          "description": "Returns a list of TaskProjectRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaskProjectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation.readonly"
          ]
        },
        "listhead": {
          "id": "TaskProjectRelation.listhead",
          "path": "resources/task-project-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaskProjectRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/task-project-relation.readonly"
          ]
        }
      }
    },
    "TaxAssignment": {
      "methods": {
        "delete": {
          "id": "TaxAssignment.delete",
          "path": "resources/tax-assignment/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxAssignment record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "TaxAssignment.get",
          "path": "resources/tax-assignment/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single TaxAssignment record.",
          "response": {
            "$ref": "TaxAssignment"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "TaxAssignment.head",
          "path": "resources/tax-assignment/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxAssignment record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "TaxAssignment.insert",
          "path": "resources/tax-assignment",
          "httpMethod": "POST",
          "description": "Add a single TaxAssignment record.",
          "request": {
            "$ref": "TaxAssignment"
          },
          "response": {
            "$ref": "TaxAssignment"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment"
          ]
        },
        "list": {
          "id": "TaxAssignment.list",
          "path": "resources/tax-assignment",
          "httpMethod": "GET",
          "description": "Returns a list of TaxAssignment records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxAssignment"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment.readonly"
          ]
        },
        "listhead": {
          "id": "TaxAssignment.listhead",
          "path": "resources/tax-assignment",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxAssignment records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment.readonly"
          ]
        },
        "patch": {
          "id": "TaxAssignment.patch",
          "path": "resources/tax-assignment/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxAssignment record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxAssignment"
          },
          "response": {
            "$ref": "TaxAssignment"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-assignment"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "TaxAuthority": {
      "methods": {
        "delete": {
          "id": "TaxAuthority.delete",
          "path": "resources/tax-authority/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxAuthority record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "TaxAuthority.get",
          "path": "resources/tax-authority/{code}",
          "httpMethod": "GET",
          "description": "Gets a single TaxAuthority record.",
          "response": {
            "$ref": "TaxAuthority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "TaxAuthority.head",
          "path": "resources/tax-authority/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxAuthority record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "TaxAuthority.insert",
          "path": "resources/tax-authority",
          "httpMethod": "POST",
          "description": "Add a single TaxAuthority record.",
          "request": {
            "$ref": "TaxAuthority"
          },
          "response": {
            "$ref": "TaxAuthority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority"
          ]
        },
        "list": {
          "id": "TaxAuthority.list",
          "path": "resources/tax-authority",
          "httpMethod": "GET",
          "description": "Returns a list of TaxAuthority records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxAuthority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority.readonly"
          ]
        },
        "listhead": {
          "id": "TaxAuthority.listhead",
          "path": "resources/tax-authority",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxAuthority records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority.readonly"
          ]
        },
        "patch": {
          "id": "TaxAuthority.patch",
          "path": "resources/tax-authority/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxAuthority record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxAuthority"
          },
          "response": {
            "$ref": "TaxAuthority"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "TaxAuthorityRelation": {
      "methods": {
        "get": {
          "id": "TaxAuthorityRelation.get",
          "path": "resources/tax-authority-relation/{code}",
          "httpMethod": "GET",
          "description": "Gets a single TaxAuthorityRelation record.",
          "response": {
            "$ref": "TaxAuthorityRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "TaxAuthorityRelation.head",
          "path": "resources/tax-authority-relation/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxAuthorityRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "list": {
          "id": "TaxAuthorityRelation.list",
          "path": "resources/tax-authority-relation",
          "httpMethod": "GET",
          "description": "Returns a list of TaxAuthorityRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxAuthorityRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation.readonly"
          ]
        },
        "listhead": {
          "id": "TaxAuthorityRelation.listhead",
          "path": "resources/tax-authority-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxAuthorityRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation",
            "https://mobile.xtuple.com/dogfood/auth/tax-authority-relation.readonly"
          ]
        }
      }
    },
    "TaxClass": {
      "methods": {
        "delete": {
          "id": "TaxClass.delete",
          "path": "resources/tax-class/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxClass record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "TaxClass.get",
          "path": "resources/tax-class/{code}",
          "httpMethod": "GET",
          "description": "Gets a single TaxClass record.",
          "response": {
            "$ref": "TaxClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class",
            "https://mobile.xtuple.com/dogfood/auth/tax-class.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "TaxClass.head",
          "path": "resources/tax-class/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxClass record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class",
            "https://mobile.xtuple.com/dogfood/auth/tax-class.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "TaxClass.insert",
          "path": "resources/tax-class",
          "httpMethod": "POST",
          "description": "Add a single TaxClass record.",
          "request": {
            "$ref": "TaxClass"
          },
          "response": {
            "$ref": "TaxClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class"
          ]
        },
        "list": {
          "id": "TaxClass.list",
          "path": "resources/tax-class",
          "httpMethod": "GET",
          "description": "Returns a list of TaxClass records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class",
            "https://mobile.xtuple.com/dogfood/auth/tax-class.readonly"
          ]
        },
        "listhead": {
          "id": "TaxClass.listhead",
          "path": "resources/tax-class",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxClass records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class",
            "https://mobile.xtuple.com/dogfood/auth/tax-class.readonly"
          ]
        },
        "patch": {
          "id": "TaxClass.patch",
          "path": "resources/tax-class/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxClass record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxClass"
          },
          "response": {
            "$ref": "TaxClass"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-class"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "TaxCode": {
      "methods": {
        "delete": {
          "id": "TaxCode.delete",
          "path": "resources/tax-code/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxCode record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "TaxCode.get",
          "path": "resources/tax-code/{code}",
          "httpMethod": "GET",
          "description": "Gets a single TaxCode record.",
          "response": {
            "$ref": "TaxCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code",
            "https://mobile.xtuple.com/dogfood/auth/tax-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "TaxCode.head",
          "path": "resources/tax-code/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxCode record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code",
            "https://mobile.xtuple.com/dogfood/auth/tax-code.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "TaxCode.insert",
          "path": "resources/tax-code",
          "httpMethod": "POST",
          "description": "Add a single TaxCode record.",
          "request": {
            "$ref": "TaxCode"
          },
          "response": {
            "$ref": "TaxCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code"
          ]
        },
        "list": {
          "id": "TaxCode.list",
          "path": "resources/tax-code",
          "httpMethod": "GET",
          "description": "Returns a list of TaxCode records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code",
            "https://mobile.xtuple.com/dogfood/auth/tax-code.readonly"
          ]
        },
        "listhead": {
          "id": "TaxCode.listhead",
          "path": "resources/tax-code",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxCode records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code",
            "https://mobile.xtuple.com/dogfood/auth/tax-code.readonly"
          ]
        },
        "patch": {
          "id": "TaxCode.patch",
          "path": "resources/tax-code/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxCode record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxCode"
          },
          "response": {
            "$ref": "TaxCode"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-code"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "TaxRate": {
      "methods": {
        "delete": {
          "id": "TaxRate.delete",
          "path": "resources/tax-rate/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxRate record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "TaxRate.get",
          "path": "resources/tax-rate/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single TaxRate record.",
          "response": {
            "$ref": "TaxRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "TaxRate.head",
          "path": "resources/tax-rate/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxRate record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "TaxRate.insert",
          "path": "resources/tax-rate",
          "httpMethod": "POST",
          "description": "Add a single TaxRate record.",
          "request": {
            "$ref": "TaxRate"
          },
          "response": {
            "$ref": "TaxRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate"
          ]
        },
        "list": {
          "id": "TaxRate.list",
          "path": "resources/tax-rate",
          "httpMethod": "GET",
          "description": "Returns a list of TaxRate records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate.readonly"
          ]
        },
        "listhead": {
          "id": "TaxRate.listhead",
          "path": "resources/tax-rate",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxRate records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate.readonly"
          ]
        },
        "patch": {
          "id": "TaxRate.patch",
          "path": "resources/tax-rate/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxRate record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxRate"
          },
          "response": {
            "$ref": "TaxRate"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-rate"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "TaxType": {
      "methods": {
        "delete": {
          "id": "TaxType.delete",
          "path": "resources/tax-type/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "TaxType.get",
          "path": "resources/tax-type/{name}",
          "httpMethod": "GET",
          "description": "Gets a single TaxType record.",
          "response": {
            "$ref": "TaxType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type",
            "https://mobile.xtuple.com/dogfood/auth/tax-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "TaxType.head",
          "path": "resources/tax-type/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type",
            "https://mobile.xtuple.com/dogfood/auth/tax-type.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "TaxType.insert",
          "path": "resources/tax-type",
          "httpMethod": "POST",
          "description": "Add a single TaxType record.",
          "request": {
            "$ref": "TaxType"
          },
          "response": {
            "$ref": "TaxType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type"
          ]
        },
        "list": {
          "id": "TaxType.list",
          "path": "resources/tax-type",
          "httpMethod": "GET",
          "description": "Returns a list of TaxType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type",
            "https://mobile.xtuple.com/dogfood/auth/tax-type.readonly"
          ]
        },
        "listhead": {
          "id": "TaxType.listhead",
          "path": "resources/tax-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type",
            "https://mobile.xtuple.com/dogfood/auth/tax-type.readonly"
          ]
        },
        "patch": {
          "id": "TaxType.patch",
          "path": "resources/tax-type/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxType"
          },
          "response": {
            "$ref": "TaxType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-type"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "TaxZone": {
      "methods": {
        "delete": {
          "id": "TaxZone.delete",
          "path": "resources/tax-zone/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single TaxZone record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "TaxZone.get",
          "path": "resources/tax-zone/{code}",
          "httpMethod": "GET",
          "description": "Gets a single TaxZone record.",
          "response": {
            "$ref": "TaxZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "TaxZone.head",
          "path": "resources/tax-zone/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TaxZone record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone.readonly"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "TaxZone.insert",
          "path": "resources/tax-zone",
          "httpMethod": "POST",
          "description": "Add a single TaxZone record.",
          "request": {
            "$ref": "TaxZone"
          },
          "response": {
            "$ref": "TaxZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone"
          ]
        },
        "list": {
          "id": "TaxZone.list",
          "path": "resources/tax-zone",
          "httpMethod": "GET",
          "description": "Returns a list of TaxZone records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TaxZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone.readonly"
          ]
        },
        "listhead": {
          "id": "TaxZone.listhead",
          "path": "resources/tax-zone",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TaxZone records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone.readonly"
          ]
        },
        "patch": {
          "id": "TaxZone.patch",
          "path": "resources/tax-zone/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single TaxZone record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "TaxZone"
          },
          "response": {
            "$ref": "TaxZone"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax-zone"
          ],
          "parameters": {
            "code": {
              "description": "Code",
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "Terms": {
      "methods": {
        "delete": {
          "id": "Terms.delete",
          "path": "resources/terms/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Terms record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "Terms.get",
          "path": "resources/terms/{code}",
          "httpMethod": "GET",
          "description": "Gets a single Terms record.",
          "response": {
            "$ref": "Terms"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms",
            "https://mobile.xtuple.com/dogfood/auth/terms.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "Terms.head",
          "path": "resources/terms/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Terms record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms",
            "https://mobile.xtuple.com/dogfood/auth/terms.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "Terms.insert",
          "path": "resources/terms",
          "httpMethod": "POST",
          "description": "Add a single Terms record.",
          "request": {
            "$ref": "Terms"
          },
          "response": {
            "$ref": "Terms"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms"
          ]
        },
        "list": {
          "id": "Terms.list",
          "path": "resources/terms",
          "httpMethod": "GET",
          "description": "Returns a list of Terms records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Terms"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms",
            "https://mobile.xtuple.com/dogfood/auth/terms.readonly"
          ]
        },
        "listhead": {
          "id": "Terms.listhead",
          "path": "resources/terms",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Terms records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms",
            "https://mobile.xtuple.com/dogfood/auth/terms.readonly"
          ]
        },
        "patch": {
          "id": "Terms.patch",
          "path": "resources/terms/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Terms record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Terms"
          },
          "response": {
            "$ref": "Terms"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/terms"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "ToDo": {
      "methods": {
        "delete": {
          "id": "ToDo.delete",
          "path": "resources/to-do/{uuid}",
          "httpMethod": "DELETE",
          "description": "Deletes a single ToDo record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "get": {
          "id": "ToDo.get",
          "path": "resources/to-do/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ToDo record.",
          "response": {
            "$ref": "ToDo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do",
            "https://mobile.xtuple.com/dogfood/auth/to-do.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ToDo.head",
          "path": "resources/to-do/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ToDo record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do",
            "https://mobile.xtuple.com/dogfood/auth/to-do.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "ToDo.insert",
          "path": "resources/to-do",
          "httpMethod": "POST",
          "description": "Add a single ToDo record.",
          "request": {
            "$ref": "ToDo"
          },
          "response": {
            "$ref": "ToDo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do"
          ]
        },
        "list": {
          "id": "ToDo.list",
          "path": "resources/to-do",
          "httpMethod": "GET",
          "description": "Returns a list of ToDo records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ToDoListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do",
            "https://mobile.xtuple.com/dogfood/auth/to-do.readonly"
          ]
        },
        "listhead": {
          "id": "ToDo.listhead",
          "path": "resources/to-do",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ToDo records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do",
            "https://mobile.xtuple.com/dogfood/auth/to-do.readonly"
          ]
        },
        "patch": {
          "id": "ToDo.patch",
          "path": "resources/to-do/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single ToDo record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "ToDo"
          },
          "response": {
            "$ref": "ToDo"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "ToDoListItem": {
      "methods": {
        "get": {
          "id": "ToDoListItem.get",
          "path": "resources/to-do-list-item/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ToDoListItem record.",
          "response": {
            "$ref": "ToDoListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ToDoListItem.head",
          "path": "resources/to-do-list-item/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ToDoListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ToDoListItem.list",
          "path": "resources/to-do-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of ToDoListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ToDoListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "ToDoListItem.listhead",
          "path": "resources/to-do-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ToDoListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item",
            "https://mobile.xtuple.com/dogfood/auth/to-do-list-item.readonly"
          ]
        }
      }
    },
    "ToDoRelation": {
      "methods": {
        "get": {
          "id": "ToDoRelation.get",
          "path": "resources/to-do-relation/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single ToDoRelation record.",
          "response": {
            "$ref": "ToDoRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "ToDoRelation.head",
          "path": "resources/to-do-relation/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single ToDoRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation.readonly"
          ],
          "parameters": {
            "uuid": {
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "list": {
          "id": "ToDoRelation.list",
          "path": "resources/to-do-relation",
          "httpMethod": "GET",
          "description": "Returns a list of ToDoRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "ToDoRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation.readonly"
          ]
        },
        "listhead": {
          "id": "ToDoRelation.listhead",
          "path": "resources/to-do-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of ToDoRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation",
            "https://mobile.xtuple.com/dogfood/auth/to-do-relation.readonly"
          ]
        }
      }
    },
    "TransferOrderItemListItem": {
      "methods": {
        "get": {
          "id": "TransferOrderItemListItem.get",
          "path": "resources/transfer-order-item-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single TransferOrderItemListItem record.",
          "response": {
            "$ref": "TransferOrderItemListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "TransferOrderItemListItem.head",
          "path": "resources/transfer-order-item-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TransferOrderItemListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "TransferOrderItemListItem.list",
          "path": "resources/transfer-order-item-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of TransferOrderItemListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TransferOrderItemListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "TransferOrderItemListItem.listhead",
          "path": "resources/transfer-order-item-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TransferOrderItemListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-list-item.readonly"
          ]
        }
      }
    },
    "TransferOrderItemRelation": {
      "methods": {
        "get": {
          "id": "TransferOrderItemRelation.get",
          "path": "resources/transfer-order-item-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single TransferOrderItemRelation record.",
          "response": {
            "$ref": "TransferOrderItemRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "TransferOrderItemRelation.head",
          "path": "resources/transfer-order-item-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single TransferOrderItemRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "TransferOrderItemRelation.list",
          "path": "resources/transfer-order-item-relation",
          "httpMethod": "GET",
          "description": "Returns a list of TransferOrderItemRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "TransferOrderItemRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation.readonly"
          ]
        },
        "listhead": {
          "id": "TransferOrderItemRelation.listhead",
          "path": "resources/transfer-order-item-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of TransferOrderItemRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation",
            "https://mobile.xtuple.com/dogfood/auth/transfer-order-item-relation.readonly"
          ]
        }
      }
    },
    "Unit": {
      "methods": {
        "delete": {
          "id": "Unit.delete",
          "path": "resources/unit/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Unit record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "Unit.get",
          "path": "resources/unit/{name}",
          "httpMethod": "GET",
          "description": "Gets a single Unit record.",
          "response": {
            "$ref": "Unit"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit",
            "https://mobile.xtuple.com/dogfood/auth/unit.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "Unit.head",
          "path": "resources/unit/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Unit record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit",
            "https://mobile.xtuple.com/dogfood/auth/unit.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "Unit.insert",
          "path": "resources/unit",
          "httpMethod": "POST",
          "description": "Add a single Unit record.",
          "request": {
            "$ref": "Unit"
          },
          "response": {
            "$ref": "Unit"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit"
          ]
        },
        "list": {
          "id": "Unit.list",
          "path": "resources/unit",
          "httpMethod": "GET",
          "description": "Returns a list of Unit records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Unit"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit",
            "https://mobile.xtuple.com/dogfood/auth/unit.readonly"
          ]
        },
        "listhead": {
          "id": "Unit.listhead",
          "path": "resources/unit",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Unit records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit",
            "https://mobile.xtuple.com/dogfood/auth/unit.readonly"
          ]
        },
        "patch": {
          "id": "Unit.patch",
          "path": "resources/unit/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Unit record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Unit"
          },
          "response": {
            "$ref": "Unit"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/unit"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "Url": {
      "methods": {
        "get": {
          "id": "Url.get",
          "path": "resources/url/{uuid}",
          "httpMethod": "GET",
          "description": "Gets a single Url record.",
          "response": {
            "$ref": "Url"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/url",
            "https://mobile.xtuple.com/dogfood/auth/url.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "head": {
          "id": "Url.head",
          "path": "resources/url/{uuid}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Url record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/url",
            "https://mobile.xtuple.com/dogfood/auth/url.readonly"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        },
        "insert": {
          "id": "Url.insert",
          "path": "resources/url",
          "httpMethod": "POST",
          "description": "Add a single Url record.",
          "request": {
            "$ref": "Url"
          },
          "response": {
            "$ref": "Url"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/url"
          ]
        },
        "list": {
          "id": "Url.list",
          "path": "resources/url",
          "httpMethod": "GET",
          "description": "Returns a list of Url records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "Url"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/url",
            "https://mobile.xtuple.com/dogfood/auth/url.readonly"
          ]
        },
        "listhead": {
          "id": "Url.listhead",
          "path": "resources/url",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Url records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/url",
            "https://mobile.xtuple.com/dogfood/auth/url.readonly"
          ]
        },
        "patch": {
          "id": "Url.patch",
          "path": "resources/url/{uuid}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Url record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Url"
          },
          "response": {
            "$ref": "Url"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/url"
          ],
          "parameters": {
            "uuid": {
              "description": "Added by xt the web-mobile package.",
              "type": "string",
              "format": "uuid",
              "location": "path"
            }
          },
          "parameterOrder": [
            "uuid"
          ]
        }
      }
    },
    "UserAccount": {
      "methods": {
        "get": {
          "id": "UserAccount.get",
          "path": "resources/user-account/{username}",
          "httpMethod": "GET",
          "description": "Gets a single UserAccount record.",
          "response": {
            "$ref": "UserAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account",
            "https://mobile.xtuple.com/dogfood/auth/user-account.readonly"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        },
        "head": {
          "id": "UserAccount.head",
          "path": "resources/user-account/{username}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single UserAccount record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account",
            "https://mobile.xtuple.com/dogfood/auth/user-account.readonly"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        },
        "insert": {
          "id": "UserAccount.insert",
          "path": "resources/user-account",
          "httpMethod": "POST",
          "description": "Add a single UserAccount record.",
          "request": {
            "$ref": "UserAccount"
          },
          "response": {
            "$ref": "UserAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account"
          ]
        },
        "list": {
          "id": "UserAccount.list",
          "path": "resources/user-account",
          "httpMethod": "GET",
          "description": "Returns a list of UserAccount records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "UserAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account",
            "https://mobile.xtuple.com/dogfood/auth/user-account.readonly"
          ]
        },
        "listhead": {
          "id": "UserAccount.listhead",
          "path": "resources/user-account",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of UserAccount records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account",
            "https://mobile.xtuple.com/dogfood/auth/user-account.readonly"
          ]
        },
        "patch": {
          "id": "UserAccount.patch",
          "path": "resources/user-account/{username}",
          "httpMethod": "PATCH",
          "description": "Modifies a single UserAccount record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "UserAccount"
          },
          "response": {
            "$ref": "UserAccount"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        }
      }
    },
    "UserAccountRelation": {
      "methods": {
        "get": {
          "id": "UserAccountRelation.get",
          "path": "resources/user-account-relation/{username}",
          "httpMethod": "GET",
          "description": "Gets a single UserAccountRelation record.",
          "response": {
            "$ref": "UserAccountRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation.readonly"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        },
        "head": {
          "id": "UserAccountRelation.head",
          "path": "resources/user-account-relation/{username}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single UserAccountRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation.readonly"
          ],
          "parameters": {
            "username": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "username"
          ]
        },
        "list": {
          "id": "UserAccountRelation.list",
          "path": "resources/user-account-relation",
          "httpMethod": "GET",
          "description": "Returns a list of UserAccountRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "UserAccountRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation.readonly"
          ]
        },
        "listhead": {
          "id": "UserAccountRelation.listhead",
          "path": "resources/user-account-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of UserAccountRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation",
            "https://mobile.xtuple.com/dogfood/auth/user-account-relation.readonly"
          ]
        }
      }
    },
    "UserAccountRole": {
      "methods": {
        "delete": {
          "id": "UserAccountRole.delete",
          "path": "resources/user-account-role/{name}",
          "httpMethod": "DELETE",
          "description": "Deletes a single UserAccountRole record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "get": {
          "id": "UserAccountRole.get",
          "path": "resources/user-account-role/{name}",
          "httpMethod": "GET",
          "description": "Gets a single UserAccountRole record.",
          "response": {
            "$ref": "UserAccountRole"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "head": {
          "id": "UserAccountRole.head",
          "path": "resources/user-account-role/{name}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single UserAccountRole record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role.readonly"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "insert": {
          "id": "UserAccountRole.insert",
          "path": "resources/user-account-role",
          "httpMethod": "POST",
          "description": "Add a single UserAccountRole record.",
          "request": {
            "$ref": "UserAccountRole"
          },
          "response": {
            "$ref": "UserAccountRole"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role"
          ]
        },
        "list": {
          "id": "UserAccountRole.list",
          "path": "resources/user-account-role",
          "httpMethod": "GET",
          "description": "Returns a list of UserAccountRole records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "UserAccountRoleListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role.readonly"
          ]
        },
        "listhead": {
          "id": "UserAccountRole.listhead",
          "path": "resources/user-account-role",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of UserAccountRole records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role.readonly"
          ]
        },
        "patch": {
          "id": "UserAccountRole.patch",
          "path": "resources/user-account-role/{name}",
          "httpMethod": "PATCH",
          "description": "Modifies a single UserAccountRole record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "UserAccountRole"
          },
          "response": {
            "$ref": "UserAccountRole"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/user-account-role"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "Vendor": {
      "methods": {
        "delete": {
          "id": "Vendor.delete",
          "path": "resources/vendor/{number}",
          "httpMethod": "DELETE",
          "description": "Deletes a single Vendor record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "get": {
          "id": "Vendor.get",
          "path": "resources/vendor/{number}",
          "httpMethod": "GET",
          "description": "Gets a single Vendor record.",
          "response": {
            "$ref": "Vendor"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor",
            "https://mobile.xtuple.com/dogfood/auth/vendor.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "Vendor.head",
          "path": "resources/vendor/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single Vendor record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor",
            "https://mobile.xtuple.com/dogfood/auth/vendor.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "insert": {
          "id": "Vendor.insert",
          "path": "resources/vendor",
          "httpMethod": "POST",
          "description": "Add a single Vendor record.",
          "request": {
            "$ref": "Vendor"
          },
          "response": {
            "$ref": "Vendor"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor"
          ]
        },
        "list": {
          "id": "Vendor.list",
          "path": "resources/vendor",
          "httpMethod": "GET",
          "description": "Returns a list of Vendor records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "VendorListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor",
            "https://mobile.xtuple.com/dogfood/auth/vendor.readonly"
          ]
        },
        "listhead": {
          "id": "Vendor.listhead",
          "path": "resources/vendor",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of Vendor records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor",
            "https://mobile.xtuple.com/dogfood/auth/vendor.readonly"
          ]
        },
        "patch": {
          "id": "Vendor.patch",
          "path": "resources/vendor/{number}",
          "httpMethod": "PATCH",
          "description": "Modifies a single Vendor record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "Vendor"
          },
          "response": {
            "$ref": "Vendor"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        }
      }
    },
    "VendorListItem": {
      "methods": {
        "get": {
          "id": "VendorListItem.get",
          "path": "resources/vendor-list-item/{number}",
          "httpMethod": "GET",
          "description": "Gets a single VendorListItem record.",
          "response": {
            "$ref": "VendorListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "VendorListItem.head",
          "path": "resources/vendor-list-item/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single VendorListItem record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "VendorListItem.list",
          "path": "resources/vendor-list-item",
          "httpMethod": "GET",
          "description": "Returns a list of VendorListItem records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "VendorListItem"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item.readonly"
          ]
        },
        "listhead": {
          "id": "VendorListItem.listhead",
          "path": "resources/vendor-list-item",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of VendorListItem records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item",
            "https://mobile.xtuple.com/dogfood/auth/vendor-list-item.readonly"
          ]
        }
      }
    },
    "VendorRelation": {
      "methods": {
        "get": {
          "id": "VendorRelation.get",
          "path": "resources/vendor-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single VendorRelation record.",
          "response": {
            "$ref": "VendorRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "VendorRelation.head",
          "path": "resources/vendor-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single VendorRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "VendorRelation.list",
          "path": "resources/vendor-relation",
          "httpMethod": "GET",
          "description": "Returns a list of VendorRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "VendorRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation.readonly"
          ]
        },
        "listhead": {
          "id": "VendorRelation.listhead",
          "path": "resources/vendor-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of VendorRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation",
            "https://mobile.xtuple.com/dogfood/auth/vendor-relation.readonly"
          ]
        }
      }
    },
    "VendorType": {
      "methods": {
        "delete": {
          "id": "VendorType.delete",
          "path": "resources/vendor-type/{code}",
          "httpMethod": "DELETE",
          "description": "Deletes a single VendorType record.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "get": {
          "id": "VendorType.get",
          "path": "resources/vendor-type/{code}",
          "httpMethod": "GET",
          "description": "Gets a single VendorType record.",
          "response": {
            "$ref": "VendorType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "head": {
          "id": "VendorType.head",
          "path": "resources/vendor-type/{code}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single VendorType record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type.readonly"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        },
        "insert": {
          "id": "VendorType.insert",
          "path": "resources/vendor-type",
          "httpMethod": "POST",
          "description": "Add a single VendorType record.",
          "request": {
            "$ref": "VendorType"
          },
          "response": {
            "$ref": "VendorType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type"
          ]
        },
        "list": {
          "id": "VendorType.list",
          "path": "resources/vendor-type",
          "httpMethod": "GET",
          "description": "Returns a list of VendorType records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "VendorType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type.readonly"
          ]
        },
        "listhead": {
          "id": "VendorType.listhead",
          "path": "resources/vendor-type",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of VendorType records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type.readonly"
          ]
        },
        "patch": {
          "id": "VendorType.patch",
          "path": "resources/vendor-type/{code}",
          "httpMethod": "PATCH",
          "description": "Modifies a single VendorType record. This method supports JSON-Patch semantics.",
          "request": {
            "$ref": "VendorType"
          },
          "response": {
            "$ref": "VendorType"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/vendor-type"
          ],
          "parameters": {
            "code": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "code"
          ]
        }
      }
    },
    "WorksheetProjectRelation": {
      "methods": {
        "get": {
          "id": "WorksheetProjectRelation.get",
          "path": "resources/worksheet-project-relation/{number}",
          "httpMethod": "GET",
          "description": "Gets a single WorksheetProjectRelation record.",
          "response": {
            "$ref": "WorksheetProjectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "head": {
          "id": "WorksheetProjectRelation.head",
          "path": "resources/worksheet-project-relation/{number}",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a single WorksheetProjectRelation record, but will not return any response body.",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation.readonly"
          ],
          "parameters": {
            "number": {
              "type": "string",
              "location": "path"
            }
          },
          "parameterOrder": [
            "number"
          ]
        },
        "list": {
          "id": "WorksheetProjectRelation.list",
          "path": "resources/worksheet-project-relation",
          "httpMethod": "GET",
          "description": "Returns a list of WorksheetProjectRelation records.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO: add this when moving to JSON-Schema draft v5"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "response": {
            "$ref": "WorksheetProjectRelation"
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation.readonly"
          ]
        },
        "listhead": {
          "id": "WorksheetProjectRelation.listhead",
          "path": "resources/worksheet-project-relation",
          "httpMethod": "HEAD",
          "description": "Returns the HTTP Header as if you made a GET request for a list of WorksheetProjectRelation records, but will not return any response body.",
          "parameters": {
            "query": {
              "type": "object",
              "description": "Query different resource properties based on their JSON-Schema. e.g. ?query[property1][BEGINS_WITH]=foo&query[property2][EQUALS]=bar",
              "location": "query",
              "$ref": "TODO"
            },
            "orderby": {
              "type": "object",
              "description": "Specify the order of results for a filtered list request.",
              "location": "query"
            },
            "rowLimit": {
              "type": "integer",
              "description": "Maximum number of entries to return. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "maxResults": {
              "type": "integer",
              "description": "Maximum number of entries returned on one result page. Optional.",
              "format": "int32",
              "minimum": "1",
              "location": "query"
            },
            "pageToken": {
              "type": "string",
              "description": "Token specifying which result page to return. Optional.",
              "location": "query"
            },
            "q": {
              "type": "string",
              "description": "Free text search terms to find events that match these terms in any field. Optional.",
              "location": "query"
            },
            "count": {
              "type": "boolean",
              "description": "Return the a count of the total number of results from a filtered list request.",
              "location": "query"
            }
          },
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation",
            "https://mobile.xtuple.com/dogfood/auth/worksheet-project-relation.readonly"
          ]
        }
      }
    },
    "Sales": {
      "methods": {
        "freightDetail": {
          "id": "Sales.freightDetail",
          "path": "services/sales/freight-detail",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/sales"
          ],
          "description": "Returns an array of freight detail records based on input",
          "parameters": {
            "customerId": {
              "type": "Number",
              "description": "Customer ID",
              "location": "query"
            },
            "shiptoId": {
              "type": "Number",
              "description": "Shipto ID",
              "location": "query"
            },
            "shipZoneId": {
              "type": "Number",
              "description": "Ship Zone ID",
              "location": "query"
            },
            "orderDate": {
              "type": "Date",
              "description": "Quote Date",
              "location": "query"
            },
            "shipVia": {
              "type": "String",
              "description": "Ship Via",
              "location": "query"
            },
            "currencyId": {
              "type": "Number",
              "description": "Currency ID",
              "location": "query"
            },
            "siteId": {
              "type": "Number",
              "description": "Site ID",
              "location": "query"
            },
            "freightClassId": {
              "type": "Number",
              "description": "Freight Class ID",
              "location": "query"
            },
            "weight": {
              "type": "Number",
              "description": "Weight",
              "location": "query"
            }
          },
          "parameterOrder": [
            "customerId",
            "shiptoId",
            "shipZoneId",
            "orderDate",
            "shipVia",
            "currencyId",
            "siteId",
            "freightClassId",
            "weight"
          ]
        }
      }
    },
    "Manufacturing": {
      "methods": {
        "issueMaterial": {
          "id": "Manufacturing.issueMaterial",
          "path": "services/manufacturing/issue-material",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/manufacturing"
          ],
          "description": "Issue Materials.",
          "request": {
            "$ref": "ManufacturingIssueMaterial"
          }
        },
        "postProduction": {
          "id": "Manufacturing.postProduction",
          "path": "services/manufacturing/post-production",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/manufacturing"
          ],
          "description": "Post production",
          "request": {
            "$ref": "ManufacturingPostProduction"
          }
        },
        "returnMaterial": {
          "id": "Manufacturing.returnMaterial",
          "path": "services/manufacturing/return-material",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/manufacturing"
          ],
          "description": "Return issued materials from manufacturing to inventory.",
          "request": {
            "$ref": "ManufacturingReturnMaterial"
          }
        }
      }
    },
    "Tax": {
      "methods": {
        "taxDetail": {
          "id": "Tax.taxDetail",
          "path": "services/tax/tax-detail",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/tax"
          ],
          "description": "Returns the calculated tax detail for a given amount, currency, and date",
          "parameters": {
            "taxZoneId": {
              "type": "Number",
              "description": "Tax Zone ID",
              "location": "query"
            },
            "taxTypeId": {
              "type": "Number",
              "description": "Tax Type ID",
              "location": "query"
            },
            "effective": {
              "type": "Date",
              "description": "Effective Date",
              "location": "query"
            },
            "currencyID": {
              "type": "Number",
              "description": "Currency ID",
              "location": "query"
            },
            "amount": {
              "type": "Number",
              "description": "Taxable Amount",
              "location": "query"
            }
          },
          "parameterOrder": [
            "taxZoneId",
            "taxTypeId",
            "effective",
            "currencyID",
            "amount"
          ]
        }
      }
    },
    "Inventory": {
      "methods": {
        "adjustment": {
          "id": "Inventory.adjustment",
          "path": "services/inventory/adjustment",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Perform Inventory Adjustments.",
          "request": {
            "$ref": "InventoryAdjustment"
          }
        },
        "receipt": {
          "id": "Inventory.receipt",
          "path": "services/inventory/receipt",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Receive Purchase Order Item.",
          "request": {
            "$ref": "InventoryReceipt"
          }
        },
        "issueToShipping": {
          "id": "Inventory.issueToShipping",
          "path": "services/inventory/issue-to-shipping",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Issue to Shipping for Sales Order or Transfer Order.",
          "request": {
            "$ref": "InventoryIssueToShipping"
          }
        },
        "shipShipment": {
          "id": "Inventory.shipShipment",
          "path": "services/inventory/ship-shipment",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Ship Sales or Transfer Order shipment",
          "request": {
            "$ref": "InventoryShipShipment"
          }
        },
        "returnFromShipping": {
          "id": "Inventory.returnFromShipping",
          "path": "services/inventory/return-from-shipping",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Return issued materials from shipping to inventory.",
          "request": {
            "$ref": "InventoryReturnFromShipping"
          }
        },
        "recallShipment": {
          "id": "Inventory.recallShipment",
          "path": "services/inventory/recall-shipment",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Return shipped shipment",
          "request": {
            "$ref": "InventoryRecallShipment"
          }
        },
        "postReceipt": {
          "id": "Inventory.postReceipt",
          "path": "services/inventory/post-receipt",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/inventory"
          ],
          "description": "Post Receipt",
          "request": {
            "$ref": "InventoryPostReceipt"
          }
        }
      }
    },
    "Model": {
      "methods": {
        "query": {
          "id": "Model.query",
          "path": "services/model/query",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/model"
          ],
          "description": "Perform an complex query on a resource. This allows you to use a POST body for the query vs. a long URL.",
          "request": {
            "$ref": "Query"
          }
        },
        "restQuery": {
          "id": "Model.restQuery",
          "path": "services/model/rest-query",
          "httpMethod": "POST",
          "scopes": [
            "https://mobile.xtuple.com/dogfood/auth",
            "https://mobile.xtuple.com/dogfood/auth/model"
          ],
          "description": "Perform an complex query on a resource using the REST query structure. This allows you to use a POST body for the query vs. a long URL.",
          "request": {
            "$ref": "RestQuery"
          }
        }
      }
    }
  }
}