# mulesoft Cloud Information Model - Full Documentation --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Design Elements > For the full documentation index, see: https://docs.mulesoft.com/llms.txt This guide summarizes the more important design elements that were adopted when defining CIM model objects. ## General Design Elements The following design elements apply to all CIM object definitions. ### Library Organization - The types for each library are defined in separate RAML libraries, one for each entity group. - All types are then published via the main library file for ease of reference. - All types, libraries, and exports are sorted in alphabetical order for quick reference. ### Object Definition - Standard properties such as `id`, `name`, and `description` appear first in each object definition, and in that order. - Objects that include a mandatory `id` property are made nillable to support auto-generated values upon create. - With the exception of strings, optional properties of intrinsic types (such as integer or datetime) are also nillable to support ternary states (set to a value, set to no value, or not present at all). - Since the model is intended to easily extendable as-is, properties with pre-defined enumerations are used very sparingly. - Most entities include an optional set of standard audit properties, usually as the last property defined. - Major entities, which may be synchronized between multiple systems, also include an optional set of external identifier references as the second-last property defined. - Arrays of child objects generally appear near the end of the object definition, typically just before the external identifiers and audit information properties. - To avoid cyclical dependencies, type composition occurs only within a single library file; all references to other entities are defined as string identifiers. - Most type composition is also defined as a union with a string to support flatter message instances where full object hierarchies are not required. - Unions are not used where circular or infinite references are possible (such as a child object referring to the parent). - Types that are intended to be extended always have a discriminator property with the value set to the name of the object. - Child types override the discriminator value to be the name of the child object. ### Object and Property Naming - Boolean properties start with a context-appropriate verb such as `can`, `is`, `has`, `should`, or `was`. - Date/time properties have a suffix corresponding to actual type, such as `DateTime` or `Date` for `datetime` types, and `Time` for `time-only` types - Properties representing internal identifier references to other objects have a suffix of `Id`, except when defined as a union between an identifier string and an actual object - Properties representing coded values end in `Code`. - Properties representing decimal values end in `Number`. - Properties representing arrays have plural names. - Properties used as discriminators end in `Instance`. ## Type Extensions The primary objective of creating CIM type extensions is to re-introduce type composition - in a controlled fashion - to make original core types "whole" for applications that need them. The following rules applied to all core types for which one or more properties had composition removed to reduce external dependencies: - Only types published by the main file for the corresponding subject area library can be extended. - Composition may be re-introduced only for core properties that were originally modified to be strings only (no unions) due to dependencies on external entities. - Composition may NOT be re-introduced where it would create cyclical or infinite references (for example, a reference to self). - All extended type names will be the name of the core parent type suffixed with `Ext` (for example, `ProductExt`). - Similarly, all properties added to extended types will include the suffix `Ext` for clarity and to avoid name collisions (for example, `productTypeExt`). - All properties added to extended types must be made optional. - Extensions may include references to core types defined in other subject areas but NOT extended types. - Similarly, extended type libraries may reference core type libraries but NOT extended type libraries. ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Finance Subject Area > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Activities to trace financial information in the company. For example, payment, invoice and expense report. ## Model Diagrams The following diagrams show the entities and relationships in this subject area, organized by entity group. ### Invoice  ### Payment  ### Payment Method  ## Implementation [CIM Finance Library](https://anypoint.mulesoft.com/exchange/org.mule.examples/accelerator-cim-finance-library) ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Design Elements](https://docs.mulesoft.com/accelerators-cim/latest/cim-design-elements) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Fulfill Subject Area > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Activities you perform to fulfill an order to a customer. For example, shipment and fulfillment order. ## Model Diagrams The following diagrams show the entities and relationships in this subject area, organized by entity group. ### Fulfillment Order  ### Shipment  ## Implementation [CIM Fulfill Library](https://anypoint.mulesoft.com/exchange/org.mule.examples/accelerator-cim-fulfill-library) ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Design Elements](https://docs.mulesoft.com/accelerators-cim/latest/cim-design-elements) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Market Subject Area > For the full documentation index, see: https://docs.mulesoft.com/llms.txt This defines who you have trading relationships with and how. For example, a customer & supplier along with contact information such as phone number and email address. ## Model Diagrams The following diagrams show the entities and relationships in this subject area, organized by entity group. ### Account  ### Contact Point  ### Lead  ### Party  ## Implementation [CIM Market Library](https://anypoint.mulesoft.com/exchange/org.mule.examples/accelerator-cim-market-library) ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Design Elements](https://docs.mulesoft.com/accelerators-cim/latest/cim-design-elements) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Produce Subject Area > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Handling of material that you will be buying, moving and selling. For example, product and inventory product. ## Model Diagrams The following diagrams show the entities and relationships in this subject area, organized by entity group. ### Inventory Product  ### Inventory Received  ### Product  ### Purchase Order  ## Implementation [CIM Produce Library](https://anypoint.mulesoft.com/exchange/org.mule.examples/accelerator-cim-produce-library) ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Design Elements](https://docs.mulesoft.com/accelerators-cim/latest/cim-design-elements) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Sell Subject Area > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anything you plan to sell or any part of a product that needs to be tracked for service purposes. For example, you are selling a green tractor. ## Model Diagrams The following diagrams show the entities and relationships in this subject area, organized by entity group. ### Contract  ### Opportunity  ### Price Book  ### Sales Order  ## Implementation [CIM Sell Library](https://anypoint.mulesoft.com/exchange/org.mule.examples/accelerator-cim-sell-library) ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Design Elements](https://docs.mulesoft.com/accelerators-cim/latest/cim-design-elements) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Setup Subject Area > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Defines technical resources such as software components and document images. ## Model diagrams The following diagrams show the entities and relationships in this subject area, organized by entity group. ### Generated Document  ## Implementation [CIM Setup Library](https://anypoint.mulesoft.com/exchange/org.mule.examples/accelerator-cim-setup-library) ## See Also - [CIM Overview](https://docs.mulesoft.com/accelerators-cim/latest/) - [CIM Design Elements](https://docs.mulesoft.com/accelerators-cim/latest/cim-design-elements) - [CIM Usage Guide](https://docs.mulesoft.com/accelerators-cim/latest/cim-usage-guide) - [CIM Subject Areas](https://docs.mulesoft.com/accelerators-cim/latest/cim-subject-areas) --- product: Cloud Information Model version: 2.0 is-latest-version: true --- # CIM Subject Areas > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The model content is organized into domains, or Subject Areas, which represent major business concepts. Each Subject Area defines one or more Entity Groups, which in turn consist of a related collection of Entities. Each Entity has a set of Attributes defining the unique characteristics of the Entity. ## Supported Subject Areas CIM supports the following subject areas, each of which includes an Entity Relationship Diagram (ERD). See [Diagram Conventions](#diagram_conventions) for the conventions used in the diagrams.
| Name | Description |
|---|---|
Entities related to finances, such as payments and payment methods. | |
Entities related to the fulfillment of goods and services, such as shipments. | |
Entities related to the marketing and promotion of goods and services, such as individuals, customers, and suppliers. | |
Entities related to actual goods and services, such as products and catalogs. | |
Entities related to the selling of goods and services, such as sales orders and channels. | |
Entities related to technical resources and artifacts. |
| Symbol | Entity Status | Description |
|---|---|---|
| Defined Group Entity | An entity in the current group that has a concrete definition. |
| Undefined Group Entity | An entity belonging to the current group that does not have a concrete definition. |
| Defined External Entity | An entity defined in a different entity group or subject area. |
| Undefined External Entity | An entity belonging to a different group or subject area that has not been defined. |
| API | Message | Object ID Type | External ID Type |
|---|---|---|---|
Salesforce Experience API | Customer Update | SALESFORCE_CORE | MDM |
Customers Process API | Customer Upsert | MDM | SALESFORCE_CORE |
Global Data Party System API | Customer Update | MDM | SALESFORCE_CORE |
SAP ECC Customers System API | Customer Create | SAP_ECC | MDM |
| Type | Property | Allowable values |
|---|---|---|
ExternalId | externalIdType | DOCUSIGN, EDI_SENDER_CODE, LOS, JIRA, OFBIZ, MDM, PIM, SALESFORCE_B2C, SALESFORCE_CORE, SALESFORCE_FSC_BANKING, SALESFORCE_FSC_INSURANCE, SALESFORCE_FSC_WEALTH, SALESFORCE_MARKETING, SALESFORCE_SALES, SALESFORCE_SERVICE, SAP_ECC, SAP_4HANA, SERVICENOW |
status | VALID, INVALID | |
Customer | customerStatus | ACTIVE, INACTIVE |
PartyRelatedParty | partyRelationshipType | AGENT, BUYER, CHILD, CLIENT, OTHER, RELATION, SPONSOR, SPOUSE, SUPPLIER, USER, VENDOR |
Product | type | MASTER, VARIANT |
SalesOrder | salesOrderType | ADD_ON, CANCELLATION, INITIAL, JOURNAL, RENEWAL, RETURN, SUBSCRIPTION, UPGRADE |
salesOrderStatus | CANCELLED, CREATED, CONFIRMED, DELIVERED, IN_CART, IN_TRANSIT, INVOICED, LOST, PARTIALLY_SHIPPED, PICKUP_AVAILABLE, PROCESSING, REJECTED, RETURNED | |
SalesOrderProduct | salesOrderProductStatus | ACTIVE, DISCONTINUED, INACTIVE, NOT_SELLING, OUT_OF_STOCK |