> For the complete documentation index, see [llms.txt](https://docs.pyck.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pyck.cloud/graphql-api/types.md).

# Types

GraphQL Type Definitions

This section documents the object types, interfaces, and other type definitions in the pyck GraphQL API. Understanding these types is essential for constructing and interpreting API requests and responses.

## Core Types

### Management Types

* [**Device**](https://github.com/pyck-ai/docs/blob/main/graphql/types/device.md): Physical devices and equipment (scanners, printers, terminals)
* [**Location**](https://github.com/pyck-ai/docs/blob/main/graphql/types/location.md): Physical or logical locations within facilities
* [**DeviceLocation**](https://github.com/pyck-ai/docs/blob/main/graphql/types/device-location.md): Device-to-location assignment relationships
* [**DeviceUser**](https://github.com/pyck-ai/docs/blob/main/graphql/types/device-user.md): Device-to-user assignment relationships
* [**AccessPolicy**](/graphql-api/types/accesspolicy.md): Access control policies for resource permissions
* [**Company**](/graphql-api/types/company.md): Company/tenant entity for organizational boundaries
* [**Customer**](/graphql-api/types/customer.md): Customer entity for order fulfillment
* [**DataType**](/graphql-api/types/datatype.md): JSON schema definition for entity data validation
* [**Supplier**](/graphql-api/types/supplier.md): Supplier entity for procurement operations
* [**Group**](/graphql-api/types/group.md): User groups for organizing users and roles
* [**Role**](/graphql-api/types/role.md): Roles for role-based access control (RBAC)
* [**User**](/graphql-api/types/user.md): User entity for authentication and authorization
* [**UserProfile**](/graphql-api/types/userprofile.md): Comprehensive user profile with tenant and role information
* [**UserRoleTuple**](/graphql-api/types/userroletuple.md): **Deprecated** - Role assignment within a tenant (use UserTenants)
* [**UserTenants**](/graphql-api/types/usertenants.md): Tenant associations with role assignments for multi-tenant access

### Inventory Types

* [**InventoryCollection**](/graphql-api/types/inventorycollection.md): Collections of coordinated inventory movements
* [**InventoryItem**](/graphql-api/types/inventoryitem.md): Products and items in your inventory
* [**InventoryItemSet**](/graphql-api/types/inventoryitemset.md): Collections of inventory items grouped by SKU
* [**ItemMovement**](/graphql-api/types/itemmovement.md): Movement of individual inventory items
* [**CollectionMovement**](/graphql-api/types/collectionmovement.md): Individual movements within coordinated inventory operations
* [**Repository**](/graphql-api/types/repository.md): Storage locations (warehouses, bins, pallets, etc.)
* [**RepositoryMovement**](/graphql-api/types/repositorymovement.md): Movement of repository-level inventory
* [**RebuildStockOutput**](/graphql-api/types/rebuildstockoutput.md): Response from the rebuildInventoryStock mutation
* [**Stock**](/graphql-api/types/stock.md): Inventory levels and movements
* [**Supplier**](/graphql-api/types/supplier.md): Supplier entity for procurement operations
* [**Tenant**](/graphql-api/types/tenant.md): Tenant entity for multi-tenancy support
* [**TemporalMetadata**](/graphql-api/types/temporalmetadata.md): Key-value metadata for Temporal workflows
* [**TemporalWorkflow**](/graphql-api/types/temporalworkflow.md): Temporal workflow execution information
* [**Transaction**](/graphql-api/types/transaction.md): Inventory transaction records

### Picking Types

* [**PickingOrder**](/graphql-api/types/pickingorder.md): Order for picking items from warehouse
* [**PickingOrderItem**](/graphql-api/types/pickingorderitem.md): Individual items within picking orders
* [**PickingOutboundShipmentNotification**](/graphql-api/types/pickingoutboundshipmentnotification.md): Outbound shipment notification for completed picking orders

### Receiving Types

* [**ReceivingInbound**](/graphql-api/types/receivinginbound.md): Inbound shipment for receiving
* [**ReceivingInboundItem**](/graphql-api/types/receivinginbounditem.md): Individual items within inbound shipments
* [**ReceivingInboundShipmentNotification**](/graphql-api/types/receivinginboundshipmentnotification.md): Inbound shipment notification for completed inbound receipts

### Workflow Types

* [**Workflow**](/graphql-api/types/workflow.md): Workflow definition for automated processes
* [**WorkflowEvent**](/graphql-api/types/workflowevent.md): Individual event in workflow execution history
* [**WorkflowExecutionInfo**](/graphql-api/types/workflowexecutioninfo.md): Detailed information about Temporal workflow executions
* [**WorkflowSignal**](/graphql-api/types/workflowsignal.md): Signals that trigger workflow execution
* [**TemporalWorkflow**](/graphql-api/types/temporalworkflow.md): Temporal workflow execution information
* [**TemporalMetadata**](/graphql-api/types/temporalmetadata.md): Key-value metadata for Temporal workflows
* [**GetAssigneeResponse**](/graphql-api/types/getassigneeresponse.md): Response containing workflow assignee information
* [**SetAssigneeResponse**](/graphql-api/types/setassigneeresponse.md): Response containing updated assignee information
* [**GetWorkflowActionsResponse**](/graphql-api/types/getworkflowactionsresponse.md): Response containing the queries and updates currently available for a workflow execution
* [**ActionDefinition**](/graphql-api/types/actiondefinition.md): Describes a single workflow query or update and whether it is currently callable
* [**GetWorkflowTargetsResponse**](/graphql-api/types/getworkflowtargetsresponse.md): Response containing the target surfaces of a workflow execution
* [**SetWorkflowTargetsResponse**](/graphql-api/types/setworkflowtargetsresponse.md): Response containing updated target surfaces of a workflow execution

### File Types

* [**File**](/graphql-api/types/file.md): Files uploaded and associated with entities

### System Types

* [**Event**](/graphql-api/types/event.md): Event schema/template for event-driven architecture
* [**KeyValue**](/graphql-api/types/keyvalue.md): Flexible key-value store for configuration and custom data
* [**PageInfo**](/graphql-api/types/pageinfo.md): Pagination information for connections

## Common Patterns

### Connection Types

Many list queries return connection types that follow the Relay connection specification:

```
Type + Connection
  edges: [Type + Edge]
    node: Type
    cursor: String
  pageInfo: PageInfo
  totalCount: Int
```

For example, `InventoryItemConnection` contains `InventoryItemEdge` objects, each with a `node` (the actual `InventoryItem`) and a `cursor` for pagination.

### Relationship Connections

All entity relationship fields also return Connection objects, enabling pagination, filtering, and ordering on nested relationships. For example:

```graphql
query {
  groups(first: 10) {
    edges {
      node {
        id
        name
        users(first: 20, orderBy: { direction: ASC, field: USERNAME }) {
          edges {
            node {
              id
              username
            }
          }
          totalCount
        }
      }
    }
  }
}
```

See the [Relay Connections Migration Guide](/development/migrations/relay-connections.md) for details on using connections for relationship fields.

### Input Types

Input types are used for mutation arguments:

```
Create + Type + Input
Update + Type + Input
Delete + Type + Input
```

For example, `CreateInventoryItemInput` is used for the `createInventoryItem` mutation.

### Where Types

Filter types are used for the `where` argument in queries:

```
Type + WhereInput
```

For example, `InventoryItemWhereInput` allows filtering inventory items by various criteria.

### OrderBy Types

Sorting types are used for the `orderBy` argument in queries:

```
Type + OrderByInput
```

For example, `InventoryItemOrderByInput` allows sorting inventory items by various fields.

## The Data Field

Many entity types include a `data` field of type `Map`, which stores flexible attributes as JSON. This allows for entity customization without schema changes.

The structure of the `data` field is validated using DataTypes, which are JSON Schema definitions that can be created and managed through the API.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.pyck.cloud/graphql-api/types.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
