# com.io7m.cardant.protocol.inventory.cb

## Types

- CAI1Attachment
- CAI1AttachmentKey
- CAI1AuditEvent
- CAI1AuditSearchParameters
- CAI1CommandAuditSearchBegin
- CAI1CommandAuditSearchNext
- CAI1CommandAuditSearchPrevious
- CAI1CommandFileGet
- CAI1CommandFilePut
- CAI1CommandFileRemove
- CAI1CommandFileSearchBegin
- CAI1CommandFileSearchNext
- CAI1CommandFileSearchPrevious
- CAI1CommandItemAttachmentAdd
- CAI1CommandItemAttachmentRemove
- CAI1CommandItemCreate
- CAI1CommandItemGet
- CAI1CommandItemLocationsList
- CAI1CommandItemMetadataPut
- CAI1CommandItemMetadataRemove
- CAI1CommandItemReposit
- CAI1CommandItemSearchBegin
- CAI1CommandItemSearchNext
- CAI1CommandItemSearchPrevious
- CAI1CommandItemSetName
- CAI1CommandItemTypesAssign
- CAI1CommandItemTypesRevoke
- CAI1CommandItemsRemove
- CAI1CommandLocationAttachmentAdd
- CAI1CommandLocationAttachmentRemove
- CAI1CommandLocationGet
- CAI1CommandLocationList
- CAI1CommandLocationMetadataPut
- CAI1CommandLocationMetadataRemove
- CAI1CommandLocationPut
- CAI1CommandLocationTypesAssign
- CAI1CommandLocationTypesRevoke
- CAI1CommandLogin
- CAI1CommandRolesAssign
- CAI1CommandRolesGet
- CAI1CommandRolesRevoke
- CAI1CommandTypeDeclarationGet
- CAI1CommandTypeDeclarationPut
- CAI1CommandTypeDeclarationRemove
- CAI1CommandTypeDeclarationSearchBegin
- CAI1CommandTypeDeclarationSearchNext
- CAI1CommandTypeDeclarationSearchPrevious
- CAI1CommandTypeScalarGet
- CAI1CommandTypeScalarPut
- CAI1CommandTypeScalarRemove
- CAI1CommandTypeScalarSearchBegin
- CAI1CommandTypeScalarSearchNext
- CAI1CommandTypeScalarSearchPrevious
- CAI1ComparisonExact
- CAI1ComparisonFuzzy
- CAI1ComparisonSet
- CAI1EventUpdated
- CAI1File
- CAI1FileColumn
- CAI1FileColumnOrdering
- CAI1FileSearchParameters
- CAI1Id
- CAI1Item
- CAI1ItemColumn
- CAI1ItemColumnOrdering
- CAI1ItemLocation
- CAI1ItemLocations
- CAI1ItemReposit
- CAI1ItemSearchParameters
- CAI1ItemSummary
- CAI1ListLocationBehaviour
- CAI1Location
- CAI1LocationSummary
- CAI1Metadata
- CAI1MetadataElementMatch
- CAI1MetadataNameMatch
- CAI1MetadataValueMatch
- CAI1NameMatch
- CAI1Page
- CAI1ResponseAuditSearch
- CAI1ResponseBlame
- CAI1ResponseError
- CAI1ResponseFileGet
- CAI1ResponseFilePut
- CAI1ResponseFileRemove
- CAI1ResponseFileSearch
- CAI1ResponseItemAttachmentAdd
- CAI1ResponseItemAttachmentRemove
- CAI1ResponseItemCreate
- CAI1ResponseItemGet
- CAI1ResponseItemLocationsList
- CAI1ResponseItemMetadataPut
- CAI1ResponseItemMetadataRemove
- CAI1ResponseItemReposit
- CAI1ResponseItemSearch
- CAI1ResponseItemSetName
- CAI1ResponseItemTypesAssign
- CAI1ResponseItemTypesRevoke
- CAI1ResponseItemsRemove
- CAI1ResponseLocationAttachmentAdd
- CAI1ResponseLocationAttachmentRemove
- CAI1ResponseLocationGet
- CAI1ResponseLocationList
- CAI1ResponseLocationMetadataPut
- CAI1ResponseLocationMetadataRemove
- CAI1ResponseLocationPut
- CAI1ResponseLocationTypesAssign
- CAI1ResponseLocationTypesRevoke
- CAI1ResponseLogin
- CAI1ResponseRolesAssign
- CAI1ResponseRolesGet
- CAI1ResponseRolesRevoke
- CAI1ResponseTypeDeclarationGet
- CAI1ResponseTypeDeclarationPut
- CAI1ResponseTypeDeclarationRemove
- CAI1ResponseTypeDeclarationSearch
- CAI1ResponseTypeScalarGet
- CAI1ResponseTypeScalarPut
- CAI1ResponseTypeScalarRemove
- CAI1ResponseTypeScalarSearch
- CAI1SizeRange
- CAI1TimeRange
- CAI1TypeDeclaration
- CAI1TypeDeclarationSearchParameters
- CAI1TypeDeclarationSummary
- CAI1TypeField
- CAI1TypeMatch
- CAI1TypeScalar
- CAI1TypeScalarSearchParameters

### CAI1Attachment

An item attachment.

    [record CAI1Attachment
      [field file CAI1File]
      [field relation String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
file | CAI1File | The file ID.
relation | String | The relation.

### CAI1AttachmentKey

The values that uniquely identify an attachment on an object.

    [record CAI1AttachmentKey
      [field id UUID]
      [field relation String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
id | UUID | The file ID.
relation | String | The relation.

### CAI1AuditEvent

An audit event.

    [record CAI1AuditEvent
      [field id IntegerUnsigned64]
      [field time OffsetDateTime]
      [field owner UUID]
      [field type String]
      [field data [MapStringString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
id | IntegerUnsigned64 | The event ID.
time | OffsetDateTime | The event time.
owner | UUID | The event owner.
type | String | The event type.
data | [Map String String] | The event data.

### CAI1AuditSearchParameters

The audit search parameters.

    [record CAI1AuditSearchParameters
      [field owner [OptionUUID]]
      [field type [CAI1ComparisonExactString]]
      [field timeRange CAI1TimeRange]
      [field pageSize IntegerUnsigned32]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
owner | [Option UUID] | Limit to events with the given owner.
type | [CAI1ComparisonExact String] | Limit to events with the given type.
timeRange | CAI1TimeRange | Limit to events in the given time range.
pageSize | IntegerUnsigned32 | The page size.

### CAI1CommandAuditSearchBegin

Start searching audit events.

    [record CAI1CommandAuditSearchBegin
      [field parameters CAI1AuditSearchParameters]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
parameters | CAI1AuditSearchParameters | The search parameters.

### CAI1CommandAuditSearchNext

Continue searching audit events.

    [record CAI1CommandAuditSearchNext]

#### Fields

The record type has no fields.

### CAI1CommandAuditSearchPrevious

Continue searching audit events.

    [record CAI1CommandAuditSearchPrevious]

#### Fields

The record type has no fields.

### CAI1CommandFileGet

Retrieve a file.

    [record CAI1CommandFileGet
      [field fileId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
fileId | UUID | The file ID.

### CAI1CommandFilePut

Add or update files.

    [record CAI1CommandFilePut
      [field file CAI1File]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
file | CAI1File | The file.

### CAI1CommandFileRemove

Remove files.

    [record CAI1CommandFileRemove
      [field id UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
id | UUID | The file ID.

### CAI1CommandFileSearchBegin

Start searching for items.

    [record CAI1CommandFileSearchBegin
      [field parameters CAI1FileSearchParameters]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
parameters | CAI1FileSearchParameters | The search parameters.

### CAI1CommandFileSearchNext

Return the next page of search results.

    [record CAI1CommandFileSearchNext]

#### Fields

The record type has no fields.

### CAI1CommandFileSearchPrevious

Return the next page of search results.

    [record CAI1CommandFileSearchPrevious]

#### Fields

The record type has no fields.

### CAI1CommandItemAttachmentAdd

Add item attachments.

    [record CAI1CommandItemAttachmentAdd
      [field itemId UUID]
      [field fileId UUID]
      [field relation String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.
fileId | UUID | The file ID.
relation | String | The attachment relation.

### CAI1CommandItemAttachmentRemove

Remove item attachments.

    [record CAI1CommandItemAttachmentRemove
      [field itemId UUID]
      [field fileId UUID]
      [field relation String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.
fileId | UUID | The file ID.
relation | String | The attachment relation.

### CAI1CommandItemCreate

Create a new item.

    [record CAI1CommandItemCreate
      [field itemId UUID]
      [field name String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.
name | String | The item name.

### CAI1CommandItemGet

Retrieve an item.

    [record CAI1CommandItemGet
      [field itemId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.

### CAI1CommandItemLocationsList

List all the locations an item is in, and how many times the item is in them.

    [record CAI1CommandItemLocationsList
      [field itemId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.

### CAI1CommandItemMetadataPut

Add or update metadata values in an item.

    [record CAI1CommandItemMetadataPut
      [field itemId UUID]
      [field metadatas [ListCAI1Metadata]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.
metadatas | [List CAI1Metadata] | The item metadatas.

### CAI1CommandItemMetadataRemove

Remove metadata values from an item.

    [record CAI1CommandItemMetadataRemove
      [field itemId UUID]
      [field metadatas [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item ID.
metadatas | [List String] | The item metadatas.

### CAI1CommandItemReposit

Reposit an item.

    [record CAI1CommandItemReposit
      [field reposit CAI1ItemReposit]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
reposit | CAI1ItemReposit | The item reposition.

### CAI1CommandItemSearchBegin

Start searching for items.

    [record CAI1CommandItemSearchBegin
      [field parameters CAI1ItemSearchParameters]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
parameters | CAI1ItemSearchParameters | The search parameters.

### CAI1CommandItemSearchNext

Return the next page of search results.

    [record CAI1CommandItemSearchNext]

#### Fields

The record type has no fields.

### CAI1CommandItemSearchPrevious

Return the next page of search results.

    [record CAI1CommandItemSearchPrevious]

#### Fields

The record type has no fields.

### CAI1CommandItemSetName

Update the names of items.

    [record CAI1CommandItemSetName
      [field item UUID]
      [field name String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
item | UUID | The item ID.
name | String | The item name.

### CAI1CommandItemTypesAssign

Assign a set of types to an item.

    [record CAI1CommandItemTypesAssign
      [field item UUID]
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
item | UUID | The target item.
types | [List String] | The assigned types.

### CAI1CommandItemTypesRevoke

Revoke a set of types from an item.

    [record CAI1CommandItemTypesRevoke
      [field item UUID]
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
item | UUID | The target item.
types | [List String] | The removed types.

### CAI1CommandItemsRemove

Remove items.

    [record CAI1CommandItemsRemove
      [field items [ListUUID]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
items | [List UUID] | The items.

### CAI1CommandLocationAttachmentAdd

Add location attachments.

    [record CAI1CommandLocationAttachmentAdd
      [field locationId UUID]
      [field fileId UUID]
      [field relation String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
locationId | UUID | The location ID.
fileId | UUID | The file ID.
relation | String | The attachment relation.

### CAI1CommandLocationAttachmentRemove

Remove location attachments.

    [record CAI1CommandLocationAttachmentRemove
      [field locationId UUID]
      [field fileId UUID]
      [field relation String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
locationId | UUID | The location ID.
fileId | UUID | The file ID.
relation | String | The attachment relation.

### CAI1CommandLocationGet

Retrieve a location.

    [record CAI1CommandLocationGet
      [field location UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
location | UUID | The location ID.

### CAI1CommandLocationList

List locations.

    [record CAI1CommandLocationList]

#### Fields

The record type has no fields.

### CAI1CommandLocationMetadataPut

Add or update metadata values in a location.

    [record CAI1CommandLocationMetadataPut
      [field locationId UUID]
      [field metadatas [ListCAI1Metadata]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
locationId | UUID | The location ID.
metadatas | [List CAI1Metadata] | The location metadatas.

### CAI1CommandLocationMetadataRemove

Remove metadata values from a location.

    [record CAI1CommandLocationMetadataRemove
      [field locationId UUID]
      [field metadatas [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
locationId | UUID | The location ID.
metadatas | [List String] | The location metadatas.

### CAI1CommandLocationPut

Create or update a location.

    [record CAI1CommandLocationPut
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
location | CAI1Location | The location.

### CAI1CommandLocationTypesAssign

Assign a set of types to a location.

    [record CAI1CommandLocationTypesAssign
      [field location UUID]
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
location | UUID | The target location.
types | [List String] | The assigned types.

### CAI1CommandLocationTypesRevoke

Revoke a set of types from a location.

    [record CAI1CommandLocationTypesRevoke
      [field location UUID]
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
location | UUID | The target location.
types | [List String] | The removed types.

### CAI1CommandLogin

A request to log in.

    [record CAI1CommandLogin
      [field userName String]
      [field password String]
      [field metadata [MapStringString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
userName | String | The username.
password | String | The password.
metadata | [Map String String] | Extra metadata included with the login request.

### CAI1CommandRolesAssign

Assign a set of roles to a user.

    [record CAI1CommandRolesAssign
      [field user UUID]
      [field roles [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
user | UUID | The target user.
roles | [List String] | The assigned roles.

### CAI1CommandRolesGet

    [record CAI1CommandRolesGet
      [field user UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
user | UUID | The target user.

### CAI1CommandRolesRevoke

Revoke a set of roles from a user.

Get the roles for a user.

    [record CAI1CommandRolesRevoke
      [field user UUID]
      [field roles [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
user | UUID | The target user.
roles | [List String] | The roles.

### CAI1CommandTypeDeclarationGet

Get a declared type.

    [record CAI1CommandTypeDeclarationGet
      [field name String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
name | String | The type name.

### CAI1CommandTypeDeclarationPut

Create or update declared types.

    [record CAI1CommandTypeDeclarationPut
      [field types [ListCAI1TypeDeclaration]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
types | [List CAI1TypeDeclaration] | The types.

### CAI1CommandTypeDeclarationRemove

Remove declared types.

    [record CAI1CommandTypeDeclarationRemove
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
types | [List String] | The type names.

### CAI1CommandTypeDeclarationSearchBegin

Search for declared types.

    [record CAI1CommandTypeDeclarationSearchBegin
      [field parameters CAI1TypeDeclarationSearchParameters]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
parameters | CAI1TypeDeclarationSearchParameters | The parameters.

### CAI1CommandTypeDeclarationSearchNext

Search for declared types.

    [record CAI1CommandTypeDeclarationSearchNext]

#### Fields

The record type has no fields.

### CAI1CommandTypeDeclarationSearchPrevious

Search for declared types.

    [record CAI1CommandTypeDeclarationSearchPrevious]

#### Fields

The record type has no fields.

### CAI1CommandTypeScalarGet

Get a scalar type.

    [record CAI1CommandTypeScalarGet
      [field name String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
name | String | The type name.

### CAI1CommandTypeScalarPut

Create or update scalar types.

    [record CAI1CommandTypeScalarPut
      [field types [ListCAI1TypeScalar]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
types | [List CAI1TypeScalar] | The types.

### CAI1CommandTypeScalarRemove

Remove scalar types.

    [record CAI1CommandTypeScalarRemove
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
types | [List String] | The type names.

### CAI1CommandTypeScalarSearchBegin

Search for scalar types.

    [record CAI1CommandTypeScalarSearchBegin
      [field parameters CAI1TypeScalarSearchParameters]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
parameters | CAI1TypeScalarSearchParameters | The parameters.

### CAI1CommandTypeScalarSearchNext

Search for scalar types.

    [record CAI1CommandTypeScalarSearchNext]

#### Fields

The record type has no fields.

### CAI1CommandTypeScalarSearchPrevious

Search for scalar types.

    [record CAI1CommandTypeScalarSearchPrevious]

#### Fields

The record type has no fields.

### CAI1ComparisonExact

    [variant CAI1ComparisonExact
      [parameter T]
      [case Anything]
      [case IsEqualTo
        [field value T]
      ]
      [case IsNotEqualTo
        [field value T]
      ]
    ]

#### Parameters

Name | Description
--- | ---
T | No description provided.

#### Cases

##### Case Anything

The case Anything has no fields.

##### Case IsEqualTo

Name | Type | Description
--- | --- | ---
value | T |

##### Case IsNotEqualTo

Name | Type | Description
--- | --- | ---
value | T |

### CAI1ComparisonFuzzy

    [variant CAI1ComparisonFuzzy
      [parameter T]
      [case Anything]
      [case IsEqualTo
        [field value T]
      ]
      [case IsNotEqualTo
        [field value T]
      ]
      [case IsSimilarTo
        [field value T]
      ]
      [case IsNotSimilarTo
        [field value T]
      ]
    ]

#### Parameters

Name | Description
--- | ---
T | No description provided.

#### Cases

##### Case Anything

The case Anything has no fields.

##### Case IsEqualTo

Name | Type | Description
--- | --- | ---
value | T |

##### Case IsNotEqualTo

Name | Type | Description
--- | --- | ---
value | T |

##### Case IsSimilarTo

Name | Type | Description
--- | --- | ---
value | T |

##### Case IsNotSimilarTo

Name | Type | Description
--- | --- | ---
value | T |

### CAI1ComparisonSet

    [variant CAI1ComparisonSet
      [parameter T]
      [case Anything]
      [case IsEqualTo
        [field value [ListT]]
      ]
      [case IsNotEqualTo
        [field value [ListT]]
      ]
      [case IsSubsetOf
        [field value [ListT]]
      ]
      [case IsSupersetOf
        [field value [ListT]]
      ]
      [case IsOverlapping
        [field value [ListT]]
      ]
    ]

#### Parameters

Name | Description
--- | ---
T | No description provided.

#### Cases

##### Case Anything

The case Anything has no fields.

##### Case IsEqualTo

Name | Type | Description
--- | --- | ---
value | [List T] |

##### Case IsNotEqualTo

Name | Type | Description
--- | --- | ---
value | [List T] |

##### Case IsSubsetOf

Name | Type | Description
--- | --- | ---
value | [List T] |

##### Case IsSupersetOf

Name | Type | Description
--- | --- | ---
value | [List T] |

##### Case IsOverlapping

Name | Type | Description
--- | --- | ---
value | [List T] |

### CAI1EventUpdated

Data on the server was updated.

    [record CAI1EventUpdated
      [field updated [ListCAI1Id]]
      [field removed [ListCAI1Id]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
updated | [List CAI1Id] | The list of objects that were updated.
removed | [List CAI1Id] | The list of objects that were removed.

### CAI1File

A file.

    [variant CAI1File
      [case CAI1FileWithoutData
        [field id UUID]
        [field description String]
        [field mediaType String]
        [field size IntegerUnsigned64]
        [field hashAlgorithm String]
        [field hashValue String]
      ]
      [case CAI1FileWithData
        [field id UUID]
        [field description String]
        [field mediaType String]
        [field size IntegerUnsigned64]
        [field hashAlgorithm String]
        [field hashValue String]
        [field data ByteArray]
      ]
    ]

#### Cases

##### Case CAI1FileWithoutData

Name | Type | Description
--- | --- | ---
id | UUID | The file ID.
description | String | The file description.
mediaType | String | The media type.
size | IntegerUnsigned64 | The file size.
hashAlgorithm | String | The hash algorithm name.
hashValue | String | The hash value.

##### Case CAI1FileWithData

Name | Type | Description
--- | --- | ---
id | UUID | The file ID.
description | String | The file description.
mediaType | String | The media type.
size | IntegerUnsigned64 | The file size.
hashAlgorithm | String | The hash algorithm name.
hashValue | String | The hash value.
data | ByteArray | The file data.

### CAI1FileColumn

The item column by which to order results.

    [variant CAI1FileColumn
      [case CAI1ById]
      [case CAI1ByDescription]
    ]

#### Cases

##### Case CAI1ById

The case CAI1ById has no fields.

##### Case CAI1ByDescription

The case CAI1ByDescription has no fields.

### CAI1FileColumnOrdering

The file column by which to order results.

    [record CAI1FileColumnOrdering
      [field column CAI1FileColumn]
      [field ascending Boolean]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
column | CAI1FileColumn | The file column.
ascending | Boolean | Whether results should be in ascending order.

### CAI1FileSearchParameters

The item search parameters.

    [record CAI1FileSearchParameters
      [field search [CAI1ComparisonFuzzyString]]
      [field mediaType [CAI1ComparisonFuzzyString]]
      [field sizeRange CAI1SizeRange]
      [field order CAI1FileColumnOrdering]
      [field limit IntegerUnsigned32]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
search | [CAI1ComparisonFuzzy String] | The file description search query.
mediaType | [CAI1ComparisonFuzzy String] | The file media type search query.
sizeRange | CAI1SizeRange | The file size range query.
order | CAI1FileColumnOrdering | The file result ordering.
limit | IntegerUnsigned32 | The file limit.

### CAI1Id

An identifier value.

    [variant CAI1Id
      [case CAI1FileID
        [field id UUID]
      ]
      [case CAI1ItemID
        [field id UUID]
      ]
      [case CAI1LocationID
        [field id UUID]
      ]
      [case CAI1UserID
        [field id UUID]
      ]
    ]

#### Cases

##### Case CAI1FileID

Name | Type | Description
--- | --- | ---
id | UUID |

##### Case CAI1ItemID

Name | Type | Description
--- | --- | ---
id | UUID |

##### Case CAI1LocationID

Name | Type | Description
--- | --- | ---
id | UUID |

##### Case CAI1UserID

Name | Type | Description
--- | --- | ---
id | UUID |

### CAI1Item

An item.

    [record CAI1Item
      [field id UUID]
      [field name String]
      [field countTotal IntegerUnsigned64]
      [field countHere IntegerUnsigned64]
      [field metadata [MapStringCAI1Metadata]]
      [field attachments [MapCAI1AttachmentKeyCAI1Attachment]]
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
id | UUID | The item ID.
name | String | The item name.
countTotal | IntegerUnsigned64 | The total item count.
countHere | IntegerUnsigned64 | The item count in this location.
metadata | [Map String CAI1Metadata] | The item metadata.
attachments | [Map CAI1AttachmentKey CAI1Attachment] | The item attachments.
types | [List String] | The item types.

### CAI1ItemColumn

The item column by which to order results.

    [variant CAI1ItemColumn
      [case CAI1ById]
      [case CAI1ByName]
    ]

#### Cases

##### Case CAI1ById

The case CAI1ById has no fields.

##### Case CAI1ByName

The case CAI1ByName has no fields.

### CAI1ItemColumnOrdering

The item column by which to order results.

    [record CAI1ItemColumnOrdering
      [field column CAI1ItemColumn]
      [field ascending Boolean]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
column | CAI1ItemColumn | The item column.
ascending | Boolean | Whether results should be in ascending order.

### CAI1ItemLocation

An assertion that there are count instances of item at location.

    [record CAI1ItemLocation
      [field itemId UUID]
      [field locationId UUID]
      [field count IntegerUnsigned64]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
itemId | UUID | The item.
locationId | UUID | The location ID.
count | IntegerUnsigned64 | The count.

### CAI1ItemLocations

A set of assertions indicating items in locations.

    [record CAI1ItemLocations
      [field locations [MapUUID[MapUUIDCAI1ItemLocation]]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
locations | [Map UUID[Map UUID CAI1ItemLocation]] | The item locations.

### CAI1ItemReposit

The type of item reposit operations.

    [variant CAI1ItemReposit
      [case CAI1ItemRepositAdd
        [field itemId UUID]
        [field locationId UUID]
        [field count IntegerUnsigned64]
      ]
      [case CAI1ItemRepositMove
        [field itemId UUID]
        [field locationFrom UUID]
        [field locationTo UUID]
        [field count IntegerUnsigned64]
      ]
      [case CAI1ItemRepositRemove
        [field itemId UUID]
        [field locationId UUID]
        [field count IntegerUnsigned64]
      ]
    ]

#### Cases

##### Case CAI1ItemRepositAdd

Name | Type | Description
--- | --- | ---
itemId | UUID | The item.
locationId | UUID | The location ID.
count | IntegerUnsigned64 | The count.

##### Case CAI1ItemRepositMove

Name | Type | Description
--- | --- | ---
itemId | UUID | The item.
locationFrom | UUID | The from location.
locationTo | UUID | The to location.
count | IntegerUnsigned64 | The count.

##### Case CAI1ItemRepositRemove

Name | Type | Description
--- | --- | ---
itemId | UUID | The item.
locationId | UUID | The location ID.
count | IntegerUnsigned64 | The count.

### CAI1ItemSearchParameters

The item search parameters.

    [record CAI1ItemSearchParameters
      [field location CAI1ListLocationBehaviour]
      [field nameMatch CAI1NameMatch]
      [field typeMatch CAI1TypeMatch]
      [field metaMatch CAI1MetadataElementMatch]
      [field order CAI1ItemColumnOrdering]
      [field limit IntegerUnsigned32]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
location | CAI1ListLocationBehaviour | The item location search behaviour.
nameMatch | CAI1NameMatch | The item name match expression.
typeMatch | CAI1TypeMatch | The item type match expression.
metaMatch | CAI1MetadataElementMatch | The item metadata match expression.
order | CAI1ItemColumnOrdering | The item result ordering.
limit | IntegerUnsigned32 | The item limit.

### CAI1ItemSummary

A summary of an item.

    [record CAI1ItemSummary
      [field id UUID]
      [field name String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
id | UUID |
name | String |

### CAI1ListLocationBehaviour

The behaviour requested for listing items in locations.

    [variant CAI1ListLocationBehaviour
      [case CAI1ListLocationExact
        [field locationId UUID]
      ]
      [case CAI1ListLocationWithDescendants
        [field locationId UUID]
      ]
      [case CAI1ListLocationsAll]
    ]

#### Cases

##### Case CAI1ListLocationExact

Name | Type | Description
--- | --- | ---
locationId | UUID |

##### Case CAI1ListLocationWithDescendants

Name | Type | Description
--- | --- | ---
locationId | UUID |

##### Case CAI1ListLocationsAll

The case CAI1ListLocationsAll has no fields.

### CAI1Location

A location.

    [record CAI1Location
      [field locationId UUID]
      [field parent [OptionUUID]]
      [field name String]
      [field metadata [MapStringCAI1Metadata]]
      [field attachments [MapCAI1AttachmentKeyCAI1Attachment]]
      [field types [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
locationId | UUID | The location ID.
parent | [Option UUID] | The location parent.
name | String | The location name.
metadata | [Map String CAI1Metadata] | The item metadata.
attachments | [Map CAI1AttachmentKey CAI1Attachment] | The item attachments.
types | [List String] | The item types.

### CAI1LocationSummary

A summary of a location.

    [record CAI1LocationSummary
      [field id UUID]
      [field parent [OptionUUID]]
      [field name String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
id | UUID |
parent | [Option UUID] |
name | String |

### CAI1Metadata

A metadata value.

    [variant CAI1Metadata
      [case Integral
        [field key String]
        [field value IntegerSigned64]
      ]
      [case Text
        [field key String]
        [field value String]
      ]
      [case Time
        [field key String]
        [field value OffsetDateTime]
      ]
      [case Monetary
        [field key String]
        [field value String]
        [field currency String]
      ]
      [case Real
        [field key String]
        [field value Float64]
      ]
    ]

#### Cases

##### Case Integral

Name | Type | Description
--- | --- | ---
key | String | The metadata value key.
value | IntegerSigned64 | The metadata value.

##### Case Text

Name | Type | Description
--- | --- | ---
key | String | The metadata value key.
value | String | The metadata value.

##### Case Time

Name | Type | Description
--- | --- | ---
key | String | The metadata value key.
value | OffsetDateTime | The metadata value.

##### Case Monetary

Name | Type | Description
--- | --- | ---
key | String | The metadata value key.
value | String | The metadata value.
currency | String | The metadata currency unit.

##### Case Real

Name | Type | Description
--- | --- | ---
key | String | The metadata value key.
value | Float64 | The metadata value.

### CAI1MetadataElementMatch

An expression against which item metadata is matched.

    [variant CAI1MetadataElementMatch
      [case And
        [field e0 CAI1MetadataElementMatch]
        [field e1 CAI1MetadataElementMatch]
      ]
      [case Or
        [field e0 CAI1MetadataElementMatch]
        [field e1 CAI1MetadataElementMatch]
      ]
      [case Specific
        [field name CAI1MetadataNameMatch]
        [field value CAI1MetadataValueMatch]
      ]
    ]

#### Cases

##### Case And

Name | Type | Description
--- | --- | ---
e0 | CAI1MetadataElementMatch |
e1 | CAI1MetadataElementMatch |

##### Case Or

Name | Type | Description
--- | --- | ---
e0 | CAI1MetadataElementMatch |
e1 | CAI1MetadataElementMatch |

##### Case Specific

Name | Type | Description
--- | --- | ---
name | CAI1MetadataNameMatch |
value | CAI1MetadataValueMatch |

### CAI1MetadataNameMatch

An expression against which item metadata names are matched.

    [variant CAI1MetadataNameMatch
      [case Anything]
      [case Exact
        [field name String]
      ]
      [case Search
        [field search String]
      ]
    ]

#### Cases

##### Case Anything

The case Anything has no fields.

##### Case Exact

Name | Type | Description
--- | --- | ---
name | String |

##### Case Search

Name | Type | Description
--- | --- | ---
search | String |

### CAI1MetadataValueMatch

An expression against which item metadata values are matched.

    [variant CAI1MetadataValueMatch
      [case Anything]
      [case IntegralWithinRange
        [field lower IntegerSigned64]
        [field upper IntegerSigned64]
      ]
      [case RealWithinRange
        [field lower Float64]
        [field upper Float64]
      ]
      [case TimeWithinRange
        [field lower OffsetDateTime]
        [field upper OffsetDateTime]
      ]
      [case MonetaryWithinRange
        [field lower String]
        [field upper String]
      ]
      [case MonetaryWithCurrency
        [field currency String]
      ]
      [case TextExact
        [field exact String]
      ]
      [case TextSearch
        [field search String]
      ]
    ]

#### Cases

##### Case Anything

The case Anything has no fields.

##### Case IntegralWithinRange

Name | Type | Description
--- | --- | ---
lower | IntegerSigned64 |
upper | IntegerSigned64 |

##### Case RealWithinRange

Name | Type | Description
--- | --- | ---
lower | Float64 |
upper | Float64 |

##### Case TimeWithinRange

Name | Type | Description
--- | --- | ---
lower | OffsetDateTime |
upper | OffsetDateTime |

##### Case MonetaryWithinRange

Name | Type | Description
--- | --- | ---
lower | String |
upper | String |

##### Case MonetaryWithCurrency

Name | Type | Description
--- | --- | ---
currency | String |

##### Case TextExact

Name | Type | Description
--- | --- | ---
exact | String |

##### Case TextSearch

Name | Type | Description
--- | --- | ---
search | String |

### CAI1NameMatch

An expression against which item names are matched.

    [variant CAI1NameMatch
      [case CAI1NameMatchAny]
      [case CAI1NameMatchExact
        [field text String]
      ]
      [case CAI1NameMatchSearch
        [field query String]
      ]
    ]

#### Cases

##### Case CAI1NameMatchAny

The case CAI1NameMatchAny has no fields.

##### Case CAI1NameMatchExact

Name | Type | Description
--- | --- | ---
text | String |

##### Case CAI1NameMatchSearch

Name | Type | Description
--- | --- | ---
query | String |

### CAI1Page

A page of search results.

    [record CAI1Page
      [parameter T]

      [field items [ListT]]
      [field pageIndex IntegerUnsigned32]
      [field pageCount IntegerUnsigned32]
      [field pageFirstOffset IntegerUnsigned64]
    ]

#### Parameters

Name | Description
--- | ---
T | No description provided.

#### Fields

Name | Type | Description
--- | --- | ---
items | [List T] |
pageIndex | IntegerUnsigned32 |
pageCount | IntegerUnsigned32 |
pageFirstOffset | IntegerUnsigned64 |

### CAI1ResponseAuditSearch

A response to CAI1CommandAuditSearchBegin.

    [record CAI1ResponseAuditSearch
      [field messageId UUID]
      [field results [CAI1PageCAI1AuditEvent]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
messageId | UUID | The message ID
results | [CAI1Page CAI1AuditEvent] | The results

### CAI1ResponseBlame

A blame assignment.

    [variant CAI1ResponseBlame
      [case BlameClient]
      [case BlameServer]
    ]

#### Cases

##### Case BlameClient

The case BlameClient has no fields.

##### Case BlameServer

The case BlameServer has no fields.

### CAI1ResponseError

An error response.

    [record CAI1ResponseError
      [field requestId UUID]
      [field errorCode String]
      [field message String]
      [field attributes [MapStringString]]
      [field remediatingAction [OptionString]]
      [field blame CAI1ResponseBlame]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
errorCode | String | The error code.
message | String | The error message.
attributes | [Map String String] | The error attributes.
remediatingAction | [Option String] | The remediating action, if any.
blame | CAI1ResponseBlame | The blame assignment.

### CAI1ResponseFileGet

A response to CAI1CommandFileGet.

    [record CAI1ResponseFileGet
      [field requestId UUID]
      [field file CAI1File]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
file | CAI1File | The file.

### CAI1ResponseFilePut

A response to CAI1CommandFilePut.

    [record CAI1ResponseFilePut
      [field requestId UUID]
      [field file CAI1File]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
file | CAI1File | The file.

### CAI1ResponseFileRemove

A response to CAI1CommandFileRemove.

    [record CAI1ResponseFileRemove
      [field requestId UUID]
      [field id UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
id | UUID | The file ID.

### CAI1ResponseFileSearch

A response to CAI1CommandFileSearch.

    [record CAI1ResponseFileSearch
      [field requestId UUID]
      [field results [CAI1PageCAI1File]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
results | [CAI1Page CAI1File] | The results.

### CAI1ResponseItemAttachmentAdd

A response to CAI1CommandItemAttachmentAdd.

    [record CAI1ResponseItemAttachmentAdd
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemAttachmentRemove

A response to CAI1CommandItemAttachmentRemove.

    [record CAI1ResponseItemAttachmentRemove
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemCreate

A response to CAI1CommandItemCreate.

    [record CAI1ResponseItemCreate
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemGet

A response to CAI1CommandItemGet.

    [record CAI1ResponseItemGet
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemLocationsList

A response to CAI1CommandItemLocationsList.

    [record CAI1ResponseItemLocationsList
      [field requestId UUID]
      [field itemLocations CAI1ItemLocations]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
itemLocations | CAI1ItemLocations | The item locations.

### CAI1ResponseItemMetadataPut

A response to CAI1CommandItemMetadataPut.

    [record CAI1ResponseItemMetadataPut
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemMetadataRemove

A response to CAI1CommandItemMetadataRemove.

    [record CAI1ResponseItemMetadataRemove
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemReposit

A response to CAI1CommandItemReposit.

    [record CAI1ResponseItemReposit
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemSearch

A response to CAI1CommandItemSearch.

    [record CAI1ResponseItemSearch
      [field requestId UUID]
      [field results [CAI1PageCAI1ItemSummary]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
results | [CAI1Page CAI1ItemSummary] | The results.

### CAI1ResponseItemSetName

A response to CAI1CommandItemSetName.

    [record CAI1ResponseItemSetName
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemTypesAssign

A response to CAI1CommandItemTypesAssign.

    [record CAI1ResponseItemTypesAssign
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemTypesRevoke

A response to CAI1CommandItemTypesRevoke.

    [record CAI1ResponseItemTypesRevoke
      [field requestId UUID]
      [field item CAI1Item]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
item | CAI1Item | The item.

### CAI1ResponseItemsRemove

A response to CAI1CommandItemsRemove.

    [record CAI1ResponseItemsRemove
      [field requestId UUID]
      [field items [ListUUID]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
items | [List UUID] | The items.

### CAI1ResponseLocationAttachmentAdd

A response to CAI1CommandLocationAttachmentAdd.

    [record CAI1ResponseLocationAttachmentAdd
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationAttachmentRemove

A response to CAI1CommandLocationAttachmentRemove.

    [record CAI1ResponseLocationAttachmentRemove
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationGet

A response to CAI1CommandLocationGet.

    [record CAI1ResponseLocationGet
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationList

A response to CAI1CommandLocationList.

    [record CAI1ResponseLocationList
      [field requestId UUID]
      [field locations [MapUUIDCAI1LocationSummary]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
locations | [Map UUID CAI1LocationSummary] | The locations.

### CAI1ResponseLocationMetadataPut

A response to CAI1CommandLocationMetadataPut.

    [record CAI1ResponseLocationMetadataPut
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationMetadataRemove

A response to CAI1CommandLocationMetadataRemove.

    [record CAI1ResponseLocationMetadataRemove
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationPut

A response to CAI1CommandLocationPut.

    [record CAI1ResponseLocationPut
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationTypesAssign

A response to CAI1CommandLocationTypesAssign.

    [record CAI1ResponseLocationTypesAssign
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLocationTypesRevoke

A response to CAI1CommandLocationTypesRevoke.

    [record CAI1ResponseLocationTypesRevoke
      [field requestId UUID]
      [field location CAI1Location]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
location | CAI1Location | The location.

### CAI1ResponseLogin

A response to CAI1CommandLogin.

    [record CAI1ResponseLogin
      [field requestId UUID]
      [field userId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
userId | UUID | The ID of the user that logged in.

### CAI1ResponseRolesAssign

A response to CAI1ResponseRolesAssign.

    [record CAI1ResponseRolesAssign
      [field requestId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.

### CAI1ResponseRolesGet

A response to CAI1ResponseRolesGet.

    [record CAI1ResponseRolesGet
      [field requestId UUID]
      [field roles [ListString]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
roles | [List String] | The roles.

### CAI1ResponseRolesRevoke

A response to CAI1ResponseRolesRevoke.

    [record CAI1ResponseRolesRevoke
      [field requestId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.

### CAI1ResponseTypeDeclarationGet

A response to CAI1CommandTypeDeclarationGet.

    [record CAI1ResponseTypeDeclarationGet
      [field requestId UUID]
      [field type CAI1TypeDeclaration]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
type | CAI1TypeDeclaration | The scalar type.

### CAI1ResponseTypeDeclarationPut

A response to CAI1CommandTypeDeclarationPut.

    [record CAI1ResponseTypeDeclarationPut
      [field requestId UUID]
      [field types [ListCAI1TypeDeclaration]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
types | [List CAI1TypeDeclaration] | The scalar types.

### CAI1ResponseTypeDeclarationRemove

A response to CAI1CommandTypeDeclarationRemove.

    [record CAI1ResponseTypeDeclarationRemove
      [field requestId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.

### CAI1ResponseTypeDeclarationSearch

A response to CAI1CommandTypeDeclarationSearch*.

    [record CAI1ResponseTypeDeclarationSearch
      [field requestId UUID]
      [field results [CAI1PageCAI1TypeDeclarationSummary]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
results | [CAI1Page CAI1TypeDeclarationSummary] | The results.

### CAI1ResponseTypeScalarGet

A response to CAI1CommandTypeScalarGet.

    [record CAI1ResponseTypeScalarGet
      [field requestId UUID]
      [field type CAI1TypeScalar]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
type | CAI1TypeScalar | The scalar type.

### CAI1ResponseTypeScalarPut

A response to CAI1CommandTypeScalarPut.

    [record CAI1ResponseTypeScalarPut
      [field requestId UUID]
      [field types [ListCAI1TypeScalar]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
types | [List CAI1TypeScalar] | The scalar types.

### CAI1ResponseTypeScalarRemove

A response to CAI1CommandTypeScalarRemove.

    [record CAI1ResponseTypeScalarRemove
      [field requestId UUID]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.

### CAI1ResponseTypeScalarSearch

A response to CAI1CommandTypeScalarSearch*.

    [record CAI1ResponseTypeScalarSearch
      [field requestId UUID]
      [field results [CAI1PageCAI1TypeScalar]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
requestId | UUID | The ID of the request that yielded this response.
results | [CAI1Page CAI1TypeScalar] | The results.

### CAI1SizeRange

A size range.

    [record CAI1SizeRange
      [field sizeMinimum IntegerUnsigned64]
      [field sizeMaximum IntegerUnsigned64]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
sizeMinimum | IntegerUnsigned64 | The lower bound (inclusive).
sizeMaximum | IntegerUnsigned64 | The upper bound (inclusive).

### CAI1TimeRange

An inclusive time range.

    [record CAI1TimeRange
      [field timeLower OffsetDateTime]
      [field timeUpper OffsetDateTime]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
timeLower | OffsetDateTime |
timeUpper | OffsetDateTime |

### CAI1TypeDeclaration

A type declaration.

    [record CAI1TypeDeclaration
      [field name String]
      [field description String]
      [field fields [MapStringCAI1TypeField]]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
name | String | The type declaration name.
description | String | The type declaration description.
fields | [Map String CAI1TypeField] | Whether or not the field is required to be present.

### CAI1TypeDeclarationSearchParameters

The declared type search parameters.

    [record CAI1TypeDeclarationSearchParameters
      [field search [OptionString]]
      [field limit IntegerUnsigned32]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
search | [Option String] | The type description search query.
limit | IntegerUnsigned32 | The limit.

### CAI1TypeDeclarationSummary

A type declaration summary.

    [record CAI1TypeDeclarationSummary
      [field name String]
      [field description String]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
name | String | The type declaration name.
description | String | The type declaration description.

### CAI1TypeField

A field within a type declaration.

    [record CAI1TypeField
      [field name String]
      [field description String]
      [field type CAI1TypeScalar]
      [field required Boolean]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
name | String | The type field name.
description | String | The type field description.
type | CAI1TypeScalar | The type of the field.
required | Boolean | Whether or not the field is required to be present.

### CAI1TypeMatch

An expression against which item types are matched.

    [variant CAI1TypeMatch
      [case CAI1TypeMatchAny]
      [case CAI1TypeMatchAnyOf
        [field types [ListString]]
      ]
      [case CAI1TypeMatchAllOf
        [field types [ListString]]
      ]
    ]

#### Cases

##### Case CAI1TypeMatchAny

The case CAI1TypeMatchAny has no fields.

##### Case CAI1TypeMatchAnyOf

Name | Type | Description
--- | --- | ---
types | [List String] |

##### Case CAI1TypeMatchAllOf

Name | Type | Description
--- | --- | ---
types | [List String] |

### CAI1TypeScalar

A scalar type.

    [variant CAI1TypeScalar
      [case Integral
        [field name String]
        [field description String]
        [field rangeLower IntegerSigned64]
        [field rangeUpper IntegerSigned64]
      ]
      [case Text
        [field name String]
        [field description String]
        [field pattern String]
      ]
      [case Time
        [field name String]
        [field description String]
        [field rangeLower OffsetDateTime]
        [field rangeUpper OffsetDateTime]
      ]
      [case Monetary
        [field name String]
        [field description String]
        [field rangeLower String]
        [field rangeUpper String]
      ]
      [case Real
        [field name String]
        [field description String]
        [field rangeLower Float64]
        [field rangeUpper Float64]
      ]
    ]

#### Cases

##### Case Integral

Name | Type | Description
--- | --- | ---
name | String | The type name.
description | String | The type description.
rangeLower | IntegerSigned64 |
rangeUpper | IntegerSigned64 |

##### Case Text

Name | Type | Description
--- | --- | ---
name | String | The type name.
description | String | The type description.
pattern | String |

##### Case Time

Name | Type | Description
--- | --- | ---
name | String | The type name.
description | String | The type description.
rangeLower | OffsetDateTime |
rangeUpper | OffsetDateTime |

##### Case Monetary

Name | Type | Description
--- | --- | ---
name | String | The type name.
description | String | The type description.
rangeLower | String |
rangeUpper | String |

##### Case Real

Name | Type | Description
--- | --- | ---
name | String | The type name.
description | String | The type description.
rangeLower | Float64 |
rangeUpper | Float64 |

### CAI1TypeScalarSearchParameters

The scalar type search parameters.

    [record CAI1TypeScalarSearchParameters
      [field search [OptionString]]
      [field limit IntegerUnsigned32]
    ]

#### Fields

Name | Type | Description
--- | --- | ---
search | [Option String] | The type description search query.
limit | IntegerUnsigned32 | The limit.

## Protocols

- CAI

### CAI

Protocol identifier: `ea97717d-8a36-312d-82e4-9bad187770cc`

The Inventory protocol.

#### Version 1 Messages

Name | Description
--- | ---
CAI1CommandAuditSearchBegin | Start searching audit events.
CAI1CommandAuditSearchNext | Continue searching audit events.
CAI1CommandAuditSearchPrevious | Continue searching audit events.
CAI1CommandFileGet | Retrieve a file.
CAI1CommandFilePut | Add or update files.
CAI1CommandFileRemove | Remove files.
CAI1CommandFileSearchBegin | Start searching for items.
CAI1CommandFileSearchNext | Return the next page of search results.
CAI1CommandFileSearchPrevious | Return the next page of search results.
CAI1CommandItemAttachmentAdd | Add item attachments.
CAI1CommandItemAttachmentRemove | Remove item attachments.
CAI1CommandItemCreate | Create a new item.
CAI1CommandItemGet | Retrieve an item.
CAI1CommandItemLocationsList | List all the locations an item is in, and how many times the item is in them.
CAI1CommandItemMetadataPut | Add or update metadata values in an item.
CAI1CommandItemMetadataRemove | Remove metadata values from an item.
CAI1CommandItemReposit | Reposit an item.
CAI1CommandItemSearchBegin | Start searching for items.
CAI1CommandItemSearchNext | Return the next page of search results.
CAI1CommandItemSearchPrevious | Return the next page of search results.
CAI1CommandItemSetName | Update the names of items.
CAI1CommandItemTypesAssign | Assign a set of types to an item.
CAI1CommandItemTypesRevoke | Revoke a set of types from an item.
CAI1CommandItemsRemove | Remove items.
CAI1CommandLocationAttachmentAdd | Add location attachments.
CAI1CommandLocationAttachmentRemove | Remove location attachments.
CAI1CommandLocationGet | Retrieve a location.
CAI1CommandLocationList | List locations.
CAI1CommandLocationMetadataPut | Add or update metadata values in a location.
CAI1CommandLocationMetadataRemove | Remove metadata values from a location.
CAI1CommandLocationPut | Create or update a location.
CAI1CommandLocationTypesAssign | Assign a set of types to a location.
CAI1CommandLocationTypesRevoke | Revoke a set of types from a location.
CAI1CommandLogin | A request to log in.
CAI1CommandRolesAssign | Assign a set of roles to a user.
CAI1CommandRolesGet | No description provided.
CAI1CommandRolesRevoke | Revoke a set of roles from a user. Get the roles for a user.
CAI1CommandTypeDeclarationGet | Get a declared type.
CAI1CommandTypeDeclarationPut | Create or update declared types.
CAI1CommandTypeDeclarationRemove | Remove declared types.
CAI1CommandTypeDeclarationSearchBegin | Search for declared types.
CAI1CommandTypeDeclarationSearchNext | Search for declared types.
CAI1CommandTypeDeclarationSearchPrevious | Search for declared types.
CAI1CommandTypeScalarGet | Get a scalar type.
CAI1CommandTypeScalarPut | Create or update scalar types.
CAI1CommandTypeScalarRemove | Remove scalar types.
CAI1CommandTypeScalarSearchBegin | Search for scalar types.
CAI1CommandTypeScalarSearchNext | Search for scalar types.
CAI1CommandTypeScalarSearchPrevious | Search for scalar types.
CAI1EventUpdated | Data on the server was updated.
CAI1ResponseAuditSearch | A response to CAI1CommandAuditSearchBegin.
CAI1ResponseError | An error response.
CAI1ResponseFileGet | A response to CAI1CommandFileGet.
CAI1ResponseFilePut | A response to CAI1CommandFilePut.
CAI1ResponseFileRemove | A response to CAI1CommandFileRemove.
CAI1ResponseFileSearch | A response to CAI1CommandFileSearch.
CAI1ResponseItemAttachmentAdd | A response to CAI1CommandItemAttachmentAdd.
CAI1ResponseItemAttachmentRemove | A response to CAI1CommandItemAttachmentRemove.
CAI1ResponseItemCreate | A response to CAI1CommandItemCreate.
CAI1ResponseItemGet | A response to CAI1CommandItemGet.
CAI1ResponseItemLocationsList | A response to CAI1CommandItemLocationsList.
CAI1ResponseItemMetadataPut | A response to CAI1CommandItemMetadataPut.
CAI1ResponseItemMetadataRemove | A response to CAI1CommandItemMetadataRemove.
CAI1ResponseItemReposit | A response to CAI1CommandItemReposit.
CAI1ResponseItemSearch | A response to CAI1CommandItemSearch.
CAI1ResponseItemSetName | A response to CAI1CommandItemSetName.
CAI1ResponseItemTypesAssign | A response to CAI1CommandItemTypesAssign.
CAI1ResponseItemTypesRevoke | A response to CAI1CommandItemTypesRevoke.
CAI1ResponseItemsRemove | A response to CAI1CommandItemsRemove.
CAI1ResponseLocationAttachmentAdd | A response to CAI1CommandLocationAttachmentAdd.
CAI1ResponseLocationAttachmentRemove | A response to CAI1CommandLocationAttachmentRemove.
CAI1ResponseLocationGet | A response to CAI1CommandLocationGet.
CAI1ResponseLocationList | A response to CAI1CommandLocationList.
CAI1ResponseLocationMetadataPut | A response to CAI1CommandLocationMetadataPut.
CAI1ResponseLocationMetadataRemove | A response to CAI1CommandLocationMetadataRemove.
CAI1ResponseLocationPut | A response to CAI1CommandLocationPut.
CAI1ResponseLocationTypesAssign | A response to CAI1CommandLocationTypesAssign.
CAI1ResponseLocationTypesRevoke | A response to CAI1CommandLocationTypesRevoke.
CAI1ResponseLogin | A response to CAI1CommandLogin.
CAI1ResponseRolesAssign | A response to CAI1ResponseRolesAssign.
CAI1ResponseRolesGet | A response to CAI1ResponseRolesGet.
CAI1ResponseRolesRevoke | A response to CAI1ResponseRolesRevoke.
CAI1ResponseTypeDeclarationGet | A response to CAI1CommandTypeDeclarationGet.
CAI1ResponseTypeDeclarationPut | A response to CAI1CommandTypeDeclarationPut.
CAI1ResponseTypeDeclarationRemove | A response to CAI1CommandTypeDeclarationRemove.
CAI1ResponseTypeDeclarationSearch | A response to CAI1CommandTypeDeclarationSearch*.
CAI1ResponseTypeScalarGet | A response to CAI1CommandTypeScalarGet.
CAI1ResponseTypeScalarPut | A response to CAI1CommandTypeScalarPut.
CAI1ResponseTypeScalarRemove | A response to CAI1CommandTypeScalarRemove.
CAI1ResponseTypeScalarSearch | A response to CAI1CommandTypeScalarSearch*.